202242163084406221484075343868460998385694687909232842430093436607939976216796897242612262660450667641287766489258173921639479374231395487033826699408924835378861824404090485438738443995524658468439797728637532538344442787930962580584480179362739364602425800324391186286861550716317181288280782222994115631411270010416838475998612535739969144498182516987252885715109516867218064176571338209743651088387770141837275836235050661210581930717566430212670357612575746950352088091902704775723350531195315162022412880304827931043198323102860719094474724381366907605546935188473762187922051537813272843065181415436585551549146081538611723039402509471645649820530497022486231532630544419314412149203567759501805055073608179839477849361387906579577459478465443542509860092852201045121298969127120169440446255241863208340276259242657123088289426657516568103507868856523369957031228828411306380288417925176390343241556683644856798069601139381323765101047244344840212626299260371354721336665305269194285920608993920224708916604298332819198650827058695577507759646846208655781846357386711027155752890829669923281154222999693403831899784703946787291780581172853950463771802470921648239161541745851181320554130446322131757021825502806541729400722223803913491283375508172786157928445653654246658186792743573692529772529982744918805184177975852279631924958907688468864032663790457077665311818432956811389512089460143194738713572472375026529168031345049263456212452915564618175236203238016528942142733292965591958015743202238512594972196915610334577247457479125655517188941168688247817934217985547562521950470895218098206123710817665018920110401994834794897284792366367627847273208250179200186882661709414286084001586272760664993438949188568952536689389899669775256843797817994439043845704348266402763903191584879463781112232402918341025776923290177580997338977991503863653200187008525032868911545329444645527312526265360021561410102313369680750789011428171021655047816119659492320570927459800209474562945566418397425252022028934932042119243329910568587774486055352863039811163906606228282369253361710907097082737662430500963894599586641467704574367539550592816169438568868544222321262608863025014357412074151001933232134397044504777316178183808783009518357229945123331700497017454710658986432764784472394135305852835422339842636378045003133032903525116191024371866818081004622531636171495200884095780920785870466500480357332947583770382144290841296527830090827665180611769344745430529731461970553464266456012121522644820222830395486220108974453178263609110933824198597834519163966267613910245449451771939389918570876778818912013964942985697591025189790512482331429192582231946158984340625591253131551051583969943450424104477563032184615531585188319887592029317615866295536166657335770925513109854668876194224548217288542929748742008383795010969027970881837062100195535278406475082925320902134013246322536420970476662219347254308058506180114309060065832410680977002681981401242538555681131194130327526286829630948372162202271154793743040661267060971972293726599546017277250352560376566991277844269509431365111189224665505876837447521992910607233578647265314297790104203711087874501706770956006065468203231120824272379523004236624128647376556987360165384054492175257179756946599467153731672025943556588173469561897194004469219873157536514031598886581413872984134821707962843242084505967120967760306732301953263990006261396550180364308358395460057379299518250664151965059630664059839098724716341519137492657509692463924932022313863781128950440721990053105466577802788055948413892657054871480331113049043992359986510987442361173491783927145839363299698333721330626112733856898183701229631234621771601247725997138563170801703301223974368823976450743363550913832809214530379513504784208417966068854422140082387970217575692844402391964303824738498188043070549788364051760176533947250922007264175291174225438462812301283567960134020725536605951187832439087172011006332969480668811329701005621504357713393410022228904643285668720221486875593186335715090394374863021574906418990577691402374416437013733508705396820715586524135048322685385838442301664813530417185483186055755919952297119817319819780836567282595290477472527397724544450914914460724919881594560831353480713326903974574797339675693323353350112084766298568215335195245008523724574133123573289175823264792388572710617689766752844994591678491271110994818808016912864103467630473450255149586252398963259683366180130743858096733078755971225808376166202454667091983047942202274372408324538912958599531379670343848011701921964942554152117917092276068415951213394377746470628892689290547958975743409865354039422627024832639515739437508567972561924272455948851384100184799440471812110679517315744254972439462134845725360900285095759479707249886057561202062539712516007125803579387431595113358532863087536007457952470586710094816090701612015629144961035942310526312532370519745924586578091737383113732278036320877400558043056504474169361347493142805380275024338314085359885732022520693584802432347373768310508961975290068516646669518610397706542561976220981253218898114513991174348724351787637263650565830317848160112610174241120102357953964548968379842806221953696801785887816083954160184773874904224939696483696987628730115067563399634761873490096673243214664204893226115510142250353439892295383631139369835956930485945578551235257981516010614746962827428125737487147234063580733786807209886591148863748405773797124608742777633825546766071430563702291747006454025445155213120220522969726869957253607435925299331323890587372037463529523874224428118540229479379363838728343104954351834733817190494591724443171061272799671452874667831196593521255845310019645223832916023313811520017215490344426368715382883904850643168387179694445306413937184542551475416634360419725043016621860128814283476025556577337805444299588158382525610500236025265980559006426201928564259740458630644019694848986009889598175236435870992799028414706067003940427772934846510570280589392536527569199457872202295754471333752159563074023779436752408641412102586285110879390568133567982814601698670677411699851961128843066734932413993826161586310173359097028579147691503925709313229488937672099421032103744300819006159057996929530291707184863718161929234649615866270300577608842162522695938401093720303730139836412993053521484239001565905577813241667560170570126875868943633911824278526704808317429007760091586375621952716812818442512633706607051678205527172052542654719730883863230598137853062124381848256332022544368288648695990666093227180087380455025062404703283161672650478770502956113133384439402537778541809571752342805970370182401278112589451989909363594622942751709119614724812075507637972002108719450263395662781798884512592155272034069600731721286403196920608412659481043179691091826151581448686698768066327776523866525758473922416845082489064047272234880892683553680230805997787936308231458666316372412685310770502453336137668671864047698088196417609372459527268963805191830493313567445258333342920222729098373800875442873577779703032318958461274521664712848119782748720335457359190677956481506288351102607946684919810607665938968568543853792154805650808181561794336014192838292488680885013843074621649080242381460115319131844143187077633055812952343107870602002203574336788311316096637983082414153343741791304008942092914188544741657344625299670396490505086219775801771324382459416704743686654007192557666878896646608411378198605706681611888506226840814032608845453703045865437700080976707480493202261559975292346232513933730686988258156460260041263621898340192226466171337419169397739320619701722797977830741994441702576181461215771926995450139618517978401968436943376678374793472637747669511028572019915246321005509005181191574150703390883609362772237454949198655642536715969235438942561050257354383629636017683404637083906706261903649110208059520624934841844497598265995488125622512177938949778287092359657001978763881039617146694454922791078643109236179164841324957194807822411340030452535842022951527720417001117967768972967473459602631235812950739516450645853513381729788990659373731109961590156665455352644808858659680240940217017642496679593346838574098129002177239988350050560887790153992828190279907602346136298543971419590289707884113295823415375288550276282569613306606789202557959882508534414701377998734047538051122123861847778851421899824571655901465121168199302978452772125234192208156327266994969391610710137549116662593349271018345360668579204788105933409662336102970228030698320221017080788008162235879055415358505725089803604201128199221184031760557466075757809805432256062101980630110325655127997954571456460870838730930512805398546849977913199005871320838705023055404585659163305892534871097535715873248554660583646257433930195934834527465316497379077234874882944280422426964259576394519906047590468578875987844863901352019634270205422099956814934557326548497870767810850209673141562616669750613570669586255250059192200005480856792037910233937605504927093049200964032683376202258659343250618645191271349797937738751042142980576322808118545455357605864074638539808313892144983345525279059258634427286698984956004919562569268688897919299461912982068310914891787009240263775085740317009352987582553120299712999670640049554551569049628556926639550979764797924601767876807796429197216814553167307648926432389533428321473654584174060767289028561421931554558477460017007838959352498131133507482296682705327458815853408815114283156008769312264299048515837415357043547979745691334062022652682492143454831163130446721414766724018349433658737199948187359976430144194711296325631315564157896670453540407486102095918955551025324976666557388631658657935173302413977372888240885018437080126873835707144114984047819744937746299112799851151349569156476055271431042088177516959855062414088193677533047932966721172947467740565803422705972737852120618319949095708589426324885637947672380676076742916706641522591538846378308353055184608423857720297060916103079320081889043122425830579382115452220222200543031418887008241503849044331687715555210838582361477708745583812566568225570313322239856358596640799797978918957839153409306685114956465760491882265321108227334501988234900378637731119940466833969681270479051738879516830066833458684227343901678601871685161277328923647444492142312623455021296780463229379323356881260395034270418888107044757010450102298262377570307053403537222234573838399957955177181801819791791107630037532519901765023460357412587086597098211826061674455808874224785617016202269257309249997310939567792758891791123600220834106074214295355347212286050527695175400294296366242874073947367165454438838444535584099829549337788299709528511611854659931893171330978338109585036629667514096449190635816202935670953873425416181420816985041408330423734799489454614672581049654234102714374131972412215386468692966166017276362479225433919506130300290652329385711402509312965683398039184238609194570357856309053821397821142286860580397592188148736218435072626102956379522584400933439932022681547550895448284402770270439242901772891169190268226395248205533764246447960449113310233887326112473429490064585443297689985391875963181475973904535140149629737526404095463877185875607880209203172438523569133430842666978297059499807758588392662299704962310718795696152070584605045671248328533501295737138684716165775117371655567181166704275512566710579232544050154497598132345653224110409648501817399071197793363448078204383008669074579545324158651735679384065801397294740744915297604385278090620225355132085102222850625825404569724731979630086007301990079711610061357706022811448307615121023029056663406983404094357857465120554997994261160266115709868660570864035975171053780700026593448091424720375807780053065811571530036277412630269162264227780993843033353241397851414889690746743794393459937497296906212616868941105959732838293281323698938098374221827920119705626115160568338396847876009034502888502449685731959885756692696733183931396417042435421778483377932916344952302124869498871480430202202660903011124109340971438898325858535745874543848099908138454157046628473365478512395339638645345198836069938501239974316045056913312702996887317682254167744200578073357618289369230457515447218828284251092023363538125828535418765730846876419935895509168022685329329489859327979792960929676279561840619303541546427338639976188075288662845436569006533590481843708887201525532792129680909344771542060159017708147129390947404413993510493258524658991788923342270254427654952792992000202893089216616192022200878003471353682941260285502067840669580499219164043081964905159840407790821637314215910515891982043864829343903618307763931933057498371756390967382949322288633042531448481118609612244956563713519525746795944814147390558049737819997306022906939888219916107537683097193169803225563842247849887350360759718688184435980101854386382825097543053292009526867175459962735982324443708239815690027446773708948638462692515481860761150067464402321510586500654221612115380195669229419367133512863506196168820222385645327411498205034960771928926974910125849225014334038914571530374929208341460697772505910854566926830517170709928452893958272183809019733657577833076889118587156327210010712062903500506077840480062076637541322890135733480227063370405073224819419971970359189423927117084634623952491227538527553979793505062951066961363741944316093783728772357002616667949639751674472424895148026631445557405731456693345849194113971114713385973795396455131508994270105357643722754127637057873043024310269390224202265023593797943725537244846704024255912121676190178092732908817925786569380223254024536353888186454629578511271168883450814399752671242252625495345259154603245835046627231563847574052725656381600737216559778123379815087103715838500687382919769158065423823064146298944153775263518722772459538190649694438135502276968396175686869949184193867588829707305964948246383796079628569756347025880561263263246194507525289883106351321656128596541845530416854315519655351232118502450390533212727695603443350302022394099667584056093766648911554286717750336287477813954784249431702653465529562812358991671940828512826165735424882233742634767386054444910218944701174435619498839959627832362642813846894469403950513712903829333507586737234648551707530856752167788085031949703827037313357185228664760669009296534251667929667884930740018012648870932904587537630009672260720805116565897508546258797727057552788374360176407080243495131382010114096807689231914281938070350477590727879655934533266964028559336092972836820226123841736840438031582439933188106604958738950100380800798914539898738953354315794600809585469139898038916854360346413413564275658916652039587460516866207775989546453268224192967541896740682993772059082319420057242990873858779921092144881513454206804797548535377260101289885485792963558754795447038305534084415222339620632605588519283602718305312882989750322896953006645815635454054001547654860703571490213145432822483269372681126649978510636898739103400882553699107363006138518966052659453621002202236427847868020701729162720333927674699663212038065870247816073782460876495526614246492210758220350658070686846948429864749500964473431232288482802538766059625974499986532699677582798052013722080523562315054239101365330002595556090881779782567482007590988852772861655859036592538442003234081487324177072875542817224169375969573904096826092077032118270906134538801151421328730071986350417412288411188613055181023320260733662109365101800866110535828930286114910873176100300355768115688951172014824262022654738469777926037021407782787319562739775828293681201171892406627941878040169845988774262673244375072229661931684209195389081784413981221978073599832695549965150270414916210721557706381621608572020489122854721588758840309009308886267526838281858010687187700731006876300238415068692201615343489802000397047911958275861898304614569299170755783161720067418947989527149566210683124024554972267506756531956923771084888512435148272435892778027200099722115650801065029898986434171762853586829140391365520220284012066502513600051247313513441393218313109831014914946943137136990129411264387892405559897071616753337132798989938319306792319143000434360463759046279499431994971212020307432476730752703311785365600651236786310929126656535831592961131184666431831132778780819093190637883901232174802493635744658107343355382719852224222249345546649462977566306385150577357027653571796461134419756242181712168033309293490344640498441335657114575845292180584696802515887674756497582454555258915251353286012515465202230940261517751219946186137432952484937706858228445060573030783914785732941985224206221944265352159609147075738570845815306407879442541386154659865881970592742723640722015380911620696303536209028932934442015861907419196198442495141610874219759992857406552160292218685795369237463592272689968982275775472279383464630577379447258449046000000587774119231768674173458826408282877597257527023794361855256822376536586690021103974792634173986975310593685394297279794405464515578763038643028798357547761152022368138361816742643918060893285324643486267024093385051145633014663136526379060688901017882701309040214943714549600663280729163192467694476833354224393536893163158511482270722473648145943813635420513034728244900277412695727800307422702214941028126237269244629830872992494401438329341910251559336438528790719822729694497068801241625643398329749660558022516030804376023003238497877017787404715386627804623868120165870058307025132605329945736599712245776904365491683139786292915619206663385655304910520226484858004598003368280088844639748398710771417515218659823777861500445500805795395627545535315352746724023765244168123418411161733586785377180068311951952006853172465531215320211540174650830983875169819375263177075490693871308459848777152748360850363763102786946980869584199693978426664894749849876826350458034088849788744072561523837070541063419145121541340937573865862069103843865304157277465491569074662484601861160263398016135285097637633980906804864356339567613934901454250996440598073715463202207727778134372591483727357174429383843189551266728003858848437368290337452278943526512828493515445981885418088496952373884574718726849103376386989012244259536580903419868063271546535498434131042237271188285901221290479933894343695133594550312981654138749022663521440530666255774619308110212582198943410202145938409411098307934330778507673122998618829606856547623847410754605595977773451309303218395872807943414374580611053666208160817247430541626193026892707949973101908527675736287626764059849392022373601490328446749735931653607827135577151637120415904346066979345784563894571668409620802664123812735040129453001050525232349249542660748745436781691877659840102471495244730462381727901647064343975608775953301300158452672110967091466340539805253338635828054189393392227100660394146235215571423216449001842111891387459532077694134610936787241459705127010642923211317490819712106440181453141809562279564424243318245207327885395219819389835280772470973562885139246480374276201136675797505810309104220222734697306136504946970314377116959514749849825491787269119187043036895011971496702755887316397856732663343442346238588043173980127402327152894232240445196408090492479689743726525389256894341044147878578458305262389916897261957196856337827492136307730235561018339415172260320173830721917881145200565967664219342552809267173622192840140087589565451063820533213330517298251864014010215210809364452384078663990370347360429611639714416715789066388309594680561470944218317136802764514295122003439953368202214206267871249701239872020871497913589357190629814699053637938059981840924407258989708825197550088788872964096765851934708221303262522801388271254334282535956632098193725065755375515879345096621059639973405068922454826762087586555691291608205680548302332209607741933449628817850079152538335208029992621443214718215196057222558191922926391711533641744546236185038856152908894279856103623390505792278400778273294642448463988815747223567547750934808737582021051769728117433237821975453174625704241392022839375550737972905836502454637608324691979988720493486682264741055662301223877677357818037784336025439729474337171374024213065219798641955226998582887384869404883675106530143509578341153928196950013865994923411825816746666779990046173929901254471342331419127881517623704357054190583494011453013530825398635111390777292377143208093149541180891334682060008724054464732350418998420044494063392345603887900618109330849892915238639807428545385209810421395980382054789673713439502283532657615697893198720222433595838337160391329249307447135655053737967876563318375240146805599964909473697308443714808296363085711747875151228164361707107491097271770926645301855630311829952740229684047267621114034569942562516555796696833939270106450622975431737860204644503235219887075474139351835924563704962898569967972889915233024439248965373017247280358523156922265166239016528960748451888483346197847208686040709876568089527443544040730414327850715544072446459264984352702677550548193224153957501619185943830288770202237387749137662490807145765340156031755190867732611075422795044809913635395329928318988670220677826525954532972307512147630621407134469381938613855912650039024563791910524430283330103478234333591587383844408712554715717769320164832218192362854328786489274555986556641392336048680449792134294904536581962695315513522506491185598287182967007932328170892736166770799052644066944240029102164897149051688512799830016815290491988953269656993548895345317439149637148338170459469872034230345413117041491282022899957802863204089421268401708644132092133709325460751853790043751213333053666503452016040266952331841072732563029503749325102562715654907999509272046893214863866654853790797544729087293553990159322136772778447034027222585375501683197328807297822494750830646148978694592461117402951826325544599619077826506170098229274545021399442117508335979887529779843770248902893218212788397056306621316325850418003671597672922758268429377088455442887971096578997413312039819140622817040165311622763692304918420223074175296672750147423191569900716804126638343896382972676229599265015969802951995499238951931059329553155839052880139297995525546204783194351196813859353946641183356425842829650377500239569831954492715131524684812904766356893298031013343366316620648545027220571907815141242677714663935437020523342930702460672179900524013921857571172836837707815388084142251839776879147149634865640414436439390801423971205373881471088097187061373306928192867266527876754675533507367435616543756063948885411559012202255953965112560833399969922325321949584911361731750907279627726173485013527167103608537372292315713682312579315446536920887798372034271344641327886761044040495061416836133482652363256662501871997398383927697543145078808386172625474466022985818183747784696516897079819751781699717035476160003959938094189084926550894079257387725996002816567745660701736944610204178782392880774649706846734671979811767499749049175238899025967968711578774474278455031390890580919699095117468655462511784018351353560792022459337951156483235670734186310867862319037776302069506815704039185571905668438564648189279609494639426190959864130232110340904856617250129439459469408808242367409428040114457104109576796743922170249656753960837514622455881798422834520888466711112667427435306368423597473603135514190205184546521432930600737770402661045682779063416322793294272569404483276105631220904833340565568299634144415726190460291159039870247220491373523848126188736977655626073778761287078622601151046365651664701567854638620221148974789830700534420452832941673264783707920331065362999448851504312609350851049287793972604548417861444743599558333236803992114567227104746302336573449028533175789069362869382985774035858270073605000341261523829963555576737674076375158763887458914118762628885773894396997716480393614571786455034684748442664541042875003655765912892936593960459546566931021488686664207291415230700901929635466103751527349652661126160508050957146283616023765545031684812053382143184259079442750861761592327188177202222498859321371723605577170964928175951248033000567070442686496733002881370172571160601519900239001546218806441981241614798747123405399479087245114926907813637547439445904752695250265751474855123126931144262563778221381558862917527399983143778748427609206038215411109329544292701084837025111227173883612303990224724289184659013951282151886134682909401946856955279525483741356652004549993045581955557352078438208710239425630893649290422228556034341480287273101188477647601897038256006128581538053052022007489398918417745457131580070701527824591203646524311774881441202051869901098456521726531835406443142457331580093453897451142800244130477517423891522923984728211257659207540698462535404790299845731312494875011006355854145148154896827623312872256197046420679541516798653581374728427230936990402653829066019101146668868077655064677218286294560476786774737794051399608333491845517817406521697608437811713957230912990776735331794062126904152149414965699936076710625603776393499515536648791422080850820226922877601988895966969451528831051276662472044840606018145444943563048000522063028653636798026306777329704771804913751607662809079976763944525185783813211620072157741745780139289747904077653769078864430244536680166045624934944879580305758162594427987551452741546415025257964611773437971608863214468246594336386630681462638914383740485762206639542060995198671656273301468370546016966752711553129803295773240951179667007816914264673557568302756331820531433716257311696350591393901396675741244162601202220033661141030178493984552556070681543778644544885524741744169637151378905587142862937886081567984128131752619067085078189115185860420454659248303779628975719762369289381816821119654094589235626806210767348469633146904012117920141523668197104807206951859813953532224767909210221231851885283792594922432905730907436071739026322913479265800408194168460772305261394224724386707934726941682974451510713617202216844421656504026132900343078483452819508406880768707048623872813959859389027310708553909852022945833708400939115035222573434636159158465484535317359327172658524784518147643279513621169258480766805639593592280492678893257966812374944977322889225403232122840036698139796872682207451387111458858186798680885213822133736195496913402828340645753837788985999912771829625993259570147492664207867943816117487722297980536492344976520876973119935696636453692844222866773490367087712321508401395129093378610663741769384171328359549512393919493425481974983564210192073138077519861131567957885094580414120226461046611786430477558587022018955017817510529450860918820860006197239942052525808174882853506148435324672877059221114267552534907544272835077156880535014140567239666833815766294305754438661458493605844214581262290919461175055483376487386951358283948488894303971943506546729293059180879057920939729430733063432178081928734112853884679393412909009164531483976769864738617737655019859202971290261446246622006677290150273153337790043717537252070993660083307337271792701265169802030560983838690068236202267884873379244980630956237530398079463292219136071567187526044215905037172442752826123782239591319617574606298556603354404655809792206147971807984414530417544600930496837147427151489057831863373126501735438256949967627422959576362880213800262673730195956789068817354199110850555156334477106649693109633113333545141316688321714048102602717294250929900520161984695149164306196418587296811050021290199950670143239132089966078497943512924714521366402375703449551450909670154086971803125218079777503872022833978662705440274525021458167001921208858804448139585236062696001283050358379105012929038316613784148183728916470052684964184702255722957223729062849443821620242444197677433215161669451198435693094001816363406876652950094657077928130670159675851235272659054548833529357464616141228186216631992666829914303653828325164040405668510285675092953495532851553401712398396378538752019692539018897866716079212452143635198163449034817057176741920655140234183891343614853940584834245520168009911710452044020228818134292799012837712587475164197330840625889251458765783154068352368829787524556851789451077733666300712895231585963255580176015339854885531001730966488614258567322298047039510464644849204705376835644550510487870527732703496340039641622073330871104994942861689690488041154564363475428439340021301476397839348834202901706220768654744432096333349429784300739933393867638182807045927105016208219311567321590513630316339886963935018335188458435169590540169916594137812461868396999550787126337778262202262070712636831309034168258671492833740022233504109094552118249318966058516577052039455576502828802588215101353541577539979669940929566853754253697967212342505651764579862293048461257102058589185486621471364879993484757003201987359195395783964884644088645158544633249358527007660714857687616179910689642089927779665115544148119682126123268625413405772873733005180265385319345305741345261197448616728073315555683499580234483869946235222845597096841313559686037763002315753233249026964971438268066442022045644747753275289396738331537521408283753047323011684772063169710751986710221670364476445578389491389727202386395800907831161287490477740691382758234782165187773781966118403508238109899269689211959510399519824007687112759688820214819015527285417783429517870396240073214307788154882603766285487663997588085853593363708884541523035178200735544484695951298913237063693679863909199074283770689133240626644505050230410689056486783707879013774543922999729488826615090233404204456693638784343604135093320225156971737513803303416815806195683827623015665451773898929031145682669238390273644458871679893110726417437822943601661827993073978267466875401199246885674463830244416980225111051162399822607853190334405954807101013793784133125881968053301719065321945785145505033610268427517822400309363972324316839352832192146131907149060612323558803531097051064760642656171298980167339592107098665693382062568855942167484920396646882124433388875038916755084557072041960679149224320539606143491420443233934476011202266012619512211715142463438014645028756138938058556797859928840220099618888980312440086144041183612172879171455162027973283702578279533289821074197982341390280610357059023881770547362098630872809560108274679204669450484257858085341702205329724907837045860638573941013455310438417081813701420516508455732947967496837308581982855836416494399751213391023298323507898439611287438737475261145344117129679064646465648338406356111681885553090869724113156345494069762413666518828603433092528281467135021632022429086209211725619734967413341165783794866436928066876342446696415746450221858278797762974877025387165893265577172951207517782119080592147817315530994037329962977723352763193676773090406839815154596995943666594958968160532387078466771746247678626339430815621355270605431648062423418644553665141468223752358521666759341470017928097928781111199216752280162480668164954002059558140692604503930372529817562821540152507319662026516079195669311206459309188028782106234617583916724366775841909400641146420223147557027183136107428031906190998738459033172057825490184600989814143222047025057527133918828233730411309329731030737910811397782133452974458414453924728223357198732633752862366921903332436475096941902587769482343609569280451268912285936701518192021585588695443010726356277443920461701239708236480182338767327116041055250738759863285856726491438654279181169849569843420700321163093134796441458988307587013975090719061967431018775408778919116849083014210231417308728368505900390017867292343161401202282041715052481568094157253547776384036595021281132002137343260981090189345158036050119538521634687562806505672225495883292580150405537495960307259843364978404435831800029796930283726283807329693634545294468189488627004156830967333676281810619408000536340701401143170124434109292685416528750801334731210542031447276874518978878126135232464217118562692726000412850483569147318965800903396602011026792506647413574207661938939321491563665592755653788087702219801439878921462709862226012866431316279372022190877366687432919051568858286502093991853126378640311398696300237014765737837386019009181458308346771318268602149885433844692068601496612188842457298862423555265346945316104448000353637130700213584942567067266239051967147612970390890227858625170367598533288836398180469912759598871134501160681169654516368887339319481696920639365716725600406277373338580066125899627065777079806999699311985374800341168781425196538474279064689344885400563336188471636655736191329950898571468377029019496721364958020224316367478999128463251422506956118026278501667759082988245593704128479621480093571707800717879315959244151104862040819340630600469810548623257681721639923742843487547648893649309342101089976187128574669202694403751177737141011170665050067630039343571542210943342321025743784044899679341072646816394324648272867454431666493560094682692406986686201081715079461513758440121829136931811111630346907072096379518296457172919973563450449138145253441688103460318598545726553854640379466791979984589351255202291528266627132049810874322259588988000564228199117044873403795942796639366547385500257155268391338851380328911336811131263646136116719675151755622474700324772217347645861401771931362579220183456032941327975764437090459799999242153910584831711570562737170271428990800498147225707327338211491109545304754696716402315012914540143136598895068050592729719495731645112964841634141979073724795073175473302591237682864139569781581291335618095204267592469675678208146739858215983792003903431734955509924872022147652138637001595446019583553846574744361688702722906312153927771229387729963306705578633567969927145142250491201297493394156438128762498004495002877076447149924231841024391042444737897631024622125171655770025541140613429275146389741049513913217630842209681381007662481918705333016822477855599204854010837014623591845098881126796668019651615305387957698616788026476851183694970679601394648645411685495416327831416264019527949310928523536738442903713277115963199437399419655447003834889642243521720229542804380049925661901577430184365648901234657930794245153973800436305561661287616934151822367373904692953694799361172302512051637685805084891263596974241364021332911280004849495323446999624452891539627855047070847804805663621447881004048988378896730837765917423445686154176329846918773706775099436170075600020743934826718857103816596735640752856676575201574210941490239288051765958280714775786140322469767528077871671376359582644954505924566809041075327043920628480199304786634106860404924176252202242208803096655494603896033900587110370479932165362836112071308148735586797798183287564558263990571567729232301827400681151511503395272902922313235243832669773077352734935107640665359490198063816634880632771981584355399128505833029536585931289004727627851318403083807042385533942453837775459200439881992796085588150593200231764943498943417106550636804062519076334503157121210923403135538220519887526211263932253403057988347489009223536700225224779338852904529549990471359192076628884991189693271092022666756007854157721103024884438105159131293214013268374048211271690383945038633290737992517367373902474519065681529835830182281912088674902723847327936296135493336506715062244065070628013226903358575510175373408857271046092280966692772748518597333515581558483478442839053425099779055338503542741675062914082023226429167658077862115309524795983193365474761866390141986861663557895351758705677736704146768169642668827366691018557244213821451159293149580030616434757881268951336512850610219256021514620221302427652193068179107524312631650002014481346751467554920450747337713605874622890583583369036822125002327339792618031781629612732922771329242825402142199404875057640334001653462270054027003633602779884704031331316079310676778189865205481423030743540379572188155999657396732661301073589958353632456612719444885202161849461945194403751746873565437513889043589387986402706046046188065546888813772498692438639550020792235670092222746333293128479540765046784448461172122300510842348142790054302102978202205477979833405906487010935238379135984234922930618166140444251727004531141951068348440847896137464712112754013414996140678247487194625044209250504414423682155759878511958628240223301439625957230918941446533715065676551515400140163118527688994378689046235342450642974980885983341703300419334282983702337591753229917623708191957900741057121539666161919779281257277323352583116640733139218323722053277444612942962896149904909423723289283127813589742758777408314999790238351124541808210193885506793272022999294963081844218508121799773295979836971133796325590592210130330769597952171701158490769652412982462414407576202816564677441970474568597725354980816897820649845198403305344205769394393172127325117300623777842603037411904869647828058401808980307992798996934422901744005785625945441151420347120263088885365767286580209361304405409517092775330362242746289154831114775938722072170477931101195573914652247972010988068955134190774926882273088431327366238702352145926394578992269295118244228166104329120221757970633116966392803949795204510990587355616863540763163595437803359449698213822988340627641293975535605182419995137849313636691940505352679750808671708462593282685111821754278928715816910331762118659253254632454188086518923708930669034393332452093417297961456527117481752149731455539178096679342644288845700773048084915542870076109545851644648311221745460812113210039699975020046221657982319751210885719059371456368237586470375165595123700598319832620633910878202761078327032710419537606798189202222693156604642580292870296997073149882314441627196610594159403917613919232362063998643294659304002725709223633683411025386418645044151314765202412103549669539713767078039877097132610065193198444945663181486407255478970434025980217584441321450849846692475107463628232724653466300350514672126080267654098500677660023412764628696911291139488729663192176774054368435707654281749680084505506121348033891555487475740159410762959811232790091952949841311957245358111954195127690019062781561130495910835042022949896886576689606980317399130982129923597406781348249343027284413454642423604982733151935376081010361889460868828496155800753049499070162103084734925450927268546649085601869949533835859113160021687996574751584674156677097432145038697925947580120182626575926349138821066533906770347576902497910336652992177046630692912409933151299109212937027676278943697946127414755995907399074616476954524020274158018327860970093995082018937732723291074431761393798772711173210217782593230692263778577762935304120227065562835593899060871989491107218171129502622911012525926908956510008255530734419218063965413387849573673447041271541743414462247820230726963517764397909080351944948197802666925131687003326427017443563585122010690995073746004825816758505014069525985283276805168326390979984577219466422820990098462184761038718969185664298288688203822018657829915571257414128340504631447344478464647858566806922109225861502591248888055077156779159008612462351292248767140663327040288453948410753030975570751031439202287480097794925563333471069828645322010360304356676202385706176399847680192086665733334481904972493773960246261206014450385396401059314998124119909790905241909850891701841420617484923625990310667695220894099160581404177146654124595703867425920426475569701575006763419610190796065685314698039059423421993304698848070763999318215617576244313795143524524162873713735695789005680044232830199986093223103854935850716715047132444661509072972405994013291647978593837912652815372407314408073828965164063312022158589154223089517782782518805839611142765861125786784888186145320284839219536580759633649417711516042654261831025186790964222310404744831487379292506445126407378743972986608816838283117090645266480456969960740022909460963028395308693457596134064856444656541559165058135671017488065343088565809774375015549535434149531800670339806633158380719545779776439151091971948640101331186749083786410833035644783411755748524521005483154693944562001877678424950263572999191397646379680940247629646136134931920229582548117008186262338616950145942152098651145121412659950415673171658649864603496852699878424743990288035583469235819585151312120729274456964430631917047844666039395535549956720379415034832479215232366212371773706150858002234874110218493643542640139227117903125956705542952810201832715101604245907664396214603805928420937043439325336284345468776697365062903008120489220818792467348297927343574961618736840282146597819854687764419249688680890296885883032565421047716699171689170433252631241464509202226469654658002984524734855961020343769689526068724288755197104900409262786620886730314362813318733009666183017224999496346949018063133365008832097225040021567667436290014741372165521453125080516832831696390880224019194229045715138516674855030036950648827551372464368126177296636012332658574667397002199752482685278462732585960100577772081917331358849471025507844272475558588774832179262169543459133878463368059910510875199696798437525022589346065921805525445311447447908218822287403579128710672492022168192213543722863104630191376737039600733157395430545257133821756270812697213661785551915389360861268910387963451707770363144489725087005804109190222736882261863431350139164414553690250308731667633903629800514977205493176623334942682195290324716981536705852595267294515349064341570414206858441744605428990618219382147615802201587391965963673710694859021567281946796565161289987838143348751079022008940889010046757867834831927475336801453635124853149313023790884393311178027688260949062272072927520227984045602498964470325105255388182683227499793960896179438416337519827040864958285661482659127569525327102582460033303635580783877710530950419288390383557893529799139525350677540338285741153051425194193522111283319719281400911643251261971063242506108061463820297336609196161482190043265232729089351048866467152551455476745069134715552908293170714187443638993121345937854088816963064445659605062749060977815600482624123131451332264686318442229756464136574998105679568830019509657289932696635640473202295822460093314294472252579031980291593492532168018125924942753361154741764017849905804064343413958497947029409385849330408692737447385786864508041909538025978545988363432294652138905468269666017538574379518632270560553729425644792904446598420047610451022313614656684633828983940841294308877957434819639113754815752808032833611730999362858350093693886915607803827782889398291651832369991714775411497263353072665465225123735461102892104330011161184373693292987696630178923179463661241258388975584952022214432481588763523861223981290351818848618686957610358666542490232839564993572945499689874605100862195805043435556877691405115218206194532319402410367970026617571877922819581431967507882011406244281755160255567679390734056737657532226134391292559809668252099456801923155095687852200104824307981208376658589141783294754984081305367062777093514461545431198754783254561931159667685284582716946961165114110892681695640039953226143056142667556369131732945560777450184572323761130057187468454061812252420222578348739529373000844208253128297330153315515790816093556708635497942966514839135573895723937939934615464350800598642967691298613354112966585800616498577950361855306408953569805988721816921150265083660810274868705801691424606135783434238376203174924745533564012707280992506099974917034400251134010257857669942612772471308154549015290871104558413172234782051488550160832524886775694048204813358255089635635337554649796239599265271884127947509799248658632337971573326313360132944573392331821890253202226697773138883764017771580808837713881331720386487873388809896437526735540342544941067386993651055113801849243887423872923774227343494202782189399679321285793319299226267626364058346480827243588224792810717337685706262240811463679294866567705382586127806931796170855289147336738546769133991294730939957281379553358195479244047479444951100403535270138893159689634396792853038988142979871058753828178351668200670126902582451867750302158780215860489317114870871607410685929336176167658493152785402252022533606486529704998896885987925445582223409171754359243796543516486866732749014821698351916115289369153429964312787666647672115629752896749175133312188821415694136581997095360681921493451787646647282610934489068314024026245766077163646399571891044295730509966547342333601205344638175227456106687626055468502240775892132469582034210949717826199434118757284698525712328902584654175460022540877141067385148484820854390183743088524746325205875059957577199218098145497878174438537634225054827643450596020220433348142184424004622437537828576893872812744679686591864529378764261402678718353262129625783402122977621831854022678279168327796966841614173631548992235991978462172335252992520293090908010602464363290437605997584375538328819142081018527052441979623688990312198679217175319435699604861169484059158525220576813709866563058698245123817280129297348739246703988252557186532556052101543065786078952759283523395209056194498548423704935411075033322166991785134002259882225240457783073059521790983708476202276407055530314777824926323438002064606218094983054892261337814113097706126428295898848106867743120347636733165779490888915830691229528395072502950881130849959690985892889807992554291441286781557055830265613252939523715274390752404158279621743331868490754750568297317349112231066097997808469876738676872666753194242750931271164034863770295986899340747969858553466987292182715170574185253616113411386119203001653214285124464683724881513633970400034954430339439720617221204649472672275751056100699662022109525102153835134801836085535911745505632978128730983048208323132391299214801356982180985945258190001725526363458219861353760242862377812433675424698467221237309581474280317098112933360184619509530982368642217412527902748395672438744973753590752994140133685291123747711359760353279181831482295621948986961734183616335973891018030193303010912934781892334167340532181576749905609134572275814709221308951930958539753064472352691051425270614528687469552341965446540060687731348798760700317051180455120229688635824617095251728208546313076133972505012135501051678476739210734504679143194686040739959753351539155461911656510516427844271127640877771633183311069588949457660814644966648555736794646673617316846686449282060626593353710714356427913528860378087707713729310148746799835805084513030561837117998126518341321683103264401948745500184060936409866199505246895011749175234054113217441066079652787863849321473615693196177997082797626490364282075272493146645431063584626442957359881974311196642286677202298529208512568839578166544042132458480361676999598248609055671175914001869409914099457757617728314761835285794599454529550667133389420329141562720020324744738686367682459569832644641747151730439798003730420711662241402741657065669728519347412945528888796120846754763896435534088664750583175142555001750635174242415893379790182042860687097860316922505623574797163153163118610108575910251578796287476677264464126625208310721730678687849028501290384283567415145317331951001511540372645731904210475412022980907304197862366404624259295948122164020458658601980087473016638266261942447264308427868846858161792915627961778759223493436658686931483939412293940045163711396443756864845163371100562442679342256138277109039594515225586054250281683686453158987488336630883042657718615297742039457246112785975286384125420032770652817179206239744412933775030422658474007633279931534536327262696358113445413359193507158258618573841034724362698546880930573306785519675811158017040522080633081015758801865070703122420228553071702939112510047167172162830820002057044427058387406382286828405261716322907345019915419318525921778970970671731760526119717638982034575404627789335716788377345504538306747265364448819344932186565223346970631252354256227008986365279973922910147146611972243997709482996632157886666324556854051373385060419683754490236474214364487640248267396564573282947780951968527637094444785059511648022752175643405285518001808186545690120383573920628806276762158972830744955564212869505923160791100841701202221846831439732969521833853323920763305994853209927024792226335326257903746279622917539710997025164859334392974358598687569467296827933937762236838786074307447675185245720337837171988247213209337115353494097320504350681961981880670494483810214259765342436524327471170464873357057916529656824396694493010232056640902712313234227444502727611590031268883238825276870554418593744912814625445664447699104967153549634277598386189754339625107618442539192977246875727387016575692321749706614148396121063222022281394121221230456025494157028264574377479471234388423604547904324497931481780761702547281438542654315666521109713678956244878000418139974941855736909889560713987557999975798869684085330886467778301899132352030460754575140894739732945848257844414971845583496767267669171229799691304165459589578844753442538068703088763544177238669219913841031533518130189816804237113645184739562600128036356487991257382903345525654945294591892283189145959426891630605850282564696081533061095173752827444157699974620227497313110369314882757920721886061454860204230169906081429993905378075026504866190210521558535097285968875456370949434789181996583772370591848304341954644704626644593501447702260562644105978249828761742184285405855772243196739847107117866485661491828962226614480014812629767884827398866221267310443052173243493376343538505820658998488702962768021206961588412725910059829827621715341088459336874275933176717672518247668770986310907289922175746434192840803770164924160366897455624138039808580942135202255976309993384191798190348781924061759173669991693298937563222553779558395244712541147423114076463992654769141536443384552510909126249872933179523937352612098409000202835708935605065456159958617725837140180281622261328847684634092347303424628292659995776594043476887389971689045962625608892614910118155513587943933541103646991878733858039463458778266863423940443753365832985284439635512771957710543882187559263701252582491190597873082498891179412086833631727200810250924712483342261385786447181312022227754435784943213734192076182730054783655849496453532081836387855064991227589972478629859473346859852315369260587034613767140286744662663454817232530465950830553549985678040293826501776418402822312650208193015840575595586281558796728670476554611527955599622769610485861151172451190644386107444598865769042604129269066229325592292249748161930649798728547361504434011945379214049784188635849569932627844227323825874249160705914053948745000726829091575148146362002323995054680069076462440353067977120224244015913951061010750935727351129405659981133714361342358358813555468834351660176563461194555818674563670831984715578005366581843832966281909776422012125358899174348096189530792875030983735541138054073284253970858094894297575688938513479104716093309472443998712225073909167785404233848551505871761841990809776451199015274701829405378001057199166571472986802581615055131637050412667844691691656892974056537051960132144211855149472620483684491034823250328241586370380851964670504082889315577756828202261121240761731789498008446766935989644241476636471732211275958600212897396411562781498975889186127527766907866036247894504752476702871045899108238452056261955840686705607290383949416997807441925714447546811993204165895242265122041446415887651671153030776540724346744771746676681573283166108460253451726604431678936894681818559814556806758484064896746023887132811161297647417511302052919415883817167000890157977854905732435595834357934622573306229815513080696485877534235478506643022690349160940162022657956601924260950670770513661450528995546113469830976537021422464926212188772323253714333385929700228435740872792178528549711661026651016539189456033272151670870809250008159880913275213082048483230719655510923827205622328936787266612094644483765349683219438001481528941209916036895404536441505700679232130281390851670754237290075486546195399599459012038972572880833131519871611843642944184675450743594627092776515801838233547989863429994079969989597075788825738885341415793462596303800179623062920222503697211325124290311598883136199308622087163090444829481118394544042804451201938641902863284608278246658983992930328687014241319932797565538878808791972405388895485648541275437514671263905850645466582428329855966406039556067284760098397155267043747975278502142051428042181079728985791678351168652392492302874166404221655663303228151161352685359451101926996086645504370153136591248302524841671094387456698273165375756901094157486053247730694578489440613531368831827114430289827521200598046135884202285376292563955908884343517539825537508139139525579348806031641870189058124460217678400930676116396547031055853895107618460159371910482432887385942260021998299831100545460783967857316166824815059424026584055826691498029102653079593258931884325026061983481430660913249849021945930934208542676901501019443909429795913447163729493537774763564252996676359300282351604924600719267101973994364578023079530018863762103765735043145224135477632568349790946011786970564619424942259946565869806036913503410782022068649625426867940769965204410035165575668273582321460513383565388923302675617207026913158352804084604982353659707874494785500497202408045474748370870363803165737710448206669856583302035224395638088747267969169574404788217754765123273167126086078927076886760255646181293651100153218133277768954199589138999102588368365618299158666106710419860198400910965072848514439838759300703222319871041956563865163069497284005929678923021608360184702870683658150260075818726151981189453924590661300157323819820221204574258380688667417023337347605326439761207436442782406524560629478785701506337704835389458353924446897314489077651649516773469333684065668572994940438810451540632792118965964063519284349517624226101931725635910707461982418981532497270500726708989519381978462385486759886745331579863142569643189511365239762319664399682094630551381830273006869523194797618527921176504461673397425990111918279609353680731399783708619087118099944271434088803294438240576015298701756270677394611847678397900347226202280877882749321133291550018089721072185067704967315775981349987583986848390639997970478325915286203338420592338232155561893550817193858375681084018316907821434457120102574208898182250507410061525053929727674828718791825092767016967936326752625950660076500045643087438510983956455595607554906666938512133938222910842911583076324299571551097852936416329455756252223568280153730212639076640549705717137272427448335644598506107403166734347851451286580684075086375123790447519746432423606535271573354252022752078616544724132143107309086080636864029589985546567440469975727023055821096183168179357411052887526162733666357864490061341959732454196412407454045434215953397996000665630503401506436951058898404847492439639916874168288162239341798360995293292717253341111712684786523657959981491137649466618010456260526054057477823794005963490333135858497186253739333129099007791018908772253827982287281362363274939543490399997119819629413826448708413349112388537556398879272343331066922843673558505735966589820223258769077942830775433819724610224427121039751585552997105856299528747905930704237302242338818923594478755173817855656446492204576706684219790979068633403052572514046867077598123022544431549541936819361896951086133185883662505988329494979781972861155538538694105119932352163266940096917508427209315243502511117000771504531703998945036825498866432381743246503272707451739776842812239599952629023601875708262085470839218979969458929000357650238453771116204876660498800718733282134000635935294067299202285250901428669145941473978016057559970445620139232927486240461122598883336215564958222494736567475271140211563308183376720311759404399308510579587590757389185491897972109418252182961462209381681551787523774744702467077774167179953691621220143313079225732817242926219895492447250184061756565419638400799885991635043392099141235618531176121813312258682532863513651279552688514486947888796912846156572970926833573329685809653685919217597822892571185377434415895521995239503109157134040593275707116722022605407229298461584113109809420573610998939670591811753420149772592548991203312346331604088137047114455501648473019123850686971469000304183126950472403699326523107998060253830901232618657368696607774017987018213487801667709213159710572551150012826345409808529111280693717445000254491248925653100119178411235727587360134850141895059282904307655783684458130821941117522842014477666101693057257061462009597040964899187039957825160413453782949019478806699711186067495954799859702640785695585353036488820228218199714421558937376270563608215283465363753104471721290785946272624068887780587930391128501468156902131379335368636164764162540462421499961610015382597355909756062461548775454088361734031605700391317741730415524145250809627824460369347157646703209537774597691222677788002675801433679545193304315692750439644235129915966622852388702180030187865786733418629120868426451205328200438390548188195636646891141228190483717741152592622287437619968293861777694851808271590742293819936639775409786939825202293687315363177737717241401483348086203901672669853641752342585840260372108659962292995723786268777121221275318898233530402564984179942499932788903745572223607108865179835865817984349174431167021309099014854936261658820305946901157917295413716544161535806330590123045461511982627986792762373062311853441959862003423328148381343157936574262135755059491110215691453732257568604512661795842940112086616423235842037268221406345718166863398997523876604010025967890880151949715431693398178984970070247002022458285739999960604803056117985715423630602900679644048773795290086321909885643083456239906834393773446089649067568353050109495840907051205104512527596302517457581137181576988353661652229863637571095867064856478762142702732510815840857487700079608182199128033846537088662395060495023033537215081428826510667097775797550262015009851770141697519386350642017794501718920656050534466532809114189699580594795245197764946756489642442189225788564717322741363331505592882243436125928933200784692100717312220228729080549592886020597878842045917428481157459484529959607665742010839979651726561449136909776628865397854817298179806745816350450869442513504090242272166164625451796933221030690683323227421678334992631699288776444767825517175106245375931152094029037857779311208682085197092902588174004804808536287831889878932841235890025887682949214791641391302280408315530956123456132619323318656261143030534687182032632222473271258233439613807084273363580421593967999293407481489266445650214685556550974048152202206805814892180064100276868121175749017211542966794273219943993611892038757192388086101593014955541158461094164532166946959175680363823019277793305934875237302765813421605372968547383620448346643391136349296152282279549006923514421809559716580028751628308955775704587844463153140751701348107382044400855243188161455942198917048386969528044956603147576350612501307155685199571165117448964065831859361828461159282840618787640334595344559234397977137161124126672202600525013612025255420724627617872102022728098795611995694986419816425297104550746828879544844877815275349363621419540753515731384558148228804639312249728794234198135240272420472131423313800537998387179225685147191424744790336730063797761255181264995113614509502136030748231563050344330646873065964179071202925904516739984493715581751104602681259555739127539217449906465710839456773341963841374440702060209761570565545963241896821025346259100881485887472999167077255453583862328018800612689120136117529706172329974599972820082288307063020221089433325521129689221423101601760321895339520526823204049600713366633713289020696807993821404515913468134428898694129342552533621881696802290800681501584491742524795852699504746504609256560574051545744874810322295458322284456067680351169611917719209539408471989510102029890544549344351652199545546479766211291387439206075003449576277478071105588380863132306852786628411951070112714118984140848950336198771122341368188832988169893201782781112577063616556107675499946483960565996725898299217277668202295180684026951933737925362585097861418032401794959595330131699219945955499460225554845995830630038830466168634331118310453406646151199522171554392479123221927784723328871958335498348948610664750869845678016792434721662876040058157531221534431287414730939701529340009674109848506728209999925880479868527012890292170374345790091781156159281867878948524090143975064482163527580419888895923984819371144137536099499622032308294900628199173604273773858088239500693641013648246576760903825079581369008402022752977198327601407768375337544467145113320693022724821246104935814213591211675508803381197882953878058225801561626437480744423410162476653176287293061903050913254203684673102201092874897487846158761276870610100268269189405859095762072011931490469491047985102460070975872403864713104247276432852709416167999282298410273441643255801337725793190489282322684500058049009423434969837665419203266423650343834638490900639907826936504627593250083561623851387846439686898115745746857852988358937647913741420226397105086328182397073181965865737177557668163456649192703429922779116183608334056171822525937280351594971439511457061015960220693295806415098158372046830527648444653303107792386412126953632537959879525375188720859875736877280276138166090503409391202674824171756831565261780160569308906821604587038516921019506801785724996353690886166421920316204393390640075527770771371212194612939191390963707625592638080974045557598684554683892390671382531295117903979978269744230787403359787303472737070233871202287665997135977032554254824815190793083662630281821328669332350828618909610603573238006843009745809350377936211911800410316648061357438546792891090045297273496305895511842637947231382319744492902520680742927733022735931253941674626094829466298923142743813874665033059304172984951918501425262481923132685383271819773088339976158658217096606545004215721672162078907938452326136735090537603124458318434031215686868615701431819593228209366044365456358114643887639825270724676683968963100471267968133602022147835190101928143340948015807057995552528427760497615269135637664621497815360016800011384223683229004301031269232493254880848111983041404727801154642437611833817079935654184958882073158961320750913661066633467000871385206166745419804772778859149711720160749899373988596048641317920543630143333526394131189154787184635537250569824755783381942336506205666563380647339253619192469251016733585083219739349117769338135258708788856877892237678865243009960316581186986826901396862683799091529382676588120225636629371876584139954828761706155508019229833202053453977857428557008226573037565937867625726614220868723580504337838070649963838291006636409567317301933123557138687167838148225258649933211140586026425150254465513379686501050449292144576813965568972361036493885647707304490976086060518304656532900833595434916257211646763415212076037479133279888946637768422387426930693992737066561054931335444613732971291920102754207509225855983157698286794032730609305090784480057978343715328433904958176243011202239475753927776550280305249852955387722804876297649380932114959920289679600844752012133653866692940426006358080234305306362915729296896705848494722410195446750200136853018028136424483662247930498125563190275172674318554993565459604886984661179510933806772633065505183067727411723383806765945799341886471095919599643099517852578684339448923704856633276236431083428494506992279519418912217811698348657690400276422499484135761944693643173952385094521535393054688891514054716276502971177090845435471702022004995691237635963167211630583979720818377064241187486759612119100592955265797395712433241672505981092566766493734626516805529850633073207980671416763196812762154891971286715459299442842731689402240906842181354767186316629780118503829017816441415090046991224244590187124472069134155352606154201435145374611280757100765726148126637903821514775329479341825558579102647179531767421708997244188326641824092089044824491786061469486116296779728176400643682669216339098443551406611210446308543026132769220223323327786658039851288319562160252369408833960914981387243895376087725126877514692183871127590598966274053122794182689898861391689774671269184219875207400243985140247583253734148906145266367603893077170476338304479084244078066671319531069129670732094877272112175851681479747275397210505487714266852066923788686767683633722209939739471975591456532091256785586471405176626010643518997881897341149207313313216526284121496942571384362317861792765069451435607993999597943114301907553972393915630955750202292957976059713418270772534990435684957501550895490849963821694161304948957351310776146854019517499453369293871828204777575404303672244901871725489574456794234958399998801097506200861113292727957826325994563639479451174763081894032797873803120141883466312868843479504987514939030900879312342326440233963159251172358576085266275747207011883662012195021632527320616122930880290248632439602600283988160237648051725197438633158912155510092027457512618504599765362193176720349413101046398036081907096102022567246193445683373091715161678150292132913716690055635929051846361954610129543994506149196570506595802790348376130215231846182384936563739965996888522846720161989842959916412747668109231111195608982730251047370441502031050935300414872090574223625257229172489338995108456843575540045370456101732812477805966661295086346980374161221934667801734344560328676887409582497354764302133188145914923915006512366399010368128626127983400025141888538681443331106635406429291103985639220983756397833059728866720227378289926169997536441313114208971716655724660205384752667060992711724160324864436901024642491876917627839370047017331594349411986515088865149578051762437911522291840723875065519625601788404185689832561962469304289955122431114730176597148257117311875717061481113511947416245870740386821878168351927413018938403887101386636405767343258862980123467185369800000442086723243889798133818925977706910761035063298278477878974409443882225667656906224691734542273240975277800320832435607988260138529747198202236675656369798278365105601719535021421416682723461689071842466918553799906036049824947241427271387514130791247739390781381552518292786799746432475916782285826527955954247473994366392333966253517894116280291433836934225931728484037673667926406748243798565388172236516176611499123084154199335730940072497128248383218420966643076735117829306170683312645986269971400421182967847561339867267521890384406868314806524870859002090552064872269755216784325541256012787401734152757135577675442512941258856452022553637058463689603727239514148442666413021059659344659396190805801693761489391499844692717452292320577398074575682408285308132540735319326841080214882221314342685297297086999994521979512477197996723062274809793099069097902551629241233724868462867852828981307652764734688169979200937945289335218227460163390005514913055017199202282539188395744382537855899316294997431957356702059207764125060336462135145529269543143302540512872005229544402793960718399003839902672559160562391578153310938180512071720221344326145648981599502830488777710937706306347560959338599947307063355398504765548480375047404049094701695747260684056323435105884919211963296344056611623298360801655485352768387601456293896374761381196529626571390791916469672923497504328572815739461559336261241226803291045815204325789846194006402994678153199778002909132425207341096443893085174057208840195623110826202661767788481368782859276946816737015978719183188104215782748761051624646532807586383495743824152028844398233849925230514556527202289187223367526602968841357607089875383009356599907560043891346630232449240397398587626466514782556415567001835549424769451864973472176346502361696783623297757064662199266702427445843110647360291133593900305342042778215255094868268671153235616205148246161900732397790569865156873226288160167279346987494623606024236260038739311520678819969359895479114771655763769504190404117309490998032475106561317514413562637404279392847404803033402635327797480735504521124799262900348800335209587926380742591552022983029252794257924413013703207604291761888519544829873875183392536303886516055773131490008420357176644917881157857615042356434753699240453652535783080999071681498977724419094108935107191829871174223497142197985460545188144859173201974221597746384543953487327789840831654656702505725928420519059159947150305268033477026221921748233678147212991520324719911876693145883705737142981112381102967649624348533218619932915287897034675293768406191027788589578685171273912866449462288619513731881042472957420227771783883103488703317198956958790856447117976586379248845329359326586906376454052921953543151447168752311605645638672497498571416341174316745128027463625463364038560982496208859118975124365215348660847681455865934695791739691183738072066905442713550004050539476809263566899088843649240717173733536423129847879864810256215398966324202340125774905669436912654745855377978761705417543705445982394760360260592597343707946658001463775982848096814188600746630849557351868085514160410142982921577014999202241342261095434002506199200268748278869080845983470840757233739464488359508421514969838310002758081363987771454943387711101462090592904400865601931753777983703739968943488275594597790065428019585270035428796565983268293099426263358954566333321251340914900595052572191087068122952682338979251197873058633409670635727838354532661079843810480258155170976826255390284259144384109447601612911316207440873226516073485266073217498696952808518375056263660757771246676137986584165395505788151758847154564172022624324690184399926592094896559125164958315575307515791076520222098943067430922295430134672720181944844574199561978689850510749545595217267721469254334754440785665244725993486357076991236656562219456706163553609362963321948711718839012915611828180475789031891694771815120926632279838189017162581672976772765418614308854568255732343528035949623655194031305559720785965058277840372698703006807641381017430937162527612517704516666634453137150685956475939096059451377136604179531218888902254018368865220223005095105197614755752329884692021901732148997939267156712701135311607063384315521524109540327621197566982345416843367619044967110765457544513274285390279649986209065114615936716471716894756838174251617619430660722836298766268956204057166049080114477151703411879658977465119206786199660706074118412306605922903200217623070980172160505720399585952988825271744062747799417173039470427871850965882638158667868172167984780802333872583148063407758886252354868141272451034696174509395759008496413596093202243127946311134474204085986775257036722463722296719907778839010219054355166790117023713830621028191807313285082618815747258034612219711709643672924527407667726415606505406621491686503384752170096010697395918549042810478349997511605710749343083112151606007181057152862965443308507790049716721922597316629700815829202414636148102368412695772488515426363898065092410803228795139925926149728263565066659475911344029892720588769589095736176507876511203696391271773900960692388395005639121825847630110142022808662023200951447516412992017312068748005332384110956250538498173384355216481175528672377868166204345373307273391220556891332503919031750504235417105858943758072774057404381172595211881835898110607049062464539788442396824050346721269187190133748751490884919560260239940628542359808254244534874767693908987461113967388885331883953888027946956932733895813781223001664506395696462663199821311211179531633944525109286820456712684560263606345574736733813568165410807744366765987993691372989479650876320228927781021351131454400461715005306882792078054291810264364021762504316899501713187433855889244113650766768561903623262735027894266586822676011595521307409336163547817814087513801319408693019801296395468050235917415070892923398052403046956923003367006195377168389183621933415432070792396998443615305678202880494309390331174465562140253674538498448722441915038652315020154477583004226994016843791253035633395393754149960815993970442085423791353868139197950737877953940220412514971020804290763867642202220795822761591824619290001091515822364679783733686196068817125720854099323443368620473790883210278266728602111757405284172124654740648831775793001336527925816190928815684222183464581502688709650060376820148323503590798114367427143097723385425056049322624881216049443210042927134865299112604351873417546892005321198304870615730804383450720386448076983162710155573235250634217166761099329326901481658411756823038797308356031395589030170965864449199119396507942394217589790255782848936189224887443882022764266912285413692625202004518072938768442168418396740545734108306590722257813160413518095312354618022080186077276699118067929945017950988071206218068796246574531923079487059453944461105874783190942621455199475313979217479520463558280883200630267235338954632584136092098248562493723409929600347778836812474819711994352480623939252439615068771302817240209932444337339593355618766307034977182759340970600705482619913575477472610746597620497690470795631618238611169695139675232379943577085608019307320222451597940264431390839412808642514920053129629029986608041709761771333847650998605116234007320373669407552218462313763144775601892277883455724695547347460628399299862880212788985923076803068884063573667613482195729082171716441020112313634486391946352163311989093661218078532344484648363960798425307506767164200474240981563606105058927675172591320744382932950373184000276059471907422097292364724382034679299390832950120379063059157505097759567240349312323149293145841816044596039111413882700543795202294085903452889132241730511934429210857284726539185116939958622272634867339891576146350605915931691190816120302164154837887819506190058705134323271841044467587961066668212861044067517737060978269227739119991370165639094467123312355000205934948363748744645974706984657305036447706751825636338029714214626312229229859511097412945740845131703930380898086887844883918448708101138786122046467620129489367274156569368320134803689012518309495377168221763017501706135688652076553060468724316520395464245212022385293429292392243127969085654197912907992237838364718216581617085738976013107574893527027449512842889223182992297037946930362871335775247371281182624016641191322182812611492219458411737552683246980720028477814207090475484659433204051218397641359978262334178305063505999638053598064855720548623425256303508924865121301486443970471068763901457532307883455584279384327185968655898636183455069169086583618037057471611878178842741462689983612750653017351536966616550555206383084302084451549974709204720223454761460140722887942877115902685641484084779522428357484083534586038637988839146771032020719354672451224537630489272779082259099967714455683945189961312605050646715156852876802607241297552065447148467051161708572394702781567666231166173317571582733376769845876558438756912725464618624628685692507964440515550712342247571005648138632269523452322199715094913301160988937117688115948395510680091005118413711132578510885676542380078273787944268717780033506145411927477961159879038826298193337885102202271474115361685981234490180316148358393913671403922455812104266914531906457780264333230595387051179672848515140628651251399681276435314891431135210433385920536699237227860823998479008459197709458348315505528858401965197376512802393087341819209688072348419999503996758809692370921561333195813278118510846103740204787042477987277619496849465295098379849267986852612056369256796957630428353890887074969676321101137844202133728770964564338890127033821645489248470388284689564968961332230444471791552812022299674426641471759865010884291594435607790547033244254707691247339876397483408939688044297426759475946067557941041331124925231286445012964768929398608690220310965710362942135637985442864622741731674421658495718815623935883062145207415907312820986897493794856993733622103446408926303445263277587102633466039624954310940602448179495755596254992783880688931412028222615955384327680089949422105646360370846061030351642111181463343459463858610689009068528195771190072833478011488874088921598660438002920227513890466090995369862011885165168378531853423892821670893341930847830534969822125130012780632758344762717739084711632232289404650260036148574856806317963043352790139643574386979523956118661059439931731337954316294361749970013351711788185926969896685314645644564630938787250630664753671440037569015341912538245524616065294610077341901936313329153914576060070909849106470129301908355136428585425095355063666582669650684754894164902002238550040533418432726252300602356600244007423477963452246085699202232853945378170465941695414280721420238620653549581445958082685325835625525630122507324008030745859357956266176430361917175918099561990154478437649499128884945027886101634562297895138823125114191627566338527127557534973097616732010490603760357812181070937087048849611059085970792548714826518884651078833158099480562009978719637772332792247067826751888508018334741194773587991811358485591056285011626824960774181731558592402275217101896645516900982591633378794821758928738313789208720778771129941562022826292461104608565573185975946195178319132742295650050801792711574427600262058278996917302564783291688990591003003519737566176218652219165030107688583218048450901979212110229821657671378574319013786374106461896061848886974844912400986008257047765948866123111034073656140406525086873049268056806936361040043426985416720075876319518561200109161627617972067931177144217677472910108697644220093873544163755359769399312883664777160733363494853287480450610348622596078977753392672194530979334609462233520220528223439546890641875446315864129014626648747932345734063403973077007211356833572944510362041339954332437660331535128218779619195035213277602383529245764730722320630544078839121618364947777296458955648545604421120438731347510291980203000228781546585425279625138151931925198183479588907215617253170568460159299412888815497898481887051338570353288782753199800075798892673972081375485452409898003362119200096810026651527269574003372499895302771801118101822049861168534207996323539040272370459266111202286558341692455158596512917745131222623322550092722712294458857597723965329962118502047241736298822265789274698034748017704033585974527590705842429006796303091205743234885620057635661075390248523562955359663396106009818140652179598402279016201218332635247889224361621436838774693236429952012524148363672832636357295280397198003133035141645021556653093413429358103749467234004581123019306072088777096806797606928923040647245385519810736633422969728207668090264881621630461910090369308479718656624382022018251052289783319823563562722127238435371621478227091683656328560342800867966302067670372686616108304456233895417489816325644311328940274949914734004222386950382408384703856099207969959045140293857596877477337814426392122142212533657731156650931836193972609144407988227667694547471022003281119584626377557672116150095354947692736709606532298901128106339146870457205799061022570868302636507901182559155633196340241373603430144932869652356809495341868843493785477233560595101877192231768673363940020226053482190565406738594714903832804426874394911481443238338307871986804717872927490663458069241031407618847262437827236494583372231139395646567374208034309111164886338576866426438708692125455870395696407649783181428114011518418263625843272403232111325728580637930040519688285662299378793721993091112001769609822504555772428199975311351490728761790272230434952511692202291112479119500836753941387812748112351408625345441543900320393609135341998969446545559277323605102217438320732026120655021264878202223341460364452944254337175494556571393970444623680544019949278855096015717366644979025757515455991884536912154395753532959798841864133728323161424130971595992976057650816323486639823653993994942649644362877105083096820468228965209318359404859875322731221720056356796625723894856469714754401335245167037774634421872500136219916152386088361239956827162384108795955490403232242343948364249899210584401238866523451379960882735735479593166757753263273237980411366378061735471506949818578265070667228322022216709709382942094269349988159677324509459903516468953078985809131697910059865101724862295090037432910553625505327502381468439073947418002927892778068896526113568466787142364953486625790610857013773559400636555847540429200992644125474752141796398056884722264834466265208794571843386480600796101158928537396198558140398247675944654769782766479511950359756059460188634690760530613520085377195558574963373214989429373051301948421387687487459495740718360032529289884642250323216007617812875692265946320229250094560395709261742833168049676846807270389031708986753203174488675857064524932956825419176795963023285722125117011585289750278807448647796604115342565660488202000933790796789241432149580861356910398632794016001895898059417275109501783841733965804021183577172485416343823474534762327833517791014197028537724561776590883363195953597112596491049640525947304699103430348205273629667035878883648161761335346650409295938213602993440465018137642746546821794180246444013770309895030884636731992358974202298829238153086167281253697413629201554420396719648210372844061427451355601678483666388311584715540192094011805010496243703946237183819345568423756467342157747156911851529175600780202060327961293426355306532333127713973767699063556455774528465311871747602076544305061233067483148098200571193811202294262743393516910227266270513161195906162910591134907884490396382853420396427896974884035779229758566569173528872735803635291787233424189311998709612385449161558581868662320831259533870222502903525132022872915457858075484309015713150053437025267889464766241378278797214229319426407995148277951484964799535530156146890528798342723053910705262645896120155570168292103658836498825838743233815140047352586068868908381085775974179211416535041381959885591452558323659613978823855785534460273548678864744045184966374623114795354081682207873341646243416674605619798052804408496816072060141312300852927380871496633632990275291235311428352975082590477930695249823316119700234627973386511265878730116355493981220221144473040837141922074080339633853648467513153994919930176066642241363308425543775033674195849164922877028209207473657470156690172088565739819018201647500430810072668253738944714567862484256663604607175988329329286726184590638878370286182148150614768793356983449506232603768082007373381443948308395908863866877181796765783870397523772309242732616418509734292653012975623174884350199424185370406931481919504005776928717166160855153809682081947218107252500593802007763812929742246948132315014939101202249356290840754279812535205307513041933480310157084041748772086514484348765217343176313319099100314850735620509676749493834235133571483816105584957199654031943676175662098378227281976493966756086444663697758672519233892272527683489325154274591343715738715492995663082258887275280997919633049938976141897547417485297802833028043551638413435505584899269596724465408110764359339813180595781481838073177950253249433229641911919315463740357337614175564287295764212763103494947787694166729479744557517942022592803678017515508598698660105728043491979747149819857451065391032857212513766328447788278729826679450084522864245724639763229829175305864381928543204127488129544779366613380239148623238406170011244751420066365476678248129614100272831593336086938944213857576313382099199609488888084829517127478045155402031703196654921914112522262081616643067248292225781661845364801586773412858193144704655092560965264425675069874645864174696519882912981417264606823902277301225528140789349428840590995410867787920223883036837676065713665694092518012249760072857103548895327022931826199612521092967562163533514510351807898736242536837775201755252413415694206747509747006690892757633598696458022855026809491235581373227291202481535258992707257495479434765558012992472010768975650168701893250823851416395626443955030616543323485123518570715425646879292194419277752455957472100113473188970555056527925899291095380629065552688994545063990034877465633332710286489715533904971171715862831714773355992936304575798601307202255606630815600903389360952722353062749089707646809336958558022866961123939666127769094394194623416363523617622284752433811285102451850778551090332705808613678923845509776765231944167527809727842129881645102409200067492318074750679429076457762462374306889381136657817787395839203906002657686389712795141725622357890657479333439409485545860019217957306089684565482319157328145954118435229115481697079186077742646145338883556667616593573183048050505643433637393627248110978556773484592436723547723072022687282661504377382261027635487634423635398410810416031644671068229576610045362555706003035419921343127809438069705948297539491550218629030193466667275647434408424759847657435788165172913875258172629891675468213694037249380660083637426022235956249871941209109381202464568837826768696825348538178466370203105622557864953674891146639338567469764748703427564414804249326763802377044729330557930946438958541819229757948889783436246962995967749115357611793045928424241311212520525321211901198976214820320221091482268250012116644321608993479100173744057053645519407084192149451998339740245645993955239543986276718023260067285205364814845482710468045379965238560069796035893181482623437814403995725924032176738451549483226339075404028730014045605622276029420355410334882158114411203743943689248913442119106955621635097379547272673683932529644682832928871838080081768254037276646230222327398784132296128809220193458590780326830060331058786621577161550172403102088180467241889102854908965904430677143246605202281044192520115656286426039361808838501031517375428970425503873281374019377150221124330406213293440034565787235932578599227187149881865211461838663784604703236497924565119461448115010268356897365822681340188545928966331740154680173518922337161334706219041778678413848394298026044013651195498162649450993714738007693543495404588134550162803671873817795267916676479181765780595161619089086000959569039627215524158059181745453071257831145581138337440313654863042515500711813340333806257517808166697262022453108099934038377172335959079887160333219960240751241891135826995177141570770949784674611195310349939717880297981346305363136020461183570438183366802989129139002053126396198424514934178396474582542376733434318201417926908818908510831780499258928855397306291875142144386976200427022471295774591868155486552296001609747030775970828157534216549642612195410353720176979173432876408382932451020671182431766871397359694955573475610875779070630808229753392646566260196642473653017875941031990587824250820226219398273535537778754605372079723981414932086711538771753415548818932151391930430223049849669896289281789402853131590728060610176168974717700092385458246001280628988390889631161085696779291075012159488168487842794894145232432140496852969006569205359887937408672265410331074193695692137495522551134256080370985744004201422433774542424868830349827040207871667267388900807767080291975032129049480606387903535272812408187713290156209649577371777285773291357238423457764106949035582435394102715029102202236898674201663755279952267295476251151913332427373183411384876057813317391439121799563629555840820234096767654078480331542976665938209760094047084551218962266201843257807782834882963519204872085945269423629341610560361820462698840715857656747420774989511349227997208986586682066616507331398952586321749695539236483271028013427961522967881260470457165066727904452332349156025732525723992734387997096566634101557112092535719060539015153647940981592245150864596539075760959996284003931822155024336222022722129280164434534974781329238510233817532664832122258370239300161787120137719396793181282610273332024778742266717220100774510927393791202372606984940189120201949455028033889647104901238923024273892873573275699726104936910264013808031210179866372316903618881320704984378359148747656671435302231054127429364241394254070880909225776344259508021088101928658707720778817328316312136876357489352241949584489870048024758947982438390978861682730954509414226470235666970474446887099302303727892674322351120229070916255171252954549214441038212230032312310682103139958285090530055405068608685067037618122126153178242293449767517233110267554598182825985362798298365753171948389792638343283078997555662208444808072117379497705344050280537045543743057222451881513742984163015471360616025176348645348654790229213640042617683770395099601593668862217070342510267707856119865530911073013733443448835620574245311837551065672730854970756456156327864208520636873763851413456686627955563765989161985145830723666319439202205241154796106028776463953751141208947485820884298639851957862787033480039148522838100534906665687359922880878934363887069012819742348377562485150011531255997856116519125537258610705976105071384776065029211103081640778206092455040963055739208861089870216203153776009259156420920543172143670160874123408963433521927580705824606792084598203226143243054299211782481773045477668210457198283773136757936354231160666107406531461057783276782467590218878945560718113287335224854940996689620512544450642572022755354371892610364178019121885339438349862011673507015768629766782865247100309988084796454104722570619104805455330714529686171031781539534322197941566832071873773710328119862790678179588623252263882698181177572861586389909641307217259804495690194402672534806495326199328904417552671416509768773794085769054940391530269824860857818495175817931322562295104342549693480312339925479065450465345494972074312648976785322960426881461668550404839223740128493596144668104356496371371441222714486958877180920224922629637594948864304681015068382068298612298983924873341810955649484911794651731624260014615469004555734170024984956038065215107073751114718804894702756742504251838271444214128210364936057338813191418703326748295028510676966271609425452458564167295712827380107644404891405166254260944580051311359506664466983810086644866651354468919605677781013755239740310961977828691014459626162766008573115098527206510762747075354034405635512868415318228597252056034083890695645232210171532660910839055958322202262714290749144015418718826467975041754674618489965205476404918844605380631918995562542116250906058820796009407394285652417840919400779839862622007789442001192674318768716138744552224935394881271541601996328580234271658257896823342032845962342472922010699788994325303997184936137865806431501513053105892659108887161693838206965369925335322581705090025502301882796319495933723181724628960943022654661519482985307925391728187981908306983219636767263772292878930557567540728512127685300578256500263972022157834599606817688294960464182709407609450150130042794463555986484986521007563925015049001139937310899172486262629390791377698702369089504488565831883859957844498414664122907111551395758512557777339750282686538190817950782839682102859656431202390557589799990425299690151849018167763749549426493253734567475002849035030443932845681140659825341426287265324567424900054540813100003082133814212736539186033802019794991667194100754974456015592602429173202921102429656616091875496031687157167420937022420223640260671717574689311218681291809830670604568806983230985738533234126976358389673172172238181329174811456550887997067574869300074988181579809361837978763114561820917725831785367396659642131769349222521870810094196060821440571744139341670955195609840411652466399255417023112656138473304440668457750906401184081631680619294442292033318156760937836403318407737866328275335947246399339061798511025336288913179862072431465045756125670887438941246778511002090536631308290805381526822816024189896265000202270422840484785032621030773030457444517629021944600752698582709509184165153933687731459481445805981651349019203117925746626717444966642326087876233250251621705322432927727929786132537593409440720854073365793654313147040921532255066876634894226954088543956381091218542784109409941017308280766813522013169691541259854151381678590359555776149716151612106877975014345683759843656285562916422080365027141407188777605870071114849900931946298189090307517448295618110577337244632832298661771468694591357452022390864559268746011325448444260272462212523699980823477071179929306009456278123478555901545422659880728055303127437257241790344969655663220038671984154821144775864201972344053263928011333675404062971684783417577273517300599535711130006087361087069067122760321898675104410173078519702284894378771363719976071751786069598129117992999660615247515142561697892085936116850616565891147058312882091882552113783982444762220991258175091188335381743912653718426396784539961469065081779541125455953723214216220220704418766192972373185248389481977561391028854620936541572580326360942154438058814434310221058375666323673527177279783613176771137145948269061859442139512378250907302298549779653714560440889737841257679084915230050472410160989243284251540777667083718156517860426719160012134848249994763641914711135852704607274589006291609625838592528924902359181139103698798780192540667679010478539734994174525104995711549544568964736100970932320378277237366694489974256440145186066165327417043325949692915552131202296334984775678777825965625297893029887232285735478460562492170335534739106137094813379267844613488491979425832132073257925426260562205180742087978160555337726771413072210521488248470866068434791738939448239982706189217609913654345435651229241119971207309942072318309908902242865080087663235256426211374836820023358897186448919805980738324505481591676632798003129623869663508249720651435423244129856173903263650392576932371906385738586115452020520913268286838367513057263784543531940416946402884572022229623955789945169252742373956024152839201349934806042802543657147522105613391207863924091641196644086981067540327781804851732756502661456418900246582292037161774521478393474940585799130737188092945384395266748529861882313641195584425268638495730469448488536054903732431710207782167804290399384889627567081207826595393702302674587496268094397110178533429048841611096495952930177675184844421790699991285983586587230996481504375518967116051331527994794839395178245296778712303277720284762638652731620226638409459342518795514976743205349071836948836449046067291539184451866721744561738882559272733439290139139356530784106048056922843594337448208143542510920460101965107540684750979300094431521159475172038989290806259284909544214843813401118228831372948741284466609619297442900468263404377862650778584826189529902283255849356574398032628986150632292068580771848274224016285739795976255286434427822971878721928643933402838152379634250482054052907147222683493063834800957381600665217653435452528398738202281583263873332449373316220352988725076095760487558836968744106598824603219996637222810986319038463812170841094782609457103664273601367032051356672027294243245776083643504817557047414117436551943245379909283922055547940923158330977530481462291584350442114798452740418211903764789430900372905949667079501232016151896952181709941309558146794121906597939305981850055706862515745738662551216337130947852020225865619183206628301812888250419464504843767266737556378818325335018272818103859364127010922802022078131327827502924335187716734322605473987732607471690995248792094057745393171050665110114792313044819398711484935893262568671679683963182702553712928629231394337135962491107741076896981900626193093428279910013562459869695369373361093036609568275426380403736965099143598386800120034668294429019573110908814915371795111192296708536909412221436346015832285798491110178611661940720579100486400187971823332844983342358102461249904539589315823507279190867803395646464743563735612704639921986548665834720225697298886281678749280752198831784918036987653241492781167764219425154344340709803865954590500822185229886074532016643306832541412223314243523780589752567300751684619542429106174150245277022365813597681167437616840020703004643172699818524183155096198713917616563476962758244679258683997827304486713515873548408928175897900752786404667589227169576817217037440897412801699177851157947034801020035899262140540337308273205260997544728779321275771158954884319133957715636223812437643088277948426832741202236808073031462539006836718920939191146525300683986472522375601182957719362755316661042299307305600737924475173078683617766413397356505943753327140181629121359172532888366140931925809574906726509065313575388505620350260670593009826570713712292404267652360475064782501604862365108877195837200553548786192708599106335297580478232454611856038525575814551607112008869634736147150560270209084829745230183388770041282659726251924714868201465809131596847507003263202937068727190238748766713394767146944832022522005859213315302094377400708110154756589448834044178950798246013609927001086511903295619374525526045321850951096906718352430566007789872312672296369447211465248125743597441112616572751115896948173806975022567771501690865742187528191809048463151410468778426730664283639226426879385814225776773739127350146101040330982007949732666220625198620688587617329755057343540313607543816573738827729993308584363698687071328367715904095596703707491157820574262394350357253314481397068797286574014565353070720228178208989737529011975298666413814837963747035265971647487524411743038149431455543961466443615636857620068106298505160971567905470292259517336577657533557746884161031790928330151921546499355513667489676376522370025327280720073173065534395248531082226108798883903467437868780352217249544654347321380568701491312927665375208373697215582471414457783120619158244623954436731458536339344313010987321650721121052858936433780863743283177182918576946258856217740657955699170994568013076994930803472066830202280734535929221238433948845650326816029911324319351017856519705350871250291296372223642309196646713892490427327018973862616979578111761723478468841998600170139335615392561521150102536132186851112682118000720821795355867138658140744635836669091506965357394593347979345641370730867263850286767485265722274668690429343156633028956166197782673288492354546089955844874317842494554442843104069268171894770528002713096967760313819272446466859598101040857979155424619061826086027270775274443188088574914472022683053564667408888345275246987575977204789032321392623731898304305920688345024269964878596427260156967840801228848413551434863092243437745239496973936632009951736721872279831178261244010748432071617619331392543524089842514341358094873291391073965557027494055768145861937727430536079519636422061158111976353367275335707229563143108279465834109583121638459435804645057782443136010128988792530636846070192999185879660777870892295535538703425982114805470757177228615908772482408228340764650408890092320229570053433730094743981471619829771447006171879159839418024361046207121384908664097838517310232425297783704238286121469406934952222444645516942278948882947520246966475590790221201816008946572150660435592715629317565231133491778316788944831979347619041637514461882194138891960851460082131141601062119354614378164874459879101982356998038658967328479207218154663127943193316356073567324593239434936702920039885920324023271232250458956554264713558733454414635070334341111285677101575728379409619376913202221405831111620554510025822767784553592181040939967979313840863332260310156160075975640973128185172474645871025518804206557330537190023201902500520849008606314956850411720518307093144050005663967631887645637401619178337114789542787366802848793673204863168128464655078966167464085607212903488376426466777888595789365944579050662084067975668021275707036112622827657683922674760961950292413543153484381665893285888735636963795367300725414769571789819490101828716835050211525800710317883620404414087452022306343183620915554769614871078033166030122091888341652248642689257720143063039652728047289922448015143344535904676220752250914961097036893684089372605107728092691428960266452453132569780144180245978756766535046660105128086083448490455857503374860824217971777428170062690282930499596960821877385254580757067747793233821807868176484277624203464234683532560423603191356692414728210144140465132100760644087331342946007112371356923492621987594930805745440361595938368201414891791254446647982560302461420223427853497747057319609823734176197711138952337968412208913736872281252031566098817670346100952800561034912465494602884907756247906411073117815466500763693333107193548220330440365407213723004420313311600427190505738396051741405962381247170360611925166367850232410183201306335484397309709725474782418506779358025215055230322064434283699406485444964451319496415756402706074809502109639328837946071795556824619665505370429271749356250696399153858298110393192966021739824894551304910094045888751148100202245073481449270859202209937904542762547423093273997694322408893808137322711499564792956599760822091546983481858023298260295163003074220776184770879767195503364783538874806795114788755193693500234637084353197254678434139842450903006067974679656249099511670346760136334720940534603365799120163044033057414235459189973438580505628060308080921551121058979568038358084199117561852327753149684750943849645948977624081609144433281846613711949247804665670628192148412636471092552098541014913395828911277392022228696909307606712127999118135930196064378209686744726337451403500550470803642496905456327574120412936317406795785293470001534374092221143683913915497940014774403240548122580029894204361791721330289579916533259493483410168616345302871144268990939058946238298997640215176596141414821888168714775664072095695855619536889745366512694831595375906724238613573613303385753786021102399199308820905862204385997130347656141723664385536791854853606283820909071033664663510827297013508181918222101388354645720228217042821496673260565233815198177311760545974779175931479915709388242952830157955949067543352616955138718199918896148939753588480425958941432810009506484251756563664108580934167970065164723324218994852290911281233046280777413188537720038743192793850970454797228611959488698360257928081759290690493028982472600915556880952963957870189348184138727919742038936011734197108349595030813238445454289317702729782000075484291198589631322240517691891866340520174441916765564815652186030365174133063665794202218449260059805298846723176428065421542103876993929036961649448521639924286601441373228243631853050509246493186817848437477223258643940247649712961460063915143820215111551095103358911172244649014229282575814461762305201062879867049632432481995684065774700243015018969727051098712910553238413164993247530104352813721964796258777658082724124528467035938072006746294069652844153756378977227856317173931950198224459363977428721836039542987539064221424113720535972857693980951661071330115307599118220882022887758409165436654745868516654165886229741199331046530826842536984439652008705278753761887905510448405525213105274323849307310449968257636555842475756013224502683530352333116110568791808581608000204354187644147324658614788551976070168929201369248373410085753742931410043984099807154680585235663132981580280553110331286738504569523474708266140843887982520902977334668271798524155380866770251046336067786118463001813587133450492450876403795257175215857491790853576102649137582770942704031017530739720228194968364638659536622494738627189699434611051386602493879834476184133759588518448289103676406702077312447179250593207253334465252480154994516233496939561792557448434815686619336379473380758039028036882017937035055910435767184057425986836211331891696406041638488652369461337586376042788082771933271286334800247976242891409241294520397465561505933814376809299343686115731069974334340708632273794228988643174231999827601645183952139725368284669806212949548813550475281435154859727712653794148511025202230934014597876382483247783053008166102030311212165935680965038336742532638589206189728281593612768479722154120198076077826044121765649828149262346880468194579166485079789037606370561516755092593104612962194940870950354664274605478013959429603464053846597761011129953421008856839286454688289181694893917986312202364102043652520986554125225684619337114711076187447541728467360074614517876647518046065241027288451560871840405192118170779250073139954745806823527956814850948383767891548772134966350032022166547413463703625651598122149055486563956865146144005215908753450829680096048863293174177609618352220508338867621154766461756766491030516627018746303798843592524668954389644314169185259677249537707753231779763411089698066055404283261267667018229545355422032729371185642831955648583748910275625004916155168750809812019001767585332750401974588641094411229802727841710729307446835182305816921366140054566068789392764428643636238356074327899354000984953142468922710718767926442490627540877977413687320225002748878837779401746890502940383583436379160700978707486882224469083730522959327524974282459831747114079597890783635553581902222895062726562267712944001270121707408589526675014555331242662302806654521170711170802231541398016694132570856864129615712031812151257917404230947406560937842298684334845594511156595028235296446612968071014985243847984845273118262767524717348551607008778490233148148463412249297653271539784412748225720097796906022596194667022826882902337855255039539660466694641932613202297617988595062229780730007901948826993964387390103863912940297945648973867466937755655039317183954613490420410652628519110231754770965691068716749548582277862129960219431105347388859515378215291760870215760131857165882118010781803593747973036313535670055469071432045086600665639303698883938779835205252823168818688790484827554480043090212715678997109203581422598043452547866652526116525437456829957267575136469284538560124412112086113500186757608350312595973941602949311944557263037328278463501242022417603631076214826499271747398422101496129964055020205468867321879469881762220780280623552028177303491697566992783573898415379201970518806507716524638554506632475472216822592858109341753662967975362698704076969524745100571414692230066046672758095416672658603008143771235609743686024326636851661783437928847324634988766254282643302772010759296436165160719047057968646442903870447767168765508922520854677979664320158445927042291680714597992142015549644945432605321760745663071244520290697826980316520221948777543566154762097646459429451340560721319129555078883806656402519142465132079122921878718542305203697741939673209439264002024477478688336873037088912390688217681930088260496954629230088982815747734436855901364843436352487913519045428874183016122202822715696443814337456957989156215988617930803483572280778582984208122409811025014031796934434164551634858528170801868552831070879177949821034017187402855216006397819817713077710939002594627698693389395502411814507220019427556185590248540490510202287767313268576821631693519326148102357450323718740504709956430089145815891725604101963147585943812929721386121738541728935943114600104793618509453740791369883010417720915521813182221448838874184783739902176137076867425813302030815176253982089108805840177086165963288426708640764234949512146491369068951259941110299033531818071693326472221335835491562877165210268501837633868384211324996911467767532398766000326403231275328706249899700657691041772933688418205101471740876587895130177827246535498552022185111356979556633285573731390292481681925505310798961022527440291660001530370257716358279911916111952841908565949995431447769127892890499057120201764137466577180938671680639226139937204458390315926646733094957362354005484919576428351726024711198603577293554676176510946383399222670382743442837574509364615722008371499261377308233840795497956549472299201539808389391432368034009835970081469116708787636019277013759115760717589385226549404453554380663043703056942207686693763187515841976116878712520223043004462937513237268551459578730459749873549304883060540157848905501029146650482253120927310811079571631590584112427494223028065825596522885890394076739139575407908904600752852037432401112586900378008436186280530655744344305208775879931213636293581560451142505918300902894347567159965112447048059461286268660246980645274638792242264698914691057186390157216264901216178757589075418434559445155936780543845954495549294280335658064079473955655574077985882257565837162885850995516270293475318387505202265870989864854787713879707419093588648360707893823629589422682800360134764876603090780251889331750473501904877440645978860720064112665051303074152227464899731998064854243178447144336943516905421566241765669645893668974950621453596076635252414099327799503267869806457002191806517654760736972957548756177222425397992568824586197872882720611883967883411631536287204008251010575144353572299527045370941317096248561485072953031118326190076479249257194749772026700296107448650692919609997240572435756952022857804587936988804371693952924917345722943558078861152635525780115957266967780912297785337747722215592525989063867432929443717052193685759168771561252291402614351978973271545214314682173543528518393751675073171395157845624625243130277823789983917172726447220997970527201599273515646012778160233200054158803566614611417998732443980434815091220462009397870522150295673276626469131869801407509183994151473626825524085600773307309623102930546976056953691243979100839204208376725808453204087374550846220227973917163228341333066390412807434472811484532451236883643598388155230054304531564404266466092969933691746262190766450310111103754740548713927602569018328144285012613426061926664285956578873078025805999949363018240753350069097205394854405283150792654261687837824929151375927143358125182155063902279091382072152914714295418953043083422512559906004303114163564281995361151509998949123223658205250721140730618461725699779085003871964514587328168470966456311575999479264699577271672432561834229059282202256610853333400505571219059923975845196963490377405546498311973626960904954057265856955981690984417428035588752297862621829834675457309169780774447190805244025580910759130807706660083727827904970635775810955205874485186397845366507174701985749825033801612802977813155745834928321745746586780478597038391326577431652261925912219593652390490972816200360577090280056312916545622544301188759788813316711473003946111971931993832693415186604239382565643171127000119939929865457714891183141712442334851222022597270325111248718027128213741467455391375516868609446918407743143370339831778981509501368327783719138304917926952427063366050584961486386349731170046889182165505462214327949688581807361093095045526763467588577006813882804753668184688281040910667114801650749022149791248934040362160465005187274659564601725953495801155918868623333984943955694558135937490544216037559693215331274320773888333108705242087318518035479757727549358675763465916811265522987151638587730412738497617731644532548403085803920220161193339707119461926877433480916400846649019120798548545552378751345107205126761883812169539085818088411610404688185401081223575591939051870128106484917983216122695306031505296950511798280956731999930813198202106600415177523858722011547594730832659330599395672868501289275154514943963373524640541020471957545798209568429874827491212226552022693972708724498616851748342902582029321031461756809649349609652643004099791327873245650422976535014872371542268367500431078093203355855571549237269607722202293168753316037557874794700733088955493073105448777630523049945410535672386546105298093891026504704005163632702510674429144835271287839002756358365386486380817739866232651202111729139705886532194183487068848131152223787604377531275974392487812874364189479726638582283600561426973159449548450958346732942467313299125618918304240465754347195035715708416724102874492345637220196814425733898140663108198569763368625529846995318235138149238711606163990660093997227067715810229979527730328600120446494542022129313308079489686961722951267505873199529821406833602116342216028869081248872662368155511692021615842809986857834913699204287627953731595624850317768992211446994200231772941669638274207737838719052725117113927289569945238636874038853500684890773706187764291334990934504048537546563862887072213585054710063778027981070973088769371780978092048607834966838297050145923441846862758018944300434869202587508739850256195764365086909069620445998893171268411810307799107290260061902479606702071648065551220221307632059462756077445747280918970497879568074542820448698327880758820073979727963958790194184714404990067658297339567569664284855281753584958671941178176621137560444188282431376113608164130365300810445962887002425653279201351068163005283026677541988172831773909687178731392123362676528280581083910513282473501313829234790521907046823280818679859595469454477381459819333712455678400151851140548116486322918709672579804743412212297439114759787408029486699260857488029966114262673733209240040274221202271262794219722641315676271613351550446335150724327136384600355347507287786652628504130125844762038837085013466735255821226039835150655967208835042392635412516179827060026955734843261245763015674844348835652695244816057249516786798716903170448283584333269934260285072673689980463570936114469180243727101310543038545523786561331962231267386782194545466777718066423908427660593370188582677731364592306062883281000568001054855768090272033801022804758450578309857326343793958012877152996928525750741082022346028123173427805492445787583090358702577928963583408435669669998742307808217363794094616268753186369377219559231475840571382419000055713133014524890904381717637222986016684384436165890783134081706684908466973462619831595586871414000306965404342206499700374398610119340027830865074526544264868996667723870662921896236746961750767134409821570962169574655034945865990703076012392256103387918879151346318674209204544188064220152745841871909426690290726112228492570636557775947952577515205105378124020220775184600983326448809798226803177376204418609413381144285556388521235421100715846838323682245673990202719159842181255338303785368220855521722926885933509823758308233099370395586465524120022553184552789472545368448598754555294853411420274176920851182250106333880420523593575824885569891998411544782702682699813906505053861979591539852507267846160056842456790435629070480110777412268734391896514066064954196277908522746515466381282399366289885326978271194709594119244538078185797150719411297279445202265977069960847131251444677395816322963755983051155527516609913335338403313875245984255287904271350018472898560443184297364160361231645640910761460706960992787054896908186400334126460336945237865522328974866769330404184920567674841680423132317259169882014035936884045320686534708895080235421347494278872968385958726950382303256317214387160833580168875784697879287330494397302721031921081721314494904510249782631047638535523333428815465711997264148032162153613950273647746177903956018625477110187892022318820712240832814729596304491194136682428426828313093787182900760092485778419540124235476721628093520948236213745747035163117942394937986583314025895078180311299519065348152158853496420076802821765751650956369306227778462110844342302668249868348160953541962774533461759896326630122998412395179977643309187481655750248383104324648751899226215111811877825451144855446476347265524866713972071587323360997028898968645025500551934294240749883906141909732834653117579440106664845634172737505361850727520224545655009213104197169579586156693086257984400477848080285945518785064380244976652025391506608885715246706946318462996787129577098136734334963876812702569886745582709941692687631138758702472963491253851894129662083797926700726738436484938390528881582340369823251327513543826562759785996142929757773521713496949636759467610486194991538686787948532615344683999851808852084964113205422319414051517036763664073998256268330789056377478488767467828437169377155126469488150272156880390625885735022150177202272380179410254715773373646122608315454988958833755530676736064762273149232207311207012463406902370376543083700771013224271482802963567249294111475054244927540851431244035273513642603500569158838546508703850699642152035592813375858687957411070974202586197759519199886002528373547637546330574038332269556493350626894302734077048418640788751620608663497660562180049137424702501560896049607747118874546574404532466855317261113814934412368211068325646277405129845578004775245324165844642845591942187232022947079984601032101602411928865707968834772486101647509021847989636391425989600067116378618870350455816088574837687471598995698915277069180794594228334638256899872486359855597934993857309651697084678580852940515645258064673872887526643334368864204931721624297458295202801994202905101918315484315396219533702787448710529855762056048288005521283933214191608454382347895661985515712121579699307410266940319880807200885416901764179523419205084902008213846456595787910108772115977933885286851694096231620229941589201358049365278161255055205077606298744727631611522615217127255265518306284078606730306554185005652354744490200929452780529869606887691461822620261570733814845568042000383941141064291918946599357458320918793592636214024778734171957161619711749039027873090289719274327717908317536041849937702041389033083959383719762846042646696063164708973910421777187572790312399825896558046292769620346705917640675065322085472577429153262435399438069913139562467669405394862929800657222049154034032426657202283699872179566555569139142244807052444584558109257702307706744797765378789135852273942958020914242634307720198678819563498581995420019244926603999852575741306284426086844624026004309291905864512216571916813203397622849235597392254168606044734574943212393691251450040201259343984524267707720585153534985276814177966542314137331193047783054651272824632102446697745718549564683820442565330674298002995080594603080163267005085662281964433390584494740904224401735292035342163645790544110949825990936282022653602835552034916883837210027471008009890019468953272804848376935082568260484764017151183193916720750947931302510231049241767852875007212989696373835570389096286692750224159548398264774297542555914359356649348963350024397563767227485082302381091232912344056451492131070184768436148538236572581908170341832097901667846946239750749159576096145033658722539693163369707895164512344811138107150151345271824497936480914873437353370374423696880538552621404001708624848755689061048125981800910209930144220229512767396142865712889028353435792157716549206409128338945012881192225604782061477889216493418271347645923535722252008162452617010654272752825205410232592388603945736975621488824000784579359090922384575528873139590723226374161304890038005445602919038621725103728397873953137346873308174459729160307502455223228346011320913497150575033081391650215450926656767522349980006889705378734884322843990755022035492318963674277773730068696568937092337770131574076478526337186675923058074466396051603030483202250228476341806703271835366391540018405135547249581992684398080714352198205621751798797951239522626164839802494641100378202880281615550462886355150099166269492602360929588911686349620949972298428988163521984727008666661885168481470933135137562988899529426903645842052082420143513426865312859268917409806851475309077681305763862131667568962154426598076989191601712455272016609722058310666368727007347411430380635668755066314006512145391001626631890367059473598526572945976622479797475917780513748972022112125513972042832666676006272396834656755264161384760537899533324648134367257388414728869092772960471188609187871222309947562695875607188497319531265497256812657770994065732712218533182924650676837707787290137010911977489864427005644703597043928093934948999196716677080815719461938979108831436098399253521203950186143667553242653791493615658222465599129839581295431200374845975479900121071904440662107813140797419670211315439903810232922635328627604662615531123290415674762951415864178412106265820225931798395755457616113174566736075075549546678693039947354979439357326487487423485154973108567899098176695302765761621607647978292562957822464654937471925265812267118143833298390387664560640016573818791435402393642336229291064205753369732829937710141326844256712337249461070946693234834457730238317255731610093992006955560557177105829073649195051193575307662436757935532634834616022450701294165544008273538843231752001915112449661661939843245844021202594031595877560841826214919287530436550031508202235770054863418769682058617765459292139016218474322609545209931386609559024462288573184110160711144501813556644564690682040518943833230331819675015198402342238216876097815456227472396326841121767589647363354330438218220650093165970219180710899174395163710507841769378739799082080105970940990747533111649878769849792027948022612014465017871408394603856223650938481840309039815273199079571922019735097583743511136815420642414767450643485888639548761781870197320206708838200320044346852975498577078682022477070317521769501727248400304000666579368773762106330475072759234665872133675563362650108275403190027221493254446061342923878021460746447310433413515381516204556557087072825712166744182187006882064934027079155267369806001346845594822266431691084455592053029200254145898443035362763491631951118351873979886764029597982413193863237099041715814106518039457593336841380017755288374813897462089230674953570652464414545012610273808506224215919309410361536247989788903318438528153749430641668848729163120221188591672377486472488176132794441679327198791929839845800358422055473725425115967962842739577934813561305250152750231359029776662243377635318861844845096091168583729836944954005908564087083214185718895638522535920599090508312681629087824910671713343976687132889520732466782131032292538125019965260791901666898323109236470957907861181112419932982654943447999722302641143895408681522382148243970060560746629364202396208362646052446100877819613113398571998302731640260583677001459269606418558341962202256954322538345496588119305395121092419156523771868596398066486644713694018018691338530290592755671873749334856499993394791194317061079231062473846409081237577534087243671365286504358638129995252326363422626977780406892196634284049479099233629753684373880172606732009987624022180103259854450192370604461652892037556943020379305111304378469695871897855486339595019555429049315564063907932474566086764623901989348542073239712722881559993674523281827990301262605400262867859317827787371260979041812642022819551585433459513340478872840324323481258391541551994262489080291843875905620725169141682241555356572076922437725149366410551388236062956264515508586600345901649234579512442556106613376735458884020370606551274316837974474580776351309541071784206206872768708299896351019693499134848538435442782701479211103966196956606125294244862092040506733257268745860502079563710516840718396501489676931694839019981341953863817698958912251645412889529703622377469424580626701650547883061516526372605221183617320225698892484890002482263919866615036502300466670677569612162217979111150533049042267482462308519152827843534550168277283147020362288914038504704866777211239917934151104102867940437861806085667620727616597348929133817606515923200268471860262662547036954243742873285232659402307826274003455272845949037787384704543364144723016020725307556962614395071127419278208878308426559004441346757522729168342513008115529789471235957042014020728497821095513418320912361293976488661408672982061794424490718659110202267135086524884778370359196566422079227232169805340878052226634746131491618185633556654752650586987397397647367808233868212756506262476159048512448187935588710303894287564345758356671359599601118222767184331507696656519117114146927230794976591659790628984846056965908551100542119038276797426887779682284644553739616300437997724923449106844816958448832597677058728912222251424322280910420706387910829352582816481250147273530507024597124149159737735345434939639813169334451067063770301200498857093042022133634711974725505764076635776364730174999608890911091001873232118843817633219278468171996963151586562345153619002712742889638814533917727790696354006156164051506006194705347420629387576555569241836751942917773471441645303187949071698759099107524145961259465363642488480525671047215716447591952180927361270524851316344550064663186619421536651461399752554988121005747327121458670675991701537105500135879064482695482847618034718422148852230963261389385198031739954710456285198100051679339269656084320222851440557432142697189245979594754054834781769353130783973801224503423199269627282126336508025940704430172899883369770373344772744687477189090371038376850198624730762022878208220453474726550798320675258695454610870868909679316958242754200345842749294160129201351396466323676829474454574923931323934745979446744525701613875885825592067219053443566059494632057166539606556806114529612027754815693941827222367779748663518412675293332153005952967621733316400856031247286016222982049744512102018456437202261672388488787734210396758472577309015546802562091755866174872304968381089152820390374988209421761680061700640380847447427986704340663533782604800743444913996273270358994892581234266306298610662890996912829899024740437673008363812864992302969795198881084483989768399184227216098514221352118819569812756700978919159364110123981266318853694816883007941232901654189415976676744040647509508936162722712440018290344741031704000301871899200392933601163029301230998085515356886935016439476886684499660012022359748198730357764704560905396523078627381947185635279789538311540305213440098074093759937730951077581997462035374309296373937623267653151868476755483084045622121612167469691803283344582855976443283190265933426750618177733148627029716778175369848838310729037994535700609990097336290543073604645991758472211499847149402985372264293966190021796545506333200871106270781092845820017121611081980014074491724396858699316773239609279017690857238342021992354416541965253588114352402568584842457661480891120226569306524667918414917301598315409913215156901151984481504042580253701871427126405833329172237931773852726616018107619017734042402177753922390823909888511380987745651627891701429801156267735384649507981138557882956613617330357230941824358822869753303505893498650261122620880827129362357443428423347455641259953287683497668827496305664889706781451440258408418451739988296075749003258322193741809217161018950701409419087916925670905027548175961529411690906407660990611187034346612737179848491993466202250104088061562954507467024208927572181308124181093956273703190079424535330284407601593748326633026748533169422531162363260722611118885493181529384624979666024750560218348766588753884956211741671095753751086878037294195241348010034608064988139018425220800486108161274145632395340800409544844512127885520390937401460891086471973253697494381879016460783003828213061838778307235971811316431857507330443597698129468942396111092695823885601281840402594530811844387568024258189868092379308330690106893882022127222365125172482340607984839738300714485398597160047907218165702870758905635913628355755220420128655185973982785930714818076062771491355776351128192683912695236651296693174173152148417987334892455877000852067509984863766297969346315887843694858676694440821548777799923053581698245874354886370094677173101454497159491471166577935944762741162811204632078379638492776631672767111586182904654986674855489587772029218298104853546001557933740040399340793780825322255431815971236371510187919977657802420228189249845875649555826623187521468309812484868463103528485766553825189883369428646328821154295172694272453187702070681790232635923741274163159982592923701886305901959197426476887570635247720638721120456945874813213415771708225080373222802493812707488939618410485636665215158940567614360377178363546656016679054646694725274149757805115921332094635986695607581622804921357334401705810594891148496492993505415544596856537650043786313151835483481283631618624760529316213011452407730316050067919109874202214405176636483479363128763758940157173613051197311328364117963926237118702202428658996692310423406890217354432288741451431877742106581691951880001122505693023735350926242483390100036250004496157014159897126630316139841722423349538520695735955718647451863676282005994317408824738365575088629709319400432421917706892836079901248547009901961827026879277196836767779585700180975866853926004675758136497129594091439487444406636390542809153678070712979191762146345768061893032561256987628734148130516472022700206454797342753969786414145882859392036250769391356938171562630591341931420738667689161421522413244595494115660775788589477782146285879167571748769120757015347267295401099830611812957856202007013493421395818820936022900423795961957741508003683181977259712517985627233777812905384215739584715899523944304629864601558864664309577301800483562045434390427077007014534042736885286910159665352540608709047369636784373541699947224499009144086746729748690827728563662274808697699696483745700883789178320222966552079232585007551076664149103358602127722926940180365115516522339646768689200166831843179849051480999478661507587428771759494109916382829848647677866870418693685540465695764452675564297713924096406439344535230577871055632620733833966002541656385415052400582159141254830586209444968887859833282733300191312951561778025139892287861136273952323358086120688625051548911691540420065175054478555100556070575565669968400668709244860251255966312977020076715319230346797179084100637067828559376885091202215478841233269714544083347427294255604769108199460761304161185000854766600979303673736700628529475031208322615388920883440033208947875240986555752016982942031908257353947541974265407931969732621944598368179717423225499492508277984164780581211518533055701542768588988598755795308459426095443834300128516969625244252264670023054004215942693808829848330948859798327469169458656742823909045324748992272543416115722817944443200463021676002923954227218042159790848561680047123632335040111934855354486162022718096008031428190240771151875139325664709755530905978560729424595522333917343296046178711189637701659789892983012781057001825052634146339253322448694116890504953134214669049174483655373692093530277771189732526789305463635039911665435064940185384257950168251893563913681335231981047316599365943881780883351563892833076916898831451916433517167052154703519907190736480602820907598323736087533524929045205557096363870203126987416779255140857877056738067064939747430868797534044793593940700185658239120228465865072521828300375352399443432422335109487658853480594057746289247846445920843684873875852717599000741159559331422428166251810428952457823898531003801860144247341965126244674701480467589835585065290296096550907312417492171598585600850028296990286110842600362255379469694980358280021713637344639132292987506871408923189464228064557839796176642137762625871332116939996000051630416558295171459284845090133191900864549757171844328007179754345708525997997035944129441571259326729457983020027200999202292415646349603289926603103151180080063550228198857585626562145515805301763443291455796512067587301191492437897514290935142205757327024152952098103713711849771132725978386372421029225355888846027830847901379491916363182305633452360204068665048164232015376970481269351925009025764586642408540901328069385671149854141171827965718076135814808448220330454892003976647210915756256253718018868155580848709509858029541286911317355952729801211021601686789267678413809673522585585154845737055496313769193282022482143905627271775005372882007746177791576314569533208773093733219043148905110780007623143120311244339185216377266670640373143235497661284701031570876764239446512957121457429262274575241573320351043303860837343648048878313393776911112145933077562744332407987369144879984215866627858168080042789952940683812578949608876716342358187358315225904648345499723888097942134047676900643359131175593465148655094865182755570416098175241945694975833615309002123821641113633630404110881983032542995507216565120227311852171506013520443591671624397832242213482995832806716656152413845482564440355830137852832014105961150909583455554599546187158927974825304340762641462051405167291393695309769745705462315498726420130504953566045087509547887484736362110510879222422457898176131593709519958286675808717373634520481682326648214541892096580187495976052515358310822903505538172948674151521816015658948797025673239634996197582200800666746656617593910767177503686428254530131955399063306235806803025913977156646191931202236171416127816192681100158697363725322235187626163938742903856160982624118880175636034169623971157551861087033701822653568760850247751503113932469114599869101458055972888169343538934541082835198634402315218584360109727856691463423769908688408414960662006889034431407128660124919758759555630940432419898812829413191330963296343874959568037708045608990379523467973607865024375558131749986204478798924048838124731235660069999310196496124480990933263372316288050196533379654317484616989609939455299612022275596994955563996413478220064883976634480937550507872088157886534056123385780672743594470220053138769269625766070831613671253041431844532066247101148846855505670174707821914465051086250296872437051642356819075273684766006001417440636512938796008091924897785063702423558376265631916205083771283656069317213400684675840698714274839109112894071972711422279210069929588861655101060460243009973132023341142556355929149409763426185093795624228730324149572726076656350244367898462185479212947061600780420223986414171173335741156756736387250921817882770096889595788482530495653158395259253072504455320669731609854306815876818262370229895993733932389906308828992988392421673900275920265426745529783827130064964378835715900008605605302979328845839732287264079393994761995572554597878421363907742626866766208486774494692392429837419846369134207839725371925903766409905736766829042000477880308436451543257547983227495896664420500844128766670218319065947693326362741032905107977632439265339562620099425152866202271648172431782979125356029772314964011662654358887949831335443159328354834939635416356072198077638018685908234348222696327157071968722058999302880393617882270449344547823072305211086594307926504266573537605525015255681371973310288962588638039833442105000395524366042025654179507318818744912205360314865005130949213525850874022234177622708661121813614261790130491399784276050657522045071424776663885185484785121910772283613075401077228896324842524205282525018791757278402027162387471776866913158452022933160097218268691568403024947065340727431998427729402900306337813013390522463436669396910747173202127444398872946694747338278636014631003098657114067837693976710504310222757796091479306308121909122071494504846835095090524539123245339687857496918679427056449437155434384039577293069562278940435252408402737151989069244671075953640882681218143158077003338281273860552488986084907195741873967539121665904550163777678455991731686563631722373875745695725070499879797077638890913565652729055634136428720222455620614329782438872333697322568051968764046408314250304407949372275485576293700749652334567716992010566009961916218070349471148251059211304951527801052678718217822647889640413814056929133505853796479811557096488614962732074841204473371913238620014433812274068397306291992690428310639126420366185953917504842002075622770654781593668459615392006680756445997742740970409967028816232463596560617243044513516622779225111276912339025172527077041645750021805308950198288250539060693476268843287745822202230339285690934292535040955857136700792182603612668662207026529710414016337970224260642473769342267126375193655065686840806994873464582702156972719426602798491830496034884284961028897968010561591736468278609848971125410954399614624273582595501770465309916909012670408378018599618401505714025759907720584766860927399683710919950365604663420272161426533884511667146812398618394352943931822729250054349912977841540292814079163306685355394953344779479891382219688900552520502226461842125220231246714562022743693040597761187086647912715611082070302947739063428454263370153687715687811709346669552902554089813519008115182971900318385777828948777091626898785988997911355610897679511809243789757026092260100377798999311157948333773330583052901407135344864222109359455011270910867084976353181465231788188267633111527463684130129058345608856531957603206990268561538326510268888437606334037145265131059268320639918895122920863004580667622984921148163327226882040558313330619549908553636673237031509457742162220221800247096134546903967707947422502330733726818245825312410509898493765748395799889981834091414292612628967921399190254228452141759318996153641786303612788654333868025418841851029445152854370365200308460177586100723652497916239357693186306016104328139611378429944335184443485079412988762222628288718578415941629735811125955554697073983949262233105922609830169964313320062129567550233399373510870259723960710148908384612418979092880790006519860919947535946396558930505000263903466404457518449546622202203895787354209057500951110438913166218999168161807763796530344295723222578820640981845561388613144727801078677439805055617915234423141028741233044168389959249262358893334806469740174498765425008214936137242279027833582967965022715784097411312856757391209198042142305583188063605936309039744319498393881734733464989543311086910711363621015861500405228001466264082416013721161356522495826229050508750929846589459833215208502801243947141397854525295737978382749831690564088302282412951014552930173212022628727001418065601814500332897733109835645881738939778674553261477056977236094827485465806601920270620636073884407871704478763670725349569509619268532678503618318122119328528697064949810317266184628937900667485565233429441716246771319225728481905940515691238937807060559851511932779162959739755036156945422229386001605434197915007789928457726088592802459441374366405244475895605833669333897479651926560186066302161469540356830635361979196195613202831885737714372992406352646765216904043840171587220229955091517654706121408887856910992450895082199925580992113448092542504563098610969131385037513635823491107105847461470765892386980640680744201194415125343400483342433564718915709986451094204158666660892154663415271893640848988964841925203432692521106332639975889576381272428998568317263905653434399267754725897295987036350143642976307019179891515382837672496030643798688303904361028717733861801484932129422063869690914403744414972871785699573151632067937987271895957784796673293646624372103315628202283552684776124743571100801723826491584456401659683565517478730473347758284305818837818029584481820507871855540734721673078096930885815667100540663239145274694655817308835656020920700728744737412480835048162650275299056316593502512034640742695375927990367402676028029626930373478273237842900648362464516212947779108898186898365735711073291661309556423827649007912299926483449689998755325773147409508030396779049076037467092882009987177540553027674494983110190750220688250217542598707538269521341952022264206067131058665424925399373054722250362370452037361780409262549681284711942945826852811133871438004240036292339312734425807049732990900493012423217704802429999848144374264535940477598100552984098450191716579670025635451751616288748325331583575890844853024210710274488294895397115169676640924097876195890871268128337998840175363368552853240207378188562887789068875289604185885503180375620393352442042626083437816032281065506754475796206808579378855279880732753382498592713251347714294792076976020224952629798862244643970801804047014205791846860504053516087932069810493418359010292417800379941125401694270835496908550009054539937095950348693241667897110284897396971215344587527883747516868400659305009757131915263722333829422408382333009415531695184238369908242219955350717694545518365956064842520516102054436026904689041445576224557701805396407094592732102551507079031626151121823031279125761267212602162223689988226675149521766990909381068913057646278681257141737465954189876849267066754185997202277209148339191600367364301554389183600650033017966426026940568120673530726304001990283297792871347263551068245063772299864547103498664908738954020579523803390122988774678778713916853154575040307564281821771608424555252357036239482668273371751787692217315120256599560472028312370176133863115120974909170493313346334408756638220590062605473655483152903450199732851046015011058208427015388072132987562736059554358292673833103663507993469750277964518968917031418170019938499182754476918943635789049602022680225882904958561306018298944215846129484070647055347296034977290418124033925454833765114374308930589053577759955128291860699050486674312005400921532649148524169186287178932338351711714101601934569973285397876242841096692492864214496231210783038272034425142951861555585729969001967464610096421203007302299167241875503388681379475955198995791042130060969800347728184045455303612403901148894109379648471907799880314111728208007986583440171003170995569436875558675711131739456249690085353879099057220229644948528503747014586994341404662552956419453346040763004244523394187465373427391036768780828165366827131604816808088686891990525384123456502648177072008397170611382081508373194278798313931852941618160232437635359232642170624001247759999654343672947305130357578952374494315939825560704924271695590628951320811454991594811100519294024660981686564501742179063868403400267816242061710248402453442661737933538114041041633539322952884413380821993849130706416319250487066759910245402221793047296004191202258987903310067598430603790320727252125244885816093503167000282582376696485930362084969747759532835443379294451114905483815442489051820182254566874481355619058760067047527215585227117807641361875535815502761867837801587511989641054500686791666548916944891808932773217081152749244437443136653516995972885608767973783657139650843265860100334517238769329335849688668033073423767257662965100374630196749970696885569706079329400673860325142367506788831988074367757118973312538493348670570059220358191712022466877080750244579347817865536196691040299832190326393085463395200201091797673279192895686496400661798709426501144264516595680402077282693287210184682086516957527881894065343112519600791057250133359424259233490034319970309409319771431470070331015471343640334556503583589343971073124794543110010317138205278874745277246096459867713292047895046169214081677311816527581006687483517421350869381548211701657220406621098845437657266005290838350287831065018858563224623199381316086825737312355739082368420223058204682173013547565504120382447205053556188901295330622405148658832117194545780606951402971577664705048565848403867414364448325776359554122915133640993581169139211763588583376307708076280899379616918718594653486839390732556708492984892814773838730464442009776159184412195107963058691139961993070937466631003685113563730377409707683869197244998164601228243119650756789820723323964858181203101761483226089516719601396122971502986705182547460108273173130236768211096709269543951665892614671048067202276393446043519359338591942905311657183358397237365456187727590574141319161802453709319733126299465594840707686248503953083050007999743316637240343835907847346469137789642056538747374799030368382239315502762705214368007732979905928855176126950364381461800009138797716582713308380576723596404595601506362944201901660750631739185522466986151727218539518867972413089114259619223274736226269328090858300752694097757693656982464122489329366355256105768008782895859090707381768503733096834512143762125762022575577684250471362921803362542090663657862034429575380607520510624987997634814298976884559074788582474836350182882754124476358910260038928216705244763694912109107537411330206014248902641162799251153281120458190280126982668482517127218209157864923458262689593042088533669313416973269243651834249833889401564729431873077899715309044117073111586501453918445504748506231006657193515639858620659767330146184604815603804027789011404325136025711389942989785404061569904962452096450172116331636974022580320223501825863256091461802120584185829411272898268089329041336400463340366454718015015347762831765538180241477518769365612792773050130520123971407493771189967552169632139886120721173926992533831646398327686427655357472829129104027372206771796310681177973685950278404640692137872688145526734360939153486867046450009037195895605776421906402849208466391145266053266578364429006776451854012199540971132470743607413660405802327433443733988606723855566873832423111848337072356172151358011175592572363639129202297445968331660621814135261555403472185655537862675007201900952844101242106286848802443013255750129422824403318255267391548555280866448053270290339297513137441403681414230446672822749562976431675494003836315296067984043103257557489271658902230951790170913866693305140762663056831952576769073273442503375423225732612097874165683659291004565188703650820204025828751511230268147878344430096533796895825103570635173832056958310531134570671942676605794569704041433450908960358789507254576041441697863462022380239883554474449112204092412872879078362937645385067729505460132146860732052502424161662710023075371992150612703320098199074129654217790079060207648269609451486310889989998636324876661196814091116102997214849888824421272529082702580572876843408959921429716463342393907196874861213747407503589855411429766456683609839008882967025823526891954106859274115116992658609630889868014444668281266930916888286171331185718065478677578739409663522705568412781703591966311985018317005107941083700116125547020223439130809333354829383942660274811047579477281941309134028124784391222331989098616358788561822355169625624849320037891147328768212990608061563067995894101957806726118369405850237031585534139995323493333505526083828631136313100253095381372848414988719884662876366812886425326902338911869963575176599063173796558631440957351655018549747856603844275168013159774308299811679367989611413051147904201039404430499569643333654996123061577762127775192112337547982476770033172243219424908437043791661705290202245925180946224116091207323875356690354517911339255619624452975865996183679061670441125871631111672617821608650186336826125586562527407023169198183976831900887049072706052277616653181027997244392564768956934106298789936088743099258681136575609830462012293999972815703164908844940175255905493316477411379132675660441238826625153276696229830596730666754262054700424968106255202242064810261447065578611044162066709943040998377160778734028334589831552853828835609095170248878393653864055347847539192792022306426782292942937106248513449376459551860737977832374638220942263290957978888285238737303583487658526002100009559072844036975805940423565439141070987918003573089854669510761322177007161356154874732403922012088307508338002877868156904347463800363211720358516844685217281590007596958835303493078578263182350027773607605620187813547527276109273077433745523294274628897276001433885590180975185562443450721738057708607875622224158810876324495016057120123437834464457790015863446880444464633431294115220220963190984046343032559027215532748714520234482862504604979212485431055753984903058122069950229640910821156718314800542809689064641468782382213920011574615091488890529643487444731085322267495651194649987077129163633839441666521078290866642687536624249630276474877527018417612944321482623318670115656844061086686170948520343724658048256863032987876614221521634091140678677654070007505225816186990688595164975464775245330117727302152698712333246129482338690910884542210562554931236497989354079874692202266236124240213375965104357363507441480270657958806534354012452885253838926698133156979823784376891232637847570273807648808841812675975254994766523049153081912041594521202459691531845939975489143026484851625397734624001682741818125667108109631678824323258342951903289226046464060824896073342316354364832962806400084764262434259490666998964672707026687231490757161310651357043674258590273548800359187571619389009720567720079970237293917532765454455086647423693017732323734089350068914863674987095762022563272793875029951288063851616961106225423459076655367043497040220843176330109573572266287046932923314458779192540091183468895528879567007773117013874540007533503845742490271269280614718286816934365998650080353080673320201121953581361483041932769142340593491685236319013912766160444108989985772134159246003039935994674653329857240678176824253494209787631292897770964892101152567926041541300140603065660621440084680327398375056179239060360799350726886822598698964006086220401287429215886877352283120227616212420914669602644827295867929376007557427507757600643782710004778908999699913744771727329788977740742423077656964874087857589390761433691806399524397112671515716802171521344346892469271352745075420131138890200946565450131509159501515406618973833003969738881490076769599542930447436813149694042593273797838349939687235611947566694464662844455563971904651557529212233289251531892943867105303580294621948981257326416442344142133268590760888088851795416613878020239296698687520437904479091031180202207670247427708905454581615788500467805733556394893467910899084450519546385911851837533811749279828097401050166757674231977615805327412364994496506959709315280142490230954892037570616310465198481907618481239404224722367760232876463744966596129035800727033787436149172526888331280104982215605778474483123421184694943583377897533559834496932757352868358422763621841785929360199496485048156153195498054084142957938388569161742695439192897515556742927258020356502411815070679170784633458197829417316752022698804825838468773060224597887602444880743996125359802994459537273705516682842058149763053694611997198627508119836212937214040577716265991278399481546020970849624975289586919702402981298601174598701292709519601405089321614769407010463659933634779136997135629070750251380790035169544358617962117482324533847541205095548223474066478357130237787727041469358717867965634065419238296824124356499018051168390412374908364113039314000047387271178316042007423946336887917840931448249677129028937078792053420225360253531833045506966294321300646472273365946468742022878478036136458504155727817789492343762668485358318664577594256968173633299975376201628604218506167091515964640225282563754960878704934715619737797161973100231636226064859670575535547784101135692688139158593701334501023488355399201777935889466425766577556087169952508239992163636357301154425239771209984663441999316899554259229165843646267735904501051906612872813284515585240926773886798093097776067763180406915343580845544860810898112094259202232481695234319030127951984908211688488418576205807027579946004477238947878101624657473533925779651777256302080047796853785099678647762418569293407134163876970660263271742439478025967221656003130342711560527282403206546645561915544330858643536922043472083408980374670443302645115577876471480316555903661019158856387014981500555536941790943851925870981992489723612231693466939220218039341566320136518269243432315119333951783170902888988128155805872366578473163914043819165388858297473694753798856522022163024546936930662625568119804845192747575265966371456320841479326163432176920862232691709646433056697029712204133506345751077442282635889320752621378440331456491922925311430482865293828071327545014729160125299721046676894460760806984556514622720049306000241244085359520922476939562530263008037295363549102591969011595341349419357937176794995724024886704571524243273100811405521196363984508470891113127200177281346521370862284882229993504631514588799949846463902165990206577354872984614862131782120226810914840956337961070767323561071483811693292111736748643586997324910687082307338998530493619970648277712204544106238441161374522693516558336872615798381143092438638659783246137743747196876411615731670135347320533541949274421520358746680650565837144447111796753410077307337881822649563375646514038089033474614047584134709475148879636858404722483933247983194077751157131240161779952102388762419007373347437837532409358919092390256216114623491293268696618140915802852048872666455902206927723122067202218297424960092483437716901590583924572434083185234402821801824071985337658649867104428921974401672093339422076085278656639925355011674416063011102400504083969186731967725820655754898768403247380471729581490876788445167540172627171783831580307093907188294283034651627501591714274957984823082973632295388063209912058024612837907162224540121362357502484677157429581626094793845760360558524457566503638933334028099827114206054054764028966027158875454261944479353748701528000034923277307697798358447652022210374319032650257384098632228775283672521643433229003601057403144788238733829392228800721054541494656443463009387612711743484791545802375517348879323890167067317733241970248299241870077937362689130990833297835580906060099279987564205355258372946417546656914048643499159500566439990848478267154055346359555358786845166101233881865042050264977704129906586195745983032524048476574607281519615305200457736005525732204332685173514032971067627343088695461141917962795055684472105083376176886051942972820222010271769365941805858830802970144291281223019055225344305155442759450653346683510609225808635753652649397314952792040342441645085176014496033227325953437086684305336945130181783663463071734217202845218195837731059519174331255133269219716417257344857491993871006485842885884305116413601551034462015778988049811305781422806367838316571002731345804933122920807117423059437346747410340237131465462032346700333349595008607691161491222921971780029732527631309860991534545168051480036759253616473577765202203443447629406577428505423160161005563029336842501878146130374539668558983042372119184401854045621714589993679663040936548975122203683203975465861276085584477293700574170284911891630084831613544150855326442211311664706458675613916943667006403574435664335516003996781357047693660607866546739000855163479572417823392058065103136522861025749547185107407664549124196885392932244445568119655170884750927175743017122382225502573039114205366142907472093666389099913994222514355835428130022187887307809782022354961530688474633122121278050644027071077716786382980280423048137397475735067388701650127242004006353203106357347551783785625249716433936481099159385206330243398180416588004440393177319023431385647195735872411586665951650248534729436812744275598467551794333327582945834643309014652650248088342386698600015349667769995145466726547412426524141873581569036724108288972400869139427195419091464313484564160325784958407217459504763564771599843753848245930311145789260596607274598364685035779466283272220225281002817382956096171730000047334240748633794454836625343966840681580815895526906630509125489213177992927320983033149860399412109130611064329954284219292661233729793788901678123213192600005035535463869981468957298054214400537693570577986070841000522253851981025222357356275222106601349435628880979309842735821247173211161764267591340358408022133628867270382170073684272094751083894879824847898178455743050301644066104990754317581243467204964788140485574111158276791196946373645188607584008072917202249727282785770754264806366385712712118698374833108158101546545511995136230284337284042242130514984910988917719889304143214938347169478517017543166234062496789220339293579081157502915047720723182650103296173650135155567289020985461955127121723440971513545108610976505054466488788209343533598165592097169045143180148667884360692326673234886729625862714029754582066461334672307995449323533997068222425242234546732398364159291607024431729709691107289549580133804103940643602552402674379996004786162252022278875181591969487970525060021051784091513476886653243886328161177733412129383422051439267453346945045724348444257625755074552555563870042688120242753476291353218455702637039021165135487426976468422131060790134641046070300810157805416637146115932972070920909513930878679161731884702547323038637396002619775178641093987647670975546995306937494515682461858177266458293657033717212826850306607964107857250149004963753938772348521665349354018924684539245241801632200207308839243827741851059989891554920222250006959373486675972396459030475913135847664807058358215123703090265658499389461293520481124410821281242122362634008156573009329501266800270283147924838172386380715639246593187901719118924214534300230948465294277825716662258046630958185559658697899316978788509869668882015327346891217633617100361966829742670061477432445636531156247017744593453902962429001874628128823480584076792920695752999525340051992207570070615731914457175728714368766446784511286856551438516839665883931423342484901644520202282253177610619156956886111625616172902623031144604790798319340141607314984055936240197796655633289781983058120129545941224076635144972976731244443234984792660103573131272359396313418198176793492497140179204051863975522442225552401343509514915947746129193766992709816828468898053414482412399678843249986879607583994099918799200374016580266395874294663193227164747537223598842389401535224408886055231320561819762696256165494504385195484757066758016640898998154516210757664129198047828460541689630262022752996710768812654500060754873435062913408734145645002567479380560060596781212898996389372994377214513811350491674716791241236181225534923378298640816742608113153821342024543779712762735238430207777253641898854590179343176584518387048189590746349688383180551541338813647462292684786562958391200586741813146212942879887488243440191096524068085851298913581601491970858612047577709643861307453388192505694033180481128178424301464555982253931086526912320348028269874085594614671513258184898401180432020226351830428976512601588598929279608656691408835000968988076485036969950185444468801475542927949565758209601272109526816410826992591012643613156566251108247769377140385560227349333238451881721127509458916456959624036456910083645975221400156677839424756143659643243029402730072807503269800727598808235258305208486041258258264923281809032863779635171900106931171203666560690746727271598920802121572417770877272005604233929614001013700312380077683033599394213457964961007110508339201768229833933291231202233462924653368880578066792632932261473526811644364375061189416926005708725006128275362160385990142077993721745566769362072733153325348594215015726547321461609482423066948472678588390011915541760868791403383785600151632000166704201840317966807908410421723203232872529569250778347649042360237408813846963083429734126110883903575367457773747400260259383399921958119251466079795632956518177962917817057714979670754506408566019776986898081433325254615115640387167741229352795456141331623559970718339502022284311749160961109421983617951850465689665713409474210955392785258160683680483333771758677897943712242826496618313981403633824481722530988041954858053958854863921722176342703015542258392602052628089424397820658359645874506000088792917038213639302658787979052354255109432621220692399645812210549669102033985055556714096814177035709074960722210090509319792550519451025116361061623472600240651555410782145407957276021495817577916899733089942417327718988908267028473797027381882816117790042874167368720222040748859125180849842357389864918256348357104965681578051539802664305937591645210754781924576390576851586625325020732624284119507164855150734806790488838130240547949877824545964104819539243393482694049175520847320285292485998393632134330198263624328245273703312243787022817299203531065563470397981396569845654739732730208519874393421252891809676320071248081495643227761805231893812039103840178135361915061211624267706616127132748695478225417215235074151970968041415316294451404256607513216808897202299304298471930015269217011028163134536787833331681739840000072280714216244426624623962644200030646583612302713445638089963217399398951230373453420744373391433706037785227149899489429384501301021028479200492889059034902562754256392515855095601179131249398952147933701431960965316423958313900825958999971963133224359596210075402126177146657740685286454626020317139931726391176745499753466221713819348811251564235824900956423986366198395167698274980237983988568999366736439029037049521092470365936882022536260758651573107850390779923299678864525437941204151174900257534834644241105852725098925064542396770145394159800921178173100083126174085053044227714261768295720589805894406534743468092321911643800065870142328737098200836480729840338981460377776787918286150310916751743136461836071413925007968504743695108299837178485070108977832132581994608505807257318325072771802945532076371764010899229474656782898025635516405016311824598860761754429882487615385946698028863546849933602405946544278247408660220228595847190235259010044554345651338767094390137305571354933236960475568932492830614710834595126320904005163243663390989211466244637837616805435732908906969861142826419439762374200804104315834733078641951518938437562468393440414817762639095244768815765343250376209303031261599086363792113595475471639622795844275242933348563531024777622545364335386346055664872896545333104532244007795138342126250804388558506520541586364492084726263867463612143931002992778422178586281437390111777460733447465929439202260721124825830557144807086700387368185369629553285037392620045204854882485080478962107469175708360524107380983228615301733451577200137811423111688758507297431988174854934897852987047525817964802187283458566996673992704754678604934943219463961210194700023061279954996722258680709747705301015139670651119468688260869311076901199141606533215856633375658368855576184283013027057337234713595586461797545333904592505587215533504262230419468822140855880249243980923758668558920827008852894860074112883962022827224684491519973687819521179647534768207148267523966999563920070832553420912005544444459338299839347801223949715907444128708494694385932109413719191719846498684034357036105082415523837946642694582463091604683523250655872982818220874044231625822393527206550437410173479129661712305218239593990702425834751395728701733297980938156772268118550902428626592205357642918587604011942164148556394166349486411174857873556496388278223288372745162102150236459083607860103310554517770493603238465735294622220226311486220316467336147564952158230782676247280406204657601248418100767334297784145434783901972579638453873185640012725746061728832608013861888940967935976004574589378938019502623651088873915125909180406726098543059016824285678369282379370918533542960603019495465486406123763516027237693955747744864045913946831651804150012942607735020384551730387643889076974772648174320311291245778273607234188480453960184163193311701492674780996975063735623899545899793111559660994857292023390386013586027337593202273298181842138634356363245100541529737532992889823421879043159036904414447070691421394219789335083824110955819443723836532851129685621960805311923015641613959635496695791579331953024157139511269423260259074129051988494115059498623315306809844710648514883700502757436097785317865443722514515320277357386600926778031855517515717702148635977688162714331358282501456431975912778889954734214469182102251742715318803482269206422162000646370740866070243720499033533636731842127275998245706659135322530892022054453718975844832237718764414414210939605727054021411278792104997179093509340735040164228404286676840056945079058592231534504980946366444797588209468416585354442754487859180822651986352742858786228465577060933011243952256992957611781524162340408761329404287632016044128563785060637837809992697225431921381834215803752448337195903936462687154257747309568579478529206765927476112285189731907017684643400168327416396487352161886951086682799134124891458472884825698412733442000260760152824374296642920229017967309509978297884245001499338357799233192320203500514010588513125497008167807734352614389772415938355934380343833305510165669351765239201264646633117800633454283535880167841684103870543491845152978429238117249320736326291946308619361400031442138160811206523746108423864745778864539294917575503098627355777706637051280985145799589346701159704253689458271477489650121651617603461734397804007263350002896157061736152118440381302357181168465126062663790192870112052378396745747097127173611887796202230772859562523043287638267608981513381114796457661163388267679460750575550779665712763474814595851289729408164321029140583260723615139244795209173478331941990410172105689217827629471059151548372527097599158586709144186616467890346406183962600322804627455202545787797961830667200636816237649967613572863148811214048758004714412676670022552335259400608609559999340507024497146678995509892303483314108250892000735646409220222919434392585697606173902795036240827468901615895737865874104919440654665582022618768058172994435429084305727390463106490887944314172530362488924306099144150725874643705834819039098984237864674931332816883233481840658348951337705715346133849930799353132027209169757029320493818445349440087385169815237131269342488399946601345178136775529754693092340181838715582326397840931778072961953468526532374319920495254572327616450209709998171949354096301458128300166772190881530579151312794913577291811771755176638124787096825878361347760239430056484343877361363235843589190750572881420228158030786852583056199846343443962622839697838212729312300272800319783665383333393334132401987938602228140336419033878745057670024112074604954841030774941383474752556574776571309334618830145097214721869637958871777706495629257826095367277377353165200906009190263868140156626153315965119878489513484911977714419682303845361289720814743580107274875561402936870687687127850777395393624209061327655771405945522033453200698145074615912149346200292087117632863853027190087115765529287394378632285303683202219949712351099347146097288595831971979790509892566735221450032367529187506439546022266917396070110252405375585155139913777635535333814955961312555153484301153595385346148666325277922582567748815743422056590711965163073845550581485430360551097971730933750329971523595235281621045992865658532092978121905651946812728019864545848821663099966542909503705569956042176708931675472337942208200325067603081958348648771101951545095315147775079953972456761836185158367209882479189370146189962595489387028332022865924457486970971519355603114296171659835903565207002075430043439040074928605858016464891850395103185686098513887790262912151502280830680281257027727825100246742112021270569227937868348335760623125248789117664363684767158608454399115214721271793260096826282973681633832717919022717352981518382147140103543557277206246554927600666087816782529589705046874101973715762841881803907956485395992950290370476728256643305289497170551901014750041703265549949534328520897329000664794062657826614036062328920224942259930632490377287945514799509963637256561536178155119379444737791927425575439910173528180114192357974660988597591511626980799008609733707940446568225382428017415513491250806675663548543860996908577744898604036797731924122431149920155015762593609356406887959579312647828422864341134472872248623746670563862017770245890857554855555937534757473347188854333290698930447530479914846111144936956819660409979115345117872170993544259694089231003213278439756093405460629158064246789634414756982738074202203492294791522142939660262494632317026749256500349703701417703529601479905173905640136275105871702896735788961762489260392966433029882774857602113826365954410864844594471935482072605344233460234167298522413093401360292813992249499297228811390736602674718740556074497139865823731200845633834734620397236321826157696728913681521003757651331583694747216984967053257512968197118732580307782530048344015177737631018542294384299417595658347533837403752320006465770943423693934566975186720136330781552562022057253654429224768903771855927137636140435213526599141402094010049094955526608477708221780243363889811996256001776819710785241349529144678316871825359406960000406577760855037167067920294362356245687547971974893226347099985399034655887597828207978392593621083943233545074729664336813014589792056678803312197101684063816504560197629816238553014700156635041124461839782575686839827437366844685545838327283756372549461315954318983712760268525189814459620953732690530390201789566167450993389744762517820225688781587826312795578015377967735937141257624999579464014599965475650205681757515335890886135532039920929238299874811149438920951323977936077946803556528001461616901029208470930312160796557128381541874669893428142491038367028353119685945805073646325476883795427784530811876977128964946320766014210853974175799108467037009369334885808687239007863349667968205689216183855163941735702645437001843400089600936427733206810001489669159028494341543464566072011817733307719656976451674502021071670278617202229580565429739178584698475238055925420071146187006614582460262979853623473479485560416718907425406662773357236490994786186448722947778623330566907333587243592858140683857113584975647055561320538319236375419210887003271506732833291524293002535680394817962951624664628630100490426941427839449327871166246694935772847905447607293136103317326723614202781386966425963480339641890180792366464003619416167428815087000954074409404444794910894627761290724817657276606551672903384598004032743287519605246732022737225263100450257557865106760929698266666389346380211817327528924393947446313880815265027432479939679198819774077059544151921176037197402935969206565503662721460502554627058220942331653699172455065450913830696781344614005295112856345308833968657560284917283059585383797834486989777455727495818565613855287510380055570739643335598977655706279520743202339962849881328591586149695826501166066275476434011105363118264643719593060575217113148111263902541960033582427528042015172601753941221044549218120223306162123938952420557799454148092007111238665451463893311199111573210808176722517943758486658315825028181814791422689656019866017760309795531905089970183000409034410272821936642663471115469051189326505769373565332267366419785514975905633395284297692180750552126603673410865974631604397104280265224701171493743068051048897367539667256038180445925328005619796775546385010806459191059792871782587993725051490574516442689052504764892666901164544264845105495768038561000579103616888060723357200132811202201285925906997835519096082249774803095720607120839707035386420636831752012454874053686944461400203048450070451337245559319651405738226614508104478078041648975252312418995232560618638445730668585986112414902467304873640331875877759677908599731239199512914987239362430258717468608412350521332209434558957350379228779374049500548997775933086020784569832889605189891092697768733156010442181161885831961755652312476485228809309018296483307036573292506543238702424577402351458793682287584172307539823262022885990891081706869554274410612034709827391112640169813203246329177989291210902167532577663477676945519013990855164628256433605639066911626083901611310688560051197413326323324968165477662654734366492095499360367088383127655424743791161585508237059418782587689813690161393272365868413074494819433969909963031130557845867828591348893781519737852844190474558904727518350158466769640346933977576750406350903264029120101350195667891566712011264227458902092054232546402106798293680945444157300348075784220225351863108970957567616766392527084520500386756506568162227579581095040843788530476235669776559817643531566350081183565432388607249069402189263621901524929649564490923676224751781169245911740720016039715159961317361159570661984249473338750951803429102328062860501974169825628228139516197026943824350478446681548539570503255136621404862543210794169133663889417699814081312412489661366333642761979130949090195877919017532968341109028203918530030943987456984475731885324193519679156668017789557511505202230953965150455606804611289505480950498796197529395868176376183713628807360943060088649892829979602763765426669693844344003997831302387584066337400037725554821140649162012821896941170238181921687323374658257825135558485681359036566634944172483207704423672356668930494231810738308836173805300488014960384607351294232672912852702005320903337237034728397456632152444269971936486870333879916601759173362210714007014140987237925122822033721673102820786845752885079504152132134056089339458453273491997042022274057735502164304163732459540577552849120233762054247109799292708880019008856223599882338593412056097932026930057848773125101584223076137185175795032063896487685316633281830514165375762375770367279648617426991645730989275619938638450980589468204946253551939127289394323371973546681808984403100272727875101436484346712212125126293278144132700684552814174574998535546628582072523598540854445671887664283284838639997798476076379518705902613148065660115124465171270827972454482703831632946384338055120222462679186682679410404553185245084234218832307041377805689142543332816388557220036660713530215058641289979381783545507455458729674333101310386728045494570735979556176845484521506298407426128641790941091976346575488808689252327868969730564939974724881064711681194567892128699794177388524755103471095525364245222300307347829544721471527707559380677464921469476263221634227856280355740229587303090198502921941129789887758407009011493028835835220079097307426633701527143972903832885228601005989278239202262747529811403093825576191559340306435723152505777957565957968852861816649994315099235085198176151471399034418275604575521563167990643428885953874565478347062432524332354721792373057705362437669757051722485566696423166175326450302043069376185461515883668262786512097112307844154270358862951942831984078277062675207130167427240073818723473314136483615675861840514942647242889645533228382762063929201011967464915612887665399408853886035571937606150321508270787670882634668895791156488130295737810292022221117089152193198214187169381568504655675641885075983503176151400459912028267383353614189988703369475322012782285722568637647672177433960561732043553382361512736120740722158360341280125347092201062333869671363889645316544054944257624017131736684205374307596666493198415106107644220018221610735371226555266175465560098550369146014962076481908529231565075862430761275400647694506161052782576123914974793103799147533831073932726218606625054163162106950894188105992210255485040650253330903590478280320220827910676976362611198986865167748721692743551920371972143252941061919249994456216318961177170765650339437147922524762724701985714029583177433016809757670253692216300778150116792603915731079015575929719693953506902905322577586138557639565085027366368083129644194604384604998012640301052652397774014530236009104732656178007654817941768210245972883073237899269116682089230890823991574463639924555797800096648039434627777539629930138301728560943880906847903288310111458493843370125800696642300521476202252995982613542130248170968452095227323650983556615716007515205402920455298607885503669848594169417809925703586438982675513963974687521934658670096712386846392409224112675173903532706722392611918938746160567068327671522585304026134529513387931084969513921836284890707467844833321526571855181329190426780162135415629167705912825460879625766175821806155948268144158969428579355756940716816410350016140999306538099524529731644695375112489657112648941105926852822216280950040061355028482774272712969822022063149619191808988355107958892837553215981166658760671490868272556928840835308945565196168336510674680826233732419312056811683728194253647843507427415375216737361445606577847547584851293175061589463539961453907468545176197397607932724164573680541895539905724031402012120138380572815117402749858524632501810517699949610330681755159627936430829241471659965659250281753049648419624623216309855756070232742980921564046160384328596142324647808409740621933336438591915228416318718245879550199168386870020222652739110385287859129025425629502416579972077288650339761340315629608344312593835070366638606586704454407417787122751168967717149419519023419063845676777753567061570898725907630198798374988625250827638476838512104800337573996303535582277035965401968261079580658429966871041653286591685124793516276557347262198503286183810269004407108717239039828621346563555212916845293721593100933294548895114929606620957852718330197272440883948842447985977598713112202038609960315866143215305224698355327921577202272768577070135004454805580965400295967051373379046191280960136270737764337545927808447207138418809835867430591169606428116791660835156034538258228267536638310810001010887946401950646350451548667238444036413964523544267733657653675816278719390249674619668901621025142147751336495364475208257868417846706141865658560022551955484418349617649679340243435964991680673465613048031530446177917138736023242858931019065307743488183029250312390508868242303770446295195420030399030563630450373929993417135012022219085130110308002385610242344278762996484885284793588254493358587079792827197423700399066416118788052182933690310568543898647583760870311717709377067623593485800981170969493971145500057959217110550870670646850072266796417768723790901892213897922284362186233368814731579174504351507472659253017185450040562197269971866728654709775099403657110233214383428586173324544835424657654021020315040600732067138890465717111182171570844120063248196274744292398292034745697159424445451289713981326368252265020222213414700391579339905124901161999139313475718246213609354269539853941521111614960187304599617024514708496156901582094064599936371982676243841120334920811781986727917833612085537616007839719863465164311246238302166014695307988158944433096465196359976766718487902785139349934437417985131513234543343922600485907705150409876298805196557665514577984787197927427158972681386207984610586768282200071642233745796799389563781448839362421475741628999002259364054467459329412514585753158373311236264044612202251253776653077932134111658084671419781025221879259322806087288542352417099143375616228156880867530766917116277186843820160220870405726600553886923387169575891312049308879607946485060789108982807387128486003498362427510203305450778140060976652142852944706804545193441458784648319046983138978433975427876589117771383730901905480399434258221694660138218800204334370457660600000811215165074844030790168740668386372157627405749822980620774653283750865402245946523358387297725907957697295098138074125542022979019022097627429484619106177808463703607416914154585603268560478568473546555282434822395452289514179915785062700929356389016319379048697860640942556181670494065577817558183638050180914173657295655916940300731353526207018723240532785819223237607423099448486751260245522563247950880208546809089447046768374242014201566515324017612260614998784968869647886455720453517704701322580544268220569389175410878840904232630052574464200334591533744720555385891362014484004653063222546817229593229406132374120224508724115949714898561613353675072178312331630093756504222904030356637819693624043564345742667940725750685864530643447740599830209245576899602148957322315504264944781982687027501374481490402689794705572897530973039839861419130672548200490640191028840269576340795103327547588361825531590814195878635987464493806168231061349599736702255950371205116436670005702482889040659873458881430183267268958259236112802210993701187602950755234085811595417272127613722238051229871191033701537332953447066210133202283553498716681602318052121482295196471961021024840027488817617566410737889399619393253142014314730811633593442951972490812785917915667906769305019901296239969204785163633636557960381617721130915393734399064714928820019246028461395448613555844646466582894444402775315017530094384169139118303715331062171693557267578551820679038895017154456903013304551471447705995935332797548326645510933829812400192030725683782964728730080856789069691400912938203629202859360792846756981995221944681602634173312422022557773864509584149187590469329562188818306029997444287848073860009833061356145853029359909244859895277522102340943269762773843926800579103612499341491657994048106718589433203356384984551953929603142886595536557623340231275085106722447838236473442490606037058318383430447406750695303239972382265209597708466135607970235751903737437266357937672828573256281055638436022562415981991635423843596710443007475915502052116173840943868972404944095355251815801408070234911187069769673326634541342109226282920224549172054231892984906030033170873915639929778892115439467999676225103710921446817763911532801849447403345487319042687838656907025287149251025307442185022333121309569174194141038329966961176953450324574451441450598199520167908177168860184806650773660321931205599793853161602821350448885777268706398374030149795210553934829579980917468159954139971964811244475099493332783770740293120856753866294106162524355268845572980468574559767597438800389502343966411508803099554196188854708604820094027738471202268739653937196386945404917466184014445157340453867809334751726413018180215431028618552763702137881751202490363430480408414064788168267935845646353539153069569946054572821806886057855127997379237024439395613229698353542256041625015899267635209182444712442779810323675564379927887493157994541134605177974817244359228436747210791211610799138520571440109206892552066652149085034207625216139114977814195127870125783878329441936531890685064407401254492095283310679551382590280305387181717843869460648162022428970126535153897312408374408220884230415517954932116206708210050452832485047434125889330735473603900555505944697916649923306311457123408157856289259467420144955343577064971708634579095252185781766473515140025452074926479017382859759788460866602154346899693992223249125275712310236487549211769209886613809066536253767207093842440203305570721852754127295721981313899493873881189279475577213052812255859272508164512212478617889825654280960646231188332661161327339216678997109809119381614695082411420229172348349928392608577784508159048089175044383860104802310006480238786530008010280982077769385033464731699938352096455916077762171666618872374148883227173165351470826379901648700189639881131962228568879115915264198494885713427653282880910492737286637332816467478350168470491357562720611605957917649708050484847546570759761816536345417622064843653328890326486686611568273920227590222646149626806996331295650068364842670007741050946119719032918274514140092705731795389423258057741476365834354372222202224731462481653832700953919772158369005877312391551169799495626619055402213614308178533092433813896352277477838732763657478281552097262728759174485177277071007720585918714928454843496761383904908019443389285267675283855846250640171617532250797830406066395069963154285305998895424141447035322269211119225235636303708432741796336594923647955009735305622981193932864075827795553112056518912031147339224442083964986926517710410397656484102333289190354898722228730987017321870424725202378921702540705532022236741271077810559204755743874840162621156755132504664332545128782612342806951835166505798265782762485772606691513846605319271038321941039728816106251311199290950177902379642467313240161608841392515729155724920750386339050904978129782890887795334874291465892494579482332363131455029866356014490296070965676695038011812253394780277375222888251665433366276698393389635769467675784343980021889421191382902426851312775579606899102844343987416241838013179397544406424343144340467417336081566178012999320224502820806988646666264074867944644522834229537371677811725717972327509421730983374574681313949209181660932975060064345863818356586074029249481637756144001961503691206816892662002177006529171332124184048622653146147258105105956746845941287110777182859464591567891359292086950178461554956219347386068125524970330802559907960746293210779090526009002365096741976947568995132464206412925769768121974747491797016255385802949258182220287953075362061498115382893909894420035080177603623827494003312066831202225764580684426154073692683865279844097523483280849121326213350945883983944548734640893191684299534601995886438884075917189745524171378057455696157088500629071549061408416721975164175713023706234078092115396437973085704549467167357290761707965146707935683817383528877287217829073237197369418784333027868672666501353693800807249846426033158638219931517281738445316360472497538890270628048009532981276885061039666763999076249642947753871715321331328777923019804746975469097914020580662373961508945502022995897458852598340362287328157994367982715876605422199581786528560154435483080650957503626533720541916174724235898604430711482403195389327977085611923382286235439840288925188331186319884631550638433460769470743495186282302810267715685163939793980460315848826886816798237007529561532992895923502492282302855303999997855471381658448780493939099020015261829873020365314025367221755281295687650019872223564233087781011087597979092050779716252701371288281892784305779693304399813803148827333728984676320229637071173766115774559408501419640591023028080834084716910474460255540743867905353886257154095792956689079912362931758267192035490325397637469017982552742710572477131178862649371231925184336700302884545623390271697666955049992148546183674149363179860581507054299804211624420059953177663181843006598649154284937122051592393458816324041281798273894258461487781581698196786062900708940418601711918395354778265088288341491214485247821345697569175971735053317082633683385048728106328294909263438604903202224830776874082645090496181465728468319710176856363894499881007395563598705116908543762723913890621025730507833658366979487242945906833345554656822596142106637374892608918825216200260219188855398105975615721749157294197042534395596618815371178206606935409682294504686172045576275097011459068806390766599507241902410384603161237072102023155779179763360854444912687057382220033692096535090968858447511111343558281670249251489108484584117859266025103410241431928053252818335337780623414823101738180292022427260051763275218650792413346566369054285274743614815271147786034332536548060227369040982115120862849384299163823453329210130172945461662372491541255445686996008765501962395189569384453653195835729382965518691975190554188314178841735062624548270599588519807398981079159147164325155038315131280246177093730871114783947186264598939857530630978816971123275846512148726582191154463736327610821521351516893664620818857603018972434380451120074890007038406850048537599488657130346795117374726822587198620221796545712703047134859665468815308088872429776373030680802327330240199886077158864191464857228130979869220207887390715610855807129537171036098407912517796269646275447689025174480332910548531584469094677581931440677003947659350409403892504898543437376686375077416857585057253327650559029545126727227259852335025980863865082113669405250955079852792015346645951355071681795619135840664626458194094678989281151396784934461803339543960763599099835123128030924134707334641417713475870488172768247426235202270517795574314714330011891494959051792132781351915955098160744402002835768508254710384679925175287444991903837353592602323941672870273559150251225218077166836006577733342662271053309475594799744737755421390282703616098845447868301147016233864844484631894001447789773625905129867113962710089241237442080364271380334240680719043375278963259518474469448341321797625978040849282464937380411459390857477662302581743150939149081536859730818025549188884756472840889226041071561500958359656547531665955432022026896276059704719648430657523076877743476400611354037389879676569162380757476510911558407235948547549937849972523203972210571777452979459458286947935941601258561163937086136713082623775313988566838519852785844263391077442919518618478640957709817626341667305342661923676471803736513973827182988736398383562944240914190597581839869427916570459814155490234714665410942740659435038699208581736379869685706695451217943645514974597277445057413406234177175420899643251410066132929324615826391085424784220220370296511689692930818078242538677224086925274894988496066841433879484356697163000418275147253001467729824572395793216982901562570312337159422344134159678625384123491281495860427186249057088583138260614375637226917301048819506523918472637197216292195601392300628869586327931251532069951951824191541787034608635467623615130206942190029417067377369167747919121571512377493263757759982553845052221982907018923448779950847033052145543574854222697310383241529338814342010284747636064395982132331413614202228335492701703869811532180048210099102244173855474891995678636245701645859706264441994188040150863807325223161666124749443225418481141385335354753881126290983006202693461513816132697915805519262305750480094756432058340431769127366400595250229029465919388190707967190351512750265407273917817425602678067764976898353822277052887603483868405466499592975797761200008512676561236850855099852163832238560686041290893160155273778674799643142985490460743798502793262101658385052663101271299788520647381592022565892184384676046532487304545976711504900820483913332027098875206954784245559507777569546879322593832647039919110874203801194015335799583601549965621421104713792297091515742848170124548298451022115250031290560409967728811136866915421825964248291350322589659751619774091293752029229695777017329220996197165374450033849709821611414993611896644655268620873590938666470887006579973442084478538321650304888601754391669161184023175445983657632520480529310452822477074565124619682469336109270739923106120228921494079758259204439695849258671414851135639299000116130565959938297633491849738350273510964302203418711869577960695013258035526847690537284385447744950798330882184427078177067917226299545500618349077746423882980681704252409125234785220578170973348302607438624195556339134368232566040650881667549935396640600067002686526457219084027889643664190252107637581323186976883036055119131146499578601202465341965194695970356327323652926304388977646810903066001343230528681190930741869566108488011246745202242499085473219621709379145594733555553534722073212633806981299901024856556045512125801440960463246274959819184277884285557023027033577607699116214224466832688958538707745491398327512772592461091817476684231883071811639162470300027708660565917645325512012040387565190483213107570909294046311543080605765683402000573459257052593028954795165885486541320208601140539647222804756227051726337774256078201245759408679462092403350875241533667498976702424279952058825444345551142152594686548776175534838652022105831763748439856827954941232323887150330111885893496519919254589855232108331411814798731835074267933818340251436940560132330754632339796929547663055428870023061538701173332654222591487969951451910075088768281119914698559332496559960173848256666618433847090208730411581070891026184669269323897230077264489440189114476589250202137824707204003450614958525813950626874657809782874998259650249933172949500270590466197832029678233932903239188455451644798856836752332032159002069132038221467446997160920220588638149174813953644365669686942912302575767566767205694232834995834424084339272562916815934349090577367036527399402411719550175506879506953968663321840641470515737421147065008252711022859114078066010901385134271458344472507192921237728533515522221947782322743162786071579912708128395665648425646278835658136980476698529809444660795750509438403342869709819601697583513183960931983680501235192888137273588701525539058269231264582826909066889867163910171628742689996113629693088208680853220955201202226727927714643717417887460431529471350592285728360886216168355144046387352930318718311523115027489158579678827771396244789333935057694012241317458666819822568944450057548926174140113930525082136216161958801514587528267489836730321167396228098778550263022587222121267323208088179061002362997795927133948860541432676722048339965498649854340729496436670639142253913125318175107003547942335310638202698428034385379079134585419317639647563344744940222044746526133723605138349699578178670909947028764702022586903077628868085714495759475806112385592579852536516675114370870278322994315469327626134587114171709317558298739816077557393411431534495497806036583644574103773366311621058101958423858616401692398103560941842573528024908356272528537116884243638410670119378138131477219199475882599408360645177437659311601634717422401302085628319175633694283062776558169095606257787288171265518100825158502737764748007642999690415406255328760418978343509697144942307132914786119442874355851810879103209617917102020228032937872507781970147285866171914401839578578560878447611939504432800746327782900670068118293392314724411727026144486330143219868675444513375431621041605079406302883257209966356830054216960289712968758321942857871285771239520352458873738764147864822855391130353732659897170992601380622535205514441634242377532173005192813390197719760630658682854586019595567063970133960325624699228852668394253990371606598167714480420160568024234606772188467017740867206916669006613442098820972964205629201242757202294365439645006228018863573954934459420264227091401112218775489196621531286897169486952868703135048612304720262021070321442541114504086106963807004913577549965484076459527372716180368045317556073291308635608024746249737072595290528689380612764153924672417658823932878737485809220610061779328595655601608350618474841600419992118797721319852896725550293840826457660262689568424881117329103392638571308780410425616952463156565788601447743332637914404991405688565160828374305942986144116798240934501282022638163923851673245008639533616293880740990135147911344702996085475816621588121022932194408139635454636685599548977842369310191102731603783246192223075267141924406487313323063911307531980591441549041282017543230626311523613779760776445504510392923343019042503796885103061382494028628105849671388489356352882241600016225367474386138521635577519204380429471540233785593691651821342951010427521512183376940949920122651113303189276767773568423328346673549839390551675147552809086603553951562264925663720223742153096390806821684025181653277331632181469316883026941529074707511399958870530749268734495331381841868471082061831577447297874451083228628560245498329016928033981446207630110110986396836399507546670703440379878595791922786304126897855068416259912417139985115584836646564477513464275349427817506519748181116253883416678994584461486133348294697315914741633989886063158354383654573013306047598529993412832433988268185756735697204147171713317816010444674421120170162681419633908715634692316489149202268559406222201686409202743324873140511377288398541688462430189654685064260851835851644329746249481579301022889550772254431050662402841809297798059657211193559497519470017927106993133871698202718679974323876256806362070547947919210668477154075631537796523427968560820968397129817542143749576791340630221720862301967439761067738593308634746053451563299532170351235719909017599360494168418295079662355352862854271765738543413882920591907667937257166957329139473764362254539872473047580195039701645292022352933803350637800376201696269534251993671146610451075403166108498877281888550903919271112754416658025354676185840031554584064414341938501184765668682942961774449350261075818304797463434089131590317100771410418089755775157106117509171759702758908738016034999704902080861340672609114675904699519220065368327751566588040737968509044974002773491658817847928032278025011029148020600707048003439000491861149195645120546080919642048326062351746551163773615750098126972638172269548399174552966856131401220221815442397116968649018706587061815359955986303398578075342647716647196422827768676078647077437361714298375444094146274632160697271922718041335734506601629374897074107866439704568338944991546818534440335609446749731348205613490415283230399128021618227459228953617423013223139751171439217010546352470323899321899982627782875613144308332373584493207182971924277860298710802130511268064718494122141614968544982747307089445660989251693773566391869106325622304712567872006543684873105149350598552064447202231395321860132799378893525615912027033854584075040696022278745513742988979797242860600876156667325371187253688612870750501497278794274812905398945886629131296393151940179661044407638862629281298848931228446733580870649430027965373220515058519340597251733190741603569808464758176482274953514956046865545224244083923287511920639534833772940259350304606079506644789574046756293638638193079717489239847967313732111660126155504038915991165673232043569238545845042439912501049334389755686044058170617482022970970084821425223189282219880912322457468629745793801656547515028395372404306579710881747929989604203337659348757269626281658818480825657584985314379062512314409394695162286391194512849921512252162659067321719454739946434913492115825954854669617228509909201685716128393879141553892544640286888715993086388815322176957701706728030790891459562556613422632985681860336336798696102980719175551653975776555503013330104244881664103970039219012657989591654963965111772160458805842451451534323007133403920229409470354617333282518042054440067432150569886982313622883833501659340627090921476584896052447407006981606431429658561249868020820035900191229567801945671474608452483028648437140998833017716266199339802009283948812759739572212262350447255349913321315312956143433042708250995166025221034021469704271955408649302946238355185084685400997067283190027294658922216476542831134304382044177798521601631921755003751449345944667630803518325251403163082326911535418317265794519108652743483912706553060672526202255288519716877836999002327279048642651449922047631834260315409401092923708936565156928999126667517030403477901417293186392642135148914510163162136221241158580143190611319180859965872221437750509205067992254254640206061543158826582708450799280711771525372509346785123526230032572432386085042815353908070293685841736957838739923318675791897138594977948138497500686358784364169274341119409267967858772655026861570702599036387786661277164746304709302643325479718723150154072022522462906630365933712342022960293831551130560319118205039771972926481227856598462559426311307423439580415330051542163981206262741609328953723302653564533371922038626705498490604173273141063794451758722132587770161919694736938104960708818015152660321242932735544084548153313011584118822042155226557664736829880141310657233714870661823381904286764159808500644615578207344339075525125975906947099494977836951047682127774574304014217894319406970338740104835941767142282301328820838319145594354784899291643830731549889809134899920226670006684058830227055811093381267954752219562328687174210583120608670832417107136224574178498839158631102168516811634849202647378303656950778853167435276197966919204762793630693058534460590435162208237687158133795291440739038394212405525283819086213810165247773506400111504417060330688235727939116523742748131472432737976580702036588196356035435388854525321580789616885487571122135456043086448823141542863785735648027249193757220283403908214796515766518118822976186153231688163654243390498031884202294376423336514835553328262653130866959713739060569640571545216700303531614144540308402359533651218094674149010953013759509783527283681942511241948560436005373085749215817989272897628524482808023909080013477446017755929737843868117172275961661372643261442256512285916046534470575409848067557913557059768852727398374990511591228862524185004338699856734866886926017897857561550319105056155161125356774143705571620490191676623649984666827395993410334102033316068799087206927255121393298141959657787402022083616810482554683027139123161802169658663835562679547740037916221815223839722039853825911592968792879271224148479641810245515079384715855025065232140566191756850996905059036988969208781280998816751503164206248639060140016451094026667673134199704706738483676919727463021037952770442473996178483794899030353751841099538626914434131485290851255463164247530498352074692842713142651044336928322906488979841238305710064153817761844768294917041952288389693280507684822626858493141148032153527767153107120228169254218140134927177719604803670254370299069945820842912460677256204787164085863894203458183586626483254580480162587030165531707747860941149095143954127338323629435943988876456775680477064987905153904172889281119997057444419490060237071657773198123735817918503492573244456801888208431240429097609970885561002352783345515857207012740796903897518362169711284028756107733680839305672330255002890584593392885938091846500257013846729974758856938085316204114515949833159191785796887519713368933445386202205081297777865641169723901021342078578404038875215442387884833180719893903160479756949200348703060762639646604508604788343743347732636296380495295546068600347152036056060205002391977337742252208269117146170591979064014083002307291749121463892100295627545660679039379795933659195441697005963080778780268297777347122259026645854492549210258348085627197904904163734296613914634821485789124043078437404933318383531128140091009106851853955236499962420571501103599119562288349491225205280062375834218832022154803004123841919227250770486380889557389539299918439594112791094094393368963225611358975733923824010547565746212947113151313814302179794003109649923836543252059176127506453062228960588091369788502766733575788707360100917060821400669220551328785277188092847804765858807988368743530288744666880198165461612654783145221108906927425323115921885050180092029694721922734218934805080175650722736502974774499165639898080099358549450587978989860923020513900173670367997541069184228813555378051593814697920227394311435345468650736230687144036020120236620492061820958444069020326405597612526545783381646649936147831441701165845925324403536897008954255813372263656442772479206442986107729313297283358076776682554240354305193926309951494256225229609811302804092479283394648601263188471032371874976056737502710750159366333516993221818225954132044850450309517553310262379523792207297178736035117590509399483522014904850999068016647848397237851706518642434133657041190414253718559310696113791263613527749364564202293978597178284428723241779890441807717776214740774591063687012422267031219391248790052459086154947534954633767484491290582647469463979428771788585298128315448839257662735550681117791374108578481808245774573423892505849197132911983874775511925389771342753052588396177002676961321477594986209088876009148021332492001056024081762726141176932318653214515088032762401051263141878943475786593710676156572104532505146601088069042210366503495786683375443332073387370668520968423219907702343141363091784712022443839077400909781280862887746993536717394368017299744766728953827391692188670283809302554366970493327909388712906986931006578971555079426565235664377468423341317487200056059256443562023006139453777842044780105220595162903211412091981129033158911306731382095788963555798380341707877162098766965031012352507323806081300651065075563914860128108115224475089197700382659812354470286025946732163002490562057011281921522866344226667392581382862991108499814400482265013812235658671780080271236453677875720227458067967028730085148168802119015438434486450165894218885274214234312961685045103663985120291199608170730689969721362790252337090952630145994139135315371730230910914295548007295315289945589647956861676589092238206741456487067808823330903258252729695349238547502673005815996131881171621719323682595017957972896795490969658282637708542431765608352002115556397266887421600465059388881290983086261109196876370444667680322835169900142930898362558717909138513159318325427358948856078161884896867605151202253961903131381771627649201537488856089924432048490497623024997532567219361283930264842287236427950896168027700439041250978311414125337025467432893932265425782458410030855128068153323031060373956590662372358506146722169439857082990184751412075623308727095128894230049381682772716973887478894156040924431751521238005717325888274525232262354057417660489655975721764139576510996460673994682429677626862003278404388737925734093089349482383011021448707588787928423936781722727360490830376438751125892182022957590522462011642432306227903486725948499013515745989007926113781139556717158984728220701248516231079976673484660480626332472018244367613322767648712285355723115157435779790407118728827191241377782226208116266208224471745858551266464413652814815938013188853257003538533708266397460551252719052142243143148436548693109530541053615799150123705770030323568539920140787295259637846390502155555598850931059986147761524245007094211450344739723032464408432404795494773376179236311754634217646562270548420224225096819492248868331777984754329984757509862082246696216482202965223382296380247056557749357946881345985815699882299209748425095680863473778352246158716205763125286726678568711433002679685896726990304601805331410822756901764370242233579985226731904823791822032657669550416148443867137379283474991762982596998725391324422771935788609308517638646839088992872933590759299358722311418564316953504734769968541449570527027598067828870391874103044848491760551582987055819689803525321458419096371415110202294541682437332003186525786768793245866559237362672606719318228877019752387100939448220152529432251760881431017367650315384290308791158269871148897049860002826206402701954843075205696849331407021235095866851826811649691854137529278228644907497729660222038646485294577227367115175157269221321117192932015749414145917045146235939054912638130864820241055407586830617514351897107730514489227393327273460974871752272638275222798491293888884037854003231899648934203236153565228015051609599939853227921432022737675477024345114390392125147900519022533886110000589194200171326721137815785574828432159081180947890565399345371907193460860786573554531819277234981136021483237582682969205966457908271466420801681424808919116171727497323452448115689156360555302313713706627823283030698848818745633582139049079668164051608819573801842883408622243452413674000533475161617337147427455441171876656860296900239291518527389831731390753803084357307642736625168798495252418671833698541912819656179813425718885305899312520222130143113790154653733971242347458713476679670078557316131925170105571723543527267660797710709156914986513132775510475345649281037851258204295709959924967716575999071080993965575347836207840639927221860527505691896978171249848845677026872169174565233913351263574368633713462335495453619884128854081663894532214867946999875434170727782713376895483089046468284326560171524834174551210724249839326922657514500117001047881430049628001089282234190595567456250552846487021373977275859594253806325109553202292727287267775061211169376732774754092220606356840281251667545523056774510267769054174557871124362583625740475042098121579732832777671615042642275575845429882473595665363460868324285573712454530488843606337374029868586843140256784116862915592789543753801468019082461194143447660712588259331061851861874063391620015402948439950127227393096891050202293974717104685511774016774830468732897178206188500732963872393856530754098259189615956074157647458927014990332553304314796531193881918675061222166662022121552195636328874129480507095559102014263454320499183409306184607647995021941338593989903989136983288904383482028616211111627790445869329381777911194339746349508462202804568936329858855053225012461256086826172343722523694741071313491336215502334944135870341537758346238503752620018855095915986739605541621132162901743224013068217772774928000497212135341014683637003672656715251217682342612130011103341792462675913905306252232807356196318820829209762364460578890576308728817130214973899234128864920227254706893016940697656551564883340249483298189254982663395087864585628315565254657486567422292521511273868035468973887957024447930144321799236502113023656002854123129119516840510000932549124595318607398003397308418919697215860275348490478941384741829123697185269076857966164824872337550369071471393289349872943610608056306053203475943169489763383082481547679109262322624107342813637242270222024743167405078160681624807615564185343327500450400737429451960086519383108893419105829598171651396155096202223842413891985483445415628371781749903408117592064553197313711494175772349586221951209266603012219281464190658058887934554652441539000388381619572456213949271742469594520272697180046772229969890977326539804801724911942587917727582263218568039977556118526006898782949032036527020061754988688718574710915139961842094391414228775496427562095864667222384835490419272011327898709091554006403559313156082796010176846142570786377729714260401020285575051193396773883245703643563186287524302462606751069152022216604846744106499147089846774864313963725444378637768542220130677482210958504691360032642123594122786270523734915740834908334110664686738832753964494456765215224274152319447937198425751025094245609878061679067436925147869556182580087491250449909399763962698907704599849356602109613251795190760150620372893188003394953089397727781336958248127651447701458699867025456231371354981578451201512096070060641217883202810086007462376920113672093757240873523676469079133440391229807032252883529981761998920222095820166927083442594543445043534890396483543187344522649625005101442604909638991377382318269319713135405314384880775046147657557225464229287418902835652319533027430125503020707486554230662805961483967147717221943227011825285689908948666463468887270541882891520124816814659978324580448827566092026242917919748659767704730289734513292382293184233765084407724441250584413583983449650309625012477906959892557812165629240510312090307888515724762624470810551726766895502836050017626283990470750058931202214037296778386009863115507840533784161929236306806430578337518787407961911375995276398224732556539253798286734320757609139535206268669704099050055472246445945263460455893672811717405172611361909843046897524362294764455793834334035078800197418877112824247425920466202474536564042396072728756181925929463711859898834887951101912274779144741755456491299701290224993192953841917295825530142434207117115720576626307542831557014330713703412559234315794630885577673676088424397167759794496043804010546312022242076163682013223174476038668326823564290178549419438051857940723649158543253468674875202392843458402656835234850690728607821286288486345280623098292083492228965087781072923333255429590481184320010965474319523970480962109786877430992456450262958615895692381008898521653264802884859279361997688100237820193230838337209904755366668376901081404513027532027777505204635711383421338167269423826592608025373242615977062428642443686746526433864900961964833800664766205129661558270227258849947172406639120223114039638177451585107528336633488529865658422890974281726895732132553306646957766167195471681022026549208130488354134470036345934030915378875031384992478641769218301314871875131155470471846589131022130457173421793817146161982144628278467448555648644557538660502501587919649283408972836906215565766288628691676314157791687026297824716001690424001617742408616160410311641243627151615505019404979791960576357110644654715614386703707788327668456884149973126950381700602254188815423715171578088371851202219036671060308257703111642513300838284136546430176119672681274693201315912120011664018113711648601244291923901639344567052665323004250795229195774549689042485016607146108738088905034116731748979766930839447442365225261132913953718881694841979736855145050509547689125966286687066994280349883268867193962567438729095061384121027923048104814572025787051748643617055890665529083212236509487921373061913469800407266467535459758037873348595276084381406302295966693642789435837195056512474859945145781552022552339167890091546212341848240781768398172574309443074404139766728920700251623555912528888752138263546532441723494215847710292133734966140766265678260542603877222163185148051240730749428904836095840075141235859677890513283845229714948563868473546682056570457871361489474780924406568921820869012903288730801009707555446189666240687305167008384773233483117331314993496491854448943849086561125148732250986546881795685491732821735661458394505816001943603850350004761643156865470627131381587327502209920226387276714937204920421257484822778962091137239655411182725056395777097358836769998562585131634862549307316007976120009600117499171314131179401693474796685523579170903783953714874753440907099049001920275122731384225199717322986362321754769686259446688434105481106818159769942910590475197930949980146372266872242339119813232148953434949445210522487664479833874983480496324030850696492582648863611070764009485470175848909070143816236593201347063077084439874582449277319269486628567154727455561923761202269157070898299884211380393373669883116226028438416557464755178084692279109466011829211235391040618691690828326814520061498640390259353675289544796929220202462663090804855881787474275039302280359241979143234883145611454022828822099027202349445962520828369060545638420959534974415651245132065707835834430650874018419260619117914764198984972032502401829981995441709093161539016110631712756997043634109028725448637037618324814955008709615497015577884120510475027909916805063127742168491906849315615542022039230781532788051315132235185886399880424682127334410621215447499527525134354192111762387396445402673518914395053402162114753577439133575300084726424183479852337134817168402355711866328154714104163587854077751426228112077845897682305945519683335893046942774877675506603239960736850707217131781560635252865690206845273625072764794171892047165260984162515600891247634705922002097413200357722218042785818007508061830769537335195108845950939800152806245333253410154935408442026633074502471753416474420222265294289148647150648821562173799644113579032493931676475383759480568542923488961009519336993600541965005822653616784990666443988909227794369698434589742893996630163827096508181350259190521082911608955135683618890838126928520356981990614162970425008933909331473995405917638134968565903030236078041034524138338233181935902558736120588828292886275158685186921207289872192022031897031622845484780725302556985617727599267711166739105981994371015908584033755170738278197778882645967988192113985089603202202850154924335858519636336782862126065422668098154494128929039170409006842054985451711276964555309197029104397621764165492061884774618895600296519894778735056139603691471193849786170396457195415243137094343541218194865431785015860830332465148231755556033972012084572762440019172889481909285827607790052612607616092186166195833346365625731049628160070622089621428249282609155325655091501354721973967729369431800231213109287399330080906844341194006334093222933109844985587722811489429718714019175512022851344532617592419809561510277438145515824673262232392152593513456033284525671991965521145877015941204195916428604156404575364473757321872972006353211982156633566665921787380657105658386419224059954324500840120247862941679093149394891872566452880110314239242651370535364383716697802061900628987232049536997090170778160906114564426054287912766106276803584118136099249079542809900412592989758497265703646481820774524056994327387406155189585828153650794969881240910343128800933351057388949612473391520223390703912463343603694333085731315523062695489823761419603958289721733521560347169705895346117364398217347384752520549080627500812193486692386958505624483595852270226999838778268921281834965281566693293738593859286929562379252488026187124645945027525648691627746294572214495406077660120883449095246941484232049560098924464759298662824362605704342489516773240488308980680000106687313816311722364778897639635302573643354363780138645682230660946018376862755939024869445587291458231870293496810546414202214032666323276806470232867832580075629288522231175374813737257054142648295343389402569485563431772921474203236008759023966891798651699523714990269701452762310421303769385065961987866864015231049858066593454520633229511083109618123528697689540736808985987784555203957494454290255324254239913016454498989457945497037286491881532641756518613789055403833492759642056365426085759733825109782059710961370576217229837936314256276669596404218471558552291976498735564388577597796061498107665937812255580052022366997341085246341989246988763443504808045194730204935853699052252255957071675604578396893432332080910549947485854921325711402914797848805231555494778773402093499439517962498025194236960147051852106933691363529829261285622056072296708804657233335679899104838240235403640154759704215456891958666383770795719232202929268275559825048686423559107032372225497085731968955250945370661242236124774074947637418673263307030207640944509789471477258507550455842738033454166109167715938288892826320823642966920222806298293902358616336372975921004501079252430290898240829306944161648622878229529891732255877231281294621655014943030922981275780321994185048656283314861240192585679024261933489203607467136103750557857036552932591125300477360262400007977771892473777463281587587607798303244103575695463423789906973386237731434783667248449143610212342996953897455569075795085820124475006166139857677763602286653744699988622019222020534475737456747774396561813599443685369609533948334323741602484478775197380771265202252712223248817718620715799226089397475321067617179576028639052720302074596015784120802567334070403875978910901474846026132033571185426752961399557899128544616532835376759038877294094458896314684586446467839457581361311280792530654943838522018996433497943102880968099720786471825926698175580366366685921261685461504696592384090859091728238538212152084670562693170540626583497331451629771101591391464591767751927337452117842595798012966602923050235680404692331236840510546528249279449068622886264252022320235563763254648348601754266070857566679843609678897348084239605184339899056474003716461153657743863378419004444954824028316744343707384193353274832904319390350703140777832217202657935691605177761390767674540094382547900970948159441611259440425093754607902859510596762514056360066500754100785958984389343723381306980499305924764282605918666963283253424850635381770006773677869806131009878130886664757615584171801449404260746837178329385507387914223665117317981550451297942829196704909526825031920229978523399502341631972258972386805519156360761536783952332981400187931039126764985260862866123085525160013662400679822692592311119556565191321141144905235430305374368169068069166279518434526967960444471463323427611954268121279417194251480905637073206806691687952942912793514302314711953657028018091055870130198716977112277728993836644286258906321076528446410667782575619395833546396355083872603933406693026555023097887041556260873428674801760813690892639938504414533057833298621850906711272328203202293463507915867129959103016328343880961731128174951320833636562606663663567376441741812491047412781545771406040455859736066452769951748705033755788990130354323092738007945744799730585911236510883619421663075876335119671559361442783917141045261236280288169081352112150704755984079219431279767662001358362611420370605286977979866080083750154462693999506067864552163248384627707517907153324916869706328583204774341864842851822875953821186674274492235608727721140371927644871350513197975842088192749052022044800175817616475783065113579682034925689513216681085201281258367703853969062182319575082132769572169860477380272109481474750839744736546874644907044527295455391172244425485356242333007263828066752931010368152290029086268228356401987091542405889570776287234376303906072912778655057649006057429683216850645988882349022661260346049078142480570967260120356088127977467147586862602287007899033867454174154316271481724849355977916143351152663782670949628253204482636904089923999762465486276403982242520221447010374473405586589089479347367591531253948310762987770119434533930765053907628289646710207879181671817715237222010912288113381170316290327748877198333228762348309147389516109283820620687560979704971202917411026479359560799735793568996807955547469628839598085777207799134675002883915128008688158450737804260863747859794698609508363492300820894816470519698725168272109693404050886021353937880247105683909782239803582483648058769767892326898655787343449284330934284981528881374174231572042516747202217006949919341231858179934713224811042574605812420440069849592131507298145118184077585950853424928640430125905842321915684265985530650474824250523309323682535085367837025291789225559108795863204026795837118915319508562604890136686685553655812674830661404126632795814251003691535735032797318602093416296753376739599412259475702557186971866753584250241356380132503287818579226617054247845944050132028206595830967557975417354397693064319469787475985510889138726720589894302405224936926571807323964402022230777757975055685204716877150319962937419483344445834610785544048155943296269352270435822976563597016531724969611466812287210831239747827157244068734220816143575317378581339168989510951814368122499332905770638161455056421600367549018397151802625588326932083279180750169046195787329077025379011684906855021416653559567682766910540477654261635484405366538286823948233507936961324037938668205056713946725201538651974389919393657573183128771956012101949043751023261404378749592182143994550342519448620226283248420382029619458395951713851055811635056612544594390344246371306513855099580929185844815968871933443881134443234544716314799845304920997958869752347627744155109685605683734148828694492211391389214995788754056766599282980872848949686115592044810937011401949086283593541328750707779288633512348975633689742011182685618907256583441995891241646649020454147736435160276211917385296660095127360060793378892995460001760663798097782951907290561495197653063370679557494449744450645657689226480867047202230533435826012329526059928105091490525928899553835436457890077775322671175071378412025293999571772083709549433296438295817114811279510846122790796478557132963503639593366339273312278698131690055136366644786299604004241546111697777592396457534909297814146874410269026783179286126672410763296107893808971353429402463840335952590611614334764851829627296915407641324148294886809755659484795505285489301265920234060917456585318017144639792928261346581944917017175532897427713338781437572118997391922812022927121126752840156445738814634689452521875666478102252241634164510903747289263359767475007233029360443367623906291982098958028866986346483860569480010521454301642558848833944387355406292154754513540778037044797126441670128962353779726535061205013883456771857859576045754376177984265479582072896968538455410018310543311180644204801662066381260288719442306269944366625049647625765100516346394833689936479091818134769628958442781470235555566087760046944790327667261227822795848435041262799839279424520222279457832240296491252630613722398620548866294222407158153058927499886878276040680435701478124423776669882355723092606912350913546432501059006107986390080074758568894603774439530147496452571962648949517497935364949218970535265333758951655601304426708121139780413273814542463586764316627109660988387914480832040742920055976309756317423981860311322401021580081754500392473982130869733022813005952214275828761042209477082258032270871213629290049633368951746176555537230271611522315729824591814967138202203673450095423232652854487200972607869480901087355632022975340711171672620075882502402689788745681374458457201352712249206111289172757773193705606675141915373095681409895916723206129805264267405072196710665995149221835331320200954899297948356493552263081347007504934584427688563832209376507767022611368291448445266799143983729557452233565781977043306669170047081680890598323013064138519100060170367345023591384962328468285508727338978258733487251439691663814196286883927533171873164980761711374342022833231041770495205278245165747867357329693743164112102262222485010014379142772456548731907201476732473243061564655263984083217813479565777520752288166702414870129253703386827123448323961930481315107434074648800550158100636523777347024526778106231552651917795771528467827553105348384483477211850912204296956051216789153188956007235458407642512136892077098286697743851313441209860475468288645404589477765094649586161448245049723417615999491371299407477409767211795393541914564814285968864833696013220222140386567323577649230395307088958410532963155631824493174503649213551603675948322708304504532841396309490430070050864534235573290180183518665325820295249135108662902513364516423364366170856142315371631304759845485783304756736990118604876833995353070217320625813916720498665950689038553216381852247799728384934168643561172931155480699740281842721832346318612281598592658490903673126854587604030745290196621244646849695147561042920546171205138503092944885882303099970865330239539507235460232992560202296129201410894067746603378218998151435150901797984997362317101678448488183711153379578086869689432723688545471733356234070670463412418659370261477690179170736772306738523008103692400297425683677164665415702885870223740087266655770948883327026687141788229213905296172952446124022609101731132797197888278296045415829185864828522577374346970784125098408246774543244571362147597872416554444434398439719237537861690780585013377441579464208190893816587874637578949537680648362037296286713825457262495292022042429221808366267519834656713865119439587417765551846276583062703216454013186126195292582965754389314593476026526791261399917559923628762652122141720827816945198136284088186073950514048517986425888804826920965795874050205456500226083907798528677171283320995011381319964881556354932704435001724207954512730838596772616764187802396908698928835719593550510799550052977084396793729528434123512718087205252075903289757159506773121834109216758715020406830145302344284596587022719282893670780366948295620221845070616652088786064333393275781315649997800971575133398650049179822186177159668059993536819727824930605165604729657202637439007614200869349607049687268136393652907997368960904454344922960163395452880517590799102332227819837742789448460871470421911585450580464483328648436755395880037269656669036347800252413092348756964997401745416806457747607662195790385912996201554024781239468233685109878441161785666874426144151886674827139918422648660505859570649659964576204609367681490592376768715538770202263896065588835007584807675053087017025393687251861654967924226303034129494582336098366776625831444055484037824976839414801211722067405180150540102198737607912902872361637331936269958730731970944891145729514019687029771178236334486194080973996557158324887213058997864282475755404004483779664399603163150615188939048331880909749497505181155903210119543312551209461320301770156920838003106510620548595996603269936718640155640652769767708467129922144333370366487432944747973922866926575110547360981202022138786730724050520410670927724410348475571097447622885275501728677585128320141331836140110641505528117270619631658020881357774681272547212070880348956938319956384840858387726730811702990892825626501106040473156806559817584398088458231704422907494140224781800835622023020157819191655181345199253899401614312877503028684108241412847192386814469295560882720091353652845553147221048726431962021532356522479482991967784123338296534547044701490111346444044324274332253216652845566208400954194589588681820224931297144807055938879844564437245587953504954247687456568862718541569918481379633034139552079022441541861675454680967830056239379473591658004662711904857158992205608854809577743723426924634604601728076469494346416357462602151683310036012548295948117754763301238807017478979932727200273238278592553196323453944368288470789863796124063186514400876416049280633257074387859412389739857367824371028851604148966604789368208602752260613536360623472210876325039176288071149972852223833023288911437046243202250179749202764938962600207880637806525997944350661688771870144650460794233577975037633146070047743313144414766930305598940073910957331789747445257052825053389025796643448086341465760418660970031504027147207740693143197138287194606199568946221859403541421030528646328720904274421123831065164886830116718381854808333232542791372559008976396252042766583394508324221121268260261940216914672803736645636524948858419695594600119536622161260952391259664723185763593022071737744389099375476771533484714262022084719387881066179998956045571450450570858708913313572113311095781537529620452751489644598906623172323272667402732693146925472057068840401298343441173887653094241596602080267525179581961949955271212217512859262496427300278838402024802830120350106089762569912773743513514228130687582008934425864769571424444136995584953407907445577589166834761554207981985379711054588924095674654868807549561933824050819197632164797268192763476498476120470966888630058200479182907970706812686242120798076507446014520226966855961804971134743326888131922904711578826594475532924969582430138524648053171828658483329874171162736547865072228570007390629353554312931291824031049588685675613190097255341139568571323525352579718599118519666533192193247641633037884446356076034015245914372616536327118980385226932896452092863055969186806332494914001028129405346997967137253695716093185881633220050305550248164856909443447516697232790353394822728827240842246312746367803107106873723241583842831842331416278287851354204317892202277132833433326482296685963091069923047530337925012207178327082136119968170398168700575971193272756015705921175717711285690843817551914866461963205573963153213331724331145282704555793443812483073041916072123097221162269457911386736762766910910847632638794160517521099415605008666374896980153022584079495625085476265308120001144943759473962137945980898258434560630472085197379431971805263009651568690327716484178504785064961700662730991037988240257950035851779948196724144586927096002525030316721412022152063785817193783318313155152511339318854101225577428273360518220250122520645141532355090858459175683865538754410097601064192184685215530436004966365116100797666436149905529286156243225865828533161042895325550349667489432707998694764658543744505293064495986807876264387751624901124593623490815887069684423417924400107106618013365403343594242395118613528453223403639192351032940625146700283668278412402784746442967083929527404260865852465860565612581187534467455391222141653302082478816071722682920223607824133546626716846686777391013883887910725902601549390005460720812432968388967922642646956293561944594970959839133301550118369693357894720556008880372806080705976047304512193496672234150679109976477330759576775012227985145283077562443250990869819445618857024129857540373891172736398477264793160647198678620913728595271035524237012786244911639263156739691078538886119148297535440318213853107754902431315781039767053810972991090776621392956202904584877224210472119434616774823350170708211479266202240643155086693849050814118322721077428861688322550618100557138617414708718550446666199186202570816026795143967952995095351617053554232551640642193222877483994882127086430909350020945030885780060294825378286055217079305717453721696779112223115254197956468473330805483174579125952057231624271530420856545658133725893636998542663489161552814131752791694741059826681463936764925709256586215203194606327896879284618821647109548101084554520808655527047380631837108319341156589117283826087476175092592492022280559850061838456615120763657308137585391327550698605505661615618687161356554149989322192197791863236895340638583721748301195517684830585901303250345967180668205911914227894837629074012641392083435780424393148341576308781424575880040747428926302756652207152369788598301558336819332905828267173683485181373209064592296102118339957493560423037638872861107298741564158257507251593633490095674830915249973592243985522017741329041286332897181414593123987057661549613966191670579908152754530796207614620221456332376811860075716136862113169021016019856366042273640736680599454576874058827409615202535985191362727203579955694587277136185626067904123595834206079278448854316056285214739898306086089273093133685249168269984287575870614105416996992112183583843171426893715403854636998751083643741783774408262693118423798489386150335948978002411760424705330698233005207330037667764352866831243579205703018581216312855914544643424913825042157023800281683806715713727273248404771895187282529715481015279955520202274970586102081030288061544937296785467883269924087802921322326413115679235754501355768813084323664381840396447595993810375275699526221844228873812493118116551033575621260942948131345345868364758554895139207615595477512844131566834996799779347200980388425854921727726647663926176642611747428508172531792744822793638617872257997096596148989876208397814110353678576571989783164412965414111568433655520038925356940212690369259192724340615859019579825552359741517862133475902615137405143538537887731702022324898177484058867247787821825964205859174774352852753533444135775785184593675386435052305517483010018699896743561632591631060817594504684035252732477551233043688564104811044297454598953150597506290035963822704628224047393895189153643178298253358822981383642866757301305551191896795759686385489055363783324058900285104088798672023056035323403694157895295058567689490437725605032222708169290813977963075182760863506335952053627162012583652600241823557991417122864126767075283387853469184110404092020221712317929864376443432420033244718640275682789914687995880435463353441744231276454639004321711288847877912796865683912084704798550497748339507156582167556477382201903124043228433907467505771123173548388138257102906144309235542973424947462120006736373490564439870501433420627839422600646989219784049791514307470721221216969895568000362696801532280828685782600799563002267225257569935878881586768184591906009280003868532668799512702871817945592989927087691791188533483070227467289011925585543613254202246078494122615944668459163689318664066988920501018531287539151649485260041960648939646162887001669483750151662311802237082079005561317038805465966665337915331982179726587481317907401593958345632537125713390870248619157443532902871089429245719534006031820788289195371544518141853257362797961554849336070053144127155170232417613323842023033961644503485220460694197677937559084755006667293024227344579609992928936800350470937969837265166015723346222698276463063647485128088614404639107131410177877352022298888039386579330166007261728429169464622754675913254447577874103733532716170722354408279404698342495866534038054923741197752673367658230756057814101555309504261294216564619098471758331808740460016723104034339007463017395035361292248620885376234351915214046648374567192446654596504341958446281469990572978727842458269980620355313034997525419514930659388661961910709277665376494392094873004348075919509109861378747468459336890524680932138975307973117533995517507557133675528066890779579595613490420223481461806603604554577398110058620210515276593077930799729914946197060228156877937719750164538461498629025257684446298297946243206982267372404065767982526040025313115084604978998278504875972680752219474275578529430483405621652013487787569843004444673702523637672435091707031763726786908377906794055242627457581932562849301780167117638834707428160755757880667824508272900881995510650123365327744787847325417738186134328563262359956328676676519306910376818168312369421506698151279044509662008278871202208491784535089101164551938802793900275003348691410319783569185551326102390732274665780691581747685047760094264769343367552082703828969419853156588996524694649654028129387726995561431052291384068664624187563603155197117490064389921008219266765925485002623671565426286180791073605630689368301295992873556462390822536732718923539444259380976656830753227598744709454429542561103072035645294793910492378806691733544410200663862431589423472191889898625012209198922239190928719104464398988037057494222592022072771498156419771290603255629080497932007396189460493874317014035158529709551231006007585165508719393381493285225102149003818104107526311950738713961801783339313418079421152395154937793853599558463631274727429253991895720544564592620443574254680650081773771421253232072361453935344507472004130420502378609605995350313432382872697476274474121451702321093520825633507955596332277684820320146871185510896777641654394318061995279894446107307942442160651309225174258384308384388364415852257162033442020222474346583572435267436131106770938527390897920863884164210008356859039612020416808189505518304909441725762018296743419507241290991059168835396332856557430767330616552263156102399551712183581833037432687208626437458517371250538562996616970643980480014806102908652834004290507331796187136295216674374427724106350355222861503946513971766631007126455798333377602585404358763286536603859374662502196111966256639683749093723681236770614665077186926663958656679511234356465505560593052678259884273528228202209842626789040238958960639930066042434323176069764678402829901026625472751533611449851088236931913275587179386821401137619373983829101115440637497160669078973853748073981490790627338243115606075456359215687107636042693076178396786002736716162401136433657102002606558878011063515660905008798620785958011664217063833812819365910870741733714606406293868363581128195653773321979522187619259100309426540693328874992109704442847861173905435725129953772330032729341113594847977193271598540737648392604722022882270994240396340198234775197814094632174631141320608761300990233948658538709149340852582472159077345716478801398687944817414074358544037743621604356061178119505813412341564363812367442567517784843711941237419704402984158616683722704730251515939435495520606781190496254868879095138121240287431389225546221947803991441217652968586228643518186560976864034433170213665774533803523235526493551993771277302230556841953084387367260564582775528907040720762980596990227010416381938962517774075036371583320223340994745361652834498826979585285431154217437903408843498134667815940115694454360145479850948513191812630282915208594574793230391152716191039270685030057191828261583295962665797151331369508206833209176790412424777454312577401717058883135356178123937421207949708685760737138894622432789985127242162717012375258708766096668195780448742401330204307972197601232755079665455863893634624622244660662459159852125086385810876328054573741895565060797088598246476082854020830082008423921497289640349848340202226493093928400032862252488027546345654908003074054911267364283374343620703427307251887593397303452227240547284977529451936147372090598937199886399693474018880312194228059001514616591837962540797238830530577431445675532307270409035697963900359831314475171716564861677863075324471247654440945275752490955759548292431215037062425347939670398439726330402284899308014955201773471810199912278760601615870592672350254392840454948007635701435518291490341238218605262691306042518324510584456551423194248282022636867203114846403349118745827886355796836081791167563956259372538870759298951523631135762774325138379026779305939052445723954429360895125657980031932405919547758312149392821094135287499921429219842423216737949315416411059385099692388329819882841950424704925113415257067300501433075326529240177610368070011974911483922266624062707783454191994952030021650047877446297379072562665229791315352023058306123511421159821633938563652347484073806211623095172070081393924705463788297646390967840281768524020221991338284900592987755840846260425399744145818075386484985188145336148211700147566061665268778371827003167108459757956711327841066589281572395880188234478307594875174220666173483222844835214129615420417574842962989631123265100123723120939147069525074894077207770192575919580290512698012290158819501592392496661888844441420293666901181111621274270994914579943374313646760985545150549786185939844193869178890140514053128291170081749036716307090744031198529104646109332585101927108121438453389297440202232360091124233059147398342403261113822709166618240354503285190383623970292523988931986547193701452257010011097672302534492477355561459911367760169855647784148074792271631416821793900444026054840924473581418502325049508427467398152501020672772460974888224636838504788643434055780556142176618447506782377279588873237966216954771828892163778446350984080136013348662003609402393926206973190544475573047443275934788503456315934393771226334459448104239670014726029262628650559616457725123076872289069982022656859684752596335907401539161603518126874367991067075550849134140643104323212711684123669103064258726356081257532637001067360043371865370096549067636752835472075337032422899497631516797877076184729695730078904983879027339131138253022741101082399442094367004944197368278430723622555296495454120713483863443737675544949121132721174299901432755507996497941256771404148671050566874845925100395692793804490054421888392475007571854353242744496558267774464860302044384595329165036654916506787094158015920229660723411510546441955900045736642495002215206050333473791714062434805540329060916200459735888507979977948315714973094790489636581358664440101236532378660736799633974004880359337301062243385452869617879629340019845438209011070321448913684182744690119759258573551024126447961914299926242922816614879082732811767450690418990751303358487304964492079791035049829475001328219527572817726783651288674010712463792137428208383808071044209721717212620088126364288344677275115666189659566297057097280892572202263662127375678263459042938130519548414150497752352421946845075901284257402445024123331992774091917194301455346546585583784329302231215467778094739439197867061966222700733812645582144700770198887116363140485194661222623029957913005750200489384505580899739867525073196253514873806682301289283297325107156741152301550723540755586177059989982891562572267851100801888047521819833074360146246267942376538709801227809892151583934073848287969270314187204135299227422351672904468640457941060426509222144352022559483295316687366787571122161196307684123543463573175091826053177935278943322857753656911031910255069309557961415481709820527518287850877166295445489133620754348327791889301875477232341592298672369179669356099210525507097621027940240075997813358874015494973604778537276663531158638573529153164166287108182705271993465752838861289565200819053078159988914433572977480102603141829365577711931528441385066685622066650657780626678987655562630562114814622221957195703045137894393959006442448927612824120229854798020452474543564126717921403072125886213481766731824535602872632544738861168243382685460990731720570790392340941538356273707042896716776561239033401410049010235539462888779642901231156094451727515030786915915849797595168101468299520400006999120721813402637926940967808858761842414859975275125658943799394583616536336151432686546072944840962449107813281382865790781148859393510294306064838174038147306344765091538338601091900147314219395287936784920591617471773240759559675839620985198443788202299778703690992535002393339940571956958013792253539882135013467777500189815260955058242298292060672423468735136111709640968883886100977021125973823418182852401775701738948745016797890568812143674450262262186482740343936464388236792932830284097075451141939966612996802447528550237208262281351618026356782726983463449403045567788553285110639728873882720349168131903431795171375077955483620576885753104316100243917839270910245513391525075920948217306615287831105239406189953292493282144153781599635672022374642610982774527629210344313928277016220799465224286479147738075626370552848153597399095150599089081188653134676234308166587841477905570660476552237305698362160808720578935882143162386332741233610431963760086899552185714231700850035758477981652741277569124253220273280207488520759423292578938743015864312297184993795529288347931905835516795458495471479981762826979884225514579671410670684661661751473759588434923066128188160411959492272035093728927016493881653220535747577675960902826040384867020222409847989943386233474277603562713615519360975545132395910523221371363610198284055128354264212607400570246422419232999730646938199855490356431512772459660727889261500567559489935849096831847851818048464973893118478110160571241743325903960150674825189757642189536243766107394614670261179031324338403360598597930730886198939114436402280856085647573819995793004450368671814623528363562078082954536421157460586487636387813169885924221997924590178272315405219501310254222652422310051342596583785074369202277482261927706823781859426563721469469478993083806179245298919245250190900941421228686237886048728637421369242418946589947740165019791660168166916632943762778541645106449354113863977169248684080161234727582422315696042183464716646555435946137618520981247293478474403853655821831583629526330338047535686058782722585393351705043155568996227660000442109504562627284802600326997598667947337308037640534314898566606053392773792351712802729853073433183994577748442736193146418029672331102368180404043742022017568062575928644494733963464681315650392192765616361170144016534657028361371114200887787030566737159862216977870699811260735913408377864601442371158563247214577751220925894341069709820200164225149183438209847975997238970921430660778482623452354293358872354107319878078886405014266372186961139669553901248815065775986966473731829346060382203144666930209509934462257097896102803712160815759850919260693443409123287256089515956144546929848292973962659512776822032088805843442547651570561330555805020223604569811965612047073236335122086055893215492527843070306945650569996841258454936326910965823155652428241218414478443752342219274385104645141841159708938852996656945215824602199594219365557676027382559802130369589017767251701174853092733765314072018014364546396167159983162673159522412123614903450743748029834920236558196881004550292444117082826646735090411314668289831704290993886087358142735203959206535156779748409102270933290641401937369167778550682130370707984912580168681734605655711168581202293725680605928256845954423533388093005101498400916477891073936866593041440031273791092262745640252899462024419389359145397031569395581066783709276307775648066978079733077507572041984381626705317643771591399554566785421748112971258775253034152092759727619201536744604607391596835333671695965289286501299678942796794331607409340893537268979947610907639514737449846179308397885834975103656480782556851442422823074711948011941349353607329293129051121181148577994945493200704680434554393750511006656382022894652707571029817345090502674225506378659160703806801127080560993319281871057442719223504725068532651490904743041590577764347804843085357364347868194467980993034330857926452864154738482344615840864143447764636531382554487641498772260136324041063650906992931762446651781306599732988847900512215884374455218094959621844575974889996890651458532732697451115467388369472020836363309860540549066303671018211454276288453507121462407755720399448608051102352682343761889442988294621388693107751854144676120223016661524664804661562664790414584710109532008048238820543266278551693768301378014984960058921417348016196718133168212951585162985268742373958886295443913281979839418514498055808109541852722250348560104794080386467805893506683879144483551220260976309794966967337051027013333337830917165889991743501549586568073076933639910701728232580045755889524323583165748450139981105705423279079000723536981048930957220438568264772486142162596067863862704396730556189644464956227211955832414679739983477805639202214092531500609073252696596842360910065319523901341909229012018533923699257580197330820565146345688351675163191396298025904545676209328399883313241474226451636856830605894155150546870540101779452824299546849421343464737508845843272314107694993701133641218277640303667049318456776151596556013854805686697379578453309568089650558115849483989586870771570070534562224488182812478759916664980511140473253679405409875414813160244078567844277767930588825202274262643073863205168852274195803011340348881472022919002763902579680918082512011082629122415884304087852349210040014921520604980346901595554213083246487719772321968706508232407179766813980470406407425968836654516507610729128648877933012569215891338460983340538876407009230936399170599248065114948727609122878088886055088362021441561639364594342122615407078951280599416158958721519235764417620669664632440682622819194154460052858155681693096172940698139316506703149363870531702054888591727471636811544179416116560061126503464867747993078404022302820229237972535603624000199541008872476655815835292477782425475755404767619076096680048801511702940883226203049312260628640467546014869341326376551894250703369794029792009083739719618180629795292649138129686896341398998111749834390151556296500073971370781118902202478675718663336255471734490282496174918348760066792559362645540482900591473524592139361316195177019022215483947231040780666333662570116112238736030607025398186593807219559970535611624338055086454086406419973246650415679376840736742544258202248730944131884221198207953960246633702760813394803162160494372598958775474915868383781815883530540949793952974816710904004732904100030380915569914756648150452706213220501504798860234490580067087913956835449981369282282456019013771156463510282232669115207653072531303127069451428546317031028884509632258233987214408675277663043868615516600624658596514370087866198800240555975313982890719283247228444251794847053983319117388764099960953607204099613667656053722425710191501278555393799618395974016732022630137991021330739254121922298353827895605314095139272517838935311554333475017975129961240414182642453772753904570630564850412707295217863000268395500483558992967808389033629230830530807807640322112524957951383415107684592704990035771262612276176050281411769870674529283939841476815518874382731421711821346908870572244749439903474335008272276582229227776742600122235732236216603570217395593909741870134994257553440848367599076425564323347085030213821168793442842590456453710482127529873347389754420229396014208563251803166335782503697616327492867873965122635179596323770802401425872064870978136144965881055097212025080314865714092342207569846519883338652009536736543238455491315917226541717099471678998585272940021691760764820951826017885770288487399223174814972181226339793612253053749718943885207353057024877721547646031274092616137199430072790733058704702951597879764600714287280768181394522319686482168656517518379722428603648037663846059915247637598100751239439239392014781906422489904712848202242672412064009238291681456258959585604363866035540892542943935791629031202940243840522157637174421095398135960051701585315932649992411127857929603210300997469558234095372316998611226545770941175032897738868696325417894576432755632398970209473603913997956401989081008513851475177280449475056575305796434242217449904586646108783171701565797714692577570881813271104384861105173239151572971188608287860698227814154044416746477560490847608752262869447274086555360568736096335391829585617044277892514422022916878116251143688451814040379773367263214017434454518417558563367217761084689784146479761913692609656692894725405346754583045711398999778615574667339105097479642421341019145931421597484931314646045225192261384639023807820820663479774777059882745086464716997507292395039663756777582621415905334312188992093399718991352763506608557927554533189451594993431410784136828403222989239211540214322983753549337196147781563938203880787738028092764831086112709026330712471797108092433176317635421981266380620224119847861835244991873653390411894612494099316881837201726391907079035409538734983911046694072785783263103316656517385258361331252680885952189149814368697525031778686852108630185167533498425918380456097132876456957798358892924826548325178558251545287892278211991500405554837593451169963718991278936030222001556914607477546979290297421361409374237266702657632039345315383720409327974468337771843551677353255418249918265998599136733334508352891295373672477865494149010002701164808595475979538467238202223382020458559488135515467746884234500580759416031192737016697761382750432260649236794226445437475219973663636373912577924049246249923810886722320982683057080406061165947116863544364633410087548674688274510680227505617106467792644555256085762445444020029079772306341801068440713081110628770874551347442015777030613507766990748415352556579140811266274730018149192505695736842956137019442577093754775066692358339843513299431937874508827801629165433506379876692773083022263513411976481366132789489702022958922541321601469835797743761097001899724063650215444678640126878570857962030202516902835990177363193447916230876747447442511106991413175715177780095963953481703109901009932428385841307511062556399336307872001450791450477894975993427058438974933128024780031779209503602739070564971859535147484174222220978580388014956413640864402504188801565427884759107630877377746073704789382048520701466102618099688248851106315663720597625620460653482947288497202455268407602047008820066135176322040269067607720222332192554272487926000523124401909356724974768508568888297484929647814317362645727007918263514686227646715697333060359809859640061127971133083509703307381271645475268889161929420529614188045757136899943563991144102497660636075441303419613884632957797700993512387886299100715156291755366555405560936053158714892975303177770618971492656551545148597760494085484213832624912526640266195979802591312193707996415099105650171200107857822667758520346364224343710510905959230881556316331452693491640425394202288234074919966630121037130812704877830618053507738932268854605165264580516087497967062139637383294923529330989489837323770565214337164766333872665711721024402544529960942813937343861594239959515531505046002949924227423385048265471006716503309033541358471174110574020763954475452088783850988392038846205577895285484996160582652361051269142118205293800502571806027211422088591685458839862961547574693295453045626080390310872250265006245651932288205906631869784337874759065006995147525943518732514582022280398476317082473377021008068261694801185734237537597032096231783616506964489881037857157655634553681525895500216779095806833168202589872156806552734439784869753211797788580222053526411042612527794025056667470066848987870799809878145044095064840119630672089856275391878653208495088644120772274844188462813253749117972621108940114775368562601797151653368631233371856549380103932090872708137797405507832488828856258729264720995448755601368201609677727712334953733648642123188688616377637777781421220223433611927552262417628534561506571005181792131766826151475623902583666078833028721283750446604742656527400009365522219732371054246119335251915634262188758878526161988837230001196660721665003312199320992689810845429981806441120032059593200915790522102864853061760764263975313606197702714265884883542883826762241217017303797390431061363360138127109590128397579113626935148608802530453773071000548850279270331880926541538131422394560416231071157965078602550847956534933835243073962431209004428437506202212506214417255718147123563233330148928449726838820483094726223485890948060897967054972652775805334262715422988487317812644152626005518127964208554676173651114489771117291050241958774253554583633491013084648481542705843159989340971413956701866075922671343731000843898901757178828320697718788665201315114189408875988010504821503179511144456113390800561614860486886336786259897658769850222914101418486066446528688052661601722523977325153086457006538565034574443738474860329926345981923645393486085152022721646960798136691726248221793652715247799079076966156104963763467212751833312291265743018581522796009137518841362613247319030911542292209197828533909415647978006317257254424075146167613337608471022974490698788075816415281366851179580456597515877398120755002373576125837172779237213423920756475692186920835278416722461673728724557297975570448426134021403661091532501529778242862610799037180505491159468456062788627044131063225744279897026402821276979554387764551928032833970040035178830443528825420225824852016301021011482159861129360828748548383831297408668015469874520214350079269448642519421412366122781019848980613795576678912475491470966308590093537379240870228656045056596265511770760764368429244322164584536994991264122574963409407127202073541751005668187133714927845291973789165499226989432871363382761035251776867903076991442278825454721252614099051883768062902515296944562206242907512334478792505784422928663954095056447645124299086905809524462361617551275751156302536977286069680089032202232942522161990148109753181585667482764692414364895070181779831736353652024234902903586667575032775557011920675798019878116118822203314803738131690731095965929593548723676184799290081099013198847253559785923950301962531892382910394840624090302988119178699148880423427481422819261157282700353763631441702631090888569873996605754262424262699549075157330512244720652243103883604424624979701086583814075939273950456775702697249017653882814186332790389311793417971436826095932073550080636880331835230322022477510332642164959235795388608651851636055252100915026483907806859001529122468957675201981063018716163547620538473969343528194515168407899498002963879220721609457209662103709634373317733865765802987250773849144277477087834000859847234579597163493741366247031892016006431896208418698897001309091660427012570943528755232699872800730416858185811855417444498581626449859300724211612590265770200063953869339001755500261690101950859361151625731989553112098873708933869143647613590880885866422440526418720225955092660628210014701019213543920280834320913933162053873661467241527611188376099042419541055466774454063703265879317561555123532165421139625323664815871125693392233928938527628419390572826714415219160986530857820124994483714492854812166427971072684344269573574727436563961817052945891728842049945590746743571524393907382306111118079328562907878873597862305955951111948320764206590406887056964981781728542434647803746528662085249504570621956025204657128835771604476912789784202093388701976065803202269712331690698405731532616670601317157589132351669777019270459176546098505517374116394549634656714110359896134860603267667700699404202120444112793467919488083169978681738070140861583314693049565976222911284137573777333050960206988059232163456158579788345748039393703291677191626916383284187351175141203404330145532999010219979331374377345412680669803756356763558613986329860749260461294322854665882657662377676319566603625711530644847828639918665987946808199491301441763818455700705390456558047172022020204378557620593299717854941115235798200204358105334546804086700278200939575690344099313319650849762009877209240087366287701300297724828164679527583130417437185068964895873307791242291681537783651121999538356801375948304015961990875997276464264505937460785585458914666487761777692883481624106680994160122463088336851098325612648707471001862273011526928715898459734922410654740035000667786445267866832795434399456095967922711714977351248250178977209691949818622106958894244836588695032473245990320226419831127918865888029977775918263363883529931227035219079863459251891101662549477820618524800683392887240393912306209859364680194693570829429645920034234728955230240493400917055221592016444449650557240332185383196135681159296065680068294073589044108500621437878674167798645980829216400250181328516917268014926774830109191433134338914516826139658804184733351641649046874575191671395045507617445017814360648043141851718007705158239350176805228843916252436304968595769788690054742243208193303101956202210450474569829381029374208780912241007476713189110574472581496255729575456922298419928554112315121420629687779555418627543943199107667567391019585946536813892974280334832909224450198345471828771162214298909879519637931864693283839935187296360982805199523391335935873218503041040071058981926503401730135765856870012524607227783406665367280874601724370865877776029246977873353230540596590890119029908488160164245605051442004704620657538441147963465014364746710279072424914898558790161922134135331462022186986200423162590791044404390246832894923188146118797137849611303321541417885139743946028307932022970199924228408019752036551010158113640476095134007170258818084436075942602525509205804105745571607688813754423225459544472816225104912915629702151000035716413622252133634544059455393943330825223431780122797610710217631615458634571545311428036343770799504526940553260212926400698841446843993603640663238136822785680588298809962380487365731950419058699587464746955071426950371346911896621429158682220223071558787069325362679180255257673585800303354104814621317155029394200105339985339461258083196084142301541408286014755329270857495451760677680216997889728657942419316432909332370892594196842572870812289798652371213238167697588978851575996735972729706503485287786866491018821550877933557818839538774508291588679089028826792236454317836598287006831208066397137934750061732539672402039149545009601455956132371858755546366616716626364847326676459832880203435558315074908585861522590672794744901166731202237014744185127760035271592780897787355452201876680251789770215117884167211391690870013672818746383040417693592456341407023253505005104550897382733024156091766966319969345298673142082338491575657645537459800861281075327645177142783520933115551737446411169502535027015209247367421354282064565007466665542524660679469766162209344885513856201164641557927855832952097825189862705283513663203250191073743621520422796342715010623706900352125138407207043089151767549578727859569835351542021910456879487372022873197122433901240933535765854796335198701680387325472930001751288995970225454145194172793925738903388274953647625498020562017850658618717119160318581094558948041571536882734472972109912358752546324215081822697832201208229319108455670631687179071090382878058384983336238395493143679313440997362407299527814229535153077055481586859246713139792103998338791046189043172338688061250863997034775669864413837402879655866564010392903438726611409378762138188829285193141445417952932881018864021926174435620223006075683747236604610908411468287948252735192822990200606445580215373910619064493397470239835942719498992399654432638443135264712227062221549031623979818491958754511900183197446988315166882809470382055700429440063977560571083549459996785301288477331410918887381249608109282978199345553435512780754641419498528291743525815786809032327854436567111277322686575016960422789039096000954104664490352599217036591411476594045614100278546812532892168443994856394955868794037889643929446700095260442876503202255524313692467955482946104738213749185152471750661085857674881553528228947089107362725719719753821438478602758688956803054638814066241552829896826460978981180827995393645028585801020203090671884691122971295782514372608088002160233553074092193150945176555664875048934354915787954081218259535903567335139034030455919869592176265686273087705239283900495569480503921299740241784546125810998078123088630068246813197340074723701840092674224576360204704540924401079246747316907421455188148403464168750592022729871390693517984544172479509931457304912101853358339317390888322003669627598486964162474842205002104007581630677807579853949602087334318362540254185419281704665389759819154784996704013176046034446435285540841082251121745693862562261582915006542270423923186283108927547797256660433137486110331204488152377783093098760814025228832665031471952899498307348159980036837125675463846225457727933519445229910702602005207031643032027295643402255794044654785144098057644030228580753958410856275820326199120220535117326483920163781656720154198450411678086992749313641855516020162388562569923513713916132264259561251838536980198496034896931533198446045075056449127885525312423135979508639350841134710306101450694582289981485943288727723230199775621968527036080838232194281633338141096668276711563245981111766458447598917611029826087528646411304002134073735750532055068427489302667344920100323777581161329111254765680657842358632198562091688832637838184490163333111248183863724249329003806046954631817957195202204872363393096861296352576322893743694285414949657995221881252614868887664361135308212543338325965481137083512234986800213358302803746560843008614446307008874201810880033842762182548786167395706668396730919679933528291816059818078853455490095539851593891314033844559624360310447899904960233943888812250929328518703972195080358432145014541607862547280211374112002662276542484929939068560057205396764885191753825784541411148596033342346564877078938198353232365674402322321417677217093052363783132302022244640064081844396215929103589302272754978243788504801471836442149832011910614949008540528304102889057975842906553846506818512059894359699137916512111987021767275775099536283580230469444128341304576409492311992008439167696603828274012838093943053621096554093116415063975154177106723688646957569025416355154559948453680875812395286444292413462956688340755120106694917166485598975564649184207818398025257115789523774591701065060836176686477309738256594091216027589556585699750791423343047742552916820225436645947652423898177159149282058772566849906614155997086665910330818799213983070047462020501232040269527021200768613364419428604131646901717248894504833346633637657072107197993140223101597730752798371648452588768136698994777957847725571994629758374092194907913744286047054254742564661036007847093469773866766358768450181052637971721110669243007131747179857822342788301265456213043191200499720087735475376955385035763680135561643874148408205638570628566028440948653976224398236052911079983925680202273384623732987255554623414179748205094071200528862176039540348401159138309299333896737644253395732277177365875099792834346183292356015899340419667713528095464767297241916031942646712570179562332314289761441486546377119447590977245783298931113468371462219917640184596663313626335299765037574989510970121298525571543509264566910347124475577171256283093791543149231183871456325569329345315867731510445365734249083013595822670289446728700002756519188499260496073004566814336133753250311733091654151392022014636661072370991693348706662156689550290444744796763877465734007438524977241980036507861081808725554335513078639475797228737642868394055737109837423825489956284330344163845029358783686554712550578302149623838381411517714320825312986318522279818422099070214374301650977938828265123238694733194645983496416400098513869608368266945954099701640661262607670430684851695390371123636179202314895843757004664232863581174182711612882320756432582126344478292117093834102763688178663354764948058261448987620229366428534739688489149086174340965414137370307380948852871812460750736270579029864173814334879404641198558837348589151577090108012374233686748141636508622304895573183382946846284484636936512282506922448956233705710192673629953299554857289330157074367047304722716585368678526202980461378138277006708173085009733697704798422811220348734485400612969384724609517840059230484908172685250954534675317197048831069496334109702185221100002293819186789246591014425731255479382831960445905939499113419846623202206311382730398369926549945723339287946163460544155067138237015463588493370592752917936529945437099878313866417179033160351120541899941154384254081036568674379013129923394927629106896138319203994795928119006544240673221973776055553503909719582890301803656458136535854427319999100467976976594127755665181917171969218661789133478000321973139039276284925911372703883310907680508739159503890721846951686243388049129618420700703539636479782256059566917902967473001255058364663488804915635013653862842542022853181008980194709640520763546270451502102465525683921675744427347376455447676823656626581745942038528439164816061594852751669816965575345392172759178807175267863245217978197273024066274201297385517276229689557137753185468219288575068834828733255865209250746910901988164578554001056175662486617981151124004272144167076258974275896518670284657825199939770922349041701180363799822632559924412538758180650695851357553470177930119212220156228644699966295050308849127413631283506290863778036122084957520227842151421628330669926570012216586480483926571498274402411032905328041931657373353391443407682417795488507774410374879468515702143411652309990734046587104991690538128390428598321914038948531205067472507333838128908231656959454432755105211665151532652187420488378423548997620862884559074416943577142226889600641241303063857077390814711929067820886812206957970296610673064159130438861809810480674863641315753869792530455752245844934178284932615492643233713042722467160814057402266065143770351445596202234932699257227267152867317840805777595321883575167272844754667939230964048141854126837434976948781611006276550417620342798561845779361561048801101100656307492513912785010535330612732266679395264859724689044183018840966009649803397811950085367675335926191389073157035209858241750427424507491289093467589170015666668244121426114454857869392026568073142146182289444026988438783234820841397008667942306568462425631164818174447225474195260912631810267538789593641828796929125045986570990926011962778482022827574003177750285113825279165836142751199207362132114449289262483822098163830841984418205794028363989336786705922389502170593384002107326657473593319710632538261377853554840850001639850476993391572100350136192910859685110828913698554893663755366188502515251868456638506602998033968154770613265498324710168065690032726305858672400933034711491643705692139475413468638426388388835423298815538491553030425269582120448888004147184767640167597035525191543965410876710092015035953661739443584237299754220224382453416451940569480259461603571199133751833239337580888219420977200373988036764400461307385648150106399377209684044809309045008353722570187178753439337569129515168085910591519887425360238311879121784512501513265771298320418324962673727861873613543726670386567840421622076471054404982172474924932991062770771732338693353927213935733777048751100421659135676534429040129014534663872174164944722447587628866978964868678373154121277279674246529724920180178540743161832441444534521935664473210607031202207373121453817385598083851199452932235987257268896759926119505176865975963208409751348605754742502185122272632688224115449637308223134121987369061622209955384335993282440570001024079881104993768412412802356395988471694716713067413539569011258064898239472119012176891699710432683063577802507529269203893901933414567918893484782988833905567364843719073065020580712383457549203454046485694256154384856925828280489671899188601673491966876505105051218982916833031573804995303807361114437653894231338592022590031660177013494175710116687250133326959850216141954164244676937829275533829531152917992729386163446007062834345391814558041169250940979139976250344740280301078831403228650289368672878851163430799290989042073710656561567826532031607182595621826369475815498953051119081952355266849235529859203388676917306164009825302436233129246665312759364471364386451665192863477999811523453141951241674951223793179092373884750287792395463302232275543744538969078856980656153535942951339398939470319503326280320223198053552894856789397851891745728815772930372534463254824242966411303188873174476741833747664048221893784626009384029279857993623178104184277052232982893369945258161048079487956506293146444634079108260849121477376774286238745206390123762821495218717882694475253100368408077604956260331809894999630948942150765286320636614941641435785217280600836181151098126790801144855285758679054432606984719088456488571738268067965556296967583705489844589019450074232798126427488477761933675308085964974587862202274918296042736771446228029434098150377923002770209662141902326731421432458548541743884555308303628961509769790677926190636936443071713673818621917399550805916469387350922441386066750859892947478064722729086092482369114838422714734210947210894757820224728766794788094887372877232748850411932529643556292897191651922599219407030791517625114541087187383540956917640049078419013802891571227264449928840313055215424400257626199638268328450292909919793919221384480911725047881568773577347065596144399742022493765326466503076113735690057066044007957659934585149340077435195537262233435374508523789295654396565502772518314731783272402756580428289792057294827900702658848688366696320428553832476896302193669743838745783983144138317587783790344152381988367992433896843263506899014755971268000589652605595618031960572040151785949731541971455303731553667405526933889558154229429344781921723555463122400070613530698076493188471485784062065035496144889433575636415111224379148571743880381361012867245532848163320224141255153645636501150315227418839288328877952680573279944455200359057341893527066923518553232591101920974980694420877333530812022056136675239289160320758111879610021667283319365686541203180089902012846269881775999752294624718769776841248476713966074155650806651521366364040998513439589674469075164851359938879476273878376123967510427501628527727471580029080208316258408163460336491730294374239746947569108141152652357927428887437401673119774576194630268139228170292731682637205883175309392526703202223076291567550874321981347847127256581083843855621422267596402639964231045208516117312262439104492181926486998199700617633605285550086389430968350050860911759190523905896793768788796418213728647459832919434010048305430279353193271184050595497790088642280974769671888342818093281560342042711242066584911627332322350956844780677551333353211171378941496034259938180152043805662561338389061846824166538105300578304122648048250253868114139084011842416545180710452491690334917190561594543030118019688612022735441367032133429129562154959734432875244971853310757497293600143443576515536822329051097626915374600720336123324724429255532287878846620131353232662459564775953177363482773660676759170139938895025399520884723886450039882007613814130417271588384885701333144754325980749328702626434571825440125889851085128833709091606237705292799212275432723875024234131832528595741324921881126763406518763439176987036447213391837708264283614538239369592607632981837025392167360333986985304929772020542822765882920220387596081892216632684757996894542637703830552932788044729678461165729823173076725163086848507304410102659319630270348113616033288817454631366197568172879625864382101873328832974195455802994368856940308351751027004333938641621683437702263988545881049453164055892503860763847187295487731438139615160884548289168525374278376019794083746425583324373590209103352528309201164403852061506880977009459795057848342920825901089960366731395382526571779256594440522681576250447722700734850104526134622812942202205382472848633128814206419404942205279021888934150404671805256802944126404278807544896825751924124177102316134483365951165268120822808688102911803586074118890398434167309740219695498989419163719775900997252696084449611296446708662400754580451937496282112168638148729978599024331323925025863437744969334628523999502854791424959046045930864367762460119587529646101525630636987921777941873679001794608121222764610853671918246402423163955636309711597644699264042936499151684684828446836203154968425312022255317145625367726312726461781620360251050271461548766113289905871093890332350944557078911422487500971948205272956423483027682681706352707097998802421541219613134916281565472885205131419571459316853168022976434458769146379478203694167240667711890729764895027322743498272210050477397314247654061147205031156064757294888196400219760818651130652672434160344653683999968984608501566566195070065611044473029135350443689249179811218687648442013404360837760887149740262650483532011010419773381107070052820229256274553905964104440995002525495678578724209809952755312282779411241142586844958805296710377741336645717063786404889535255254619287560998433317931801401891213223682795370633776160795441258648145489225610402963414435519410247417852427886018255699549888527378885032070481809750998632391494330218412204730003964296235656276608209057352885702774125406531041160632610673386542799003155073673240174394334058678681988727611379491048672358851536458921682863318501877395162625012102826058515904097281337202293399112180142722369724894622514137002640859130698267927022234449549105444622861170109346766687532342227104119505808323593871521183316671344973377215104505924698611498887836456885453517564517883542800199540258806875965339689364132684079262591006099724542282378515184388815845183686280564826771555107761158112328142632811506336669831939419260518175301362850394677444702491499079220039828520278280670303752588675214453111696800067444475251244938941547040728828305602942538204325861564486767748752442022243024880063532124605892940616804121682545341355704092695948686726946393566068810028152895955002041080898546419348707349993976109118102686725315101648208713356729876911666225795373220909846129134439237429282187962063044901278179995989023993973127560328714018003620179557865104691389360487082597807407723786388315826378407933617347548623197803472631624075242626614929972568355229512469838523530325892036002879769379311572242259276985069568660945042171330087001669391697466877475090330243111528472720228269315181972890957806428325675003186618209209047187974666426458051412433618998593351573584359833321650659511328405198804941384687158099571064338263217360418717883127737074340708990602321063508527296973942076772156679480375188535540798120638651235625736342202960669989132167234625457458637482669194885137935538039352595502825184415934752909581135548803310647952986850546875164715097650656809302858271584451196813614166885235364203792180563699960313347277062960852320319604587834065949570528555550202216680949642984528956467799381350046872439013112798540490647411427418496425566318797752767062235706295236920434187922223606021703314052021833003222439057680819615858736779831561712433076757127248040828331366068343053507015415960019955158853698883743095249081881364913935170675528745180837834022362176102620789949048061141865742266450483208950899296261667094687287393269186141727541790750101976214622207172792220434662855553484078042499487618248845267117933175804043085999280845933620300978986973212022642088739643030872712845093616297621766642400057019669141181408460670397576561438910653814038230053218762063806017772176478557032352555903622303992935741021653340445986917603311035948374690358061083307671224681836152560071604457621520327979250053307431052854385358045570389209621279154080489977745367861216870786161767716145515591089672151888484318108339102238408415063640660986602024498084318888800327081932799590597256331756466454471119399527358763188506653311688482895920957122098347457919981120229900232319982473181329800888319048343725739031105740502356871173974246751827009335589243623711841282977288820068161638093113728130347016189085147267659384867697133407171214377125384855283586590615919154175118041225745632666599623925798356519842599706930432841523809095266714811917852615831397120281430652317399994150383619541192179758073325865310204725411752207535614984933896586367419004177784026304371235614837405646502455318895791746051751736116443287910692994942738704796622303018820069798152202241084911138996685144394704702156651192292563557272298640842289919639313602399859180734689511864973578974391720019133723510272183488318546803888291969234025545200418599867247898672456676396664885010873018321294001970522896318610359793828090924699246707555395876171343968109350885215459628821251599576003076014887958970197136718691414468577729099723601598884184835859946607099239471591432206967988572361044665938883451140084392766297804857382660477896999649870789263047040406818154142095060941658872022168435355438913691181266260147393541037875531739741399347595183830925093683560283962817573039475093213202646475039236240779048581179488260721438696836095939131251284326696151317896418888495573084319164813015932851695340847638771453955076711908119864451233500513094532826516065924767285061177096869222292122620238178459523428307560743940921672622538007954675275051180673795417115447302685455105287393980131100514085759173075274373241355401598669846976478341235853218936345941264181823071314986063020225895951195057366346668724547034298495260020339102520008887268966392863135487800173951655663078240127510277699629737880134563515820620981288494214272066680652691310531249969137904820233334969520293106044476482908138477223121385487906377429876806732943164675750086767189839398222176282729840972863471983671456469236079835041542281960051837205660398228341107378687633828892706110624316987631373683269569464214881391964018090128504680248925421074487894627220342782303601829973808072931167996784732942202232478492368476912162221320716517071020740531053844620682361488695361710032955339916124195683156962202235789596674905559831420589944098952552502790149417498591592170402021602415926252108559219374189156205338117818809821008596821811557879600269901110501111284283941123475204397794907213804106292824827652997063673211178709955313063058201789016036452477959957651116512116480400334546516283216409160288693682785074966629610013636017919533674244973432893295661374282239225114632736399583836317047095372022468416494758558719160199638604360701778964366103562522801462635172030987951232320413999228615966907888578196705407797563336609468073328111495247738630372113918490158815801072109890213621682430036189572170315695924112233994777618994445323337551972653371338659148665813280720763190885557004563835750040354630952385350114908673788173647200147817544143149772292671340094319528737171808453680561750874585127858476405928399436209085997653935147331789239822002768407020495750851413823051800030815237288320221028340735310255575495198186801369530075379153556123204811799077608181554036162529080019486857228459962334602104550836671226339933090919054973199705808506175331066706994738292961617958038672950935673931712406851254638899910001723290727515442605601218222153694681167465074739735052483073113981936254312553521726217726990455565070231926783471308804068185246925268636420688480134439950261932507748185907878172595986849315893437467580013689551694418531082394846579988112481971162169874751461001348411202228241664287968684328030959773630086778437702179208937927638165973643717544342334103076144416619320014292721096468603377886114274724977106046455924537775324041240894994143206208323105273570297739023239328099386220983571817869730227148712639421970676831681736236849204445070219026808751059867263303817575115765714781159723692779310255806015790301292240967995743924552802944730948847478355602467102316707734913434537018221005828361548103932216487941082303121524475940547422769659370495502830047543372022873553225526371001787652649347902267558272594434985019781619144404865618685268462252280776355637207681486781778482667146029235070553783617531484974745245760974172072146770852736935822031211882687185822934790527997711573699405987560391201339231446124181982388451741559050373184348127234093688055289483239609821229299377888776599682929240409645936359601778612309665028572414678314583275362534818749525752557347057351541027222087086297633446756871964770286695868196078453610936486184777300327378714420221000836953588493928917808323354723051838167093758105699483171522648385747572779967521466442705648025830888275519203208719214668431231616454801890491998933007020077409763652306625222747549858515842229692000444877362877887658562569540242952296856764611327392782794431632742969771154111093393068506348373617476913094687750766431198529477407696536558637504361810401275826122032341412479352249848558097458823725007522875318446697984068877194883699368615167382290094652576284034272689825440176908583875202273944030577299703137866764484888426840862993087791960468751494144026437029923524945951690265345104970503543390632475107568928833117910174588360578874184570173059973656320754232311294259483183397977072898949753492125870206186808157372321746601609308659688084092566869296124634723717072639372630621945940417132625098558912882660119192507152475335369723248053548711218251085490368390110888524651812224910522796723770513179984238336572154053662344885767598899290706949539167075039156452799195652229092022677401372738501011370763218828510132431184302077775583925002164170800066729680029844493702926626009761776537422832595020768498027773517551094373434316292363547675123938795871999340685550057450875759353957069246132763910756340711019875307272291995275444916672918470767876234746458360685797484903842318898318095977591493543679156366494814517302505558726684952834623903357777087551446269978032699274846845153636910713870318039036548927844270825610952643766289001543859267159735304837911887711369117820225687627308933421407917730065038956185922352791839483099046113349543792368786945350609388562646140589632026368342165495597629362922800326787540454819332797161464897524518914561145361575485994615297643979915346664826762086837229858145426314477812671239146923655166289288604940075771985049580755786263664047041097069554550684406168265432379411441047219083096024263296251099557341929038687303079408015945806540321347563225298672171313027007659317379708424517566617464090099435388166961080418625669010202295358883491812839108770656079859835485672750543187301046305574901889539448629626366504630357897909549153464775768364879310887781711281577642246982649306731453974639640191437454886259523187966499476964328025213311927104176252206717064420207493196167194390575715896938018206732019275104678306613337409565849694784420937806589575259384057662314645422194632596606090599023803300443238303517693317709330799535425701510722436045615824099504909635529319528845006878837627581850137497749010889805456004482022730425557119518684665590664112584637248480134405754111414028577253222491045972629761818004329395968150797044915955493329465727945772704990530373345148329215347645102325397597778657902837476856843578932133591360788856819155222494611230731077348087735003024496096322907948163684326706228520486484716236620365841233214302518414925705141694625920381824228999012615565690411624691853692521248584598816957339281036699212705557575410397071843914465342201543292071648464921927540901977322437960828556542120224122863240049605045926688376852505758688293861922424867579010945344180330045130563307193543641074824929318541656637093921875825488845521679713614735218470467443204409025476496934399482395216980930511632059896212747567860696433997934465811263970562146179789250880556067127136869389162632285987336058604555939202327601031365927183454072599074945192023581832316520647380255655459890452436375595356010366254194435936957356856194066171121837988209773473335329319135217887526151008057109846087490180754202289654881205814504127948536260475791830808284512761429776958563059847652229700270355865091693571682124823514778381629094759280812072257949085766580354629614100271217665028716956956159308218141553893893575151581670672250015932823342166599058272070772335516092511725302605047335193567780545818164032409961123844651972574104951734137492630753501115426976458235541209002869200771692532989732016003349007471706532568013531926725480158995520251218755879944227921172714431960775270174315140082282554028042022015299479463310399825409993232188806429494163967218834323104164225812012880319283346807232388935502312522168780354637767650449514572316514323313270128414658747383746059896844247293511376585143407264775172119539067997486349629353655623840361551667565385502929943411783640502946106936923216524636023889042593287912395894065985228747483012513903400683080788783170402587304311979906801748254354900795964976181325176724813094409252471938513205236703544444490004358586886305973234577848478263534314165920222797538473191282608840192863135202783548551396628075920421723427294171440968232744770657459641537234945134921404328244518546482043198516352519305787431838909273605749423741086240779372746845345459593298161445049490416271527526115570319251380693280395756695333870105043101161973402245547238766548321693396320277783064317349315613651070612988859873052660764345905012540330269177562042723911963483698850024610148943044374085414383672434282438917724717775673653208701530553307303226199305429041600713202243862904798396904770944691774984554232693254180102001924261926693834072232062065202247106977880504728375150872498828435499314649758365521852315726875174378204123251749957304464915739839858109773678681620351136625585072400887673941914907346656702108623490654266323005372987879822836091642583546291946184389268508668537233864899067799514091003244579991071487285765942365363811039671296497512262711302294589215664665190204376966693727578090930992760858849450556575817343003428273454587200500617949922022606565220299593515075192979407880591935559760906626472263240627599413473553683073665338280376053722731666406175763026211624117754434366116239948254856219339286597248554588256518589930893342386327654145392419758187714005815777482205582326441024242312542276847623574369804034013275334320867802967306962670495359276795272649588584541230314363716474666713385720272682459322348514588914576181602952149383773656457542981414000997526489329650699660772303678224114676110631842162640190635878731235221044220228053156508829241894633031989937627583267202904569003237472592475854477999466827790497340981337910908816808231368824507981277452223817376013281050652815593979671237861792115499332202914110043864542006337157680967721789220189857953890805283271366488828416835377773005872227846597065626911408739443623764949768019156438054655864351092106025043003363744052978007224385317522277564507438073713682248376950630671079921114056546874881063466247460246410224756342512256834645671155021264803211859397181600202219278301748477472803594440825460891171561130541078243216723138131380598793978277585043240846681697239845219045093409744126472796945832744277623949535546594205852935671863720407663997314390766187710732850456754263979241271105684317066678266481929069234985663723124474893495469857055525213889313858637767544568343394328469858324932854786837648844698419086503794109794040136071425691311531397790597151946944506585785583894509502940080831106372737622496351715402177842360538488249427904989321159907382022424985776494086533368739863230889679440840772348536900915188936003573386498406940867858500427006234662442731552881488763534033983345738832075563551023180362657860520066912017826999198450652986448113935624869014976190345015345046939655388847526908029243732308445643228902804773493709064414244489239702371800926491186259742410457817499467224595080834789312592581398818409709314116011362815627336252747734030348193159932664323169962586754660544998969125630414745909542221161735197797171203210356656820227776879560699450203310227365057119512509461781577558117204152341171621387103869139755538954578765850515572850300070738308781655720677210226321989154359385773207555477604569011345777261733169728513285043430124815389508830830306489883572964715199105674760361026818610611360565753590842564716485631261406829494284666074999254657845596383535001910686003925689734491070298760692913528999436602892686638757439150441377553470574162726682402906817024773367045336110140557089870275006931608238916701633394202208834244490433922561210430674076851704283724015820819147754730553646361363403942249673247367634053825501846985518328857080126077515320894345963938666501480637842994134040101508314022108172208820654761335515435143970982662554627886793596677154285124933187774993153630627286674666968909806287271436635808365495059924886165746327102951180092350584430120988597896489309012561632653304931940872150437974387262878098675726100307031768380424176953763665075836384360459068257204741994359076271655552839872022450882738410049741639786236664476549056266710895202371460589342121418199347904902165239968507031617066887574249917541390449973588782599399967685567109692455533938723058335342414016988253470812227138357488682019501671834479992904277621122761222048484232191166533175786609898293781003195538377446769447098392984623715887466505848016418794066922584893578336959021339479367526601168208040195570008933285343243410832691375731952269653020807053785636131104394522227257195500194010262395127162269392115120227957104180305201598682561018732218416123370157305003078630999202272090023853049710597101900945597425549197364064958028747879439643246828587854880911424690511323307754588978065617051961143243689968148840059496766849431335804080489838520675208298290085301512624266886588366105504172301714282712329591639161102223432216265477581328572210204615164961569735051913339325985552204729203412275564536145284247242461966991128747139639019695195712287541751670940071239791788773274280325150062931582540524389202225660161460773333323519504964817412535069135816904767622667837967743980520188603005427121555439756666928191970964778114380502099537546530174651093895879162084762315065518539264480382565714463303123198480159566771065132508882932129447093041397035369300353390536966147504347305715067571242591545023541683043442091634122996572888986307583618030652421024182147442915029736341715857299237222414912972122404871402569094378433510370163672969516064831345435475323685622303582173420222106779431753575189862022459391556190502981636362509856970435259758259059069815048516830417702342993767287603663477705491835550920848276125257434006070788606323647043393486827602398973931472225048203678044619763003134056886996906204221218940661171746412009647778317767520371839615845003139192403707243956502812432691427360887876411580681956756179020934360888982025775270069552883513544133397505871911557391455366587279458899435439528693629233658813234870567565468463110158613105710439683459396724183668472726569874711136620226583697378307536104525821556950753224270020165684605810357446294943462603601390175258155537027026017170159776325716515330155670396041984422754471282784782626746978985975656716752146545096773796179325472435356831292037222969820460710970049331513324772973124372801082219400588028365254388820787915030223438776672377713935745941966912635522972814193190199220991973151944134531309168478866869816663390897692343382996713939166869148774183594803342986971378380326817331965705253793954583184815008302168202239690564783999539477105145680536616335884429113807725123325441551457477127708123553504382135479329149576956993606884914445246784459977399458215476415627894392972658697658330486210220664498544083506349825100506779007232467326041195450274826130919095791072121180035061460002595889247089836460751669553178424696336824708365968216077816066958274920589121897529363918201076498318471841415540964435409749990658959089161816302124526727844419691072204977986104037642844116319587361162138949351197174633462022705370287733892917617712970697839009632341688005602380203375306944913429714607387333817240423311559789036269956941382362130832867924383150392808130364509055793601578734280407922536094442332658935151557274211759915227495380784880786790554140406469791637830486910645121391490306467649989165682112033626027555551449969807294740563567842657753954336900219272014995070176780148591732483393695808193600171828533461186047353006764889942432400788051715683157329446812382012276773089389138957663887297949120227376953178379199487710249614610076415428199755573626825294005564035200134429622071015546822656653579956653887162298607508668152256585278928625266950345355403218351930955877376288896507109732441755773432556539372385486867843212141394984409943674559803541478987156965606333765799412379861330794967973801085227483210025496333360929011912429213961870841923233610714704756377499297783326225448895458747995883845613334037597228360628925275864564598593879030046880890499210213448809807644613789695997093202296834358694099149266453118099800193956864124545614755560143869582017041148409572869644833758712368869327965805913132001214310742049683072251776484778056414678273309083940547664813024395829013797531802211677230380797506775152064254826777851921189569063486314450659569045692792119854055653488817404958277267513361172158981505354694356778096618256135127261060251559703864344731248149938553744446427830250806820708913453888779903546297200977439706514237455170373140710196132279688707907359225521838102022733889638793439244980881541059960671974415691188453132995220560522048074587947652436457974216240032637479317037049420395127899490465303673730790908721975240620700652988112761763472807892999052650550397478068778976081051505293692323141878312602490484004391934853450325239453769900141711431977564888929115880014967906523237625022942278761913752546729779934454432960416850934806230300878132770358943373145619426953351570284022513230912926868761942060458490413921852884687441313609258478915476317008220225295857129317735189537906011896268309633899353701975032093128395846104160817292258216542848711135064364522121999837693120749635146185761884055968811150028482712203876136837158719449431844601549584715088922563582668122880712983474331868317324564239781163505126250613097871985437160529322549733585050645882375818729691941340218451025868065986993219869609624035028886358396839522711357111812236448702723346795315750259893082348055750739283010154569731887621753824468645319147625084022048272666790165202287133955339958481056826732183049436807593853451453032131388216209164224631072697065055166771221011754794710561706048665244038914557143113405972669584283217571298924677992364302667892102613195548893919406220170513693443331046922961256721984448901515814154263605027101544986936655518846697718792722072782659223765404183761124834127684128384513017085236349328790299337277054200868082297688675447239726989580251902126103765842310281413564472294394721041924270792343099516778164332404977003719841881402022985496150669570913614930393945666851104356718901606896520488061726554243944204166626978947198269118298725128379318681158777603080740782274669943593159044780329890387111329093489001661381173152888484746629490620224006224745238956260082102133717871374462589882022880070735296247278070442368028509171558469838895403424191537618042291117239714764447212044548978105610258885802390909555920536156369368063530812638944752805332844680389675670781685274914738582002782749964130950330668616140248943615001120225399640697246831427880929756449282254984966373403015992462205179761986955444737087560254976776317675022177902268050946010439592158591254529994266589048023971835271020979028428566757886038732455222361738241356676144537105758408948402071171136615453166421539224438569849557832896672136887901911547307805615185564967491931450279953434318130565642259523251587917399800792015369203275138113824191912119773668834410360659474509361204224818279040797075373073198603342054556166635762494127847627561557456202253258440691799866141753346420346359708078311734234918682231962643835257610415598561616796184601874675285608040237580621732979469759664193176392650325301477634909494214640479151463875513096128415351714508616634649645213075898311653427336710867027450641575320277674936273448392950569868411083559746848043982391034688747549280975358280688211036380937076532360913076516457536783200377173014180127316847309630630857441086689794176119842279607974450772257232078809283658824832075018469832456944853117292022992506676737815203698035284312065899825606353192388551782114986513386117530117439791002670852178798758669373260643588286713149886235558969606770833835324083163671995093571844760477608865229866945824367603572180460173678268656567869626757691364453628052589964869317140541696043921940517831964953839652033827828912832956328988018639475889546377344248158867278318173967840589735495296820757352375953207747479280504892281297470215372062645850839612914302651805813298211824286892531364142796863539168920226653925842326066713054101758743818161867621999572591617191716440702019579696982571592613565307253680255082089985032711624869145690329802811519802152561821446982527773903164295375843731429597318965768367166919093530908700178680105327897292518210034115996255605380846995626628312184142978005137340098505554122046247467023809873590771588316792978975072913112142023363380717186681959304010172923524911439778272060107156604584756814924853322299942075224889665002334073924161862818211890618199455147186202250191535782231308154664751168990757602554956572678715360561958061959490808008038505391601590038119758670610968249405932210169594738579121785712868832161219964411240878858430835224362207307735075688783032656198307225102835614354925246698052578570911117848206052797978508391807862606393200322197756522474187647150694921542657495420880935335478796800522311633960723103859689601753233967633451584373249302094837711511619625250312287148080530866688315301436519454289097193858915321891808198360632108222022156764389873339734184183024409918597128191897843112598568900230219286366557487407889255319678136311011352583117259408331834104372436800433642857700559688967184054354808265690919808580346958145472955940796947305637587778258795432469790383718830316115054678407513904044623432068577814512658934823813939373359451393524796620439008361290702114650651632837313016214694823233290002680208049234665747566168466470618831607237494579337272616972039391365412076425514512268269348549850329053645136632152855720223396941504348169017457640532997994819409958664551574516218513736005249269964555740071757794207146686803784308655515006431952387256740365728300398588420588286358979445353737007123794797860225282258136587603398394584309365314717718681707017718859557894764030328962403019934719732260044481402948448199865290410064213225368474585172968364834853909221168682358254435611990370930902499756861530427932146178390881533753317038688015161443191951380576836126279243164423691775164748581468508901362181805202202237805633351521977189194834058841066140177605441791721655983732171805011587594037178487665383100943414876827026611530815403132885546157518326947337088919672373745453317910653743306848709793268756639461444788009583458371320165739975194245409257982948562736126569878272554284151846752581836627525516519191945834387601379679814687552723163868848664418593651141842039142937582611461972292387284064210288694641727896846946326281254609563798793231386398379335407364258968392139216833239801226906482235802022679136870105713132782203521155973809840065259011550082656788732234479512156664773839507048927021625480860228147051028529182694545510216098401790155644726371854551762391238706503430151262144464578711577942632725101112489934810947304479278785643949573281593504980984532865714699524262292170559131297126758050349208765786208887658589388715619454169029936371334322571463583374084066418186096515364043624885666019448203918891710103984332990769331866419577865599610548065605409690299984839540248184735520224440555929697823524084899182689658749992697047867731891409898049569911871068477974349984731309030095705659300279464225747879061083249807849983328383950452744240007820942255610286729996937108293968220050052165423393925233675628077355826304234546848362720777947764437788916333314516680019177312537348461228986700589948122243161811991612597925893110928878402279985635200535297325229284842453803298288068009293588708788926816619568180110589948573122819959583975750902790329678522650874021828714865201202212939179332535723684419933329268855644760520995176115808628578160442789783606901670395317151003132656398907831546245815403650895741516896812491157514345263228887569968229579819505420612316038977312617208573523651349763696552416682094308696973769814626995344070207085037727843402412238864004868341192277110171651921161676636534604673511503006269832874706771114428370795470336358321415643762971827728507920054726650603513700905047376332181585556343614764557522444562211372399191999652133689698023752022774548228930103637500097513068962484549105827229060892384873234322444921685770244827811251691935931649056476460695511208929981889950175486304592626490328383428473334370252291125509090506297616001487731610576381610481713766700130982468158497964236745671219843608705836045592467205310882625766880102270196447426989814723143081465859833216415463461438279750631461073118619036296281802097570786712490776664278630196942549731359020534318517752233014143257527678181069255194791575416256067021116667142520221184331445295292434565846175139466693503322958969288519527673035674053827100711635658194116014746907669652482104380827110261923910259374297196230792350558619620567148103604567809150856421522974578102568590900060600860427145877398580694936982413396025047061343359842856521913385304945208630635360268872455011620418281325775927018699272835239721733551240814291192951697937787200536950923388196342037389690899823076302235995337317266405338207646514874831825102485674626892805840210159456305775246492202224346883197438244134898224777376693512768651619935728303489634881283287684276027285267322248248000340245924163327044108666151758319926894781705572758714127574449632342391798093103052580349083150079572580226011845436885019181546406360044503324925779822868103537111600545310562666301274734155088989018753220856826830274327801445750858167132422417128387500529912909382486630106355777678163609991417943478272304906233841113552578156231827789272470538853896069466903842163760257907618293831019036727072022864467599080621072502259013697828279791884158065791569372560099837004594482540693791529458166046914702252339667955039291799834510262571064059827314403401266831309078251399838799618004460346361868416425104419604261353154050466992896714361114432562876096603315707391193770830588658154984362830998200110743610877574645603877182358669550801063857287125830971767924379735701209608747067227796180217238760818559893241264911341709458660572228280221484986735477182895024038962736729130707205640450852012620225921928835027508380845280384430704650088727671894653544986986027380107129043068125087587168724989276567150417411327737534664892689095045469094485163677513812077136155082744949896149719974171827005393430256274090894262699023293357002021839534135271824993576814139463407447856470014997400409504883802144770901670835720048876376564155898477237309004252404296626181894155711204328622648023415160067645700142985481074205950278114979041829777555023816587941292949100998518705031354770166659870896195496202220435211054017750433333987953199409888181293717701818210607852163698301671409149226720015547880677923978226205436151712596602924704557328431403735793796408345858852414533904728738132284465934069173596688250427073657160417723233790923218520866340623834880263556863471351707840179269978907321267024475045782513114250905398418038491025353865682873856430755131875379751396827000779281218986278704760250930413277536031007459088281953556619935337512444827616375212367221058780941900899939206503461129922022091713025128753027304612178318278529858832275544311331816198714512518503373679639047324298712964318687174977153821680321538641985861610126175033668658585351854541736352280673297901875760497426903693550066382298518690141410051618899548268535281158208347890687132016483954195364561704353200293940460411688594842845710098917376549993120230288019690662280030621895026465669933491790361740978554824292100438821029446254273877324826028422192410460048607853222478666328066844582083163631645846390633103020220387290639433445617627151960245233806495547422146307778519562339688411234878950340767826986249146478356247212954378868095364329282140770157759634448759022631279617176613113577468405087719114113645893464104512507468649233787819701330294984013845468158766885493262598609521716305697915881058940395235886643173808739104906326989793978003529658489784616782683744336284861204430871701726172262545769180864875953254862220269491218909249502685664937148023473214648639500466222162977649071924492672308063202204105205008976052028591209651267576275889515720237344746878938445768052811564172876345875316864151746422462474366845196300867571644606725632614149181058501910629321383057873828174256478061701579794864256232993367352635136218162093369048793750750141415600583629042551755007101190281545659749398556782626578254264040768735654579784074582260746071568185056345566853424145930557299911881239340751098358828909039989935098832593956007899956421955486844283047080635816916622898637034322975283661778731172022081047571542503966814549107732092112965554643030085326629327785271808789032333026894150297168758787972582741644226870196552764788577961328280643246797993802224763908489216461582307492901883146077614448657678220168005770723601098293827710087828500377893047866242417521475771220758165694928052858963025352975574998018914212901349476553787795220336140781177987017418133195592666685327404144981208474929549639872106016484263392134498560348543417483064617533229847631714277867140192347601104692344297420229330594875172630297943414416045684198881265631964416330545639801896178600673119890325686337896936450744640207806714369647369020629640847849135995366663070036164682103890049781761257008410212181160380617281502524938764644056060745245291384322940601770861202798164148061147138327702332928565684148911593277884045379642208585930857554997621738402166761678404432566965327719346939579306669674472376114960498238369495304074220785652596237786161946095019327488332991080763207731660044224206557920188570202218575286736544822109536563799404254263969022696244171749197407808142368102920696455410323663422326616764074867159946392620960892733651145134559568450367170875318639359026720591106523473973586630069989129732916140970230177455626232878525552455921357506796516885781098325118023063211932348676149767600714976956498375775841660702508860940061904454257952288327374847446779201801757160261797361768655386205932764688811200457677530114881331721515652329900367949129046127174944155550616051502949346490132022427718348387192704821264897338498142251754190382198980582080858590537331948291754814107446566810017235059012985313785553485631871615222135569252430563582416123235264882138526006456418603749809024016158002591593215997248502537861636387365591857683196203795770110796888345266473950761977296827021958187546592262208513394747169783655304628186042653938639235030203609648133487304891900347775260488588011870437664767826725217048112850371123622306421276130172735733766063630402655161904359050903026968920228391348386515591169447539395499981732292696017391324941198263712314873967304823756676845933188024307039918142831627473489613965508889770013863522194874689910696682637152910941696924863331711919820668533447399561982539711151007508712984197003030650410000317779466857871064427378400791475291070374205767469650069862334386941792099121730233530712018711749328409063355999335637590833538696753277591705061876307495887252735237984919056630281638810745437316394830070633513194931923151673174493410344738202291897796263300416705463288469913553140557821514861655238211819765095719592681782750067368083732611539697125403811870023881501088967057259392861653081062512732159802741820151860966811387505029256657405632517349535989186494476195640202551567736452393305030469116687209201969784717146835625277210083251491382743305868211341699399610891997929686399643869142321527376804477287723970452224815173525102711614748209972668704799303247819748229872249894125055077269534361309245201579692345326539015824354852022560782656856988446871103770379000777014098307757647707877623202570457164955921898447529436800193391909290370179947765370600592405653336205695350708506062920300792895559812061200429917315507373241678449160214849660871195050636640891501435255046839542019501774754799969285693462120655741233163261256684834482346566153598361984282859681233293790452058395279483357776623727301398049147869912841876326386215735397460541817223366651818237304021828812609280806264910784073314160955434802314597321004120920222318802569464517525809455708755209211757063103708875387528815604883494855398546544383266579461346178135748079790280297958428931283620709881589539337259366109906971316003448836797507310257360558816131293150835221366194965156665486668036710088695414934666458444148527144089907765883843574210876919000863600319905730530153294422214903589082515035119605418924878335408196871507748549615526608634567601420403342151376220564502846524012325367517690053212186306689395136748935423735870434087800943893367202287595153943590505536659531701827764926690234246319201651164647991805495661159809202126037138580781985449338613272961614327295616144392873897686177045277878087694701431461321645655255896165108205809813448103123378710225279590519861587939196705594353755623159244401443655310475598714540413396378433948040080869056763829598817958048128132529824036940089879554231806507734418641589051382425321143878331132971118552441984134140381408891372747949481069366403506965306151216591188827936141570917980456182022443036617966914853307460499853491921513419468952223102634771240720018984700282545112890548096209227079430252524570483114387043941054761607484196671630897192229382831292217778755609131674720096579965879445491246716692789987618017637972312155096359814238525198164651629889839870230822317827717961891270804162557073654932060392246382094944208086123841918399146485970434650026791832607478910588371722801827556483505604871953134013309071226609035409944911942753302081715188306657590014948127057412167320225730703554121818136374389047425938443634554099288540330029191357745137601407217756181480737024638897987031115261996953712402271894852098881227579460088500405535467531742784375960944770460083667351614928392064290180527976361882724808933762252609761482984350797226231108061455780782196888699374566250805810151060942062107742182135086957575131980998049260697174128414440495945570003919562011402307197553597186981276831678257195938468902026245263757634444269600708108032539766084904342681275652513976202240984709620249392857141402427694684823983113439150862548188277761063481145059916405391286561781323268590199972138126319735914152079258820890301985127199723670259417975036515235803174433333127744728923678909328485337267117651654317894773728101069372860764640577957136767500536593307714856707892571071355503355567223051183530823576608828288061387097274264298863923557366926232711244788105229108783422841237691187435928713610573671398064846550709352985015170443183913519116910102921827792596527762502022461669373489110204493589777892842172987737201989976714278379705482481006630026499789024292968013898102289784206731373128745820658517513301407816200642291640224505023116989317532958657552147229465355843792489088369548536842378902366008544764380830691774370978687745889624415669634332063214618072136223836856009026523163522878942965868335557645974181925258018764449575107982598809776412826207026755127279800149716032961181854971248181635331085788452690741019696786526554438479790389321589428989865220221660608181578025557305098021792579131681428666744226394957030070541184946367949839370277408468692108651021001339653590275143207230231400430349119495333107911489831448702034335194484090379175363300940571072388404000893416072335545135981291923166978416303428273775118168091134951275807682943756159214322385004782668357089334091377111323635372691446280195816284592346439622464859509652775195790261199132410025889632700609805548510992942787411728971703273766545746457176322362035226284431322136824344202221421869207954606995774465218618066947994346454700088281142111179028919516968620744097156944965386910004130113308244041048014310622573057576581834753637750933799411651604461803073597494825845429115588357044617614052361626167110157942410901159311688650566271731428827277013594225928415699781627938803492344421362731301372510177861937861731421379080851037929064610049636886335225584716602105953262290624984600002955037954466996549377874176803848952308517111359748272490041738661950576310919152556292022505903904129922999329113849833671026540732560975962252716068354503256807074468395360000231772347885940794492555923632111109980939553533524471523835773324862762659662797999598178461520273715536504874968478545825347326042759437765544016320029496330507138856569043508334991581530395722253059661889658302403409343144371775838954955135837125558703868501367795601647538115455201024248982292813803406976720742769442973838871632542247809036929942209119165935178750419288852753315946840494195710056591404620228805234245259581989433509260641489671674454570892865580536527535371535857208964979906329984074549745543416258352350325802625399101860956601325330638375146474782855839131316123672189774599890809592105876174676125367235738256934919439218111672224464949621822562312607347988365281738404568696960743302412819135756240832072411972713852427939691570171708059748925675983269564232959036426487711878977399911253641308183255269881449535032239801280444198479060315076529093418528464074431635914773234559878202299211256317227677283324084756804061178098004121430862437701274364383052443546202685248854045976310706718228150711167283438113440515155861701103867111336695194406522445649564433153153041155062825735593129811226269125271644770796992069793696168670250379686041350838749709656699964378668626882313918080550025988921613593736430525277225175032410798944291184533439802276283062504712839454019324980734966279923715880274871558142106071160318985224993090394499812115681604098576011574133090572299405015532022679429167124930004808750923696176473889629163766916232148180466255876651486414979615967041278896508726971939821351258191878066189022185980766606223159885190403537775855397336170596020186425180657381404988381432352260103102027578136475785852113506826435806608793733035938391676833916230097432750327067107613852648985517746754171151739489497511212388107906606375069712304659335093142737744265576681362254671588934635557709407765074497867341227035748259780952641653239637621610051305381189519927609320229286897513962355475249166074285658491732456149135854118514900604620993724830783083455947790892343615195241330403941743810744341260916087992287407392175491102306349428261888451382984713132955944629780818190062190084023241244798414199841492816276383744217431687088929030395274709702434717651160807293921449507829999105907848839967741952427180527756538656264297537729305442416571787049121782288245256572230760339214920916530071004191348468601721917785656310330945048050585527009067153949129913652184202264777710665239422040305475260150607771897368024883430023112248092241795032258878111338049818056775569270517494161154852085347096194782357073825565119286903784362461074303619392302949738125055319667469028691261667317932521380580327653128369946415294632407331543367149552785700245605330198542270261932034530867628270133920610093940437295690249676850332383020159435043993052691627670943009186017748396038272897023417274766671675504692661379496721364871216017150141224135355720066157778236069990182802022851274062868380396354345527328731916298381524566200945751767194332806451335287600908467181505992207371548727673153627382703702671006613691675803783905672034858289623641645567704140660118713178447461430901886935659842647716052643244956576502041187759662112010514420545761759704256260371184447440185981347010018393471417174281648340599485724968214812973235514468916293158332439615787959811367408279196655010057374076910407955694671871225615052433988612327478055677539027535877104551892430851363698720224335355156239652195203895986445110481962084706723162484556516287464602796588650376703536916392422466139810940271618279015199641596348811251922472461404945463125484351475483583853073318694898473543395597410369888794291943346237582338513906210153935853862129096659331456952385170765081015898812549556632828931446991831376203744266739736202592455618321275275418525516933968413173754918084848663534872811259607671695353460344351071298497308343502907527338377796097953159752388851152312635040706744796202212389616300358686229874407655302690376759749803679961861395179497993499500637142925011183399812769575019547236792626137498788880094171738287163500341380505669648069633867766440043396580625161094441191546421677813783995219751181995117364172910445069678541595273004276126043846000511948574034992172764921977150015956218988041473143133884838569028422771760749268380832175253176123396156442243229166598276865702846748645479143942205193482470213714892321963247648445744956229399142046422317341958235732022842742738736359130543876431666631528320560265907734140294584063603380206557698435928913182983625423827424786131654501676613530217747644297195853275607525899628545480040807511993323299952799055491988111195569034410449293125244971243694381457738154568192510395493960860681045958665130783385721876923999883102369589321504715366388024598644859131017952620968452606462410612197010902273935060836134681416906665058525368932640070344641494557231694102882185561505192591168346385794952533384836011733844920229255896257836590034682721882282941070707424270636044673967815135659498478748169797589832196473167547468607758065656673477311403690199644503515951890171530913744446831840258746342695661502768260341931659829945729692911545627507264614747026994513628873242141727975295989501806852812530985051338786874140686517423468145276077649593650075740747209671639028875974390523082185023865790710737055668928605828137700254634847081856862672037143059196101625148558116034190481319883290979389760777279264592486202208907421905575355004074484671521815220808040809404784828769645123296074582351399331852806336130335305211853661901340256350804773239257682853431425074739591741781630578635160622104125079775826617534493039145197231599188906023549334751948870572518234473127997985901853957149486982012756187977216738761080367568944988565930373722886525476509874224973966679577137140940687744171560043492724432119110341391412579921082169805017175150396733609139473707245820213393702667804358043648124365521732415581222022235748026671679299002185629848856686899687922898913843007904190415170417340780483024696756102596782656742109666506373674686427352944468193529107075580344487743164208834064192083861747447249093864091423063853255186598802901687801906246395501315964100980313085864073944339253743574252778478839696545376144658793489726490678102222565423261908856028906530663057834948948289936965106845600531936376342397126780536391755268720507923104335994033032699731425994726396120908590910862769837049615883379322720226247096503071489112317207171311907507429580681454720356563152073640500883236477581508020628955898798866136368868772690112543412934145799320781346316341580426371578251976838870966955081163693503220160968034049962097715104849457969273475049350772883747931519767445190734334403487733495014611381280880691180468283722444813917903672190332813054881930631585670362251809790410018244394217867138894401401280885535393430665305364927496990736387469286817034474671297091696735200152722524993359918515229579202256155006835867337386981013496433654857787286921808652807197157447286973935129577766006678490163917624343066611897744105440456473882277510661887774598555017077534698508613601938696355787440975104541874175896846591105445750584035858548493801506127021568503611267915403653740740782904557984395056399767976451273745681699298294574648617227427955036608883423520268005239188837714415633211961801304849443964017980924221178232614170163248118024963696356072450844793332061035578607691482329344849421011442022907364746193746538580617743583831270943190260100850284602928503346763335217228370984291767141774285645037675447195306877547196414774087088002335969626314909642703185947659851756035368556898773541905899999377764655927914712342431570353015688714649005946664521907331898116056176820168345675426888041439591007786036006349426111176711941615531029429498215881242357709764377300930555366352084387835283989296448195049776059692993709769401492739307258158817871942483613521886718367782584125210210399945020224716929598930844139958436479255302341768858818457017498143716170590732721787999536752168151249920856182671805632173708918173484247418731282057277544475694978473793225973761375722456202337199710149192239999964161558335496729779288629013137441813387708089096341190185515387294189044798171056241362144815366275368478633429491326727199133397015525643358176294972426899446926060498322386120760453720331470977642649888352599736266153942859762729333582027590402034720697067985820774173492574428878001033202255737394173503536538895864157922562304594456447223576880587286813034083721935822803561145486612178788897893674291189844995725396527291804293031349238367068907322787511329451833744266628687207521223240041330776051378760819649324956275966089819585630399915571755686037002887942091471294557249038862848720127341885811959611761260745556929710573542749337143370874447920410971341123726910299111824001795390157017582852557405370696046670388901143651528922196056962851919592659631009117277821663862899732022836059521264288890691352185744957420606435429957938904444340013938699543753537585614478574679002655474646256999574576911995365719971146801843813040650983157875042496013480421471839180593209387074283759044348416312802979959114468122455675419572222903921011888555568383475144926850564835453363388392085056209085455946261023759620730922175501722418867512785356146285514086629867123531644138300126285775356496721909004893295099118557938414244832100083288664642329240809098890928725651774365232596225520222724814886672107964670050009961463673736638839766461979356599583225000944019178174555792762831768009230980841312076773766904902191235052711736056383205863766195295238896136572854775899346868499351563771249845106229861873530746165641419273940384461769126541316786412549463083117314922828254640710588162022987486880914011192865317431520107770111595968375329200302880691969182079910335647666273362501252175624194777622111474957404031316484371209838218666925090384045145203874948141808420243441908782202242661589587055789879906474279853790068566016548760082320572028699904526656272091121844266543634749591679791652404073640832786249958306065351211088310889290871346781646400973786776469880639596148704547236116006134145647062837081320982691442791509696285229758594465047797463987302452678056408298505807967076251282461380171766898052029277655755126687735764896207449418797044416023356987430515533703101473680621926076614911875786187831144076688824672107093457456298166750906888039729314215813771536202022234697821113189981096184959468693958872344535258843068516006870407933845430490652401696334363754389552598764881787047032516206386215176307152485625810293124567931557522063291850925408034365927147344284959417266556884142730238751989465524189494252427654119770663740489811232157495764087492908753777950170515336767602088655674170233213889624521353994415886901940918384550174711098307112456123131694795490863161412733666346891551908089347452600868467261908018481569496238005376612196623767924313850520228797549508225130143386417249778631593039812111418336848421100645664672536413264578435974820712959476960271044421060700689924664254785125784721827234538354666416407517375696655581146833713800734339426640832100947096265312536845179943087804005984985701514992486033866338095093387275482959780476353787296807119240902206527003324907256974287930795993382602228897072938066260413192624977876146094168973213174481883189496330995186111530699492700312440466326767224225798898694529069785212544253306693161202225393745712637517006110459682559685686261242320500292848905669241631120180688041521673707168924027943778457564153109520657606798153865094991344576286994630302278167882317617352179857560854034100289783189927722972387186645656739572034465236841805630955712911196645602166502937185961714066471044413772366320202367406914704476675092609133415116100939772979334576602819391407747816983657332984336741106395428263964107769398162833643912688655393196070182820151331721689353491273544689787215164853345532022874228406588098229553976752706362985376212202133787221160951740952134864093736135092821514511244321898433220464178467057961822558876638555092229020781009692035425681797931106743084376686552609862577789154711905298058653112820285126195444416702606461126990483477060318244427334991685611906804412018644266931372091554994614248611701939471252058085120373380511775673700251351822878372901387480640228586116795568083007946402546125803092864655045720545374365209666142108114628843187739012678473717408520221309355723326713081651493996808548163090422615108701501948882107375222389321437807150749070676461603362617785422462877848380072462641338486107757115530101630404687962150623655154263481319089201430516777564803326085912884007250255920122500293103921863382056351960280519943798524695589471117649795726997153309354610112712551591368786543399677702220581167866987705622283690607615683812112962275881300728689637071159446947092564120163047077042866293826252263441486595798898200334444332558952564758790202281820153927759339173052325636727731295115188251151592794255967334711078801070632410327711475304769093554194815227975656114259911621487454079398846319365697889206831455250703194860966205496463149334573604306192360816175931888440108807595886213716283927678465626201311302636154802952622074422876120052640801099307910886197334459564515839814696446593776824767959494172127820494032332864223421965881728025712534581920128340759379241726124786237715419761401546219115388769635682388006308652402917552262022507994645529863548092428868693700821236916773021029403484251000054515877892617888253211539333623033627575248085116201386548441888268827652512025412665896692914882487742078007824332067434750809531657253889587447827606127266456957742618506316481576772167145480727932161488691092985488782306013145014558173188352851264782697648539309340898104777140752956891364120978953531463902560583330464347212715919288114970404815033938483103584482495249853390995862558138200055751296794265360482353360928100305720227935228273333744970738379275802421508198767915718614367103772038073355519790186686296393126595988170179951592416918776622386372085675715352107579197614483200810045127216014674958268907603489040986810309914582331751752610323223597095419995518267504569453555495930400751002028777893925221393589209576956269914840527552269449372911914882037079211931342144131267265241271793472076036805166224861269437333633010727008789023326172486531108295157779957183930785174797413628880064520101423817064083515268202201876356279936074166954877683467733357110341962943568944996499027758203919777545748325917695301559349435421264096317582739950356149411861114817099182334401396476434195413041599558232935603401235259754746445395366659605374112810712939730449574981193957214583027740548292020274923907916353974651347078235659133772504448646116468633671819867542997670633966918949247853778448142992811813819997343716461844048949999642469077808127558061436064339898895815431238585129921384892499510183379646317120285182022459891001163146237072165694128256198744889585935773734316406995567351360129885510476896289031960033072680296829328007385763115217965669480117239272406695032491573581582332132917192867808867900759638629273935464137284641356200170130300588056926541957577526990955139909392488502219113632101984066012463092973336424768798791686502047517983528788629498016881656547351563436406905494524361206248436584180474843593066654748345035466187053886622887568996046438183327517050854555100417508133416069043332020226009415402074480681295630965601536336788785150249449289340366919072592336251083880049614221567957558085763432631740739229412899836655219788529198519215821177949279879222308993680155652980652950467763833689774772883423341997529379931945989415869492584963461325483208032234521437217156380752702060605290950218107978420786093384791652156520102282478897597167608158791433667610485401965928312348580853367525049890049490304346316986278434685508343608311746015420215737636792223892507784211355021340860202243208797435497138507923710374696948722488925538168599814943254064507322152791864404799688505758734515666950022580522175399092157602902404277108693749219616268919454033142885066967621964235913183015797011953769298524194289725934613371268826531825536744100882280741078876271916526635725288254428311386622112218527165497158419161312378376000256629319980651962136454034824744090110115241350787451183466245071288545675806826049348093801159171686316185281530892570557959756678437998222891501122254679242022985017965920064192004146742266009491735364613872455519574373312995088151793380431631270348970268658632066862508212287268073298143784404308373935313502921706266764974721339521608010495132908717132330896831659669574553963639641094168945374127121675735296317169988061807916103402951016605229227992334526714279628343316389667346022488445313616349691840764857938279479476808928444292254865729187050109871194584254045990732275127993365967019163478515572073935756372182828106493775129500840914564327134020225964067058259366199681628835383066801153951578052482266897333102110799122988660743537907657572507962528864594525496970983828126130504376075423232196785485691319553376646326655923826188843243231036607970770429981398374603602741660568733306656513388910649254467661159720729954392493344494247287485425913105545248481884230113096191705354348264563746663355464484112127780803597694022763240928050056034719118788839813531206316996423930482706812758295000592375726689374833675801980591434971493111540799202279629432870128473509494381708327192300403930265023883625079884102317716364093719170856965657735233784267682179734496373781640646487366716372947526115459945927410349484170928498099593891979606968886128830420649432300569548924274878822160296385430623775971165994409226736506844700713823977762653818863919836674657656983591965908516290888451396906425853953586202363274239925939806401346086906867330143968124633829661812081274478464144102091076247633219511810697762334007959525642600247321840313903902022005364350124163191335778873239482633657854983097858425582471213541071796937118074580773531161177493278268467124590773269064883340400656217097578509410717951530847271276385576282740109615787202528735114767811539523911923632937379278504058191686548600659328087043466747125062736139179590411615114458857998234892348725947646009968487748453715492425405833132897032122901401766225292621084990690024324285783070555300981064589588652393425478066475116097122645704716340321872825957787018988092545845163120224909486635846765904428398089103041498497744253822495260378608045754851953746350227760128256138729504588562484502595754356055969434938754595755901703582366916115834651079980209370752325354842872945276550211468399833706057015884493179749473790119820694150396054872186156721137399053600981743932336733645770067618373300590265370558926470926553240335182600283121108027089039187826987046117813622945709863243929245863593004055054413326766747908924371748597694631615645729495151859926145013289507684554202214302364711077109432225093330087046605350887525564249113657956518392523260470114843577285613728465740106198243696909665110335843378598332319777055679264828923725692135066921761650190162297821090032324327442498567380011564260429721545381635078855014498349373515908365515586372339978894533458626810008280746529447817551701557456003306103589712074510308688194161599444121590772101782635928777350333363996208625456612225329663757079701511916875588159888696107833943261228782808628656235172727738496602022631124905463347347339958558990791005221072678239837126428988380813833779700127268783631559904731367715536522931752755837017540558242953558730682244891331075178334633906131841975673813124047974647509811644902499119507238504867322220743263842846111898834526257986154749196811454703484099548475826776073933153931070774631258761907848330445181556323302783843316897682635314631826407081855294938993853124516408392816567782536749845464466731551940018683556028579361189507322377227207578721399971897119620222463808056201127182611406267672474633067274292053409156750600754108249628687825622752335814178653692237167294561631383179516163650857090146921186362603052767475603436801819668256100633176735701374698678385757557537082485736473401493025662109572914707083304189112708387029717338973294328578231395892432298518010030763653641565462112471651862373173817162844861552938846953445549340373856667515673270741578598375657478475206229051106621179426975485452902772396873408757345360905580121945212236197940202284476062264853466099734939344440371362228952668895747719120108750920936711850579493041195823031310223200639869834867409496154081861809497103505737791079791170107930894458811193210116478890919510355163103907575684935924493318681323333839820539815173258800806822549310443266290722316686411119234381549243731428528764979288376553845586504064249110013164176457478754900750626102475399549638897693368699048428102284179898318214572911397149041917855796048074338611220327910907206375364846635987850516952022692755461019257004962758536479008706091894413546672149762690695169569713835224771805006314525903966357359356323961489494482145437436328694770506491424577579126734550678035624388622515015170392069298162922120084221796197242140611673905743371894827238598925886985254603510586106659354711576317580398258934951419425871807568789318830410559144345447341164940639704326371527013530245876562271603888354547002086672310104565084700397688481722559937326037671420836595475647326763837368289957949745987378120220881276645043539493781227709785361279948475196658079860222395667538532575641027189933815683797276988922522076167071076660534944060220476600514403923987684129876784467669825719818498373089341766346798599225765615506482816766750748029789136270417307950294697096833117247543505568667290302379551460282273675806835705824592882941359003111293864467294949966299788448360887598070357519111548872571022450228975587512865667491247592216819341467400929339830399787795725448223476111224722063854121676404582202257809666792177607534781772847925332139127820493017054778534767703787058481672590301382103865648290055055954752559835621417266524417058040117052990952078688807434374932592330961293908115734002415584710274569117154029738859764617186236865041571782491138858984259374339017357096764270779521568997477635999091951931636283298360266507181897053105686085661850326288863610089655167189006893822992732364817253414612900506916850746816127565178847372003131461262748461422321349096403079105517870409300373132022350956720032572551197039393766240109983629673589463478497395393413283534734852140477081282097106709266329474683781226551329625850369335691743898819100263651548472469124384880652599207973286091698153452702658407481515754160355655584801348324400634895767423244110107946321132237665195462395685436707802725623845101825808093506524446479994273220354579444638344750777155664958970526859607485919379916415026963857009897920751345716010929237623215449336272116998676305470280689058097447638670836108917720224475225739680122274974531408354821906887988564821708058141945668286542614354057887193779353922328383333785355212454019351140797687224123853222061325585954558590854993720147936142025370309942831897167114662203481501649215130621373634481945807434988853360616873524063393143611581473975285420687030397895959845512112455003104965873523827064943453443336810960108478071141850860631361150744027981190925178450287101606315639655174969021905995189036807807437676016629889733989680972965910306385934780835202231885803446245164327866688200370526044653081826179133986789290397509037560778706205026475645324633055017619821080190214731786700296395311859010102991657754910537508708417698277597472180586007408541797168001208061621742641982601465417771596253770342433404957639300007497857053751707981813871450600888694923231183537836568813461184178679099389781494261819750482971964867774929777253351891513134601983427903075670890892772019433096330834729902152708483845752539980293805292371920856999044767814692942022045706740359435414726794360162959339198216818648995043242369146546522637134677157387530423318544960456705369883281381596714038028368544650214273790168959083873515645529463102676099096693495292618970090270185774922164475807203327767906409738338711248287080096813073181287755130212299867259177458200578927594808683752699959693794187311317937353065644844960145959136244244706929699789405843699967745021468745816351967648794413183022621353698465289999653274726124538741374646103955012877200857042797720226597884924668407842030983592083550440180522206730208102848033270590373667872454186350817399425311010328660866190946544718173166022267152343460930571206751502681065751409984660029265572941662119243432596836549309738284886802564370287321434012829923259839504329832664323513826598731122049386605663446266077150169888675610692823280314013269124004777952788882614214569355768584514591417889026557017591616417544023179311510201667404478022433622263609591719321586034924806806224968414682890286381717304202231829580856851383723807558597412597675263070214720474819033404351488845452650385954489539842268491708473234405116861132376546971892291043409486158458167836628504562560619035199112425547774147304902120258962386178426706158708611323005193285024812676619414506465054228996876214384415639117253684640904176178615997288990785135109299539017765881456305165974755466416668077298299230022645545751737081826025252866416909623642129592512983000747018154103310923308699995759906804259226165958105976392199902022778188107200708356628315852633250527834468787061479197619601421246692592156241579935096656623653525100000454926093760097244370815272217851369824511616918708693522741242994860822960714511251730685300963524745534709148243757042990518641840288783035321338828476200297074072067019520262544528457861833506512719478223389282892426915762444112670143570906625395874374135533777505358656504148553643734058033687964482999816771266309499901939882012090639008555655746863161535020250509733121612671964564532320225961778837199352939796272550888097833240532656084816513343261665347138305338725602002828887616830612172930311820779218892555188535614580607909718081628537418788969935097530679940439242422240732878740564728499144288699223774512863497910148667660073974514274847695840080426248116870338604385397179541557882420256467845139223939842571521137813487615632643192448523150680367637193754874362533703581506824741240826250442695469122084917568711640440245310088346039264495899819662266110349361102918870843202289870032915033704592133811703547081141806071330652816380989758610563589167740933466242852204956864032200731398334305466899792672571565247239546005320313260594636425942920693517005837435402092373696032387701663659913686125804594486601959976030680673598042774613899977889376232312271212470536711577818225846686582650485835841362109232557010676865688335671253509228020297449687353854194511593280178870058605088509465516963158120050315393081132310503497993561548012160321623721644432493055854040366512022454158185520472191842999157257206132171316451025777929935911259410028169405903832115211851324012127926439668006170762594355088108037988812917042856631363293556755680880960579164328298520559315225325423914201947401642148282041757189541555970301686807564173401076938631461115501958639114849262907815868060744641007453379206030729566445563253461107178119403655940210936960150235653806991063973271309478618029519421576338394123054745469874011755667861765682871486640643131095029597711278389268344839320222662847731779848094423294722814867926905992361756917885589382112297715523140912286204810767610250057546739459052453997542288011539502457702495330272191052024303018027007089694074362998553751023736736224957024553358469316679198805618095805072342603355904029346593875779127505490870581413713643534309912222207348002423664761703259127572682247043181581841665332682805749585710890788879194337137862710991470442177050277955783316230852551326200228184098111666835660678327448874779424245497109430651317202274311115388610494524892881447784837049533271846190885576808583345918606808366643992858224435410766667007301603675404106896724213452286981473065425663029906508752917394965782222659201688270368134847000544426154435499175907246980843354602653192156138476985244273193996070980750630214117957115563410295912930308887134751804241087015930819204746661051476770674298468536914216063124957224034630989171662791031961866942226936820076665579742200596217903688243045816726707392008843203761022178132039732132022341397913697667605165209289391169110090556706329316258066528838155976340251321792829673056842276837337550526557473857978207183717035865653993777976138913378500327505850593246894755729499082551156328558556733191690901519254805185410052777002712433767719640064936553168428931360746119271777256313506529941973416017672844738499234419489343767799651804756806637031028622248620817384855109828594913109969114395697693609490757655337862589736798266857561938857752530130229372925961081039178248236759872020222098133140138685042374695603461879875415263353511223755652427647600363228606397080623898141767527567114095090869288797413411349160724769967833072612570342908139999284974071793815502277914452069305718415983961354665748764087824659685645697762665991792153644162629779168195584860471586061849983396744481010828883555674944562843428373282797742755981581636840977809716287800331715795337243731262709340441869672605985239477114751286692734606905079656380613996145542012414179379663217751871774952182381202226649713623519921198045780600903190191121468178961380165813183126166489392605450176565114511636553856657838072008605014600902833707944546287548516382723458678841962919391311266837397181824956093914881999922622374117053898487811190286308752255887665512198145218117359315294727307550292300446370938939391321224358441004738730058319165160848793153548686653656401549293399675510761939279612415220946434490988125675809522395243986243898569266187675042473438433608670633883037822025945104402672858607202022001162863840549600351550237426890869379499049002451338590373235369597875637648907368827980177022888262694933260048057074838984348716072970874419980273027287739049275820127110144517835185828244630858950607673551660951364411667844421017800281834759944437308992381471692320141828395297855357951684894953958979659827617127037440669549466509949674781495202684080817734642504974992046946110704158597082402292920422811967682296898131000254053883095068233936098395388388282167456790415058894331458188633820227778159863330622257787049305586928637456159365869105748154430399640821568861491132939303601303579463236266059266069322160767091443348519142745044881030669250495108392048277376422687265378106704298915284460383482831281617403016709588554025250604275207738903176006973424049518765769893999986466376955164097792033076289929585764290712390531318535814099586562174871723917941856031637647224964783120192577446011099696942693274008447526104751230861965582219991673727868855358297251696517710833108837455202266543442164015684356651997141967516648265446236163672797683720528938244474374902467859723387564401071836374268977157781866326385026835738319720082854904288596984839608337364539944214798896823428228182698311722242165317942560436891270239655933068820879529277864819885111192107112411255157160378083595377461014381040855916212873312007837890095649904531074298004987136375154921649873602481991718350664605150031116997093322411119277555357806163874127038430724867665993690366871410807494053080396746592022202605482789796379722122324483157178621809208248254586923924178324459310205770112010149523785623769448324790148570926412622357574587043111454931452659729292822920994069734353998173442249669377051824323311699255641028194276808955210789443372154566903004297343469006879845091524336838010535835422049167971914067129405690115536604334313863935105980291731191132962461977301874617674972975702926677252508949921884569752735653648092431691781880073179367297405836468011104153991809269650221147535478682320220788884105566558024866110390963725888110931329206011852045790927836351449250852108455375568568188961873921179471990646422424354085209775954426822941959620602337489123443688019130003136441430844373638902956677231418494795215186174978072973924129636274294055479520999163192871560002905889416370839377728992561797797182288761629974390733951080637160573366757930496275841746767244499430844661842506910558596608258429552795908351861423442199756755268390807124622280414676554702396895479106014745718191202274809406252203921424974297344562866722040560690940863974615707859521754074322044068095727707028971570599261760274225034011850361673853182978446474334891284990864520690018585564892420765647627632941180322712502159923605850927768309537100582572231522361503049437000942106440744522178536719752857561975430332738256927591429669289687449033067036468132478169579027278193381463556620628307398358978093506500440367079050386745639865348194376825494895091715919892005236683672112601441608391655376271163092022088957875599714308289812068331998810614393362758979995999236439697140164972458741548193246874855633833288166378736894407112439306240748972285620871228174432151113657653839419481404300379956445492220098325489744720857028929960613883346342795030581326656026518679043253098075323994189297304835311756570132539867189514522362429182528282995087306151775979356199857295593345051937239104146282952426797930876186538289699258978050745390624216209801929936143182134164667390217887544027693530841165370734620224902006713590984367878123860293955764192218077586580539490531313466152687143426081498888901281577989807633939357184223232266615014967958273912216855739247182309858251541807441572688439367589670323505700220860615342661789785073006368131397159413607387241659584128547072702394972132864701209929826210007523564420305439239195969666490796925525703660446697126697584978590343783651236231779198807289453922834895599387176277760004067561205658709541065851095624677137091172503376058023859040808279220633202212340197430623719136488504662898229102532779628617061122816574521907830469825153149014937077002290674967461172028782341525076088370031015128236102262938094172198702135504606393348850915527386883032504041016782918058784901034497062152256991514747302663770610137382093239959112485835105252564401965363902291376145470121496476455260858357594560225912578774198940234314128932251722909829955444907745393739008879577982782508414185371901346000931038615418608838146796257993993862935687300475248608446262022667764753367433241020597833807199710367875439629597219672387615916500453656495974796057813350287862931954417028060177730942287822935048325462007891823157723287630452292006834639676969434497248254867942563003562425806734093467680877296213283306263223726986274434002172598296605531034172184761163493037476536056083258831230779897324815226503667259976135804095684072223579970354616811355362131808550618677070264617764280199435111376623483871492290171873509419151637106028589844247206603867087575857120228475733022673766065163161710871992029965047649697993106094007371892416208197089786707152407079654638682661144013572565963294855921270316068163996116752420845278271828504246035061631649533535541522025528900123825917668243721439310068319639367542926708063716170113018281388488820848311368342731425217917056919513016249383600819033641507661997478695059563939338575633256727830436317184356008295467415394932259438641845282633000531095055429386428532553041867612693182302436485148953587146724788074034202276343263671666846780660976911331390342114267216636391181525375176141418342003673526075710395439595342462720233974687487355462701714517066946264222835571439793224627913704758895491516348812408469587461924603923811380471992016979116753034159637834899275408769918790407783953520006804774866242434586819903034448140713240142947809293728445240951992017046752891105668783268076658650597492841025280094014636172470988662948932370987632716802584269544371703332176287821406216803348803053188313426709604832022353466347502782995643476599830429032256323277895192045017436038608977812045327697563786470424070111820218460075695873114405606771162951192008423257885419676264290193962233761940817651590648911106408283877737558365140218305305191691883347616072105817232876615310825132247733419039319751581189063186459522651500292451462541636155124618208696748391988474983447110717062142673469535745416660189849162387712893363555950674904697591708524296051944745335343705522964953085796062155642750992031881165857420228748419040219860379165042204306957477594757789063996087797039265590629191252901363990199589322485580379751313772426151148090353064709128566380110313406801774686099609364830949457222496723895126228655090012507064866692461285396063886188078243648506173737156690811880863005911801022600843557698283207795325093479869179713041038730241283354043446520263587695500846488150589765110663480618431299847310755735977886679592291159433909805302025501787194923758629613735419171829607717854380659049626333262202202478677804459210543645220766792427312818752006069239205158826223764767186342112129089578270054208661014286233122286898502240434379759351800111346401399218632256218812042175445004622439434529583500290849154373869663740763446071075256911105374258479857340768488864156145703907555037612546463419355625158820978437962636769630957602104399071278905234526995735100129516276702799413228927929474893667509613531596972067753536332086702563452223456572736091271339823153587505645484174051315436793816457082022572379049461268549377138059434342128467809639976486416607840578753924082126532034601890869389012794870983307703581714969325130078000145708906929809932065008367757959728166965214855728374824547400272799508084257219342590682102915127381084808837634660083470308950844440535820058331862559607580864248019970266065223663032011704970038976543755821114254874650460095820731537018801901322424451580178672302149764061521948471510366822865574656137094109514701633435601104788688832747276095029518951260084420221671700906783340897236888507380861671530282271087403638335935091884822540485433681982431691586118563621975472437227121461518907042851765688515790121996943395756400911412034603101483989465904232739637139106305611167239170525304119791609634106664367316645622529849219017665092503509198970144448507273919417296518877535542848800305543053480131431144522532388112099331558516035152172517208356350483366300584381275937850212788764730071422760921646286636759307465220556891609105457109820686674751094886202246648678606101938085939737337479782667007659446009598159081085465838018962902306023242646357385398941598225313396015257074600485881407946300732475663950957251446618879220255300322877380842098281320976139637024473429656658382871370290804236551675643570827103657675873848743981943195201242177959729946035804225850571687060743725248664064741580699389026709619831234424787598663051739819809029787905563652828836029604510184557534941530333685330192723491812826497688545554062642287326071554089910829932022807807092605720557250899141628145689151375568621406044662748673741416243451771902354290167681958676667951038636980452471970603732973684295412153637067933226242178470758985411010601408541833998552069964644521814875485352983803780210232587190565217477524784843777709714100123393465502993474313369550821951923781233373392337668365664371717969152562283877759149860374384914294975871084516755275438844352139718650782987036175079532019806069071036828102238388406003483413121841182050064331178521486429520220183115677631224986751587837026847280793398294078323272334637295829868588164033478348449255411707007174597582378669943928474636954785741025094429800012027713262334535023019890580001345665014371391121533770622409029639398939278243472337350930245645255820703156634905175201758890999988179300437225756789975134563657551152103005821285228913855567387302084196067748093580563452298527915710930291609196994722754738289225795451412887486422469636054287748715383371875855124058384276099547359929932671975202275200010594459000515400206347943984059539491951596453476168491607582139626500637945626497416801660093684945098248239951808624564070618815145209852519618914709968597877071681558896922797271578156227761541382239099018427837064068409405427442123285100754886976320276197238533810217852711012728978204056517528587236121703999362198449536584994998078112978436223403477037623951617334297531934292618836904239698645946491024856256863289439447043349028643763373728026517988656108286357622680941842030446362022306654444216951933817969223182191006903330296789581063770895714706726557026258958857646778693080736473225748829997552188457022264972792854381682125742193708308245508793501708970925986814081059229971697410806700772782125972963382358352896357232411063844132061650576197512043276852075051850767145292764544451456605547983688558574082095097198258797537662746189341315131605684231695044286233546492702084298850220544558756121980220851495577396343015938878551080331803696278917789538885590667537551417520220075355458539786229016929394612807223896779548916414574151339054194166766155083894419038195653983825481413803679563823415149329117415933806273872311007796386055972933985991812208531544525321789308322993953540046470965069934551033656156191172734178340961299784545430496484844762762219100036193394069931357966678580749008942323793818991052913218833007083294621657682391549219480292839503512637338571058237072371642214100438650228837170694556585092685309396868962696954625629509608818191743816012987202244826337723933247031337111622820040784049897767349720891911690455866351908060407597571861841053747753701680726178754490868375474608219751410167663825908215853700873525414446015779530785562878720857430802540517328743763034905271022138709617230978284991049402984591967588218968291135274435070206305289925696988408695790625608642570677809037814058545425770156002800642449151318699483412295847897886064127466765035128802704185261737095082872092299173385669193166651906707016282417413312442862964383232022546986513402903996082003583857860448600877740127042792197875462665330322482510239839055779803329462069940574421419748768137250400113725387833738356557131335803014797727189180892941760016055715158956399691196532578433610554962231861867448069296220211654352225501669962196475174842252081361277178473262333814422775263904322675371231738518725089290130132794148633052032199136803669694424667912838703553890411868986426550571175716313331332358439549575567445473576538599422960405314279282343174320901120222131392291347124649606031030089265543806450543455640490409889305395593646443637642750224421158998143261277184231562723340807863171156251100708360517678767027300307405733652436526001185514320423549060310171658466276350336508144525581186498677204332597341639947912894281885507966060851221970035954780187620855701185528586710050200289392050508449344455322243798327882321726373898158673579052909025910917995943755436677988291959664196716518849247186170454885842059083874821525417332179553285950956645202286979228155761796704552250272459787032363953147682156122586732355584163029636932327788961190272938787162079203041364729820547476558890752571521471160682826930101985814489241504134244773169011807335118261855460669563445712095176716943592806914901577044155233481602452790429642842365005591623732496170584133137876273952688900810619208100351223391135814893778650899821397182663749215968894096174137435871342645506317592593483065458990142246087724548550151595635861542734593820017454465421369088292962022722888259548436543226556983323185774534739179712251961441536895948177289861480410447699258593314085627992888934665730239195914958023391106373086999509335061768666320969601606412281404404413363660248523686682063955416444728417376628595811334436646476590969351475575378685377350256662181460522382145520759728735013989425502909799830058102152653938882889279692783288926097268756082042318990063912043413932893265073248062312737705252091715967886519779033226498731381249635623772843255085895962449550820224401369501982562817479976525779327636951690942092106407884795392452336110060052154069510900634674604230329581590745478199340254085652449811479690383142922325697651399170196027525470337334924134752104658153972451780843916755738840644168067616834759628153806731800132647036765662462970791925047168692737799484403012851892069955380167326717635412733513385150128399348804606936076634453956940931291669817557794340140277192890059886446126604842763782510959650644559845052415064794381139259454238863065202202768253054010965340308679508504040143832395380620567565049625525879718831713927534460329731092394849421143560873179539696860541402892051573082061866182913718381523518607139760309259317057322010212866005884442491353560192628874350627234157930917060298511283868315180522280201979461710355093275113490109546394361231510739415722266443179074877361021261939457787544009580104079497060495503312746253812873174112297158502388483718631626225045271616112276780271026130802044988303520163112051783054525152022419213772015666318044388931878033041034540290285349679401553238025201458768062116308791071265484724064707244719297696155301911594413098907112208552267812480404610566439255946785471009295080274385718363241257087892723598922866298408959068244279470375735074890133299678763069714388368472179453264416310116677596539431548274533803979362857244061611906275211621366445316396767106783151571588488648631718784952469768157079032247403932566909113938576032706632458318984717340767043190570092024617649282020223719581241532886694810065427364239430284297445990160519801850254307509531652112068735649741016714489952863555701802943894310171943610198437437854346425704574683713250454780701817266935954025178580705645228928873648546591743505091775003363577868639988083175324143490170755433709334160517647399342907827106403198600486822908309494404264200348454788468141370905924706885636588588584908831014852514119489734141180384603099226144673643376508792756775754294270042252874352122047520616989149381835311165202273269713607431330764764618043362524319237272008520521954677923715302274020438019043737679406988321019635199577123700402714467547281963488249000789715868495199531061455963020695109865891636091394127786823846874738742246756300505714403355925358403696651167628501405187184395825884030120179291319450177832735175353647900969078381704597325982593146088370898952470176673761360069574212941734334254798182286392011006210962420070406999006790516261696864180748260632232426037909615034192555482770255940772022592270466771512182213240296067374291170611347808267939288204577016482198308997384557411859273925184239592234612974492024801059838677929597908859820549202911166823408940595037578346448370078299851821808080495361407730894349810724407038596310230291034501640174790085450928286051479818549081054618847067010222494315506842970501339246889054360786767381993080905648191884420893766327761484648784903698615216965708883142549857318753983353521891501561482912030203664946637747795026198792366769486265648720220698230916435340373031121099351812224488228692113134237302882620390403749633201286932514090878367083304608520140139183918312792097506141693401455588389344348362050265361167423209846340933195580074388444005182847460196536454130059106329293418014172065525253311848668963257686025894835350262725984356999363833350775761164638177760612422502695114281657372399930987072244346347261813154145326330026248415794329599647961059626579681300850261251903605238956183933131116966092521809335121821707928827523202204626118325815151353945366295582755478816997880922764175386129031878871066454908007164244109234327395370356464611704616761073028522708258562959085128740133672912616734676901206757810235234127929203659973270083257405906402874258649896232508780903802572203845588233652659291146521543264189792492913508551854041061624710565253103891359748573799938614081024372645905930900493299763381200115186666552366118238244747932602532063341548236920819834231634977006856513964680487417718451017270545116448704802022158763197205448243374956380879011400980353331760539137213483921586172208556643706891417877215405286901302091885730296909011944373821941467320441398896331210476741209301494867167304144366388276718286678286243275062270619754878164436730766995961106355563071849107059207393839099598587136643386482102969572923975467145189356077464658664050874400454580194214022768757991947555003280507776821140027054745023050801224171856657907086319514580265177180632321566079449769018836394112819125834816272169090820228216710784862174594713621356346601033595014924351921558115352147236209407399959980706927893040834924317719111733669141948160487197706729188342618018051242781948453882302228501430047199033634877210128338824375924858878073081693997637717312285526945287932703754303594450124888299128480903802470439698998468208205851734095648008357481862344904030020559542963238042474708971255935374539546958211082838143101012093262575303899788333052585105460654433887879729539742889158449167717174579110683493649611202282928093680004595223050457319897469027568899722490710253543841300769151911616002252073778951405212815407387116231695255348997271244608669776714385000887263527248151636568099168109547297155346701619475177461692537471416674948943627782813830683736421117462557077842205520628654534162802339226236238997945240236554120633371965938502428968866260677838933534911635598052765985265389315280057917125170623919762536779675233593106770856141153017560710358236506737195253238865413995298677590424923948986092022859788405051401356341130005250602034919947963747378780331605869283607705347141691273292860062013462563946036951551328096182492695576201181723556289618147596520511698166396687406711495652473808815077019636784068645672097102280490393925865338097494064373058591887715866363417426622744685502769244379216557502433461874380268435279623518830231909914306903179252758851248988225667821249903201717151914748038470777109245643293819332771361634015012886741517710101321665555657085715787937640962111237870720229509989174966519366094762600661786871229119863132618153681437391357395720793878102840579328322533212743835851138134450025782015244932451518343419396569811939104760147308915492034934045402740615022519372082825983128516335358005811242369307128830101786829222469593075954229337571598185271161001381262052036246448921059866203127043451096074393220510121807591651932445359857521981482754010734189930272163686561228574533427717951187134563004594445053024706188242717766706365338737789873211418578331189202215418888003780221726503825609760301502004567024885627883155541114379674639848138046592048520176635390604733365885224593063327258628411817101973162488432414108816722790804130359570188921796126669895519790612915053095226010400791459459142807690262986887592168866539134937049160620790604152722889402958879519221139668325551957272053740419034008280815220112464846032458319327500002825197739519890081768376406194157533235392805918797252708404834227120324628576304915675469257134867359527681277731886332022201877127968938793483903629869404370367325290421340555133642698074289161666991614655120011614630518132251308776433210600032186279277525143323096046646925941338259548921042021258506951693544333344024554864097553146817379254824158300653456787156635516680897144600609139159927574336879521968468199513039881122751342815629276414148505614433506625733679051709292122953366687416326425701664656224648380740175109776231763347448697035264396004115960299623195990473492825597163219503860538189169456586581020225403239418425401204395724621395811806274278267959329801192319077297818190304902232088497261476109901310501287717064227642437138465939281056718137992552539997184316170466496622155163372255062134944737636235242701179474186529074841611729466589689587068008427229467722824827119450311037750643245284921454992178135412459045211622912373235131415481932892734007420393307733444486657798688849188757684514267578000550980848140007834209670337272843191294250955781989234252691477245097773462756264192810123202253808808634269959183918666002312784820322344870784454041148769166837062811393074004560642638082946695969011209157530260799435831640617648177125717654164302178630145075527058225367140436022945383720687328713067688448926238761134570328546173932064005342025511354872422632958001018702913238240724441035753862921839544946973132915946131169554070239559567839760946805655344406172900569138464805299005637559180887028885493872227527550020630502062018222425315986130204920069312746956806924271578043131232022531947902594154639566484300179094214853680336910552557141265525845153791284894410357113444464142631847088251514505946797900340547789644428230440436853011597014498416890660485911435579789126746268451504913164744966453965330937118347280322460933866004786532212189073190639628128791362818397014450768126730335326052715126328951627548803939138816495905436966927295947663676541104503106704384818282101209010021813571593814251943456040792161054229718161230577989824467988903549811799105205712261138937220220923344105225365495687305974434508592672041457217566470756742914987925861876560340763520629028170768767558270848545847326541667760554598809592822228375922401242167349567285355725597735723916874902959732905508525288605925538635578181451285408310622200323696476354733449713608847687376857258726672441835282818844021082402785041868734190276060372035964906402451736741885292500285628523678707797554614315439960240043545041381675356028524948069477436950398977688853421678201757438561030986652878383473202288651520535537160834710595602144108541298680170230548665583580686529846371143493952119816525884042966412710510669724637975901314866669647654958515470336410446960200923535183459447331656671083794924030505562712723349769473959974737200291015396955954405266702647425633393191731353464762446248976976419919360541139693335609783029681908588062378927716124682584023779310636324863044359652924825470685507748467622954860967264212811869171021141457157008457447410340963573607682969975816899031386535730032022126608651435120541128281172964355500563415978099910754069447588881697329137451423035022927045268415757562501797319366261024564064786571969906498410894720275483943282542420920442163090307373235054912140636775779898684010896806355216826064430564057960972940911419687921256447659702876957749892947933575670796586316490318656321437411810029907943102474204410669634023897804798414071684861721212714960871593140842156381748339439938683931717733170751623074732751908410704992798857036208751728094181706620224075389412931629978958830895348437770190883277144404745840264717059961254099672894690866030631929765664925477147724068074193472459894385529670426570087738700119355034921225121285910223029704704262923164681717594682717393090628177005617157216157926513044850614556038582567212614268170524047902409840774557490401837119435345536948405393793810607193224691369114950379899353864454005409134860232632948927334146514310035426883012459704019049917019402639115955083808715062927479065017277168939095085025202254076388995327127875852220012539753449063293151435764458415261203987591807219501363278399256437535032078004175765951757669945842927186002341793896199669736686001193806024491606768714054739058809821251297318576007108040588446748473587901620251273697063453207641505137488977622575821893150135808486882660556335493775716470190882710332483340743636717238269645626547312152415302079338148079981683246970110970537058047934949917898934014582458909799744956851038208662206921741913272629728986002510609592022544897896790504655721429378964395874710468348430115171065385399986155154965094755203620701030641584944061723385466978352464760733250682429610470238858578293353371466891797233660527148744815906742504801784662564685099766710167149132691363109306446355415319120003728157214398831564758063047051526479173119764070428477582177033425793380365236840938755710485487146478193418085474698672620899596990760644800080385425414764846879326223279607357348974328841732201906016226768184129565360941330670588986220229348694399711248935048628657573305962104620875520679099851681766744441567752196301671832199877633863396898623487805637264624717694475739299698494420361970417426374226511567459130517249635157168051605550383595067683203255742591146779494615540508468817193022170654228955283733027842073078267164835522473612784826874564083519749428889888609743528340153185785783177362532668359228078596046383445913673337171926645799380562123543793732887091648601958254762686537387127842140897121348385974431893508401202224451607941019352470981798937480988503583621554102180178083943471346115421352553283133197500819532658700414431432589983212448238306483080527425672196507249087143076351873297305426181261354312242826560746153466418964646534121623633253638711262464940104864089065739128502749345977533155916275448318864469884753049828330769429027252648522247199695096143544172070467111423135482623009875232445668955379586191344270691493521045503139531031029233589819166990205785191405996684906135622817148169806162732022926741486541162231294416852028894139114422203460631732270401714539186515031185187208276711716983127393206827148193808970553292511668416804187924322354557963091960051173602650044028909179422348622996412980270782649882288593202041269384920149627271518978201432965023359369549518859435724398699493199325719911458034622472424842793931780125058959218737047922804623319268768269613006024042414030959359231813872667206422687542620354978638048823451925421294321899262867106030691957551181706814337150019520220895085168633726549276238476245532020471804588332014332429325208928092703130118063623469121486618635063401018384004769914203537089766910163460651627483919779581518318431131382481288144035678911538026938544590110612054701444140332397708920979113195737794465276590712933530438209568906372410029322046608134776622004719827365021955767768455512838180099823055443291331115098238540887155577221971868311749399876093633767741919465728073367250790593364306292436320597570117343544842442348724611718117065202225507018052693546209140178100489040555815434088353079516347478598389006578147627033606969894358038448096843964589746221688885397910449329664996671651003080789796770627090372853852096479775545933349341752037325110412814195987150367115150640018666014064297842937298479487683869321545852671058821742212809242631789079492491802603443509889597050903729498135454779411114809534789219454677443146104136020116300100606555850727410906309058906599228060908600021582014592549788694406331557942112765034657612022610659211730537757016716068760430811976628214423763479801924693869077193554761193394903523456442926693767793693635106178802564658603344852284658806865418720203357596583470936902928011776691311546855706469286612812134786976696203787248938640092400909155162693743027225897158398474936845309357917625991606356006652588694561706551889327472341859739528427401324938351321108914930279583703115606700675938866757181757924279456910823941064744429490505637856877324987470885789384872902966720065411978286020221723720040542063449213560431444248543681219120979350662185786310311790358012208307229902934080531280035656363726984181841489170248338134983413686507360159203771221151578953529431087481108470755529460581426045423239256641213694147363326457725708416692230868024304741263658535995923055645424857247569075589683666546764703869487100233805777207740944832182434699917055681697888991897214803761251556163229152515754116798959770741799316702848755152542178068526744650217805416941198175744883367090382070202206698639192761194529359360604723398199449945887897401549455703093591484959139002142121008355560025413900118310263382572050266954986059741204187310859408612216380757309754338690291032306967743683042617316700790733771921696871680938357656281049309655734225214887338498184997509978947581754904963868852826950441901528125368293032202258311445538939912500228570205688485353913393296843939757763502640411735383145565269262856655801141883899337572179755473074411822609252424700313245972216001583592649402022688123454900349487842792026087527721075939001289482064244154529634793317171472773244077974957852457088506638673378657563535261486474053710837844710840585186210291456066155154829426053144362951122062900106409866394411774315534697260584570074378428588220827460766685590886838225225640424337149662885903937407531549871279406005986296622405946676395413502652713832834513872881376820005418286957912570740529231697840455518850405079601495050197145523069609225602874569947839593898230999874073273860882220228583303336712421630193686407782192811187459315152714023642799624229263239652647526173727720723913768439839545476799931998462296822771931573206736119319805865199574536806727126518817210865931149485448064944769958989311222628631641388188241158471199138662913156342997591685174206514977699465710656375044715926002414613208594814343959674082624569559450702168058422304805048493830209920251217309102904137355010248759741341135679678411606224811446447463269113203827440423789529878128380992232148881680202263332596192813020882012352970017531416231464148509788344205977123444301632584122329062049631908679246503711077397796067078820748332918138734048681141462962091599523795608706338195428899137861404425742412689467691483065143647664248345376905909624835635712279256537491486037824437786064219972880457721741810757128774641553504829874379249387320819350741735900524836687878655205104362746058736660536055845066658322799200714748790519167669892472725672594232737924579749178202936643460988688219243005332022291769648337615374397088420728802046873496374028404294079230309071800168844537095185108187419564786799978197993404757174628006923566453351113592728418634172885315229315161528030283679227514918829552873812714370870950168828151495638538645013766895317814040674926211073905613403536354076547399230350749193075812183059431445877830983974465283471348495518735362839316519663613409684973206793814443280476931277500029763684077643199121310407679661026849632397619855896517605318645533122888179487957178420220353525487084265069923822493792467534352153936536757852509927500484727694112063158448726917475252039260415887219409512276936306686937651591394756804383800509902165178265499938491944064271066886548509874893337642768072210878826424251451451951651905048326122300614675098356768484087834734987987607453194403256017403282493507339009165858415077015064350446165311472510296302627893508313190043336474768915763807347700773649362234407194091533440162531031668180977584173745313058540673374005346648499547202207753495941479119417246707044647078079059128321681687228991775765113490810834253900459424180908954386148331443157955411757060973726877814063780989933017357619023248837793383865027101357819649840749253323899889503986319982806538325870282708802148646001270436326943950659278072695045606059964406839111949681870168557518906246108155251258420617162557220189303487913616463765818408015572564023910218626444862873159996430061528991089845933207409476189498016961193711512491469654288141117991904073260492022737199240975769257559651157107782036566061252989782482499650463218744940132904953473575761685269152570037658180448746683425341798062308659588604635827209798701616097289273390725228209067216097635067056938675261294657032908610313807343227544588025391552260362961786273473039892055163229589003283015656342902354979860150265011012739691693183663041166923521558324832856965918407298581363994265849778355297233616561033281300552312733026919092751817354258238927845980651353244665961658913929675211137620229914549189086504112835810190044778634914697606627413415724926466814035968987948025465746312304775079416790070140031518460015609659966272291090453156652647673638276722522532240939072281898548490297907612785220069683808964928179384156582881158684234326807741497050358730111561996835463792421484753241515882373047606173961835071648584490649080608097791278886230336072420822770699002601534409941557119019650456506290642908844529898168556949843183491132937454245443811074752770858084635889321647490200202275430159491686303447862877393520930242142219003972225121547946441859221147859502897070045417084202545174454271613354720255746879832896943298079317224353702748659942837934272554526006642271528150709999852006699928018790639830902310204230687391409612668305701793387745624492760016957485447408162434160692641870246070235317199067772624879677768898877407187216691495545951947245007412801431887484211041855095192611502435039704799977172790343187841269369122657281782069825773987339646984562777397151522022577920567076872486406611418906237520149801131301304200932365949125437068901149962153070581940785908247948000592349525323921461477144612213066893467113282854129496699619201016754985021083701185718362700802189614292555513188149757838758268099967113708523165496810296568663782042934325461864179106298452655322172563391931607418948682604402825849532371661915895708473899685891545050923394251671765031096291999595195232381771871906408738137006884297558839806291088461156351821512895651788379761445846420221854284724367797074679938790374387301246284193744574910825528841674153232272954102597979462767989473035930897380528044858232151116382870466186895068580724484551115998037243194516459821776114113470116079442876127318881038544893708161837985909182926274907856846333923303640333724069349251161132163533031121867740931969447451888055612618164699410265685167589092936701017194816284067922024088490116345974469036612070572859124852019416073240555709444424291779521565598998257856653542306541376857573502202280117320529142595520627591756626368486979367323135112943513084299287621943890256945856703065449832507991251568252812873372061395771384708867022929333169392537232183505204785681374020494792613650200964401568208328837346791642470850634479996956658639325818287234531354091712121829739299619259805107723097809348138949818403586754144370445236633124702637826479068802274071709174140299054770960942836050742260052864219755339900754415067866592368765555231172889387702081332117461143779158698463048608952022976934168360572807628182469171161353125617368842038879241679227477174641878076777080716679167759479197809174112926141420248904591102795688979320537301608436797565299793475647973112622416060657440944994756286863986303724894582390079645452511477730917280474691926338623384179453967899751678065872949318105002884238738832909721935883749656164996467564851259000950641533586247391654111017910652663300588725803281219831217456954912846801196685462577255736490968080618972421363874914673632429768567606620222101545979034162305998452160134138215092935467553283847793336388573785242708762933738922573578574848166149810491309693910789705599330448094456638364658840345288511227472094382373926403232237891513714236944649864016334452359750420895098636745588086453824169121285663128106459749702128929778259715167133888865388174392882728996251227159141983144225973653638412699669424332730230549003065506659001355389895360148458792305877725373400889980789961699718921580356741802904513015090067313129534624456435202226594690813734330667436934192449411688656013380875651156916287388586869436971644203947811660577817354719432181206777198887110045652882903252708563616265974641111441217899500197692458472717169946993859730768017030709988767694985071205064225204374520445921699934624167028906477985388985475135762681969372121095814299286936474151611318555451149229727023225876347515542383623747898556438437129639646073939602939951342384186232948180354204452399555568385769504153929567271127205552632285108876806182832022476180195597340825848320349686327007742160336268982379838439113975175971817284296052457783842579699315155318676692394798557828089145510292104347377917171739466216611942921966798740248946173382738522393108106085240186651097188240987841202090624261550322619107445840054205398718333592863003995179868936441546517604056369803601543663491626471976568250669798084960645979265431311510166515393274768323315631892363650173901046146262559624897039194037907494155794700514255177970850757173228047971746472820227814925622247988546148922330718178947036479190764070208220755728743230464690786834337220661745836922979222209955813117197300341566299546211368085031152774214484514388520623462355383611450468919340859943043332774157043901912081544778448334940213454725655897813702069985910221206926107507309659554758953223525076966147075564184605160048233575457663716009507994682532166759803268726739809846073546838596664493233367243579264512824197164020771629680322513605891626739418929895138555988953432126315102202252603681035244346385335703253220960589506638377937390659307689198833246412815133381086134032115969416565031302895560438384936438130960285205497669764246571493497586453085878120408761627559278372265199424103990914952393500644001204404530225292237973136610405455261041183944157594552754175181783948285273139747040296941826870240284565407051106235793356507635153930407651468513380102212033499779801127608570131696293059709910057220882970273202632297783132692068974960003680934354344846813101790140682022313671873607503890560073412739514465665289324093020241627335312581071867871763536281822698614385001666232540494996725457143107247542088015942034559617695574138487004383190642770118708706419991371511323779220960180884865788380369584019552142900483767934404195744340874772210693839427362980984684307706567712122673823292899539281667608270292957010722532783108932408011399381809119754468709927325581028965896361692226180085320605755230058428829590120106362799314124507953615181320242567814474951351420225872187492951710650681055672481840976586532785665266698234780622045464591891850284160718920871857606296996237923122430061845612119815162856229639383541831623422965870645719092302680624869100649911199064475444916780521807607321531131869908476179960600237043116842181962623445421867796302393724521419779148929676097057953514534639242517336933242211914105581997072867690801532426252191946508643976106380117257255096529578047549761489193481675020218344159095637890651244091216706614226149840741887107202209780732168832394968362381294514394377341110868981660210189772763320247255321764247315429679176464391181086326890019525706611584381473749404595285255699153159241610958526652842541961144370314726241713763574215007639276546250463799106484419097924042931214700457752831177528631656327104392643093049304092713463169962116690184330208226340672532913066395675990489969362230991324694644110526473007176116376253241671196036690138486228247627846016757189195281146572408714755623685250513683593217838082782022381546722389054504790088150659908028741890021318578828206619858333125158541898269283466388448296273820006430946367747859800225846478047890562849866182173741189968444883736440608281927969363064814646664536813742229107443426208930191908402577381335306311883427415771743097178557856946667187968214987898321426815623210791413782570289884646067452214758264937060297330089426441813042998064246343996821663448115287910471509562392037972414072415635673494016680801243992311278265314778197734863291496269220229858012273727163839772796120740797140310556143467792074463228684650860096885233531403149372325459649096883244489061083690402366039759241503632233790475501467478404477752733956344341019810481195609023151247645615617186652210795798730017431599786099913201916647766800149629111608684018578459443212243456038418888410938741945718547696539748781917532829289160108052139420241129882057013508056813648562080363127807400573743930604087896451266706877030931448435642115070095295621776902257986702373377506202250316959271883455370031374493253849782730365783465120176144319492713885684588375132594922671201839334609426406719197181662185334058956361551922080725888017353317727873720725135761616354985478311967802305917538945847713340327032545858960203462374842634878957106806669286553178334700484508157954255353855902696256879773681440509534481141931645127103354974719530374027427176733694379830802769927631980452421386807725710654364712455074747528952948766738834583317846891013210905515833845716137223020552022765210365516517066886701638456220902884632235673478436658237109255405334661030306642806155936570558033136612776311933737675430933260815476815933343656141071426779218701147181905666322356738389160152995378837808181503484271076390445698379309274799803431048821919955877991010812442531946693367661419897534890859636792035751100714676128128533942455492617187703113157638663412785625655783701391313270484182201791673523525550280351278604194907545002681821331079959724240170620742638036018994741297819020227112804587701845020157441299499264699908627456305802750756357930131866181888587369731072491263407598483326089966427466706725384232235931250835412279199285586281682701434885133737485287120124264416859804474983809085930142850051882641392733419848381066809957101886900252640539476047831515268200658442869008877040156899841703121756942759771695401398605027168723647923348578510813159885941685171751187075046961669589493329570307088097120940549537564560790883281861901073561358132191404046628263694589202242562980616855750433662853681605666846307533740569578360932979568407453076832233007507623480829515343906697141130392941426406321083134349873911825063234819411303758412122717215857027855125001463794052776007953867932730285521421472716440331068026359014590393435701315646958318035790812854076168060000240449524975146741995964767638281663097559478917177447373048392486630815175614211996168201454326975346676363520119673956150592712434622284758707394655674639187729626507289549256067189324326391384922022341188545401705163340239580312314439061876869300827819412038921392307111747316259972982171114788918907399269358048649204696824753506159930902077249387410169748276871477101570948597989956762308690795934846125587384954914103544088185608218834632006767782727883108704428653541855414487254987478410280717873073439281805226867679189678156857362481142554285310808023607815077397388031604168616137561913823414772738634916494627583636565194059390971386183525836095923662168721676723307028919256987210225620220733711202328499579238472709218688504089280431933900092461894272492237788124824570032850304368944014705685122670530647178919033959931192542306662488713131920984558383917854816470542440511130584451036658202748049055508151138280322403353389006722755920640619363634528920834408444034455502108697266561713835580813409800798841974790586621886891928737340615517874476960741193143112011132333233890299284037243155978642883612906774767798671196247343726198819543730632471017506417780838310400211183132357202208462745153955720194663908198304648201391900573984875855118336675127917760449004983742231346023372086615875830072372895812070384036619283609934318783517171425581791105522634720549025475875765011829255773919223624908225826643107653079708283129071523035325073899896836426112034843530691832250886210403469246108327676204263714764726491766138495143638064744032360275847175062370363716989695754396040307244254356377805965202367259178782737869372080542187057486399009861651915373968383727905285798257522022877581639415739707948674868066292807246308487055002108076959193687858078573246846699917424439088952989052100494089792094710020350023012345183623342719919502023561768249393403228391917626277169063546150911978462268590874413421778519601098077709476850089841232365105114775493403388338158684389084734186512527276775850453353072836942007428209187859626031197206775915787741101457077034309948762451678458202427098493348058244418800196622056029840738906902138622527458927615707583284947865271210282342020225002941861947344630341889293658193576930859389132895411834724236562772088861753627296545682568982903760997212068726080832256015221085418669649083285594297719110595153613090764924345261963481384213838521764970543172139881459989517580881163413725331543826163739545488946283237781594051763021765616807852268149559522325906938218415930875188611496240995651337439921170065795720754287356767044468430540960793766218117168260659199507796564586108483146618010701161911142869657382601598996815323168562810202209558927554377759400741079668069221688739477554176233670487838400062504449616785977336723766989873992300003255418714373835511680863313232329227765355034123000895059374375508861796812448452916031127966979665493073431951564867402807409948153002308196271914515557116359743012131958532933390957497458396752669929131544065914624958970574603795486812774557492384822241919423679839313032907580802598865846738626868860282963450699169414594546402046661553872052262040726102487131161842350715375807019323712022300602546507941175830988578859323600549948156411440111932642703154976259754946666421474488185909775553918111999080410115397741304865141215458777434354093093895502112565893193202873332861425897391391538477627387723111823012502862192642780213513426624555736273365911255949296137080044378505380174540180049038941578358080021636406490968949061369960939867099917503361982747316296166406460986786171635199042236654176894404546532065662121293423400284144183499443932847084448319349334502454012864092265820228304599792879893720242120742419197615763433310101867641341293058844875720814229801582838829260137261239147687424103438057310911331442463328510827920086036760342657418764911551295882827829864217640501420033117818301495530877038182473062967390884345547222537807732224659795587075085417968503875531229262360528887006109137397905309213334552019528219872670197281152589981321451442104514130429122190228959594185365888962162508437790147892163175379940277201076977825928392845468399837831169021758865938202203721130909109311819343607806372993582033464548562936255421357215493059752332007233542051529115104698970076031407476549021692298706775054017819913704040345582907520988469825461096298337636571987706792842743291089429220764275379405748205387429387520405006920077295880963631892851792213229512735007089127159726770976051559321991804527734654501916491168126324928106906249484570261034260196677438819359751244300146116822192765026175041137504764919394106451192081614963890381980053731300549815183696152022105481200417914403228132536578904092835770232932754974673626304359678163642160616176189079192690832463425339255311416095591900246375482633872760734533264073650217766712352570836015869371483525090622615249408357744813306178057149392025606248983585478702839944147334355670778614858478273403105996597638239694847932275691030007485811516595411783320673796686569170217440709172742417625537243272339267865933064841079037678185530272426129962098811370195123436092387022889345657647413489292275400915281120222906253955340755145123214823959402207321915442168034171516356678021223210693310674457383563609332024337677845477177193264299568518427586569146133570891930092098183578512047759190693946025056188971180227151934729705301655859224287032546184986606899217155644167532624551338678491556869237454120850109471051624260750760286304255301972142376560607668466747812388125796381400796095254348679526463178340925955140959663183045768452952371115373759824374938025450062117982392692432493461006715864068115627202248467792766346738751524983470988498021098113190769364565365648645870426022528107094959938336786119110124446662078940205849760787465847506828656628036119173444400657373152219977618977223244972920521586302558724539795823938845744394813788511004572524100913600376238055035159687153873658397321413022389614992394122862163424446343318807331500401240184656285548407868865305914725766102120806705084307654136825833617628953718212051940443073394820973310459801591208065016886251631634508958704165459403432022398743596382133247885808274741332982055632796995767229263572826477977111517225941286000024957951549595744720374742779380831200881629110373646622503204454121996666363250234381310808936102890118549650189726183087501121441783144098171023806591405690701481398347337138138281769485952985776628637606751706123212031197542894893150230848822351417031748181642848474438038112851724215713357491364863344553179493188604949610021228939337223064991960012747287197169952223121062894126273819764290756275540062620224280773542165158312255414426045245421200307826145355107853938481488438575198467669285323500830176766546484660014935318045670393190470744761715131613398085659398003988396078729862964780718075810742333141501496416135725845999800147450661882686384181116707837503832477618546981172341328571968703657611241997804595995655294629902654539780079400208306479414347081782655443520937186194238183945334611994696924320839759512946624118652875217666324103748039083725522771231153452339902309534460913122382183202223345601174568351426837739439957907579869372563245021786628032227237630563767552283787309872223926239990826401999058320721101570390622413384642782226199913607776242461546683933350877975331940254254511235878958637993721638568614936703577255908334686759635948822018587516847047322158239388902961056936869919480350021394006036093322063480120635003086050514672754868870305538285014456715317690157523791368645958294298920855038764261588786044337823499494240899319586702596300767770238165585852089338912022115418321176822108985913438141275493171828718080366512105721554406453477025204609923165577961898532901955000055277296518734537379787020931423228214056424134213740477360458855501994372145342842433606408874699179508877087481340953311368882301532565068908044516434083278682727929730743898628133513181163417714703119143990232177417847672808748429477713832672756226534540330383907250727868444016061709083955411359845149793087113928862014458122654753027680847400665298882264526714219398183902709532318920224535170621997838077358908434518476529222028645588315441270582146737753702449327263475685502441613339556553108398459175797108400994089349057851076642510057265380247933865366524535540694344937954238125444642170528329980958176346925998183911731617157163879979320381390770669607212181851510227341009424843657763685948714381989679692085692500059184122593567976373482259909732377398845288166446896553454563538235497898054877712325434511981583765129205366589973175189936872817051159297122596558045954807202225179683318358410505835642301665510448298039100181317518324655973480417012137953924109843623458592631166101799415020470777650610899429212842887200282074193894214789780234050934846308181256534895003941152756865527903186324402680620636152811603783225474870490188325946456927202365545201624839114472967812492157720106460643929159927792699065826553770157576008314115977736565096954221177797540708589652672016113128137316749858029195907473161718454856644543809278087837696119258597265577747265128970382022715135700881286376446976924319554394221325063644852797080433923441945478275951780636592944207004022377616292704156995449207178046952248335250108849262562373512099885233653484156007733438939774804828259493931313929300438625740088979894515098349558451095697566020814851789540223991989353332089649282537398174842304862866642936846333873780470856677897151046226364052743679791645502015183348164505172639680614351338195614986756782098056662776742969070384443118004806304551949814023938566669952916041620228304198473573453837843854715246050097671733136266682396454181455834450666761180803826333438660799742107078385676509612473156490031050423325415653025374595982031700654349016136193850560538356613633021141927668009485770169392563014338290635334483136163390301645057480030964452379248700292645238765409044738582423150988571463171228146412824996001986452220947586864060706885269786268368185628961618547526066358316233249706165399385753400329483628565841978871257075855112686546398568701682233353311034202283025161348905093530476919520537901182639769786693572136520139312036458775585198043658246854112009523782758871004908822076651025148534515263429414580793383257260789093366984920332700817021413364122769596749020778641321292746459347146745318025278267926018921222334188823036951355423016382096856464972701367323109244054225760637215920916913358756716886238586715907764793956306125405351996341137015844633665014212864798730157235484723165974004684710330458077373597821976797146551807484298541828298672022752792585377962973639154338036807099505584661784596466703794775233647138477642951946973431690450258425724405631279919188135528742020312946835716952187659316656940285570850079817884541127231136829394421040678177987938478352426889357782275161796975660962617512540067884591311782818747970875354874022334325079524706069458534980005183070080747946235951570189913433655148641810267862854705275965362868303252292979345148163543522241483509203708111982709803702701038954449381339341860149139495115684572920229262256306564192979732064659192316420278559675860647303289654638500754204579519791840036122200332038354544830717575520607501978627782348395759280335208538177442647435701694410058558120421836590536639927798907248101196727464564431194657804335853416856874990453912177834760910364746675681641066929427136454622439050086090453586539088840270043612744566506357188694453177159526370463696704800652964038239533120288390644784165366656366528973467244078664103884460288355788125980175098233491461467410312202297938657905209015674126084555183285057625325565417003049481379149081470048254609161770274054858429381227673008537502287484468755017488908893730788735283267829992292727632913697032641268593407371458355926895512990681940643453054471087736834149450916881983184852129216843159460116353089853936197050591517627541421478794272116014282499004415976696177922538410511520187533944793915902855718581457779856931018519983438372118646508792056888177780048117095059927347544363388038003202007865029443743369492022833393403417531216929467778207831264572322031219799481333698015563528031403434456919369189701680017064145818169925155185035057049098690954715175986767440848131990263148706675952841198155945949700169420685198753079844409891307716742742474108313875357177787745335981284855004307772141527645009409304008372120859408616673188649966986285897584171548093660741520131337028229975200467784413984027263275266988589235052286708533023272928583873452870888207891725594746372311023989292029620918093168246026220222065196512501149603514093607894601009744778480838706514787807763675458859712771096832891188232961175403400208597267692257150172929994122722985403474415616610387220155981257671231985685758931566807667310309780407216420980347169099856976468518838739179890885436331703056776204065684577029575233814742127329746966924797022313832494640143647543505694547157235036568697012022595306900742666558585630254597949667347861089242330617085617674536877978176438569287144928713562113177837319922139688804451731202227476339622042285145300287905226652431478576732999226015919376357906490708159530073050184206832180060203840906220625247309129694176235336644020827850863865874179803717705734702331841578094280419357212722158578216102462328633270675662470208512797919361998054391258188098540706125368887146609506177579173806961289774405369752732309893682306877636443034568974199644529274222111047651556667475591297583140280243202603457293518913539021546189165292696818422855175249264175601404636471326256915010228592022611075115209267182495498940087334894766207155198202299315115750941374411928853827570796687772388806844396881608673356895490657947345242898214739613279343469169478142278868891963387321884181372834395334775044955180513188412700593326047829142689710711794616594633001134625583298290330832664936440319922774486923472104024041764206386897523712796284280874838504207147825583153954143105861085781111152284776050055345437372718215148972320554340798131359869222041720194216555264468949545502163481197282620228852396819403863300817634767822976876247140540633793882584857180440769101235420505892449279656129111525330359958554522560255876337821239729228040283649456428522253615939527375838538468373917414363454730983777985904930281230010917355882475462827172517154335938710908964228515093390484710072575742071149000058967425602660280969661056172980076481769474656770922036634522346922699234930324787596390113008524849116823163458215551986407245368873100676350143881913637973902234917210863002304143565037196202260675579378996423683408556253502750004866611618506262100584998803796573016691753121101897094276480043441770938363534043111533864960073802293221535192037090920811105461842467570617669372950346573639091782949296236108045514331646963096799975246267347193969865068487026148477368556905814978869017582930956312969765182995816582235509810923678499182610481960384862013821307317650165983349731871167894098924399662522743356106814153796825678682743825417636566934944684873032238025595393414925503675818842022313073604641872473601984230277642086905502138911459279109824828971721815281611960354453696437653804799795204391134963804520327007620254622830062883977713595631632536954780780715364936544332708583968303018817408455140373083542655424492742262607401440661323765064288186371311670038388077848929477881753743816354756513601030572337212261422370659770642203634067061636151963406091432204045446926752713812206158514434374943089315392521186225516244449256041882170862652679630664754132875025920493438348720225760867922518950623512146074126021469628363732341276221728621492703908012768288445485629147294035067051480655436762051086531370806016644776077024004247807153005162716143775821180951822057878735580498245799067242557749753103755605814483265793408930236848395947005586166165918695107190481085232913822145806719314635290237033168351396157198062709085970593127865417423605709431633594328417964369969102499738056511849795659497147095310788564384457731621043825044134851478249312301282117716962027903045202240419392862801176133962383640663039613439450826229512024302938789079186816217396966459398546981408873019663216431054771148609776906783362435795152750364083425394242771505571012023842029209559693519862339431104360714076623713664108974813409282219404487540951483561847143958337722253044080092056805643742527895410741754738442491298598703359553021353137535521779934689810817136777948971242937027260848001461353530564237476088998879421443792482520808190283298068585655205058010746098310921562283642122022569478435744781842736595753496121086861316010084456424606603966804652508127136784767178968006926356827902136933010935132531489560684652199596760915186597486417728679517416110965852966941138462118662829204310857553018050339378447455511252286659013998181852348928505419157717578135476488446092204583685594920514086826226562010144659157700533867599887320950217735868805873014539680994226517484573872351074648396807500130842288464486108573254866870739216370282488028574080783614694362617164561180066420224788161314696869844553210383878387297237120303765611430111981892669319716623765986518267007821783488403284919711981377724476926984367014989774342247741531927192996483104069614041390113656781662694627327248731253559233441697690497959470414898729484380047249945873636530598933537712611553272504186494397441382412476487550804774398441820294896637495677635449651970612702238504840623325310102540086094101617007453719659734260120396479791353724886190984883682612282373093389158363052284088925241873995202222110872918730484940885638612695098981573217817634933474969561334993097989256820465501122595080893938766683207920206017435036168564524121801332046888304103264031657145458898800959070440177585084605334175327453210058283862025237125573652912378744193457688497044693012797473825009543031601518108369301456851281132254874132591793779474253973036097266138920681883251006426467727364667634298975025036581452817994502808593173950827290316336268167649977821404792713088522387192163739928191971171032595912022892813271505933969611743962223334191895274365429841361276055941581568083460653999870105632674566635712380064418934753138270903401919973423824715263457726152166116809586678623556633925560472797877973680747880317732416583072543744919930782426663844155442847619279652075491964476408952607256525041531894565439712647142084479534714141711933497026504046468110991213890545799256885708874164962133418060775526710223663038240235759454886200048678918498286046704485895225924526514859109775837172980082071720224111149325902213675758110602862109581632051264550243579416050364631010983548832198263733810585125319666458728044772954401689090117943617824071704275128586564876814889739656727866465851934376989536945010451064024535884095759953352784857619219891332505423308506259408311446902133914903039198643271626306336030219660112875346423008644427973929813030599893175512561236043973081482811228190040850037001871829051109498495345135209256760075280326566324381207428892098576376724442908761979478853184111761202274698110304562074282694241018015921740832316225139743458129391329716732954768927707654730651802488489430267560620648617916812659893622851254355954531981452817773059518305785528129409401320119071413083899525449808124970045526765415330928936902996488377584952996620009363837614371880704442984528281886951337793313719627785958745802303405175810813312849130233981131728657106434814378382239031653375131108980247262637109445158763134506195682489716877307877446612961463021442898293449952559078176529532022828842951647059183303417555257706952162912345283445377291708482753131132427431417746824760567523756641811007962996424582354409384602248597768535302609923617503756669375212907153625547728886460932722200595382618835537623932801171014513164500851396173331852938262243980053614084347613070348891430271845081075891640224155947533518898875638881281068918634431140171297203892610763482263040570488065337082356697452568048573540283692687507626115869488395470331313284081404020000252486276429538496423642720226022324496502114337746934457612409114780975570507869444058374498730383140314948867966278691522575321697985220549868169126469044275601199936260730984321131496227007032445393460846248093226613316312456338626172148373597769043262354360377068114102329153997034141834359710908474143678401039174453854854811065799338311704825751453666640433499522316892548158952316570599541619148340525309140875338777991557006293820382416157614364788414603634851109044004877642179039028554704730622005924931266415412143202238376475561531694320280193545283711198973275350802011845206362032810400634764205951056974212324451780766813216294625741259780746167439396116557723617764386054358108867012056808858035133922231678468397859871276503799211528505852714816732941036396304059507822386950186902356781237292124166751376220421763524113467149298247463877752407122428673934681425204753248178266640922119117656128822174001158518765960197280574370509159223218820839609945007185062978582862561115708673476283112828048710934629722022490436835226544549145297058031331885711789579900978527138913499483315947316784545427848299827942728536373124864291328825354022575936642002381203821227890942889353921191971906021132760512553822329239791454525696750091012804391264128362685203222604243292346462377352699486102577076669020072796425148618180471772471830151665744535104143994313802875190716160504672372910926632728120990742623748794412670702430968498285328296961200735685150294377451223957178317169848196139119725004138216445023212138620220217137314251396678454408550301287063433959709475565369630812807405043350702327419533702870925588557490992112911719511902856905440487061169769576446425979217589132321725964165664389952654475251850114345436327107147324176507134749193558293374267303545338281174482357230102933486830162851068166451929516673413720464057844593780123507030085114463119913199312703037140683309021842915671399866674308951454191620035671620576460930841052198139978291294989684471280844584335163069661061915794099823399397202285379398635323322679444074459016530433925752882006206671562532541640166776896806092611040097868498263679920704980345948651853527138459615252288901738803959209155620116371533273132977949079567924475856974356578494404014805571707340494844737165689007537132453763641274681934272310946709226608951696451483023557514504133336006008616336028013510290507677049516399759517797090100600823154877407335651605229724709162621764996859581813859984455968669355242015962436824148220186214870352286275341438436372022680121141995272578323695584411711873286672575120341395944870402579398827222434947363223663695165795924083317828278639634281146874209471709256536298554666327589625771355046206167449534296137485294919696858374529734304888870130305765430038427234159572341730326408766543316998990845015303225955479792342581529652890427021037988526949205736425120287163946226198140542619845375020761097549595702944324522685459867873669492342584828481664538867289497092163328243991588859911666418665793121223372857108120220124840920745470500767643012154577805104880410753148650720976615428091226865106821538793255733147257691062834796840774486603400548511183169097181001137789717439917186879475361143383247000564716126784307518611855824739367043373680771827149769158866787867263468624891996261071005480308775815624522537576310382702718821838937970112171866061386001210622425800124134336229402333880859379219171994136212004178880306046946773256334756392526792238496880372455671438936042923593252749900951329849487298568202280641834869218593432708945787822986978733629752105488607812549102671196473893508990790081608845268325477246426906689947823260836047046310237183332744794840898192503623012125392885237040813388744285063076307848853415325164907503716830544488227850009688311155935876655086843257563773514895608823698385387759917531506384129716222713427894518661556172750008823025486640619738729058681310990014323945236733690769345868313224405295532946266390022770445281391578894482150928548069324508603757050064402972022093836746681567214445746876868777982012861267561401741343193418821730351605478943230756353420151887831075975130598714668045008435037063802168958121454629374988175484894955623852625207264526423527117629639289276490999510101004399371874904797058709008605100254891270465130029891075008683527608610108520869716751198155074605101105495371636751518404278897518946746252681595945274470140618369422917615244605022361915668494364556817993256150759412393315967010412483762095204685441672876176049648619081320228296044758827355978419399280748248253711573412721811807434787631533265812734900954503021576781215653954093809147163630550970406541343256776839392122476173033843763164781342854578671707047707150572449737790607372653226910793260753072405189698087438241356330253892110883412022259408176773731921032373574177899733488317458438616626305555056071459250715556469168295296709432290829982097498403929364849946438844426882735045029662136404823868146434791776224901341927294853172682801341195143566713998666202235505648812443557704450337629928921489138593855771345328984898507089200025494796174516844440541311771281622311318656339562663105150665024973577639001805880360975492116376585119178120684737684493842040755132923132002987424191035311832155408515495549452062207420480044406073992958009791814124575338314561290690194225867000482933188307471037755566616958270224984721359234819296218720105523635055116375196757046012150554354750822575325043806324794905868873938317687018128631095160105292388360133964542022081593048524829643368965396196368147588511067175933761189535105688786036818918225573347477701516357963026474165713568537555893192888460818089556735953044109580726382841712068603069630225228178329712908386600229426157612406150893948192191519875568988620312331819829520847646888524195769774840774245838709685039129138939241563681451186299356656861735248463565236368880808506238268116901681370686231090905856562321430583373818103454766758106637262226149997633486959534867398746393796071855237309600220229677128365173291756023539652676710774434765391997632674110219426910535546791731982364688816336598933048003155705197488160254515359024972699078432426754466351233370182106839879125035330458186890217200870488881965958030453792934969306333860487935486040369029655225703219458111651476097188231330671321995989940017282226665296488406529235870805869150120589000672840549226469093530898737168686537457366996335583786016942495131556612771339148787204323707031061942009599449431878641696867631121480028415202269816116110158129950958726695933715848221375271760298958039203852205525109827944101561148904362115843069620661806605515785958681407909501553691856858373008266082505420886892144192615745320025473667824445371063705122363924999047704731870573348524937130399517821657644760220508451414737533593173807022938712749433415238566974962833149746758827665024750865848648803403086323590994674785011253817042602812633893936028675711591476246410368854431563340878332770200998795913429800365893397027662693146952022541384816924771594491232691218738077811396747839548458463566785413255774997236189436706955662749188515688016051177300656204658204474210687127551760537725866008208369252800533203024940186673008550681042591277886086969262623334743373892153121597659782028066227133038560164154473846754992133187894145147862634899386704884812288053336715265438779359721301017564346648976257940738989835933336515576211391465954663763369059452358109717736855986152360278418472687722517364350714143413845915727779456397020223618769529563654862000651518378964682047541545410238317111232220868223959953994745883431170705606379666254865756201929268733003713314242858495807595404114503161413919307426192286411294311841802611368249996938843874855500948180406031979661862107976013782018799261890038320151948301095206395439285855121587514668614448480507234237381816382090351319298399624050185089953734413904665399838316439330472025908879863742138702792808406621455453792024461433182071564090465952794629473720368596008496960166202294607912699591925082438443468363583214876977140262940155149882796773940610538710213978120103065365532599092992636756925379225168537348190355261524406158474735680330849212914461185869473267466143963407490097049291635230512770349712905653982217171781751568277744051629077056497611988738791369442574529240373631292964649061307262940770982409835762675614170453161718380210573245104899060015901573812768682374508055577575559266327424118523149257296439930950657140061341485402595982772419255279173819352022215446168380135894748450908515156126455189296276046821662662632704706440077941988144095607399577394608755977734272274933275605425050842382334201489665348849076583463915269914498359015248744768624278922271640806924128473480715270072394561239314399860647352691259658540591856844797305810278144303004460557848150909012854149279583409025403966083728243833905211095665100686559566110258022190654811399892056236704233200153066499799423820027203863224996222348073783723874624544952932076414100271981509720222374274652268787559365307437862815407461883993379438367386724740344436935561909564381693140981320660931849459401881421458708668481566377891425769258602005736043146985633263343486903660434917996925555459730356674526611023953110427134534021013635476106005884271487489272416475426939456975107123830911219429024742026713980709901303364090761931052641983008575653631038339894144824711293353014673084446758736216803535322916470583385646788821620351315053400117427281023809748047831415264464209063744748202280534034327326885662797025159305876817769131146694874715240886165341354468402408353160802145329793158534698209182948207314341302945850354075565445914212835194455875690009138590421938169326213228670942203203525274141117627271649684411335259979635782417032858874147347890287352138252881011202845013801670528494570345819109471447154112819741464477489630231567710350109868762221665578677752074622145784348534375289929090069796676391218583914036698564124864027802212661575106398867999595419960580708302022827800627092934873007724255789789746028753163004209485110645868767983046234492198684144498215443085280000632964647783501770344332493458426187716051531607087761370082068668542113291895346681620896773533804226947568299373662023038233041540650502150133893284074254608018871441000251869006937612227298267521712250433660703305918424057679607844242647525193968927829020884551193295104298870785214087639755861692241204965322553704584451519497918965872443024502592471084895225154105115952979039533900381820227039483353756381189412544928548721571174008979314911548885636047055886684524601879973687945640217038556791207371831813559039605192398825946322053296899079183753106327985669422650142817776249747150074225703746933886190437796804887946383490179906882788746669258228909178421619076593273637835315814436079896872027722312769633205521866847536158948597721999977318009258975273500828384154565464826551546585154384007496767746034049663558307879287141997348343408252457257298754456755183271907676557757963202244653023092872878866249728675255605287105799251056752824599376556850021202562295556785728042522218669834657020019438271536684674398475383156859353420322227379532378752182951575948351895349913271809724881558798751045667269081846599387925050871970422038212972580420673814222679025053410521736907094004924685952649902831369030155809838015918211845538136681866832802612474515919168294143521616108161153236411534462831604259402402688593951912027150711870226573418862699802174191363372297640157998245222022717068649666872265143056841348562358615695319162768527633750749719328875918691684902858032816931306815517553384172153088396510209216324313102766479670653155882844987874688771417685634441960229998709757922605666530792257441887786933813112836145763896483934953383820320777192317456768730236029368620150849237582030058629313209302353054453104960635676613406532315503869147351563995479419276852573851656132404522066956439766292347773539636977931663550200908070770218968896778241917179748917824082182920222499308841893594333810234618203338525573495995929860562703863158408992530112054341759498583300871467047560767758558212404484990696700918817299563546679286368424755939643398302382854194253805318185300487249628134260897275183894539565577210354729734494729628233859835367741584434454240674237452076987391523154581402630814423905864389378419595437949834752146089181870882084898213102546714391331415028617497926204276570269430145429637480847492225736269546582023105024139953229666871156495688456698696202246276971674223686621516596298798194969955165753460668021909635266294953848849771552358661459500950874615733174283366602730865758949050803361891585295537038138634198562642521890513230308752568178618807121895178392589702592097167838981376931265311237857689608048332269832522856468782043739816077881542407023793865156669000164709763251825152903388188484428092295569205789708337318615948353792186668669405355801752716231477028110325268525941293654347120429161009221540574766447344561872712341736313622022449453358680452325535938399549993709182806844808627355109173755161253286534077550020460664901205989205610933784538821280876369203364256596437293053223157913179779392899305221189831858583474416675009215506257716022890912934242719192032699700022990158530368723373779202300635226179200260541242808454351760715179322549908965600744804045897007714569822758010195017607422503812726026860683888485464314743935139596038770909564718970867490421254447245999777984177442310356277827593081154186335569416564720220110780211457346510119954139348563834706746830257766655582958217025190558545887834511135189842197577794295449205501960805145142412184982482698010367938390206981791323964482008229311622148417216706192130816049359156771313921047351500326592617562176206277098983027284831992358502337851693397923564172584636095160025530539234935571960313694451638320078143551822713542105329163242355327836093859157296649346487939426557073092681422429949751933085524405245208836866704879068020490533849116827179103069202253863167982907387464565525853742468275287061305126007849707770474751673088539399802140870034984137170332000988511852738335615470009500018461537244778391955923477550236345429349411570935335014648582617282651287319050569833625840511519970390340340181060985440074067785240886854120684194585851032323644250133871354808270522250949526136779914395268547405796400041974026769550533829830407338598972567087059837738269043113450128327627822014435346134457012542059857689395247172797901420773017650083832912022942888140624599785135480872548327461462064893128966109392289890607730193004114859177174769137846868041319190124649935123234521559329140783926165579052333867621174149918649770422866784394641013080929143108560117286570291229648609714549026720970001076268908553092142686241917429327356516257139680855973749212442630842889414902186828074732425072166249611662592659588678769125353591778861528527664322978741646625925483672776381819724669192803673120564440383605328714535135675480537447811774894535613720225563542147776909852522399214566356245018809100905877543198707478223150993711365502158139480723171410062921111989329708711476840231714152030021755748599936449505137578180650414490575621004755369443402445329201590982254867593445893671591054501949910825196069884991465992850083627927615190124798565165900194374371523908995548311170495865800107438757612917274989517524763047426030872773378342035981443881276201414362371378715896233030441424118298818583694117227304284073649860876330413952842739467725202243475586401975165170993246075315945254900026308352202221732069154853513640247587222500715298692197947132085113178202336622731450658382442519446421436237435276554197777861418797575178402117308378981191349307579044350641257882372338803974429341811868851570908507636028345521038911406270453786412467975296828627097303938954490714908065128736282501508558437476274940967433268308075630639407475557150496378089657423093599515985008273157456982928270910223076738556158783027035115983360533112386403965252022719016802235408850481694198562008528116463874047260745162078756158197243549751804648814971136915655754764932501065032406834339924285762732695278136130490128655366614397062860250939404988835939109140272991405615441570543164536449224923479374020130418776180411382922453220508287322724131680061118852301769823324262051807758139695144102820859968141613662379896968618119935699932796801478326290217166692618994298237600610526714138164836528740272977056153517609782993332032176510607416476885867426904720223162616052790220322178202393577345560655400577713002289758495438308077617840560473486644909924203653480503765741771489205469716969925119067222430707770085346717591207127914271072436550899569375380651844131930392876866420455129088665828912848259606148796874667900959057830467730703383273790588997384273256380967124256944776907958109561430544346276970970118683503568851910655780470356512351308839503112565404017738191819991558266922945480031216031080346483754960293125874435848815740480657626470962202205564337799006846992448020529099761924098103805093111135816442722257511224870472031086585189174220895707271539346591492125203703547987421384770011250446368725488133718518648849156975297759178170165524781805595163579711217579426038091718819436365129892618191991347795766919920692862162838858041915047510859599974668644950849488932967427811608933896597752580517169441447890219281024971350912283019260720486172294051975128773080790647556510362202672762724832416194356930153453210024866661720253580642022990209426587753548004658593822141991996331030895126290233469756033277072162510732166345751426141595394047791144785790148101623260977743463286091603125931230458862090580139825453847994081278296908381460936446533738306810586636820109689807810327531734772592401551867137469709252042301191750528683618800869682884769324865977626966549884334913997290729093562145806179296173710093542415193775737648179579569997455925772820044581098145785719365087006941873592502128436291117013300450826685220537548963420224851841872088592983542452644283619931573354310687032854349914107489312810766628954900955317523884024197386873743463655211151175615244610306092573493941982944340771128533716162649340518688357122299214931650589621841161374188201396476709077184256274433738719581546135412846942572169894777394481948694188509778103510654463662165536120189381040650502736714626768773493426953649635642330995320084194566523864890863906783324795848261728478630570391502493734862560314410750508593527576760891680310677049202247450323833587446952317312411381650214084687751216643537971041276157670320803747786717636178613093210112416110408061075212149292712219617560127248811970775428884916479367503106828978642236655640964041566829583808437316484810394535536393730142352911083246958990028689715157716756112207423477182343426772009904763729710580118100832264314813121492999458247443790914450898736956825777158148013316506601128657597615374970451114913784177856839000184040797099499136317967663959139942015761128375702653742022562362294387530288552048181847603038411828853461391898268399534298758138917820367427679322323865377157123369915037989993524970247220022258398098520039836073060548412105660499345829762201931265319334367399943140497044976540531985292854837727430962718682240448475687261927591970044992439613316938751827492729883736621492170045020949326939744389057412383067507603507473165304079278547025766435475772436424729508312025544112395177813180968703818239467588581445032701291487235315481923113098595191340520222485855155087160010360436812708049721361947050344234006681079054755224457904153803691897328590682886839846055455350503010343703161523134999081532853515934611966838869050046719621036367337546679134828238249682224838159930054345389492154459135145217122533504159441754844419616556525908820065388276329381061670298322843611399500355202426117932599086789361712155060038354519303889942437070923824533216736527317335816661923261858337664345653500251213178945026898569487887414020881949108746119208748493202271688459907259147575828247830263427689627746677116787742734131022310653588266504206221628992798790091566720186915534311944023501297984088563014290346106014548461352543539880190881722585107520856784423904970573410164406366611961855913266467335186616725414890629390629713554744441025596650005346198941854364630798693446738979965243873099618875942753477679394874510803326285975327946111782402309173988927291045532129542267385092847575495250276326609687434681901038312973551815536420072476942335860232022717297243487783339887433481803061834337358387186238591715616822688022447336100808095843720481981332180655416695341546566165181264811289875337686556582183852902892580737517439704678024168930282537442652908904874943890787434312923579674530221348709507205569864481372896996724751753317118076747798673703010265277326177224534487040859506637298679438954746629871751321356727093503500604600874684549565145951279486031143770938697762109350622394530784553057475989360268813783296867651592495734204638997820229914638435164508000520397019225028106678469360923779130560131330790366867779831124092822731713058305792611256268545221916635816000697523259055613539960616336865585701064440907968625592833468320576086269435816522026120012094138284474089902941458702233626600812849284918845969895985202727839656135495074243619893569744100895842821771492986591038531572034742533816952925520535692533092906845981589450715528659176409201026542644131314653644108292019733740121476313625354798376789201929794316894001192202257787285294912232478387602958354037327095493205917539959566433492939056538012707964274782132972344109936976477553936948464625480617392697338119968655822147783075806136628904951202980880422229078583838200228792932599971669554340279111875640764677183885045283322778410036398967256446894235452497029658270581714051864624775314677212376576964545220335140816376749839154531744113928620628138443334652437082875525129562702032395577584813783699804060950027802271670107208684122877003597669034106401960862022511507541680299970820948849743990797839606795294570828005056616055888283927161803068298037240239385358764986399616759754009208612137593240688923043824832595363783359508859399243447293433837198308781015098159015795802207616866995815520860021101795788962844718993924679796175329566765024361303433433448315009789246801813918706176019388473769114576015105781438581006458536315706373514978744693548399395436360978538644889215859175752028841574695254485540245557980013114331989542115494831088737659202320228890883288729862337572482233470613110631430849723878808911086441911808254344761798767770357813206333779347085762563189982346699971190140818382288234634129496236171326879479421607311245082786679144745308831239160948931451544811535104984333682396371053413452817613151253724620159745279167633048255804250627399118099009501581073260963130056836501974627905810597993557956133549912764073739777863740952589348562193033515780097983598658908690208079947795546427991975866774929676226731760750320661540461202244936150739449074214320258979916288303652688427055002723439519579764202996606861057784569522844783401811809506310765249554511271972454136398713793070840119238801478011846145973243057333449261536271350667407713371098678322067602283885816737633892948221756961991945163403795917240971768945367047975055275988934619970800919790134613414982470268666293775501550159954630444067303093547462733980944292386524643421690117253492092808203840904246041719852456399164453313372370719351679835240502699491455272022724308415413083521150459321953664382838586853860577021187082051002087780665165058115702111239435776710215808156857668288658077916533714845691834898706741382163725443295233327388816197270280441754401886702602445998953125029558896022904938101198077802820851520764634979002019225922424860013714141763691564819345510589541640427849087539019839122517797654143236033883361029720293321344078219283231653460100246841136824690326803540226290082392335742610679595559632051654239274026441659306343356217366120225322357684379037643191075882835623234724308624971240339472565227766109985917644957740402269452765820805533266513998852067172000452047436213318015280675067813808991356830171096015135471165870540536321220255744154493615059637625392759853707455856004905146546351421628093587508633921948621936949101268212531672421880079777480658335892330472858532409284692443788510859825574126945704126787259471332995132640445400802713963312999713654075937592121915999108437489722215541451563791271122827418463184047202210626245369387303859219712928675046758071862809595377666667476359547715173125673337323282587815636393229947984950435902009973511255946582178536461478835680548767084472783273673945841825311488247644561691600373019502709315291969104146872551697462555757355824975373126915186962864410428699948429087556994720870793524072319856186656608466465193991831970316590496315128047996485275358307775304408278132713009006975794084207496022112818301549938802015452968852636719634917543091911058740650886018683762022245093085521475057912936769621825916901389606137232908593309957950420196394853972347998387143775698654255629773700176554128745559037112658579232755359860015164064215365377938158314225085588939666295306338674107268802938788332294917712379439098866932677457526717299847196373218154015754820424597471384449173943362705850109333133177650420016356221128715389520176711240923875314473144507558615831247795291237066562075758940390210953341704298475485793757267535835267145214540538893780287520836377345420227697529616901668120375393610240951420444556041491388116149564979874696758085747991010154054220122144601198885697014605925447499889599390546610891751804240078832526684922519597047716701764650468632884247850469839887822042671983565043401464721472338958921060374249851957929827488576568951188340938531126564064753601551663283998522892550392287922086906058150304094998150796632645632383284828025151082782937449526434909268227700789705034182195908668819469632192196843536456875981078463879498820934093202239463586685767902434488482158874317528592135583524628679962477794401112023024327018593771217864576611996407822391147435794607138700552903787753588885401289002224941520682317338265643008763227818988351945573210421353791069190514044976611907668264268195046776785436435262198092445822325597593873800012397767595039759002270696341229598231865580722105931739768768347049689954684249326389863170267899778337067506039605574331340154717580074516480435346456624738913864687651440890420919755157750237228562022683089945712381371186635521275738051051134608919792096789088692716212199123661765753131209591758637963887132374245057564858227594926441334176130785399936898685656667796741429481697693670294498477281295513132444137069319266462777538588424472942560025177117821387922832687838131682840342821059551741165263551981588646401622443652757502368591644123499262777934851834343603110741035527967692536191790834173502890042025661553799196802148197231107920044002823357885187326670957805747807275140527632820820224834820802614145798581085283162339814136820641479689778526061408285657285386411843523161486656560921868929694244013509326222027406608544641606229058881095855554107296946577580542433721339247877429703091961512063746343516682352074537250752224067702784791832618960081189157220967817808461097873548790989572506339747143852405472679793293395248651461578647033081983927690676215742913403154190616420607729579710982405908737648773293463934501067064213370713185648044573430235733414796359601690643882900202253283414291332688196211963917543510390179017990534777197318088363550864509775727779814993207841380980736974525220765583121144831621383925862756315337217539478857496601198899263072279814211039391176988841608456744873720840862076592605372226385728016463566004072058677407371723988809441915072224194780370494146815942550520791181852952971932037370858342422477731846629107500343482695085452597595402086063355735706256134635733030911339762085364533627979109746506636804681502795656563690381204422336872022420351925932609488071206815500609759539764163464942199902697377085440282994504541900236886320555024778126601388861441651106697937913813442493309574499352479837031497074162936492111937344973434454905672353998911447110041704628322145960844440219412619351299155334233265833698652237550562713367031902204110436505370447076549010024807182802654469223022671265286265697859684761248836570183939678867234588828023070755342521267390920084331285562014058971649411816965533732501798029680999603874648773904020228260390911719956453830485045355022745267191133808795855513066125943795699113518526125405511281310147843664510783858755212197280904614663464903009863367971728607957448382414953654547702119321612447516426365292168774847514242674954861269198628581199811607489101080800180940652759509670847041878330260333053745623013632678477117844228078279507299086790591372574106804255611341655709127956550104365391871714211370477835766315120416738146645700975502328518257193758465627068750004098547307664263879923202249322727804609334090891202852019147668314884372034873898381432327487461771658190564422094782875219753512871374575214754342059870724565199955574125981408009412822446664542480761440878060458597477237371121765022227349019635867938056869046191475151259002956375483914824291594197496017065102729371270828344920468303944111153296591392738444950391354925384752251145158367531937021033101125615194110848081710677562393639045838715785746265200379225263572077824795789580810757092511461827613553305571523392022488949663389810025107471829047438082984869112845563175792519636941132392220867434764087144846787848418255786790300316161138425061383345493506465621202931834289142280999246863050989547920556005837649774852508934192143032758937742131163965972293091622694444043674289299512339653158406186938748470143686449222359806609831627693659437924680441091027134772375448625951798607082483341567110127488544924060396427635221816339478481102783341972004786586890461162942642277764832820730856599519586845434299520222387167456526346236276637806016613373603770904400065734116574414248186080180000768710086806305185613817219009681105557806844652851461556200775557102158665388022096686036480185927524403114125893149991684541110805554129069896835653206388407272539282105258200331146001480515925152748970640254662061632788267783026779990345898065756827793961554628472001577623493023832617458360589954359717975474975029389167751557023895027569986474995704197776741329294899198281777038218745382698366834516507278816145202232946240422431477920735241737823183171126166396227173668277612271746044407283114026003082281235758733298952558091219543594183623589784417450060742714774475840250836751690274179751107127536377045400656767460647803994221040827400628817143135051042459888604027921595572533405989743596836045278069142660536913975968829204053072692510489108209733884881729714376690263640644588933510593019855266440627489721214390452383207105881776107429115356833667009423523774775314426270076140787109094623419079743042022677209183987418007088738424093852424417820086348622438960888774169448940579885246696046958837437635955245499823318447745040263576839691802529303610338446408354008905466516519748587036330489712213693243841256670348936740779414200980345327542921943689877011134896641165249649754401334371014533460349389890556717067981953795086238784788425349337945920966945480682450452818259476955632710648561356162949777525384968246683009150922876808351678233998747670286413366099636935221759344425091497393246662720227753467374959358741228228704576129216492113636105660620048431053725571957245895721715092291317412128723502669139307641680933444141629784937415012735022692350536998758603852615876153568836535108582153440874030395264120420389286074243999737894378365396735748992324377762422134851524549612259435764505563496700930368348681263498309625466171641074150391525839722192379244083869492093064387558362454583562268043887123040833462332741650011064966927941123592266147594266833086208806642956259020792970766202227366229162966033641828006928002508973730347752891397323266274710331863748012008212805155408959941159149036756213372537490202889430355969754848837274990964840468630237544907584585441317259605521640630608760474091787957003562807170239437209326936748524429672593743913660278214633769041093954123031269223578873443353206025957296830542505138990428810784635656679692339664393450917545082951738528387236391899463415021206807951766242094964401305440102942094998315197005979854703338602250534852969605192022596493260754610507934347403442537567374516341106391045731730076409642569265567033800380219362665413537856036192175500807245302164249388900385394500904932565637658434954708164535680815879942959192561911081158352292807229198798158265194342283482766061049263811389590188148308019999211673569990910956729113975716762923261055933020999832000737115807631762220625977670526659290620298626235705071565836485516737222165212526027579722175218795399616937379353029747737495291929487956873697045143634162510120226901767449449715847942029825431854784640782780853402474356481579979161278005435661414523737848276931193336540188436049659295706018239299031992227249030017064699260660703001454824528266709501786714428573203602132920180668247868318111424632542967882352793951106830964800449982577214546822249150350831524231586956479992780203136339748741456933691559449251989966019687459301974619631542964659761703292299962954031905372720008484742284696121884413538117739838677152737639014045070575393754709449107169202280552616053186610888671927781226141685694084652336639337955744592540686148236475442603820722583105595496722426458563922625028606512192480027625538244256846206239745654217414299474483966251869161764746097170534845426852473901570457687961241831758632539853081960206578256602589449259926312876233493581439993069526306647123920571401031064576719537652837855581654585800095493731205235973034373320320764730738423699893734357830976534554200668534960549492659763477515430752025653895568647777230424755612022661335585484213219789485448148423799631604482841341327505083499939174693312507159251410601391939292129416669703246575366760659942173332860976684699126404184579994793853403554225576604165639239952736758458582952218616472853459036222707428945386796042254110180504575096303007071781892146445560093357663460326929745931347699670709778129214165523899929944410761620086329642733218505531817773695226965196698765247505306383195773577092112957990570889272021413350688478033867846030148953430333420542123420222713834798625261037134361804988293001868220736613643079163529781822901275140748767873169943693211494769424196115938437949140543577230044600023738706025582026628264337814473154657390925480799851713832721552656623619003398488735190666434188578257255782212661511632347057380847520955422297924742632379046516786576290290864986267590033467433761088610464353177339391708398345157524262691759058253681423529102586843503570196430010640787669349480120804502004790003619657725345125166550096510001740835363202250460134595278660077358458256088257034182027513895763365335523574366228865755671637195601260144925540041473876033855457751027695504824508830291903423960941238115622249941745610646316484527774561377596500501320689979644312503748621639884569749701083147403972821814033789170544911958665532908945640235731272596741511718010622849063697282035898702967423985920666625934608355733523142190243345003718600254709035052774572286650996137178789598466765122016151084039972763096628358190584320775996756819402022871605040356044483847777782841849825390633437755177882747110148830275830446145482019016864070980746365009552045916058080801268311270281669644740122493163537248791385256559862886533964174749420416880901034654898859526771410858060301618180370886126091729613127431051277337645594154878461010874205120407911134939120608518334201987555111890187918732302927546764534728793990563660493142434928930087025145754504634654555058141494418125586417632405920707111538415984353951637843188698143979286656872838520225822811141026653488158797613763509823034859963559228247646929144275937115197970724274963993298033391999978510300215422769231043705183222395510428805262082907239759862494230639559842023040195925025724022485974756955951184044618375008990926950702385823797041560000512151987074803183171360108712420090059892805206969850492100025447158954244307395231118467894916349556258011709274934331692549811991766866369551593753000601857189725639973194469032915319161983653387517325210286594030042019648923146534202234918070894857489349437281396137626810751646369213631383361030386876020606219921015599725751534875923574190776524934937511725437173025694507950515424833736269076920119096613810251186442377195209518073618473914936548820957629507042302678255349159554427494158627261109184630017548483502371965765833947343785348571183294941382276083530291928990717530485118231411085105008764179399688327967177144684228196807218902539027882117460204131110586491590868523308392521149024398290823822926298709746603313912022667735467756723398738431666486297472443799531234288377401461713249740189447190252959176494000199837696307548115032237499327232126681166969319386789232867819041867199316226844705946945202528403163232115433823251268813078533012601191095352006981633652435084873818018452030166113716900490418802298932043714228915515032316305484582481617970891510760132341577110030707706500046941880030804057763365752635589091873386703085168126523554284980478522675269189913927736475990300331596013029482766354324790120222693521164981535530977780643401118202470255601495153271712591799269625564395252617688886019357443807751412424305232780877766010987856823263805784366601317034563556501744178007892659259052824523715035415025247824569506311755109932566417007924175410194127978602052171118199537562482103960941419372112559572380524598594311962811696137258960751787598188369642531150071937951440482688841881280469843974161989696996106686577389992513380525569498294948596859567367959381046051401990565347338391000642918202287995887779126429812957892580262090811119575972028671392860372295510356676861966090578016516903894640902168859432019638447336353634133569219882051564934546619737714790967374659765543674773191044981938267710446324157523217071390444979168669860307884002593608244506892281067788078388283376320843704216088476307137491992990136754475312366334197585766718186257878139495455893287853260453750027197589870354802828768823034375684601387443327506775781531230762871390481708833928426612228334977539308203952022175374100595192165023019757138594866413609978988796885733974199952234131405061477026953349189543753363036480762421392481346716248817147061845461486875125966860499143973374963866414029355660189285584118551782746748268572546111878517404311119027974947521121054070606694385617662747351089226949037267520012773227817415778921647217359643405922567301729195532652493269356738756128224233476098129890993315294040922734819891595860733252445248240504127377835219657684237884766864586250228558374778288346320225053364476995519559250379126102013105846665439706787565934234241608399255222684556238346652291238656128838821202993816082157114285492001084813490160976842688334766839286660113979003564234952892729911176505285690485717236418531767374273000363100566002408456568570767426060382695719448385760026907588086478577229583933755107602321272295150072651568423826785756898820668318363218943985797226792004892623081775311252104089132810332806966760131275491363561755571144049415572802710009611944775566647764202200352754233080652083206646677178610542967302930536482120499035182022836026668467378289120070199907265729976646144423446626919885803311966367551754260948781601338383430859349121268691186606348230059320002474601819318272109135172630298465820091517353266310352697334612958172561899271128824323308849219939424380656299690161857265981988276358283632125895553407096162026907282549350345583124398197893280560672413919906010311220825723073139800328223221617973395066865501529880394710025488590184381435562022988335273313049920658829999666429040966304873065788171886074217348530055541911989362802067354973849134942211977313067140141379375240468584529269893921670235656308390139006682150203651845941262467223336662928043159470569201272964534675344245002749215885990747169006249223671223658080896582627868243462155185068013347580316337200793043371120503681741407466213073910492304930281637026586094705474120854328459887291061659788487300087292158966087232150306446193334351710038291650611461148232409955949720224024965255514953401960276881773562385989878794226701030754852159637720659782402851156743629585886903379458283460719324113924080623082670340372331781346521546474605967309194977902385866829139042169542149781784097682909798409513651654730638715053854934175781105874387522354669528324890760944738161470535959618474411999310743661508730400322492002855775699583268493185994990887609333633310369766212833019395066929442413074406750851753410563862712230559086640386774153324902683666484749744800109644798202271516798315942787761148324761907438584773227398150145810270446174986231210138553956843843462181733937033589802965679378097399342161363132306141328948031703146938035794221051886289907525455154783564016711330330056089320066605554593407906322555235613340617576351704368816207580336230658386690581282032800181125198945220196322887914619402888709464641234528464120252500895766241339434438602152366971366522388608012890588885734223494101073876216756208526852897339779644292134823545202920131067294228202022611455062210604599486865709023072270126644828228497780265697974877286565788354182129692103595112374097448041561410223708485372809461099816170175742564838355770562693621955461238067428269676299922352150316366639527893838984471777889118544175714922918961910932625824583616466449383158603660316138741883324085903361563938899406256030421117503278876156361898100472221205100011837740486967523347827078324829658159194076151617645133079384543866713240000165129517499924150698928793219299740164712369573620227797094495393139464032693532864805437806940913028823982932490120617898415575690101885602678839662301013304380572908450318286444343010835198969071380521616683329211265855909231525605336185234889494153925376713796243413738210764163026697338607345986646439012136030474417208508563859898401880269851870787820027680437426601460261553577484171606431325652799225485995503470331366780943227239648046123260570053711137114087520597546844160389438480015646946677265483920154262254499108107725791262181691516202203552082815545973511181753916370557829960228624247608877964449995028468326801722150517372630617404136772476547338181448099740899154227775545579153417451391613593835682377908199443733532134857004839014412873386963624812542944710919835730914835773123506125946967963923320993868969792827276561820580566980556453823509740138578788747741332106957053323841606987097726055074444943390169624245892919066327275782425781153101680351869414639277186362137774802877249641112589957846448416200382722592660360572022753004694533863910145311783673604895571219615423528523986650356594698387566383073783211819545346299229285767911955562956438034078169574704248775682759561491799981194257856773714215701886705708381926632889417425814978644688888204030248457511239629912924154556670683092868289576470552098754457275065187437793449395792328833217285578095517872581590066423178793745224950492495852212335678303134364546177616839691172681831424540433199619920674968664560758456469304020962351586204607915954818570337301220229968425058986861970544391205530919534407991868557753519797092608815818541686586945265205183223844479659955279513874991544073122718409467979847557837236933591657545079749465807232689059848035541772158757016280551573033050574139681982305333983579017541749068494645943088359707299030919372855124645919273493001348412133875960411564628224262106532887780481113838128557829949149860845840596045179424737549996278665497588399067331861370486655881129871027662833877002365862485498974997853526643999640489202255402746657961677373235556487714411490390207837207975294103649984361283749857100089589084111039167503655426004263014133647617230702334188451015307097972968170576130331169885012067337789430792637816091715185176656372812151262097569712823836821194914099960409018292242858449237472542445650844682753521149792893398211442741652530512279910826151024871046112144934565360354112798108560469612200002952892198973226662150512306972705522596778498114487147754463679307358824923651219376987278915770753083972022672123017974174674126942295475140637320596556558214131288216958752347559945284777000142416819096374566831876210439263030965247710541880210097279701884965019161481946888348657592443423865807462660901487403292002063782449459102778527857494593593382065458691702141199925494255183062773104624776320633267558449539646492567016252664643201920138255038789269190265466953424819947830181798464502910005822163498132773318382552582450838113552084604466479626461974604337197693112885538439841076201137250061820228470581709014126658990718479010456051571362675358423677101919766930187517889557870559879032839770260561497897654787904001047192774306939609810026410537061503960717205065549678699623071981577455187781085283456414928469347809142681263873558776784580222796036851199647591332054335584694219941127972794616168455227091047834549775255093875408457455967162258561278306363721631680241569287413235411857546386789836282450836080738752115176654750918356278019445883566033793162116651511321283072413547454145202289947488482326722306125382390874312015939852583278170596043870537600557809925359206655463761325447175003465680428074381895461620523094770787107458893229381471199749841172554116448740703210843693758893888108649021181285615288993099008255840892595040543435727264460238107907452084461381475703344794345146335339580975944785282441971305208129280472659311761408386823739969224281573996767574690530120041523125941668727120433047149449370898204160026767789954941722965991157714213479131084854002063258092022255680027831091860757698187404662882625941423557514481804939535225827798893708160630513742193913696072006566920847418352862890996570231379268851481007027900880700261889362274631725602931411312283485172276984983905638758762982028976007176919946676475435595188848491546149141544862991717051244017572606419516005927230197763744756948782791071902561082646531666525657625522094762301197576889920699259861839781413763637348870708906534675383197001354276835940751382281793184471024198652834763457568587020221689331429777405771432456864678623630664013833263470068853477331983543606057771249695735081989071939195909331876964785126719190564631212848890252045541527372915566663391342137715129412549933601057246808617021850028778218576833583867771833736039841241465801328993071917047165878946288130163255580384415128921121608072088755624256454704509389685421757496602359368838687306785202433684283954440910749946555392503828469387553042125390346345920924885791828069929446905560645874344064668273854391745949202255949652623030530206613432171096400380474742251675843932388711684393878151270620054510963731671820407082197105714349646304511520060546507859387103267751346342893001870956987456183127306727608211851486449073878679652208495476988043834151103473521957597161466613830138432137137671945945224328750488402079980759263722805122206006679767487505141025265016439013243722999497391403099395951154429536738891267174986804350407028384955254227958823390297417084878206485394858306564574906698419129354798725132022992660324400213494737222458717433239284547271505223576254387674806904280696431173701370135512817685149696904091844395366558301085881572898586265916029451333702120523623427589489504229675932342555063583913106422312588353633057216387864755857410154390371920138032433207913770311012511787247251100363995753620760056559082556797915536421862993495002621448508079633572897140341059054536600211612573726692153422170398527796132009073645887662988526365565952438126445383629980204511184973207843791774162920223992180115432436496792569549813749418133993201852320908034717074542917218456952915138119455673033318032235422081225864730954818318578486067379729026692850541223627231008206701773237315270188534300520837064670180099796404700352014585409759979442434949864931703762712061084382818530863799259331637254676485231965228308186406572135677421201769937445815139884945578926714326089762785472507949065454703172880870407340260681775574579734768847091419689848998553352301425725921562631126189287384521042141202299872861456398678534396911026791187373823387211830105869010141319665721023880433360504012002304755497013360592636875157245986126868747072444674544466498801486969065447774570296217657243742422709301616355854920977966220070680035667728033996811173347455650767830965218671020034101785569313623790486916435589175959495300634841292311864533985080766466480440468497020793616087966776093221258349129726117441062572998184003922950926229305132310337169751639287560626595860817824048343374439253498241717062022325578572808771279431747234911376707913898709839473651215776113439028773433042135206353256651557249636032500184274196056162135007705980945321860858882105554463837909263063904330318094352339473716766168901655199287400901740666935968637430589645793887133899423853996092332612548776417204235112059523948825649755466726245535291857572564698723449151203658246463478941337728694749171344436819212561932372004746934436947735480159396939229146591927580405660887484800677779035609941985382588334920346095720226274086519456571070163572422050308457387221801565204977126043412645180147815677786173152572996493606344377915429084611273138629360262059571447268809319172162083352690088536372260129332184865022465878358479874781585622621343660207644480489422105174463088615599829021382821286106485625380583539818917670693598124314771023076374453482549371408123819059090562808681793042638348284331911945907938444955477201804357271881493344344038285979269781225651148582521966480351943591633859929857462557267166959202228859448187852504048126177821159067554202726575944054283708361784483300178930720144172779172413004137900175328000788421593096510550835932305718419008932567455355466882943043108525135655527997370749536309282305933067632563399350202560236538632665646990057868309564381210311077761904601928183386585936807183040913877800077513989828120878615977535492763751752486403085076541657420619999818140133728236727425606397390508797034600127043870622422035933818558485501187103390587316811545740790547079103222022817684049307754322198266152985740240991064712196298553180808864645627893550228793456482985937759022499834152003102751398239100334203005169698138657283809883169186926015895920250582590288890754975188136616604434728487121417647887025197530606039118773180724674129271139571703187053662263621114471859632613437555017911914853266977246878963863071704168015475026301489521378386280700407137861999910351361292492952741499126955419418517945011893978047294869664685037357957703844688647709217925861550761120226519328089877135828772182824682504403860516566181362222264497807151470296881690703145024902133852945310660563624451005119662820217710864141309951883251810455195251239994442040510636059729890483388276003848000175526286304355082598819123517356959155714748043143710696545573795781472561889490934994312122914615847310202511832152730443410427629637614016126417633008047613695775733146635242824242488823892230511397364645742625846460141404170088376705902010707438085721273638316068902441462173297147664202241885772476075403073693601763626295552599370328062225763517995207044349879126410953199885201023326194051499589320148346046200035211202496393197389327445367130494756199153578835742916901295456485171554662950502850992892134645193192908516716756408463996395863064359008976941388761934632699141744151152784755841421690833692279695834334497555522285380850844991672353629700962545961987725360813748548262481243525564192988243141380571597911517329728498117730172004534702296308930460090731472599099613972022337754873279646682332251340305128490235102877745946915940870876492160142358344791608230723809943974523107316305964454664458656324991693624467041738178535266914851227909353317338268800650357840275482284893078218282884464179081431219773135273642864508773621738063518667205965111487444925441305706995142525818654333053650568634018782790478290900805263654851683622613870567954230070784970238641372862146012052103846308315608241740571164564757484636922073224669348036777760800695557316339619865760427820227522735085107658120171505084551691407453614897628357589362743476259352589254822715901760946586513208493549118667964091886389189217437271969222072177348058761277044025631810166135923912525834596860602735215372224116534137398500868804780565961526956157137202577446762097739462766828387754240880991061720813858173306820798097752852336722680018628169235353500931192467278764992809321403249284004997384180575653691753201173438460406092380715558158116730342446209539893763723743681011934749505552129451202267341599830654000806403941924321316300226675265377734258663637417731654922488986059244649271790809375927299521745222897383742143321702632557479752156899428703892362553420100255172834326942417451477915263425564167550948955756613205211429550322731914270785482036481067154537470039261267653276480374765123850084177062603176242715508109166051317059593605489193495207831325341547365100376015525234159466763842521678765957238385411722877988587227334876789417463306057655430342718048701141179840563849542022927210823368240216689090063326765716290335409975522276997600720850549839774902834965862353546379320627030484974337442362226363167676428445041937396779845581342404593141100182630799230549509429619368513931521363710354688008987432563520532698258722802727708971298156662407465158359910438880100924154329098975693825259953174776687832072242245545488750732847011955669738487292058974125421751572590459256176153987978618446010868108431674687567926994113054391801659156024769195598311695602519032675215920220386767535363455890568104443712987348902681586031649373114295910263591640930355772253261555692296231287049497216893472845960597894369021697342408448695692657564088213926714353587121007327058537236710209027745175207072397315743358932918423627076039416580655499229207078303510188323294405402227586466723405551943452743855548400241870740383932175521980179943944574048229842060758182657954043955201400523860955888373889516683483304334932199516386536525780021184925133614427773452097677780450990806140202219750130867450990307911704774516398584173611595206017299413464200872665995893154108976074405791192396250335284641360001422085313229836467114471569617734116577136412184048706250998647541410233387154918582969163163583225312427754507849141428952555131891464700806095537196176790939536701162245909739444538212226638252382568965124345097967388465513479223013673406838539273527524724533467534083050449341816612879794219577206458631062842164201410479631339192651072913857275327529120490825689060291601542022452004362918965820572967834324705296433199939405316872624516564697897726368011619944072048257406354782859807964160103189755697379057247510257606506188061224922851518612895030884338658449059775206327683023545893606854169449133576795999365708462090646167787609132167852493883998521110041550911199568498740488787453622982980930823194324439859149212679916290227425299935546584577224689933775812190700340956238638597635771394119324307103963542351018668909314722637618879066553882363447986431270326919720221833417707179566377570548113022529246154377366078220081784553208207112934840220698500982634446721140311334659833803408527894605902638144929368562419941319136508494372216862108167572120610888221470047439810961199154700788742642495840115231660437593595960927702257136540912269671789702997865274286306827250777675064422409981437047206304615148251645945797556569477962394982140171965967552537445077618139178861165596140833289130819880488478928080277799210342161751829754007558431204303587348809573982202245442798622140332618118615040898869357341157666252284179716347612022120621779516285232058805129766738437697820688473357165571282295899815607685156663364519303411868015474739889013895974553510034794158682657781480814664206343810314235902137070192025390062992438827332635401817799476213841095018035016534042862659474092458142990596661822364791141884346685155123287954597667982217859646936850417538977843794313523681721150033108701957494387707162484310235973668991410723868380441504744317720164436732022968936511581353715096190377775450460342079953329795498081339416146577639515509201562377123341528005558831762693457051009481951196119381279410939003928897731071001676365642353992060887827391139702847644408689854841875262684169097348147968128605211057763275491722812941532840434190508400328308276684791914203576459421267922835184200602938397792490027864108438906808136029935574955724672270626432561532011881449119246094970162142974900806749567626159422782792951883894420924366358252807728657018679120224487179468451595562180689497658333994800349816012173956519928852818982438710364786945868824039964349555105991720545753841680152541437814288547331571106894622711690662511544937066932692342168314105098174087681787592975615229803852646387273923006602865990254676303068430700079521828162069222831452379733326321909969372832764110775073803698743604848899767759107629177420637075085757025450665694695005968421272861260742793571329255715249696853690219628912009326790956344475898215347595087510011056523202236821708924414318552595954728419756042339983178846445362956488911630530243549603066830098847662480386203181487288625218654608123014083158985438239199898878402389655380177993794782774172430650105994049480577073961806836692684254772312634932016053360269655713323400510009960603699471968603850082417591400677687183351933267424036482416555799153601627950971567446076758687564645311532843535297427078768019749528980016446911655227677098013196975508751008467672603617882406816522009462424430518683126042022812589951804746562866461617701432022713138858254679154412480376124351617055384299519225269554774267140621013836931105880357613758763690087359795952821769741635385208710539717939439102173088153640885787542915580647701497424652178872287557065048237600931593580095612700532720555560279965524350484313319920600985135665473053287051018223945665029270214164619449571317900961265008159952859629941597503241727592723062267071669520896150573584282598412975157353310813141526408906936988353597838112884459320227525381663319663924354438832892510230199328856588964390331419609296831372470183414546766125260663644322412556471149248077989400114192675186801406222610668845085061119753606307973567951131806077371315473618343744040747466198701066781114637058727982021843665245285060241773159951259056824389729458899761274343986154394167775451093375165812210302651814977603639397146560699921100172967524037105661481705204654256727830364754248841148846819215911558627646876643522556068579219354293961146168217096057202272793185056092372761959168750059928381027660557729039751482162584483686624591356299561507807904625480562893350159410508819862900617304641963585038507527587142662788278581901843771450300970047925571467444119289923755720566542249025099365723354081918768108354583485482922263560341910438179868676905645392914269135381834359445191751221569501007638466631418609939438789830386629040852023454603618613530493987091181346029165405708536074494721319378153017477023005996331539477025542999495931736683122402022171780546224173622053538060146137443862185406663884102046768890923273483771684384567981803467320981968852315795735353197141594887740586567254104310951007513774386734108471274533216914713909144821340196206880154111637316398756506912906184152119263420116126244743177529457920693683446026098791158031286807576165223182186063166566325190398532402508015912530780579676306830292265963821093957773762810615071435352712277675522678039869623731064954206286062873518907134058590248423476577147825226203336720222242354462071142091896593581354042493746396704116097052180137087091269234153095114826029521457789187196468705095927727758635001724310458169105381547601221482461262169327204658386301451712156703304878992923699104343994299549064448573166256859234119171675723692053526127996476752697977581859533400741526140214987427862528367343555380654841900269796383962277751482393561704970074576924586801682007652119095500661779223907341924039616995228436420460986680824830344836158010805427793052701701526972238202261025534712594687246950928687993550220820479254658060702945309414045326365875986980463159015483359569167592587867367115052632807317473433755966493080393600747983677714628203159945573482684653976697734582818806887066474637554595361558740650571222877941172542295567295814022821282796946547688785384384354726618813621053862670552314287783658211527618862124628030532486032531718786685339280230636409090288274617266282543557571753786016451821367154317992747447812650154876295458788328402161961709482722022917471762404416484979366365538987181199217239156500139083058360986920192336050619916717999986837302989514533968223766979616030592803864060437569449957337442129323246574959902010731815367703630417401823517034869733204877459743789724254451130348206726852580077157956311894303220748750647746288156328984148831021200591019187485436482530186869190914024629589054541281139931641641326475093201318952565427328989378421832460227087885999060659828299242652848832195317766545821266118500931249777162863019320226874979257003160496692292217190559129598414569284642300092976207058127715359359181075650422977439714755692190863942972843357464193879537681040888785202589857895197815812739680414092466501587253840861359339862650583263647743671120407269487675608694786660260890897865581987451052634089589443670386844894030493172326576682966404820085544437052991323346604254886155688971600644331809347281744218580035531477346328604543811380063014280420393244611543447838695790799370986484959808657375771657574339949202251317644586535994253890806573296810256444978479931601662648136830384887372944780833856463923099673697606116624317649679300465561428682620246283735976847127720175749916681911041569642658475338735341084653116086604577478204139099100958160271129474536474876159598259028587673177790474876026872659985024048875756194744381378467204321064297071994177028121728493021980868188318197629123609021091893423071414585487250487478907158899812334796757373824406171153873270458380612365057904397413187624560951902022971144611782314745297222252613148622923408979113036505212452647562467966378580606670600559409317189224767194843640238804520066130200403827061995682856030603585432815106352861629081483868998565452514796781007256725340708928175800453633040152531373986871937649587567828244436802564675349946883287357983032584979451162786871476706585485976918270497633346431621332565369921667123358353267630539388487569259530154851488628582866811730369027179062023321045893698706346299353598563911467631306710586734020224424281524936674888114586896534620712367585831975039715713271879350805467137347403876197884020935860901566758111269144019090143188097933236105450372998038710816465489513949840408796594052075959470210708272095093677555646387614885630983351064687298020875059554615516477326658927935684531740608264864092305459696496700643984933034164798752965914133290947160492075707566704447612065293789928890582324509515050640948952472270267009456818292658995306002700543611839301644461731588886503344429218677851202250424375156232719343787774906750212443547790979068274297620700234149068902672761664585555806365600810065729980847793740456710915143402813421189573368851999153579640198002645809535601870307693633402698963587685662594241085599826093125738086106984580773117672917174704372042592086978418807484473970342120936713144702876954649970208574098130360830529240119463606655347405595630780987364110292787116874357363523523369718011109912303355660179205578531531817299000920598422475043960863181933344906609102022662656382437022913328267559420419946101071696924610116746760148834110856809525631571273663934361769531812550008346200493487602107465266483789468100566772899669645821481766293599875721011200937539592934541986430455122214771658503352461245727737415441864657147363305157874141610009236797415849341349819296381836618400664621298089691059891299854963099861244919481398748791418997568216273034898515772873385461804186371662572375025875396801781738609572662105348804571699424528353018808566493738984536220228451065554519332044838737819771758168284273575514758825771436756383656370655853905461994315675284047692356817117406744413633993930211258786674396578686743314770986267242924464562925827416403927389072417704393676779600232939940540900005118582103676320459106604422774171771917807071683746165428888096686218621160285726713772052271304957946759297234552667245779408860675496666574050035723054240165652407460763589722532742927535670668773491483230176817434610127293655204501634223044628475539575164302202289381703268366761253048846625569946589123468799415344763995786425791353838401261253394090957980288320178986118338341112616887269474319846470129888663260624587123328297006278382298973108749981459236204420123046649324151135929712784876204821414607253293531339229954114338461252871750320177110912418263272956561798960296338286840432003293708255908815173564696139798670103327096709747914683984508018294444178162274763786448895195301896994148500597013405631072498357297226118436929114379921821995314482022651393899178766749383581974480480423990850218535536014048688567976102176825726152393619505136490426236642142064461866269057983162235968972928983030246672868465908176873703084028070912561717431791933781734159530757807435496769749450643638908955820292026754630672004364434428996728211231115296838485661457487299345699131692063055171702883334160851709405643937827755543341217429561568857084384464350205037145163626895688889491503924805675621846952841531644473903651910882238542684642374065342849856820224236138313677541132390294586309453941571345378318697554779834451650879604714000680566336948511803805117892228842465123011590849102503334774218257015454442805092805140485047948243029689296599112873696615521340636895280925377290328356774923751913307436748848105890490300257226195315867048274056694694325204308995992471771832660066730847602810937884669327683978659758381920296811026483713467681275121981137539905064367241562931637853129757122499990393025701587970965559315069004929946741087810452090202212436966414451176169803777830171911298648823668439059671452889729465357594169604739268030646413282024802613465569545093167688570454144363956034523566920171193914894005618814493668644265152788520189429474398718025473455333840863397143368307846304630567147324975951212517077634464705031159532015639965101116607893985612587224667555748130700425435754124440401082600350799151078630954781440056640793148294021668450003510161917557562533999088758291409716997041746665425073581575469762537761494096075272022101576740735623035951134469935193216003112493061231474787600455471678821069491234250326852303734126112890640200018058706956670568146048414920912817449740205340283569444853341793042760964998444758785712587254485181482762444872702931779846172533916921532317172044505976243144772217256598182165079640173613275322972164282446697746843721773179904139524621563012178020169712209626138718891897943615799913616401906300913821936948067496759804906008652070571031324182077944916363481444920195059613854559720221544074935868718472907998085434901853957737264648522783469140546628499738649381761267904914523669388869740727606158614784669787145560505657917996872302444184237024019971286501259842198099633952334860150189092747778675895233573125852022295574456323856025334350618026929177737102286964227806421497934842274738119898891936779113047147723213267143889020295318299087822741467416149711127101857643770958216567709467940398887898849183512270561831650790899961125396093409274675644258687930882915733110215202240135524370720020819712739091501176468114359809404921625515165049084474902987776277421117115106848971958111457477559350163280304191743576447265754714992567293755009421786068482784876413169025150098799859620414810158132667363502112827661581326563337215362964277438124992229028384944926250465586548399130973038385152400153511810174816143374439347245947364337560876429980649728684576700206264579249281442602476897305021748848493235257558563279554686629155792282007102050080862048742221510726974526592022880125389438947492624828346887053721793595325680010482894738313650572159208569298764559373031180069074927095877886712802127057229641102257903115250386982600957926074759060601179528315607230325450724497753866684034150469579152462004726439014543609968809574622333324195460463720019362433282610242261582232043221680030673674111449702797750374155104823506417426771646126175622347331691120955660006647710700652635545203057605551570705961065117217544278152204786104911490473021027772125441201885890942220224854618710979921754326895341396311475104199906926177388058029000150236732220672545963235884822671027171899744808155256190655552814898672287869052082462697796659902523383935422770812476248113763709166762678977198133676012244381232684486309157977594869004929158741213357092407693409906750215947135441245697569121497630099806376804610105280710588175448903358537766876964025289125701381810783082731393122208364017617150429744284754942928307192736319511623252131785758379756889267892079215200400526582202221546316607718364962964031958935992452005323237454830422241097827286858690839731774546045211149462034638998338357936673992559374700588868951220760462897867119733627494768524863166744525353104415750339094600732934540522764885866250054686433241611560137486937287041363965855956432418746639951602335668506358090534422092570800447660106028777831095883299855040077647010278848955153653678496696016652995789675294103940999470477634706442916237811973574467119682384002718045124385637991804888509672939052022088620117790753098309523453867759909037413267919595883144286434081633148221872759298173916467761248158088706543213604576330632976548041408946257813079694918404801149776021809417068771005367158793671434253667397052246090629162328332908632785793682762338292375229345833140715301049580214689648560813922538447297332777774901395266589072073686367716051324479624110752967872373305145115817033860090400915607125535670162805715654435255746235090323152460031305111333863761431042535691781366175471642856720221104004509884031822948282042830364461612066847826629412631555513312617899226423129118898979032587850588016288964499699015331253359967639685984159907784315596457255804212626111971993481874247044310932316462212280624109295507776370329103767210432659630315404680089393147476587826370258315665412506477340327446703796622142021377055224918532395707500472830511479834480618331091890774964973856099188504964822513038469045585549516597709745821379747984791592454667718966647184369157692347703366055325968202298981451370813486809025349141461871347374673927885700695075167739545839962835376232398993511783381143837976854877831276622055270362145959864080270943906715265742841433163412481229468444827845406769833986443590990223722872252868593715390502616975050624941123135515010659159956957640793552624729229836315335462627726118764703775925541495270423308397826292823860377896337177669134807644505832573162603033313651686555783677189079168665352095808123625676380715944557864277327294245417556498412744470042022438807225672750231620146685444549172909946241334217328063958638095645302875025432991712155042975245878539940308222954104135081879495326708664614809427216870066297895762669447324408443989278278109684143596512521026904119982695607101828607540576060540078049364620232724574628399712081158576753316775581850118174418086494325575049065382471606666193706736445806541641167191593073062476945745003407169461666778092377174583542245290454863149975894754018834469828434325921084984164521769907014877989645420220092250915824017204379573719834528923155930465151560684623485610402106264134566964619101275268167961622883676090732981185962637176317014402009097309038992470291876227095779090247730138650848110225418911833700063800490227691543390095718483703935552192793383856855626036407191521942761451427709370432391296478841943044333071294728315598199862459924953755736384028698429734392533472691013032229359326776540960107805233061080876358253698047497057557608955279321183849423774537698494986875634068689189202265160376465741636443296714638530444315100954294317777065339583123850609437845424176703546741500893491895545831024697529854075064048312056766149917666800019074904036296745910663786971570210179331767419684601588627143828065898799043362228260808162511180939149527079049191738035886886134318667487106636717073878535032418343669251607898797900540290587598542773570700956317425007784363615000097928671165484361102566368751568715509411067193099387476038285013920692295051008271630215837984774913097386032022386113239488431484349894994877468312730015788441394696169232843008027338865479333132156009179323131577872072972021516425549192063944108922821183406459213679407257366558300814342914065336641283783155907829187938589794167119325374485611627510297806538884754874921096133301698367877435235405722642974482908456691385801128082977945230126153445455131630575004787717064238578108474988407530348132485338134277464452886696271692444700184008151751340756670840985893819673900283046688670193047213636141325320220662758581056162497046454942195156193351210204661280420558792853628667498294585147175277509679684046406257294411316532070218290317181844162998462567267721660605457405545158397070846764875228582068575673879446503368066063864928405390471264962753959925327863307855268642037091360481559567764648363348052116582754470022740666121947055595372789571070344477849292171201397560405229639186224174826309039813820988945460282501462624973368813412992962995353278377943801920714491817429330637037179619068376202215823666730049934627093418193663774312078705987290157298328183902116585835358538272384365914578518558164438904822606654198221478512376925745441819774572837431233352999159754414867843734325642437913784709536262187233627614540045801798804022730797314824180595456230327503007369793299028066033780911455938265834175975718107431453566992942153272187929248523315808831132352728839479279971391959355850490857598490600016487564887935535202243815787511932777883110370510565867897389554757173650620557373012022114605764263745375552541573027121432789639443354651288146425751579809054152454003825312018190694923352710024229385048324705129438850657230693707008330590803450568789825571204058581317776199458824454169940171515842453328914403408546981723406503037425337918216344907572322604594146811091083040858576783587456085342351069460694925509173011379303309383675682186311051333510153225887066181627017429346754475887101464960382690515054568406712229362007121353409442260327360884580278621337394373046800113320229661592148953843601820289335550105399349788491138582776811841872798632981813484471947543974494190557721885364015088280410452419235831262302846598242121370733453857755305106311047366311475557556220223067378967923529951537608679740334643085991795096801995453412035465511481120696110297792056360783416696095765827743545262527871898014577030656086558200847821847469126718585493415826578658253785682109308292246795341494231417424635278777103032580234601372547456710617761973530647441581854904738015870202235431115434629348313669044277287176319160521353856005823258874842977363020987012559029262696367611431200312060626285524509184459750717788650813505590912107462226785961205996887136614209856532042507102198437334602845435550328339810123552460012828759768368262059668627948076859759785896743887342336040189127800959893865247150501768055557109065865975920619954102954441399493144130296787874003460097074890171539158984894028079505990853051502946869659017178747379527346000649127635322373951270164895072022429786285990836610401878644636576532076682228990992397831110196549084009285336988928100754831193391259414626304573478985044553537485141292291050130670015047572404929223912487859874290496082613883680536475386186819056082860128627674667311854030558784914380514773167400545556511975253930490871054293104368435583090782643435769847145806424172474372664829525445644530516783515371453021247836814452220722580896040731522308948918966577808087745654086386594148573130192053088093401988985168204399491825620224822762686060252765472182083238271809230413545350187756288800991778898064349929757072411478599960663698716317250079264793022799940108660763743485184696183677143085928371146222464698288666487688563823682046081894856023793387931213066448664505232799275365022684173039566233637137624960005963024881747035542871195432515763440650534134746030791229285041509887043976820771391917781756659013344985175125614858054830461453095916077489505413797552423611635092478514084648849898778830230166389853034602113202232796313419670154221854750299884540900781985265087381081802785890880476851706687512138452308758917283019999300848242858758550517800159435927426861315659589727844896469871283358240736399351508075717468760039788666148952669217521749222128494961277741725404104126713114094142980718922457696362926604158906063126899824933509915096749827973475523300722710786480121776588905069092236880644899585451519344209967232754343562738463440549694508630808118308247425300008649353370987199077740420015500102954642022503997248869397694271721378253510100978416578366981585300367139043382765709616115778457655175745518386652499127141771152972241514091260885520382263200371693477329620515466761205709529176358082907561676033800168210323488476956243332191693783008854877874708678214450642881155712386551161914118003009915788113171297901237620024028160276288995375321462966586970604795847701293375255383511412724401747874690619563316978437048549632233563156717601935725995750583017315430643527667007809247072817107136620220707948727494564866291200161180753527348045229006643146029355781745560535262068758873676292167874776900022249599259672501919275384620261640538755119355307542850700143237055802004160340625729846104444512622289861171753924383528762700793141442322600304866029019218779554858018363802487932290206469549998278368565862624153184827764272188641945246529146780854642365471912469852291184008014854595252033664535468950676263147737917539551234366050671942518977051711496523681654613730580225312688573157228202267151003258918978197607664019718762611263159840287400751536637265405696398284510777991768789787222788425571012471799617945264779619508390720260952555322638027585958755111215465490548420810577358607489464560990276408289853401002625671965885557261875745128994244588497442962947567823310608730281311234203484320397746319731002033443742731141330416046332606200450374437576227567196117879891866866998476348492141954212256977668927300460683963874731544770267328955583348512526186873847150423097518391442022148083035761943621511822463453709676610305920269573911431722269394415047050517601622157570772523637428617369991829279388795864022373804798417043031033722517096864339136871551052218208623762347194256233136501805099357981990542631112782168343696723220171997938296303215138245594126181056494179058172994448846917063599357740929720760836225583247342642976277220804652351050735118723574333225668831251980189971241398398515265829262222446203944646311592860299163754312308442302366251220775926926449245820223620765421805046747901694093397517450860808498248811157810668576714495395100873878040084242818634436841675428778894168942690655085175756464801791183159349744395838263737368019567297142739283021809413300549590106504518144847130786944109729936561122741297782244955645658803330173334040673510041253382038460054836502384450718939565821984711372623759250288539154484222566387867775781678712384167049744869634154676953792571876405441830834584519741943873392384209558494412466987985673164695762934798139202239678070682364762415215204190581039573207700458183844399716382614636381800289737467431411678752536683013937463576823536118311149774999220494854959160513626686541614255227042106718657760835952642366571300465904441687376085010777628252526016711857977979515914940553343500588561832350112926463727942255931544366259591349561103182568944865436944110936366163795754059921579307336175481612497738363450350784889399808114001897709776467618095276532421655024725732824077137008318948345419352900845110036662022502643926479822849275063051467669167237194252158327578710581171947596175691055378749068148852218960966525685386614004121328832531460287774194303406615479427276316940649838147762260108804832283665934332434728914727704279680168009420834268904620993907795051913713399857816780266615937507569168971913722040283484458614020590305511244893109371857719987152867944227771879356206801651139144277037272750824548166773387798983431620336411499310315641177087017432331154375814268714052462409675427313458622720226529753019590010437511286777175122733347543275614707028049823238178560771380166731018832407689549230310398579818656656026634930240276752226065934585054722577289850957285909729069044390545435503582513048914016833714032307412235885936922049917061580908686255909143498678239824592965817036503721496649782330429120499469583679359860834934572368449144701422171602925488561470336154622300439489047633071601233621751760530270776356713422645686658633351391189011820440096291260968577041798251022876296834202257980482874529729516573831716880344104621477731635322439771661493525431801268976324191815132077624737585566971163744526070496269949188332004190129794910528006030313256352818651970820253762168399915991893123383678407728061115908408353603379826954974400538409833038714194068800426755057330773723370698015411668838730773265301866837161324250828632160527350127774267519897683669642981182338404665432867410822713166467597414338551036434579830293542587121136287451230369322680821708587279517502317253482022630973340995682823345642750145880110279149487399323400835033595013578773915046850452865909785329520296350597179957424324550586170570637419762505230418307659380428304682148956718377714141596443535272097747242844261529054086244389712641884125100429753337235440765135800502882077163308383985041747652897142064728203346624832763466878118588549345886840133235134142499154304096632401177340158225735377232177361001188361751641042155343514122196177404115532289665369162439469560390290559416732977438433020224160944562655830522381397940144902155877734624260749262923784385459126062138968300850644027704399481929318038364466132560201538915577773188794689718965651308737983924697665727224497360336737438478376967060530932983978263784348404526866828609826682125321418433771538128133409651477462767609296146644374521476264509043268122957113721659422118224338555713626051925014957962401442969659439494016716183735606675879144327441845141581710336372151216488991133627637290278209732763815040418987376416222453202253078448631206453195161432875779994293466052661880115302132326727865511523550847150421631852578130818296965225542120981780194433185369374366795380968351691858952011370195707296809114748830759593776961755557833386709246015460543793838828939922534271161073161078317234140194120964739147662095835956618443290855787035665794274636894234095682775419090969235877363753177223575470501331601671567181634969889678327829421849613274560396902900272568083660510610535554861677914085374460071523463918281450862022605078948486700388429886763534282445289463574824675420202171796842768363841527143883063062981240372337238523820856773402731591573665284351337152656292149973537103037309146997156322919718290351995034555238302498954339803484112320965330114143160360406611803518744758806432147563478992665998596432750186173875839866780096000297286719719403607115676417511647400695016186733265557190672044574981138578708707070681888554074160839708067433226508096949812677375973012731999793290584651991942269258428979620229017440444022163391410086051049721720004323210800911927786193893754230461867549128873819659908097224459850998055436366581057877364847586944385281126304063705797944074355386733017814928702186430705507202393698415539566789544316811710790599840652107113399757515018347213161800910586030155303192703708803264894173999789787843536578685303142639810192363159700531481125359402001060296984933299649238359883192399358119971690978568124470094022806065309912224947297183567691570590248609899626897598077779202224815986585680233327176387493743311496001484265484418300748345752200443798151944929400512314539405525227920535891970571296939165159114138303288238472580059661705604581551351413529148259388286668831333781443716164763938410660347351459637374899093602379548825941892743159859016971602982130624506377356700049621600230289627843839927105219198790969854968654449308711878604506726113364704039753379419019314338672880178949454606695143355150946103213132668553763025568297128366894912370986179612105337912022629404685710580913512729440981050004931667183129738878210969914348196440869696632548328522023319661041771490222419961884682051446920437077846488955191481936547685188769390171923309743596324967720557736720503641019510020033036315462412025475607442328041979428809853999397207632325954611317525229148930275138072871420708935208898380152227322435213540421941957794308168464750933338382629974582157883920807935403546410605783103198682527247711178405096688326031861316847200391867554264671178699455491120229816465668835613991790853252375973638365127821017740068375566089046694791142689339960337713994079385868068875010555676729273534201610713474040648154200203359678797182231164639694116407279338600240787157488975751498897009238993301813464797626418679392230762265526568562679486942881802753066947154497429886292009612495895032707401292287040316006260727392500151082350237516304742668099344286938343980563255927100957592394978192731258905496242676479590512587824660213023260316037074465912362995900569202208724322744627614888596281083035839143834725008347316348907502043523953185524922722914938747609363458872147679611544046093545501194108574254745064935880207821299917156575538156200093679859179870107115125856625836956655752352676640207294204157087593899170516673102571065803110883160728528637951657917499452142959003355104229032948230849297851105606612271276254934750141319967615148102596107473905899795530003933875971104595750873705928756870067495572787705058478028262870057113991775866098724442692022306646252663788560195781204987918879411921790598962822027700486931485600463174980293186759417247539461342878484822388609243041254514894920009782486441482395824642717706593206871749573026665961525974173619952713492707286984077898197573529213370279649717112200187421912906194539413234600910499563445182872584454648479593066029097529724573605580336994445442208221260785480285795955500715472337679254193802764896569166320022916781671208691601971616075134233541895775023150156196511106775806878376662620223891619810644471938818268273882818266789162889782733811505234055342507724045859078475424807056126665558309385101960542029032339053521511308347048923208929779388430876423010371723704002074237570390250888657123890068972324886476025873781657542381753076207071956307497510196204535610912841391797903240226390287834789772323961462491253455928458636479236155877647248189505367468263857081553650152763858271422104305665055297929956431483293284635984362751450814324604339985339653318873415070844866369526202269349788264074397909324109666817343754049082991618103949289174754511883478368533667337981521990393601281674187891363745081760936699056107857682983202350475936925974865445532146514866383171151028735845072348557751538144208296587254460612978164896856645207927287229694982674408924010154100541104759497409156536962548732213721144968789638348895860261603292270143974102268761867913948277265363113810175612030362331444407621142714912975932832856080684392260373736806525840250753837546230547148578583192022013692750731576626690853917159980943728783760254315539330873651728737077877176981798799277983504418759119932694021570137561480894079474329988816769919070605813907093616819195322008077342574524363127962176954257657929212723813165329017970434193620358617871573816144146165292239198038589217336492719623006544096615277646794040238461588345680475302957073505851308360585215133839768302054772392726145059436853665503756059872630689654742751165449482690638326917166184121982396929869996940241020719886220222984343987488410809304583453192564262050990966901418849663398886489613102634931045702738358295806455854008420888248831831497179226920829996591137435250155444731983702921031229363887868687553520096510083952323485661352165167010925554005350688346543428137160630677631098916515799489111647372664018503364018032279981878501227448314399516312502882184815527912935620950448503771614327089535198232564728641244497786763808319864143308059300310813308149625619024049360421601691987091321374556586621198567202259971531676652830328943751856671224535733989764241872848655839318744509680875903641246067671378558153970897974316016714333541817315855214929736977488944601092739557502955025190341433665578709859212530157215137443700965384063596283513848878963407205966212355479649262449851615251205367675252255666506251158192635035344239112672517506056173875939791947540067630637027606074461710433171459373210309662723873830548259357668448549981609860448577841060294389324503719035118961666657279995444819162538912022047258074710290039559217906039214225151927825879860193734453048559267085606361902753049296328491484710593423493167438715061056211813724406344027627719813078946943830841920709342607651580288586269683344115339921442067853546894979927794155984135328582814940609795282836954908939881433710654897564702078615981079758545043220969041152150035987076520299984341436609518877561850382578979947847683388980356780877062456990167213979906928528138952942284145252854564418079318995739471848146755168731944286220222383050410411522230475352407592054169142241905064564150232697621653831532158376404096929830434999416791482903587937024222509544334109488714797279952075520181387011431804047133399282075798606596512527117056088986591286659862837537769339347194436187941884549508621102730260166446370237833638639688085262856236174006444331632426505327095375798529893296344039552032292097804275708864214503576704465813896193631473417991260081160467373974076598563443623384066281026640931943227300886704687274788905180202240490808644813741761299495583313382434246218907434514093445547614651599184154840163800114427328175934859958197221183871258059819577797244114595703615562863605545355939890453146819794628744374383776853979576504966555416541232779960925288576429476374006799128382025059827271446286753173668573537589647819769311801317546770108544966064502087962365783383952226979596850160614746188174659226264431910130883653137330229591062149308973567826510199795676496388275116460237825654788657019894232956168378892022973981133319492011927492864286249444752233882138075321161317464370050427134941491903439742324439864561716936746406246453877771283920209782772080937473506378608343005573715905754924798279279791550531092548864752436327004403169499280377879282343200919640300061521815424944291686460256041628647911325153877681002244172343902681602060677792744493266922863725292237090085966128816643482332000329974219227906655514691126630259537035684704232132911223085333093007399914542754733399029383472842645291742820220889903772314095817529849188916365586789226484856168634595785285876154961288163681341098137823607330933755342138710059293264010811316846400901645267653520232143403271769815295183751788445821635375800845507052484476393828075212710399196080657943437455879356430044430085889223592969276192189440922466572090747224094675239547441328815813614511131552095948587325694642445092766454577073621307296652512196855520819806908706846858271035448349226542075847513538599845578787596034512904450586025203678773202232700877358426885254048543134367111243475515700986361785636697646471645564168540129309353755266885915674587801410005911805189890155518269844164060430639645718415466614388728386618601447872297176059608481799442575894698906620457853927200909783035978676962150597412173595817561838944670389747640137087891085062086419225855343259813874683529748882359985171856371906852215886902151497685191098742857024633457518226581570962233236333536060271051836158208671618918655948762939382391756674945987873272082022921397401715242267902418635828325685872860580580950573095103555889921214212802097336953759581828100438188785071675967397138038187799314759268262613399887218681723382768162787763211475339390387004938726410735044091624110789006019331565252932165202862684954620825936405760991028446770284413287824144995531746629966134676948853246618938021439691452456701321877941028358569278109910416428834792146478276445550710184196861746454601199087488467286613383414213613780887356068577973150736612509169642470820229513257710472120371850647068743282912124765729908629661786625916360176952155478881870289188112815667496031184464359373457500552758742695032999865849213564303008362048372998746517589186260722190161072401487741992967835819069464591450072529894301307118358817820479631027959081769704111455592864980388874772366652771971304495503067633931391467372594078572027457750776023728517018107974033614104380907707363579308494783847365744439916277333288653488298079709624261511217209276183773790244660835909711202261129326991497936183663658965952201960657239862474995095606116494826734375789388056636055297437910845800228725108396590568421610436969535661787132891488732141043206627242113143687970129997980461634356954438252541371986033837758922721878022941148705187015330357429656973416870541206348531642120158189258090871380496302376950560135238349061178949727090796413280009814338972200037591907877789796199015908056371062425830753485103120390413336898636790522668796441634097745275709618839613995463472105392022812555490538845850871206528796883639100982487000464630553037661345473045326656264234726627161175872878860587256355464773946363853945270222961247457733399814037402741861412395835986002110396324324242801144403517777629550013812445801266254561427255359025574705292661362145614932120499682909363249379395432883460364765391120190789693422984009917467907878498586170003000859976243116149693068057198001980374932399513919362664924387976153087572378821171347436421981232487158171117019331587696023022393320229768114586841422930536542354896000251993054201419481701153485989820644085423880618947944349633528994601084909419865105043075410280087481956567851957459478725203848021020718656815783524874414122991064044721527192296673269381619501172384787414256554272945963498604927579821667758823111321266083584976775071685080760301250418734100023254252946202309915710371246330640842080248218020024830188935188242614172923725358763560426376855702532500015507296974760285735984669790005544865639091246350807303683202245313593904932043843401905348733143450304339645120903101508185529198801116738397746640860038830623933382664978456052395169613391076731732456722572419786139462022383719215706230215892405977452061038773178970695988526673426752070863775949893595839596289477539969662379392787038902237117729012170604441221309454281737096229517054616198357311160485538393617461492823809894183548770006606745828018760023753505660013365483409480400214703135093149798081681281472371175074980947260293241426252464002441542022957649787363502617248363824209611830030481816628210341163342530819063653648764022970909636418860115277295715418978945124332856984781211843439080378256745324716954878565385913193373847172426961281379864766925877278378988138018674316969846045431420561217169839573071213270204779250798646951578676500538112511928359550598209967060047514813729541781623245279193394268882997619783623755247580661821096503717623583339477184718862605520271693001210157179675009826623137103663232343465262055991089714490820225642775347335032194380269652707250171917015110399197028987417091506444371335253702589439476374640989061614869379265427647697812171204190439021653152335002576189713898829890512894291566102724534568388604497851578242438024757663644838701781362023131523106893404347371695670586207439192942498494886779452254518178385659586249621689491047228985325564082046161715663317661074976195857244280746939707720930377515099527435744563936443513252105865854657547272458053195890666890742806511054504707507016277202288094459466826660002889908883979599787726543536360527568917858348331073335531283582106355552070409196681913432918294110546501338851587076478267824741438399684295438409366548737968118934715528845417849968650815719846430525401903975639496121483633665695553342981070312700736853813748549490446817672259699273242522179416494886041601473586365761468949862113231717241623175056361346754562828970053767220742934349791697539453318774992264675219312838565576698622053047956802097206436757609154414246048402022656370095428782686202007826785691820231429164725550817928923199123264136623943662099854216497738972788562411249854310385308646566439234455457402951462181636356394671240463386327415053983099240995097835740331289417885871303312926937653961689476684482239298353843743127869736373148007110417522997773806587591048667271368639720993790529360087789731016831712483879365842123549122476511246978208633061723603153861172662105898974908803083961221842511466453463886028832331668027713098553830779092523681620221820246491733168523371327978001390020561643964372052838324189055266735239977008756367594484308225795942242270907933196560409336689605441107565698325632965590137894196800179678286054390129789210490443495171305146807000628427129221245370737138866864418328667941647102191722181594634687764316336555519588052315762235198256774547689571166500273609377864800417648146323458770194334386719336562545823366757626821396515992742997140963494461712696160754393025918306879572396636494662455821759186677984811202215440600204114877305789595715491320930023803664120750047300652924671619256620387714309323968466771974080013092172658391409584202391933233654992687693209970780095705384720893148981240537261061979381103566825051776127510861265393363157072753497189736654498341538833051572726784570908971023562594933378032694721780994115786940483319425353454515240917799188556260490667882007410940926947573748853214583555606565830322011172236733598279080854405247511645508645827366237001686570431349196302942735896402022012577508335539345018842229954987705287534271515665231645231098408443049482009308638414745128470440802631124341810627363210542972822709082866704300491126231851869342947415774239127029249666783353249368419584666671205216468217673773186690897823713555540066662500809135959822421934195630917664952439402877402672486615337192187647590005123167782991863412781192990820456383251950157648128890543198467950288706953209047550287471087021359198719512305411471948250131694299029525335941502116143029901474420228606223414948333470485315866334665507075421814513902813511972526518759386357491892606770335251381421348175004251190237529374935873354871216880939346944375004858292590133264628932733363784679021926487310309111937665574361943029928560907128704128025507572372019407471870613580000478450247359487334092694647712548400922770142069322335452373003818543769121737450187835764200882417898318140991914581435029296031921234624743799335736513513540401160512799791172240896742331690054058841102063726949396691202227925632727953814664185304848934744979047337486586773498613948161307970499491186450963486529476051897520357618048569570174112028995683868799604694873072402281051883213227518439030608919012512468189271111166356867180454320748300794210447150304703106458649959851061089925230279654826792974368191262637593874499615133775133527164673328071261664056475376176799028643925279475331734713499669986244864253163626554767128513773245271666904988512097910717487738842419257457458626521537019477489383493223422022820725682569271776603540874386001988653085806829791976341678498338134848985925791007972844213016547791620756324870898752104477905718174746135948307717177298473517377830028996702558709507037282397427413199691884552628249140278559233778735155053241948808054351770702651401666679962153294035732180264457071966664941445663069934941031528015354608697488293987003794491249371422147265019736186295864149309444951387165016955005931765403420073027185128028476263086221748403293336501551514966035614574782220224305301028808681027260442377156567726709588086542807139515268521563100310278687666621738835278735057663632133218622382909221348817110275545242308989306265090459144675159732127513610226643313649486918173331064367195082860386657097829375364579719799428163061496762897547717162833747551952941221222701608737094717666389418162558372844635512640065298814700210765216568590000140560201884194141126234030849833822863255822728301157933304539501942546239781227022961963434778868683476581398675877544211795202245094650769637442890799738927162904043034799146560405144969137040808747355201112736905320057201638326590930472812557946225339099506662948425299526510662564619297315110590267502650911168807363744209849845791015076230940024266211456252005925317927649273536450889411597500737051549816523185694910433604379357275276596774371977517264601666527245055164830564862050072812236094332851109698982434797568950868884656591836014893199070760433243753383375996131785480972380480514484983720519751586081552151922022142580037306923711858589016619158289362292169647397379902574630340846660672782159412777485069988477826127372910800968704996651192608514094787549463285001614545188892997526231139479686944898172075009346003259371771576040686762191888038643665007711768084647635608026863586267639387191350503453535309515150186115824573461946049657516766022001357122585683533324828021065134464260667483911148310445497253193155811233392389857524799312765440098776886339666580400339040277120533671549846589077028021099020228837655664764973884219930909512995425256772484856873477671030876837382435430167683504671365056444300394511281006103854138329375973629216085780879208262907986513743221153516528290447576143773210573796125682412501042420937289207219437325668776469813489216066895970566843877370516678643156661201365327615048228100751737713432811737286568121588709044737150809216252136353528200153628499478494728099955039240866611134190734595300538786167162339059026780706157671505615602027084171204264815940857551201202254225623152561805295402882077310188111330519670977847453880188347198071005176539808366433955507545283858462009025773572067023671334788092773993482410492292351319359388908302303055511772327860149254527867268016456377726247790693363199034784023100581602949064102491189625944074250859650929575991682884336949198789919159537489274398106013434429007988314743182925211672957646856657244914664131205923719290578864768941225645503093606646285843273263322819240884758070102756907762388243614487923686298742022587589421046156151769341487138032614528401812951673295160860829814563830173572939605844807559587664233064725821406751585970003850988933986870285703043283642871039793199845148334938736760638114354612707811272731302098223338427175941957871261187394985793263771673270471760333905559813563410209671644144440494357320117939433922072522806957934292534963515898309074074098472325844809396653656284194354610129709737608002376870226037240269466508890284761137850261955524087113473972323758656635003316289620220963043929559157944022887018220531322401320720364743831891881487515846147897850705478141880534262866832438716837377203088041643564734359400757985078678342649617276070008403314624825063587427541929585689248512980179964609395397237433897526146851881062738721244129316279711761750745927447142115961880603134586071363931290042872736083998955012172659614833743443305852661015158191906316387574744811842076515547811109271256001951551454709920610364526088559461822106933646401680582082421113529402083668202273156746845145013661486707924436152129997565111937057108217308572856160434974976845394618786510048770512837014333575250437245464447933833613412636228414262390179760040320464171017282984937412955611220726440499613472257299617595359542241760096184138932325546623260663133857561774752269162992827697198539834213413680788894312242943140052133917557942788936986504105720411345147894872728422656353489138140329063197989741805435405293287807840537453267344076478593840762309056298170352656114886065829452022430224462942527977486997807712138267904264663060279642830251976764182310956522966819825641919189981300370976800747807989606964643363441433645947991158109263412826103868617445701182155525836123504784189976296749202913728840069855388644043473260937079779137643076388028242564212271030156676772265110265116963113161750271487100023843745999841207761232780886244251954524401863201696256024554490624893090733059930190982510101351029920393796196783018524363700918241808702887397794164138247647736371407620229946107509461279082303573549777942012459576237783888959239145060705380494912721073336205499994988620726263137873058798124782255162215807336215250451878400736041385966651622597427783571909408177343830697062258922781371884218548647092164006484215536529110783390752634885520770215476788467174204842257552367872854604771854190981417482199332912832619310468304209958062572840901129250645151903954132859265338842088550373053675326925398193639284514917478492475787797947047258823785911598343069351385634202221835497519989587319046689280387758987963146424485785131408004707025892065141156004210980478528871765163141927601720796162144233587463272254092720122833924086008407475146728857568272618258641132644244394653479782106119885826072871320748980608822512970249258500708805047005898984746886258311856134606458403690109686069861131983705442848128984254044080066627298995351972718891883684346050493793878838169120262523121217177805914926249947946031123456055618408771600833042071259527594241801210870590312022121457702487235951504430192931217816607436628807165121158831439563961975733332905144662962701789526256470014092718789067966303966729601192780276259407632175129139694926144480986737678861797164482204401929550915500069806490396015805326757216261262175695488896726875685066964817451913090624490319437756822367081930739100487176039880253468732527553654188802420063764853810481012330130842327573295954465989456438049483907771933839360924493481008569121752996762908401149925290503613408793123473621850020226352179578565858324442209462550998007197262548759774181055840958985520675424501850366182536068991510111014472505497084844528759921582340247189018181022982514908239762421920684764529808933471567451617771044871537352424655562671763116079544453104176774556570840735935171990730476696295031649550746711614672246094373744484791813879385723158114795222250005774162073302007395535495201758569112178801327703666553139093999014966292585407832265877779530728516242834835528157383457936400058983329486023902202263505931185038581291940101983458002733076838905645727268888270931393328253922931469407328430136334024323390254025321040789853473512020478673625299119052248241916107424324911680764827832725173661866805968514639269447667218029979929219866610359920795775222219475524613313684280132311667040445093806006118765376322389119525387041972603531271517364264767017418427402312685268898656057916098878026843871990234222430409425690329667597556587644720728784619116522111409444250519294943870699565253804442762022313842845724832447524394661035468620397050743833831456572551947720812278826468015439019135026626770919685301078111885242970532850447875531232981399576374687494947239546319157213570841134144134006017452580253768763046191559514039171772722344393753654983854176923479588005240071825058520121132889508687697192692853036431812917998439674175627158455940557152091382282194080870481123099507029058674559031816093693182387936904023884125972679798505310051110141734015619533281582120646385307695181575982520220925460515144806598519794013227122275916872382380978573852513251745023152172972777423918821024948817131537432813184459484312485153234659392512211853157588289862899519471305483917947108666234280730939947752630318868466544942576626282591982584748354908162278884134995619048922247454695158085760167633858656211267532473325052752712666361268803395528193701327428431645005947229765573390278717261507570609324253901351171584392630857711713237417119805825989970997643383913039112478513574579275053575427202257133816694740930244295014298464710383896648841261927194811272270362985406160551077461082513120872420146715010658811583719879443041674652590799228783148518047903641159744159706130633424674220380667794542049996121002651389425180500321017368022406809419766676578645933046751994223119935598168335694779039003294299418726199547397591863964781250983227469723043613847869493616539834472184567851462883295115536949564258738681902726075446570642181008858011084659793190079123727063045121944746327773485882022431113427127358513166809688737622885850020776751537173542282896803935178792722187506256756992975173228854147731671922890555753175494869842906840830604824006223221005432778529328174018387219036411273040706755098893228010306147143715904733617109249531765697930025671191462483947616258557475784076873533763484476057979881407747074407487812679821527243858713359482092914745081941181965746762386888366111016860489529608434822844951035551553462128611118783288118033296438468383253726797500039345583546120229781783226945128119917645731731750045906652328695408019700790488567832138075017824809281002654619059524867948049709128718407686636415244316076993449791086333990652457235784806415073998941691747315162636549632285595024392062891422508502303359732726211832302481641182480366560460242477616321752779552301280123642549282891270960127248456936960695781520668033017691025423073780838651214566245573521467596725951910398208884506005117074536032362580494320594646479375856570497311930894895849587804391926202211133353339371498151665195695216150875315877797545005071561936010690038857210518453313481934590656941738332284939963293972941653716547962257844288042161749969235826066191034287442461343805817947715528754133775330391430950639272737196953962313171675150236788657550345070836825374703835499652600585460952410968541331127927303324588458252259044100763338037277375336029914270253603922675630217047634374614814764214459576599752765210901235597708219354503971075315393616382512777495508211354312455738802022059502875294560181308869727582317667021534590440184831652444466767601753145955128800100381430031670108820249419546989529863562092012214847570393011700917080135647879692041974938159051495786197395394201832948643696666630843423300824072162700361850388259534779990225973503854391009094480410496086246133513034376289457816605014830752535181121738832257302917506560141298248091879830525595763575439226523314130871431090097516921788774028672533293210850416459953655779794413528845279625768516427536665220227360190363825647567624172774147874593470342819651202514383838241319953419235360002215243869902939461010097483446351516086562281558404182126799740390384382343045448887260423270956091751590882663022738608549518771325319284905356243929807727293602994413940036167711247455991004592755275984406687749972918205296042100822728271510739143718673194438759221012939348723053056384736855686959940873689428203133009391622064359573545508247391452520318038054969895097947300869073427758436754017664133229605993202202021307048371628604107378919256622108289739078550996994801610973459451537104251363081538769368537082293434998977098938875715696039340587779101310018741193300168465657676699207704997783817129437838532701549264604304905606589555196682728635595778695106610246297997773548737449127721834080621854998290021739897960862121648503044881465850527787234182828561627471817591942949207678576241423301184231479231121999141639221264686133110475867198549983325665530344190358618946323126042903929587940277902932022153318830255370468144865845335769782518620795103590242387315205509203659290349764878649499381521063681126035035641556484671806620829274750065995759764258846325746661784242065057922171517675400942204272244918865582621086077916130455919796742174564028686345834110237856664213807504410477723343303681663777258148275043689037657188880521704217288126188636369938958429671520209244146986857747259141121644280714882225230713696913898118614677690608621550875810730772022346395359011100308647536033381269920221483518833218299822357243716966303421431275098848915474867132603712653909393156458700519480253461393733527025139999464389233726958063254712237076487540911511696460498495127505845153455894794628771028635443907550646438667965413342635274305936586321505863491469782225686434043559050719920939049376263398325928941429417299941395705289640487019949018241117288516484749827746903159889575972686417254710234137294816801690258043827492245387695785915876001900900590036979987430174724958400682987750119345202214035695715375864308740794470806086746762431786918021046400088382486375777697562030924453031309634467891312779489440986412553328264743035885086726608313556409964619620989454261300501481486359220734398124183845355543815574560499728817242340440265133093827693772440005423673532032769913156448193906148614407943095433113440440826408042467211036419330296801624869828169881029118294649062013818536309152081739276872679740099528228698200790083975361554312947189359059154771975398995251774981705150518642022708138385046614070080444469876324073191319579357381499229427908418112156994618263648243008158297815062594081882927338711396220118843512463470665442121685411806194703200928544387255351794332036940633006677966856429932490611554015730056466529679798268544553008385783956315126109037941527306977436052973314687638252883765213000605661620747467111760427771528037884382688233465645755556106219223360087395070441743069871488496511219888610979442047974738140115044708880551371068093273934105301712399435020222487229770350346382633784770971982310487652852421330959387509104013580147554670275881082396338861581266484679863599108060336302543813868234163420435043441530086311929627075642221815783336003867797249513752615024436583457250079578172569560955507779656147191991592045369598580150670804753407464039222434311290447952101341454363729120277939636465321975915955224143396688509025354234132642614367276731531789811770156664947109660159265541276744204828295532252144572707061116520039516702448573004018374202265744281051361531456931016775291203772326691113859271700102540247750387156743466755682784658236399361569394119824350043503534315223320835275218002860910830499810897876904981171038593424008529606513427848984884790705271305212149625769259815706935356107521740199560943285403287881083554545582072830168048220629562499576865689061703163319946221303518337976007482992588462536856183110861739248366539650598090178009167261127987267145929089273005088599371404819612075931410288669013038688996308037837332022449646012934944544817459616244211513297360114042940933377779477625943264431649747603441679263193878612202964765805694247401365691251317196079673980188543574972464902869523280955565111287745028859905521647620990629002420318282211639923972824148010099526372619443873002547490851299545163526674224039025355576816905633727423899980693057572614972075514827436454799507537596025654389969474138064927140164026693057956633697021361805015433617830639715683656696269291067869405483104903687916364064448064120226077364995479468246676176575034430940676915394846237521970480853126718144833062264459777517659434568719789297856053486622863497594594591378653517974692983094830681921499106073731686164864399731591756009556664370365422079060348329051323560561696550099369521700600516549407895453424805281839478075272793139709813767800013710165120846663694313147515458763135759014928138719533631376469297011266715193013241144118714111375481585946806383390769991688714602769997750024393586222096558008181363136765079202274687324356929113473107809339106057713342458487777386172845471009526321349635469311212319778300748116554563682615443002298157634325732009271167137804634133265623832331825209249098757393066177542283134196185831103795682894523825592876411234082367578085759556337015019725792795248551292819897960054112142639612382830331018819006897298928110476301157799544748184006073166284478992789893279827701233252824947005341273812111671287732190262439517615487475597717979342373976377301838317355675700338382582022125972449973811787999963204610946240901838756044755551755312822848276112390985399801023481692152768528397991602742698974196907486696588205260028961391490522510905570945540609162593544444228210010776569169977157746454903772165153502151960425499796095415140878827036309424729092464445648459414950344690807811365474483906576135809506593753680720219040517289033720260099134781043431396899216685260021439529966481197523534424883096222976979498886550950769504072434938514002574393612788119800866622224920220923040097388303184446137267182538209744061874661894425933975108605767033617123824716494134113240046800592934427323904724787016687992218561569824931805904196315614819028708783625779304943895855799485628131311838892153966903253926666158648947835489957142879481653929774029928998194486176000059475854172950203088232777937245691953814118241281402757212725708330812367305914645612174109817486668446310933861977643274119734473947870209711593713137741365725605486104694443123081964685455324305718778063202200895992822929952003123812514454674159821772109408277924069847456572057273069499681922686167270396724063026194392844214322240342205685404444552299329977871054119303143875842903337369964858183053248870934940453378970052199009353881415256613852452063478398711366976207071546850516931380837746106618321847483947010164591725082200521658091000676415509071992779601210712730466818315075265864808789949635824640308172577857227299428098104872025233726958988085890212227153788449421821010527352320053440692022772231078217299556787801670470126366675412954966182580172142444819504120055903932541613084978946358781217697309155493061938169683003299424434219667838002596167521279794779282729541170147827151883258830180788897069539985277051340834420197234342176032552199163359263396596828576734245754649418299214619915874914862627490516307720938660709941129639064939143022262563744566918549788489941722893967619730506434769319645247782167841925735759880664160880929318540482925543601031206304125824036747998019820227800429763907005946665973232356101154554966088209971216142029387925641038907886641242431355179100797360062927491458322981720353492665132546671157110293588674019887659019593564325436239539921182316411827859659399925379234430476861401549160844539251713530879628406223833132876683457642976086679734890438757365888042269094441611913274697522146496319845161200541566777661639509219614715544473482273065821528908509269777088840159865950866912162965572879693029906660497045436534245770661489979009920472202286103146301092530712528764377439378944572002176690386635960052866337619767198312100008865692178755734166019878990637362820309694971352581467594420864419376703441742738684965999343235065501904137251241282602402685385341320702008585921663054303904160723616668913102626813258970015742032860032122629370076900465364884098365844198794153371330216414679270431591358303311897201631471098963422149047428682716604492260136493435928413954929690389337038210222538033049822411825075760367875110566266000865342022911626702122691655141050871165758283179257860648376655501442905390604101632309657606347696505596593548648455644417923608268685352865424125484385961759126506531698200998459405481493980630912850105365673310538972508740482690781825272950482876485782388651521100734137345067404739356903017300988941721717421343183041460763500644028098033920741120074370468817955575743408723348069509279458577189431017613840684325272305780307200790982992918409914525986506916602812960489429100597557879111311718570971120221296242705299998130273428051725524442536319153006106274683699469408540166951494512001345587892946390979432248684478669649291730138393351314115700057481799368318012791044912634208702908605237602133392589460095157141551381560473361098361181497722625817723058073084762944593565527625127289906232498186006127382706277520442271967870374661268341832557340771379373033700402080987894468827048210256284473215043572016522286423388043725003686770797172842539299039980848715753062707267560007182530919070593202296202425325483225685644243526262076631295983683904437760281622360631995053791175335565156846301648206906058989950464610700034862698889738015982256191541833554779591123602012864020730272138333808090488573393012179971031364433198614190285626047329771925682116215913523131798816778429118623963872937809080088058705705596231070873995087669571954484917742189136969715702131384692895081621019948241874418138907739392589845223713897620031870901082288588357643149001286817244937844710478605906323876480192022805951989982799339436644930565039886131611199384487284808547161608458656370205786943110863956832081335650354224733660716626143394135849197076090257518793471201071260165421497754977554287687026307523229521631141759069350573155930083685777968732826528483135538512751121328451594584674431359968550424973191199254734719474750293248873746743215997575278739554385956440052810756561587342891203083000542101041429125751148505194324354695889083842106340728146540504740379653395297683910714048520523024702120225671368259063081130818085566772491032297977356108802513070827604062003527054221050082361284784700735746187551001533346117794792577099565238618015801419552080512473970115270785017845823128347937913016811685873533115324994885540000014490437844586788639321686983763030309871348052497438885860674257810944685592494181889858487216049000449929798747098309923817568108207648342877207492613414973941539684900849601828770529910731239481104817114232517631107544380943843209564600997157305095764624462702049202280784271012230153234705857909810672421634824270980850092045536898510251637088426482978592297884380689036226942757850440251208080875923468447132917842195987960071323250895847734271344471844564074243765804174178904484503281248281664765102243350434622910851833450617725669717669249022865506823094758253932524465642585639431231539859420231735324155876544886912283933071686840706728607157864827488700885317067809790849426378837337311044919090141400651734813273843891915821297155539578481844456893167862022475920046154256404999550782443688291627468235638689362275047905597198669671060247461488213507318669509558211733573401917207804108365253714618180138364694087812168897960534372158707841982819580463724294415060918001086209379206089409480781270525728900279984639813218927669049908383996872466128198467614689653809069543494907906372997145341247267409656660572104771446681472423906418656116463578316171145636627950265461516191681358356119908885932857539903795880127711690616130624028388832421359108129220220325105549464299741304935778552518936083905315007319629809008201119752361905644449641784402531023904605202807314126036288123551882232222107737923889127348322179359921579840477123980222155162463335592741631362960313889877978591062038919719004018212212021892955691679595824555489148210953328040784230777125177643452708683256742579935313983116276163350348873193184067766411578265994489628166971957224439983347951783125241744992032357701506666717092172410625380920552078978173174101075866551409877491202215093218331755491471987949366764033281422395235933016032416235668616308778328026171162832255361230624883803034937649414028952882467929773599251499767419959441595593590715813237711401965218522282166623970423583242761471510219305750396002269368601409935156198509756207853280940887097158019721821483620476950004138836557274758648503014702102793677808657951211350514123563495132222260805502375023421273840233687682919948020128946937917208863103969689781087672324053790051074593391699713958387818398802022318039631401190383225838616481632777117856894161500923450310577348319896522423796259557448431249568001420744494695008465636118829735579973816713987055026737441050616677798802667493827429904396571749909185679938814614004901445604860709893759841453015346239218498656454602954064650951517055134235348134645587792452704110397922879962383557650922020996271326444905301024900939712167041759343526351072106138771386646582942672041176391950218355537651044522233883099786492914208477792181526051571689121420220649367604203398969736576277797162218010705091741661332285573590255972682857048036813260259156607680076831572859366540266397647047114084671601215286537885591284001706688338755668399212203153073852075593095460623069551713637753230567226624539418081969144417577556357630127676362729335102988501434474289656510287864122238190373540151530953058407929509972112776126806283305942188007913217643473032588518712959535613918441696975048459326994388115009288820344995927751749838388229277614181096221600081202206673541584549021102606197515141923369852008241114504056630554051203981415082256057017260782816169702501149371805611001485406041294212405990401064169047110805457709752820108839496314548299119623880339988956545351583109722004310244925961024060071840007775981192961086259763149663451611203972048508014915279218833619511344468079179763812515620481836421652679640614739637282732627786050259065457848966798632802160952907045298057540417245174105709092690491009704988411326009659253308900764719901502502022541668524550334421052561452080068044056206636746745374106905759666792261000705737801532889334457581103889478103215980574725027191707447662910322123337602034569808055958097016812524484938046299411501794613715028008714537391236520967021966783365431112288383044688963325638611936317061019476492294779954956736462950322759286958950302966026470504987470890989023804737015326140949365679259105956222500563513197489633431014755343182729184708964213365812668603303993113369817426657494612990688205335885720222378961699721848895293992616211363824395789195800818541672473701633637172532095041921949811799980992484464435432894998144127167011789205665942698686451820958250924296279505754193924491963949031049483371654659828994950673706329482346146423013363738383353672877590938953913211344091320915601180679610106545078536452789486721048178721250098979233495042725666490274944651637774405609915752318860809183498261145522226071786599396876804180355762423879271796570958597829145406650337871011894560662960793202216628726909551961089608074174186732549663335552766693501052051992951639483042242981990256310797957682730722231572841091639802946588552099279953721680815635325736626065214339238122163333914367798676511481937642485913752810036588133300600770309449024543267772411768491356665575854886565050766486037729582708550699598771782885923871460922237407128494005127248528744289672725696714224869298708621744857945038620624648451810505029802581572927495924509185107985541499365888931647364381696012803326809182022015242908008125005526471188743479271102332130388482495090114707372134599108619598673564248244800288844709175322809827215624164659130304891767987150123262913073199548163453428529282364760199182674801687235560026871581509367503090806948589779631156124507938257305941455187784001082556235205392834224473910294467598564203483514091725459357767927848361618773291610696132638464122307333475339937109271188189476791711133072911653413340479789847918847824282485967698917867261669269075633754982124747575720228824350085877622331114796368433924299034383916573825058996748509272957082719302115224955245283392294873180831911684998753014995481980341535247177206076984907728027617175415190253127296779095010424597102399603174631552767136645554615259951202524972253396994887621846470387145301611846553752938973509142054653071144850815075778076972748494963675882461349608061000091051533558512120977963337377140734214191738095976102729747405189363724444429677674543827585136983141746295925186719391732676530305348202210444087635259789414241470197960327551916212914785168651036904943071550014586027768681859232735499233081142275249678123385740898817584495142093838557420861803635898469234912390414426812035306716062713545009519298288635000963323329166901275016741699542020664050843819514006717511025353275812280167867191767975188587360487953142845566374977038852620015922034608672233786399029696251741382781712050003662485988046847546701052909129003079013766741535342090545612352385224452606628089932507990049941722022995828842278817693269012798488438797399517033707129437071834047159752881940514770659315236430739040764928949224432721340654634381144872667429836831223787785096456340711209549672659948835360034000369862751214239817102815063156429465079172325079969335797028744660120589485839983190492002993108476156038904227429057946525888814841752923079387159307206553427510465922746744257823298560980947058809570950308992622198979779328436401851262122730420035862760064945380096751745825166054256422725109532645920225931295837613444239837557705956008820459666679709741965008746799822923443473099570356166979832657748934078334837465377419724431318290595908982614756494653839598511651554169325791990810200147075115118532333422020547113877491972182203825426617394661949695604438595985997341237835621853388695404151522393251243586656256448708640739570769984306198240435199835239293835086632650194947809440015005141312140035919417770273773354933229914816188747855747155846362899418968064529449429698167972671688470287202221085516091090107057556362804136141053599628716821014427972373366824355296125095415169522482736497829599499023435426800972152935271496191691805892659504070170177050550804028894584819925600958336792638597209158812586553515724398575426362126036832440213773076918704718072017437585719560265934887715020161330757223090272498957785612224133353837810170086690327933298841750396564387051405042844563639229299904433824292118668870058655009070177856851473127418923300109860951090237779139599082338083245652022631206733139803349936039119739736003575381949118296496120457171766028909072379696827810882629546809926092987280832391195304467807882106060853100966892765404641161147737167923585975105020721249336167658141387379442301368621141011757612472900982568377645505153129960311284439594717826540058067640032020823466529002769144026107554576510675392664742624468861280963017292123827967103953825532317527333302099522007854920290275793202710321801688497115544756339196328410413058727735271253645529091650021320224466220520826637033623278640936083060550081919544683457576743421190571352193364094257307655908050628611496387887460538222074553900834124514319817403886179925385370087758248952897162191991776643812104324693836340046536530514123894271134780182029855119014384597939566476493595045574691088693788290275336329954713841227222495861474588625825116047191329605828685133911396655327071513002308203611010384037627639607730413252326395368361225866769149495661511097127981248740731083300181547509194401906449202204290979267842372575203957877414115252040262472512872516096745030612578452492366042677601155984188053441495618224364199659357833539457143474948277582495360786981889234166833486169691099981650325176864560798110868001619473311959501727955933104041813612299044814195468766149603295095800553545414740942943804424543061336053756147429010799184292539408062945835620002602831930459609816220103261330792724637720491474611230075648443297615232414797076563155117310319884158337872259915062682268788740912712022843807167900833960725905773020740638509924080824408177728662197076683388035050423893879147382457106790296577369915390201141170246955886998027032645565110590579020378899101284362081792147132480643115118022818256085751879112950319907133004536602644559288909975442533436609708494922438822692519396663315765230392964048269678383985206759615169581268317092509039754554000301822960747823610690462806680766220957959106967134578045111594962437878329337090644968676060364226797164460496260538906113003967120221035016386362297006890468895765690882461173129294171384680829471264669432635151968560416221592686611556054464843017899626965098378796345537985033917755062053688124950287248669265891010609467520161203434210922968334784028833594015481488924985790691367517351440467806047117853412084508389905836468844315632981691689845224051486489771877484376773402429463271159697431714097398170559698206156035505352896697947518950347941039919575480768215003437068147994135545867185810434000763678019195970253510885202236729580149926157784623471167534255904243695614566304584041489726798964190860451835314112625118763645278937799322354813330874928668780188356184453298291801519694932069999891817263264341643288618095028040622500521673683801904858700626046562832553113578877724212249194473813078042520911586442913893531435666690426321613341707156460000124831803301826894457593955743749415460286982014556160593244993435684828299655697035034660760429186783460598320916949770483762219905793030070635168108316309790612722022784502494679193706305486328139406622327794965992637685931717231774018896622543014239008286988483365105195896304862697112473722246703753151922012727153678985638015705581974709456805935000719949799122747476238182581981379618215313591211124535212043030326482257970257042686891203751202953491693994230688596848796672347834194461584473770048468041586818086375572812553393201032351036181305584194232865387314035527685949298497618439433180653123154292270290849067994951132220016182589447201437698298809220223142198439066218531859408051498521570402275555468030387404466581307791054448078174982759773583765669764801581857892152103954948612768533485559263884488170367465168230868214806623949806021410142046206546337352232937313560154219498333480427499027025361889909562142690991869471427378198487627401821971423130765946711204993474710067214511628450862117326385878459840437213510209820585583328432303754831016602226688256572187938824338248900584201515032139372838617602868544369718240074571315522046526497202245444792164183529959507511178548641997124657020531573746138584923487848508333598744962285401431062386623736912900491386551484310271868946307163351681048663167862347139966199612265822672451571670687086993060985039574152334639196704188156420377453083526645400850742811510514088526007348479657925161481088523890305611133364355453433576092362713349738304593559582718380791508646179418928582335583922289401971420487929478545437628687373157271485337182820084469498885278252559337680290301825234523441992022382943077198741538000560244060385532249866863151770787357570542730904924413263816566550757470298695757137720820683090057744047169422136436455479840383420548961673687281027280648696991931300556154007503002338008900470220529321919464700937473094305123664019388668104303168293905142196170015192505837790114312887229983932222696522247474610622849074408216308584009724592332390780041926303398010222159826224286863715640403122013758807056662811780558432706935449891775707950365901244107005764871491011920222137415949154264988285053829932513827111844374636614156521552425239466789334676410062490215748712581762798335790380408351938037977988629887388565636310366590102110260948838063149942698306462687071169438227834830313140225446866052657265137537859762187774301103556820522383970183360502984949032525876395716710730457039968377369768217926602538893845339556567565405491314113659861483985064299642419657225197588115602511767732031878153204520788101460722601199826798375031885326683370748989656557907269202262659660186304340984576010720163161328490587919507884622490421410578685491635283830065365173035513419437444783111093273987924587716416216024269100969631500111421231907458600475991637267735900131608999609045499055283224715596919245049629413361639504764333883556411189770552245381161417884728477216624885955040140885314091374959200577375724099845452916624272135056951254953892545937902690173630257699818628700148082961299182042007504048473934432461620068292712708125696978212410071262972903002421412022295355944453657978965050954461593329871261275565932075601515401340981804465662589320363402206931051840228048396951466986904589384157983789014915826617326138783546194714062913821421877895978629428539850871483166740770473687312789113942790062128388896896416196631383246751792340289867997909336923151654741681229749565472209202534847504820829195617430265308413229384721714573442840259092237145685839920977047351692687051512695457725002724215392540264524012863169420276286039754237586993237153603563920228964448371118187026652591026840486833693478057690252315870570851097508865013775341740262520398843880331447520184915708002484032712065674273762427282998414099706323142945141406349564504230618765563060291488876186177577368780026203786575185164978144653627564665652815234359061698849401663536852815735961472112090679253954544181607977040548992448610243325338804356349729466704371584926181145119944066275339339124641811633794643324616918967562536758951385212117397988560724988715755097507287833248558202213448502258245620013325001757318496031769863757373305096104174583425085119304693883813538868384234708222666425611310692186362822751691396651702416772722514623573599211012022392915794272594858497596690425179516697173867298192847964534952828848381000752201192892211236015016842604436493191002293578570246881676045124982050872432593557814921640169516946591095404633404731039410819906205909854911590426404363473255163243992447933785030640814298469572522002266102306106803532992177730737375770454132052022329685109021718784031601946983903503007752538826066448082575170254670404871025919193059673582807074514332845810819889560991806717703463314497565467191828001452923472221699519946596800301787559490049995167990460975335720966720152720516329927496041019125913464192973241794668665739640376001148812482315796741838251023972490067032913631193953936291425445250023833755919285360603718246853645527866321374704884955052223372091170168031763167072535164375120260389716868186143181742301610187424725654913420225768984851211050110635053671261661327590912121634489769877083201878378534607430166310870772377635962160678868425298276441335028436882379932161944188483114846965958269299263089670417037502859988390114987589625784012671539279153433758190264446429533719628727337485506630746389983948223082716412408356307813966525678275275538443459984158174645128517009283048606157492553063430031972436566480012401697931605338096017345613405992565819668650418728388002394965515087235338291564418384963155083984732471202218888608844492043440654040409608879914489719198316887696902322624639311124601921425661478683879151231190899376097772819209548084672050177256520352188648681847100157040986907933679979655126884128966864830847220854661245790775416966430927496291907909305726039369557330517791301209604049010888680415234014831569890281790723351366327581722379687154745374526466974039426215707173589580389966714885440209134718269195548278247474841611672254350535276043970367302697021269317383542078180424558389972094542022771965229137078048771112088238631700646217799600359556011028662163075591558815632198214477069308919682375362419448463946879000835019265144307539074042567826390314032585186554355089227543136782425600541568809243449509770476611248031855746279064336531798246387377883419838722868191065379290877396358589379682755722847002784028667969002812348078329936313631492814525030734080121515789017541771385123671805111680793003009520841496116810194970464421961991293011347878059078668950190254671888407688391120229013183866064572839527010617704780927586855744656092990565829413220026159678886839537950623517929737171040667690265256529469789294785890470927412563079539537565715944957142893719768427769242426904228454958080173422710015213464026372611541088921320318912083156444676533164258917568740252264368011616563235417230077782753764480483345388658667898961732737567924108531948382246574102936668020501656823849567035504882139169445444531459044539028071708481020513876067248805782147038091042440501117762312202210045925489633446208167358406946113242642715640297073419170776544863961937373389910662002372684563984091542189172067158134163776618739478340455090543079052102960855304012685631915599932484009883557841153227359533845228917101073874300670486542183653057278994631541901525818863844449287289402001973199062420179878471207197250928338956169574854617706285189575648478456751648930107226806120251357139822140944739043183817113292833895173383442314998733532920497345794017857896916747151085904217869586502022645082665594603139881145047363539983370065452232012024716915017753539287206830464308476995164653540771169897972219754729633366447332736820586232559527450803067047719788197905389159869899837499997807210585658029676104493354100032341237455963392750468740782901134341857829612276791855153432810390847997541776931874232137879143935930091288659443161952660247653684388940835821531005719505095177212954262276246569086874349017442332636652465079495781881163041284850146917991992970608809119027929769625820226595419333001541618740337349373249001488021743044575673191753239821105094006604535281640867959855607987519114044304483008904151581535141869893755760700569307958772615710388936309836226246083052433347089660631642099404788825050743856683532299165670829213852443192173733776099790200110543376973976046376189044204622324476976781327437268852270904780606956601032750813344726750298970012991935016148561244966946103936641223651350445847469182272038226405068269175718866036714558235934144873729322368906202276820201285166474306113063333221564589816606998516796622207246291035329597717692256330776030196449617382290579860541980015531576813051571649734725675971309368686410989213231651838074936512128852268496640810915354478306281252419137977108059673238497047265478023206223401401613558484330247234728082732448086007512977883210426958564758811462910844848030314381833782283367141558450630895494742827134875738337078652705475754824294809160433577123171569054578492539680880339478993494692417874814901372672022456473574066471185625720687052687653147181002814303233558769002778379664762480737709632808662535269922317027250643006865671636313963012311202416039265242796999799516099113355443403126305460269918091236307561211251828908722171831097574257071986963501728160179578166034826036465470471154317441166439205865593409150868226860600596394077152624289042409254453995225348231498423425793773188491720931196593900503040332982432975679461183939046908812529587167182097878036471730579923205401013548496085421220229165834678312988168404549844695433808592999169589142819996560017575453968829426949134341858841691322372656071089058684077236374163745876213111101381836522860199988634118661512692619948852820832563031983418616730124375488581604059739656244173246662507750861159861682854617242882778065442140430068113960585855088124399191250612871889980763306592874521070955134664632694666011539277222740534993075589538455212899482259879286458471164662250155166211220275480622008698760994842930342770174974753161470202211390307147927682911326801202146619953042808821036541065334935894531543884230019677313895216068876563976260855593139131842661738953010531113178951144555150224554816133482904004754546431795113490624201858444121533642469951975477403879322901127058107121720585266083917155595586738809391693736166673785742512750453538670494744850467558881887087109328704230267390369853579411224992057756048310198925784311866922339611169053448479942679714981972952617705282306954787454307660365302818760303369139579802022467850158906878867715612380657315034241525548546002625413773200968482727597001104034051567525980593487404197994186094017643415344372211831295762728210640953766972930021091001669030073383651881322282949406718745924229043125967402134761067981732154681638778700815679270862359567248853297270582084354122154906169068160413536472949022942205287468969351630043408369618553890985934951064396259256951867976046534478395683893838222720158943974908767553596603911553118447163950521277965304075297209929536020221239243598421167817081325842869716142799916204074976841779182638738705823180066946258102792011457622302041300071670683902701874352147965236915755521333630813864808236156946823083603061366003489702274328433550231119120084936426318974986567181024379718260328764758542141903336993285924163487961543730351474581679954859398173051487264837299318979044681303462999587507227387861877881353755612904551892939820075454111307849686811990188689342494547422845569486569264168034081065838538268548532090658005202222795946991492351153490429763642410240239776022549212113288199970270985842535269259487252234270119948766728247073343709179507341409191132342340560101246605491111101101141994712000392729498416457088424416952634242644005798742790440653640224188842979767937961954721031440533437562158017787445346140200534575563508685629771494253657107310235441655828940229826288117598272407382855553141659938941046249158548917947562184490759048805564438015614841277197224511468075344598461274495996664313908119434082022099808845854690968727724876727811517863244304926840069096108719110739084234193665563312541192632585153657175790342937037841509008415500072474590317002016039103125969449395115271328305046902126622773912811589574234272517236515560772825523581101008876548597565415884401098734219437514821694067115472739138410265465201477889625218541811195791310866203247109164345268965353679714373957773071631664623063974737777634879187648922657230434939153407922398921399116264982916517734359445589707443094088388520220076571068257711876269081385752131061524407875267236949182138620464707258517810440376689396383606775523391442390427722932715535413046333223685451830241480874113945623162952665132126105353190259382503795171801704254187079542204456852648353096971286858100618600928315059319101194598509821181474309082393912430944718410400653468753979488533464747409906296388237350081746902541475891909636502321552186071267188173034340046430216551024824228158067239191999230655583787879478735042716933304791889032216202263901043100967093020917498593584940415269637790376639661268991162353421473298330756419780217879817443987850285096914154974316000731485228301800193836124619202864183593796339769213073421792340651434222926454669562287294714145584779619461568647437967769507339737768141799090292713869349164589298230956791094780222422452884636695159574205297818847273479771286077513097092525251444790036615527493086571663824465357691526435816317722337961108697456117899089187534583908643510734145823421965839078846202022868772882604625839889358385178984247930532876024202081737976518291395241547758475251985881345764843781574100690052156420215106004847173420336580038502624965270578040549525953368827371463484116074251428264645693921584752622418254389359799934119804756558248621554985878080648433824028185455033798148794350700781175435668138914158770496995077785954186929854969641691998512341487912334294342561180288688308305862005938499144440961747254474885021369323117651705930035818054934652434209539613059091971620227920110067193759351771957168140629317856009613393545440782966965826598166903219187667792110314696795444718993103246297139244142202525042875832033425283568052319654681376375087068288885010323828260361410733974972232364565473339408851810974517766989771282191416285184066583824535429199955284058186484344530350414484056949838247490901676106251786718468612104393405891372477328799287713502960284531864139290736833272447675777975327126817678864804510595367202759609322761652106510426244029236121476218202211608660815699149700292762664927394280175559972248370869258041444656441000374725075686658939598993455633480296182790567917568886456216929425722212133735688851060369480086832817021222933972269273310832467266815866559507812126179050475620957919175667471638815728174022251093516470011428192626013858260486648967232872392620937621306628383802476595272930870159242136016181670992832623506235677096142884714026355268472469501378873671402317602675194727088324897597613848089531549683803813063343845244652022557422918938200486244502353262700410281302278692583466100857967847873397540497072858526555177909102099258545197342644042591008720752653348565010225888249904789737547713106961078884849750205725522538585695047833477699777917869441183457281753656639665607727541076313187839629978889465944546061247300044233381012511088725308027343330344661671917906101756895233355643452321411082352529833230385363788724796670980507975555443702411532044015950027463952791997379769492617174343759592745308583295552332420225596948384571698175153456480258211760124888534218931821907674326882640323318424069375919976198236238082012023729791128525273766416206323940127348632217996444424863534087515176957458082626586079399163114067070806445707251994438353704006015652813745346532395222458736747423345061166075974025670858083177004710751262609553590587965506276754833999675878239199695101536814558087498982375006933309858198550379611280252492161740488480395467621141768486375871018782073208510163902351957238434971067041767202240293080643080042615026980127009256512178703132003767352819087476511538306669226943190741804886859204168124493650419739596936405670027286723109305801990994132785077858710818441920981732384848048484671642342833426341143525681438151277172616508513927232979374086066818597347390887965279424344983931481486051011466974639568167135514101928849520350342529499413072785723974717362659936062329588473555677057427890318419895604625686434832186509174470315904776428740331211277686985438947057312850133087462022826982427902311412863504281008098181194881234110838467391185109365288723537988355859496036237594553823916867729954342665540632426688477403569996792292978960630437068123711270933661228898333635983023222058024871881504699621120725724551465068588718292950386583842194139407648371551942571900968230543158420030703205936279533169744994008872967416901458344313268398116624852343203163112158954949562632402658002797174040922470622206463610130212827653039306929981409554586650190493232230951523964952215020223943033232882030878245512843033257851661634323995750037731517219618349047658467647482349893168165735277690728898065742696259750038000681312128159873862888574486364558102067532817546834323477163787139639526368980763638104109337072323146600876045504626543896171005884780352469017967387801914103584628863904584801421843393663822196887908772641542170176761050701796088087130631217134032673299465024429270673689515128019905729259412171190021630478080068908202350424302725592909144994289059052682563602202255580001551574075461454775422244924414125052980078319007381471252109705098663540722853459717959931397671643218513602045484818296328140729558255364805801112526588037265503283151610740845293527435876317829357360085377456017360489745988454601837472943273003123142507266886369304623609306074659924307559723806971655003365090260675589350754584533922665975109703798651162944136515537890562594800098801422199745451082153242199373225683400757699532969204298929739489783250987705369857897278736432460763822022825860144356668230301588670565706766593592791841943154499609881800310923173512396332768070277894159551443843006482993647396078846124162518046795029917155998162207295549568108563660717547876543829429860608613457738053666021892399962017096212496290274164856267063676050896138143469805390322859894726976854458064598550986560862672347862277384746871683321765996863077954937306758943236389696622584399046072051046113575442244475153006501357770605198424258549298085229596781598984393814922729601867204120221044766361221067819661856887561665394353080264893749981978689085116306977652965133255776448907836821036535738340261930392010828617698935574732525084467519007348063962722315307980960796603260978104596155953958794592240618191756975158455441730110422308826846266455865896016915527001634932092809082294642924669651798567843442250980354670988098009601857919156127033909944391715469343485224227949118381504740813564649230910638179221186765666152920367886250893379540173020716734061070478247914185628083202261938601391384930743861782712529321240938230045962499040140779364782158592323011353364492017518573344515583748755211300243093042030792977441515833471871629545075441931528012035918561619301991953693353291829580760170735418009972162874477009111732170431439098246651377918748749875072194617507770090225268487212197978766197731626558864181766027473069848093259204176322800537941533048564600108300019331399653037263471449422898757834985960472669547930571082118021337025048096781946525996034454289709522022868785691307118297073862488485787357758838129393464990135112507705502670687782831379665151474159070416175053660080288564141328415666139044586307958198323119606172300143024208865357213899255549373768585601840056491130434699847422736275025248282288041836681838658848912783973072005262006147715914017454856212951741016731512254024667387746745496206912967058162355243887764769203677420943706878391071078300985797556663163922465218524768170929376715804462616674513478007428798717244927749230216148983220223031754217629758191417904806529011873595912192488766270085737375755584585897622763590720629574731877221186286265925336115721516129396036843434039510953227874582420626933410305866795185263236633263482702288391660386723849518253164619143640383457811236625130609385274484686806858851155072255893827962904975691575175132261512600967728989536679035125708258040313221607201336734318954943537190334138462673468235570274199188487955265633797730790311737292934191181552344696081683302658951573374032623026202299301949066734723244867106646334847871751339916853989140277842586605134359965994871993302681573946233806228344710400622515674136234105453934062473377194519824905428684657164173301708837004750463841016644192447846372276496766301344290115446461616384456526643666869276230236789386535299628133258631091622780134003338020658359086026030194237594351844968180467444909468509058768826736373746008062696812798209590430745085747501025688212407521625250753533873166257282466810877500514029296535857082847622022876831934277079260524290863657506179824536293708356341683172290283457606156457276327262228865108045093323405011135941554284586984089906798642037575445625307594943681884368818760092634198553587263225350890289903959575370335572510706458350689732134470324115771893381179672822738718394649361909388505642668224667200754091161009779119687453338575724610527765377795017290362819492486487925962203556085688384739379503546659372691977876986486366447967874431097088747309138007517028993415781296978433407220220289936482902164514790048562766453953760245720347866760673124304947219876575648941354097537292529497357502817631042462004480530801913135730547589821994533249750460852233105661977445151985393946690650910827782359064520297198022775295652664000593637536737137160452798051786487411946623617679151084148090577571497462694984769010497460459384900714516038933651714157868133066599618828094982978643012662912807566688924561558083971766934051850925752810319188470375982130418835674396078781500277494812152202259716993702390912768429518399274462175316248313159955111881478285728886455448396986662620507340796462233937098179839057801985353870630288237336503213231830255276056017645836109805363950278450881565746287569233885691286019612922212225829342266956487568999829902507254416999346191710313365119055230952337055003802901723803148878353452700038791855735353070358524905542784860714211830122351759837864296969063100686511848741556520105993631266857299985094032986472398511499596445856305799040211231016902022412950661590135571360110658546941986044167078323105006512733156560168928159472440001757246864717414181887119655421531731657779084170529433031580197374041121863248867375647917915874015158717483941432379864416029764708105937155497965135677417228442805096415102362083315634028182543289563493728747616784619023646551859013457857081185444830768186292555434414081806052250195986186411477911742349985099959703121473740057140848230806291329192988553915704882396207930967555103106971409172834127624418550820229414843182084661635091157476655341387380482066587612949398715908509467960934383918379956297039914671744368828076778273082424408525592312626424111172682199187624056962073535657529854235344377235284191332068881785445311988267196540087808632637449093592787765508172102482810797434101369835922110673776346306242894845880235788758612403773496129730137375467382329027080377350414014159948944345861424917432466587074343760593962866767201504570327016711022631852647657411209133747511008255045306900978106202201026364256309626364587844245027216595997471125481522719139870040784867458279947339588016008364547895117113103841733458186276813183380986204709290169511210376661642751907020424649144362461472507930387151854478075391702413556137890737962535928978552028851602098493282658421031348760197285726934769826719322247305292764134277444393211138247734783917943280028336302473962734328239970616977030210278220894694085538749578517163942308534699202850110015691143012054150303296331802392526613285273171214642022511493776330677229235123949588559297040683660483053237283825619370837744437749233189934721316959813629123949741664801922921136245661625442106670620257091150320562305359037880889081823668471189339152317335246081899736840702195808098776643023835555561945475077328992190268959948256630251969169382784427334067673127952081347541649739798578685644654189363641441817025791253356171524246802717612602989670285769814172945592940533711436241195067962742363959983760941156035624956957278101768963852574523720226158251311393226006808371796801726247312762809964325423749081567949281378874717552371410582692689326202042855321387939327108266958865553289851880837768146686354514775087990004970221391353783215174790068341116296884197637698923086704370115761826056741482806130381105234544146898207299688314850249020129072344525462034464678240897440173519241000729407625727577147393544266955521724796716185465320887371633042808900113120643827878162368393442004951528393170653523233030190481554072487190739060321509202202833800301441400261451096848230173067653725499891159407963751722385957814830936316928287046956535499917256447364003884313196964551017334315613174678053416909675677274491978439354235472355800904435628289094443778520100021343819714245076886833796954497967785025738526795804589590107906212520398888089102027501407821511549760316632595824570330272487436334419185496091820435982476503597976027612757865097120150136453180120677852569507843152639451526773402582836632479456286107936499510023727335723712022819143971651168306919327698025534097062305003213484550709696965683551773461806998743109888317341138867172032079860964885685906853246148734271283527609989236425064592675109333299969070930747320861403998508508797757205487008350208764567330731763207768422946521612980949584331185008491218955694562542600176713973391844919461067382375734935616932146837026057463291025220630738054087663835886581218157733853970078259898126984974189024259193335838610884786411107006398613475149962229611576928500616414420224099753096573694517018795321139529768289702877381067562752245189093660612793289529544752526495132542726055844653253069963723878765473333087009903824466777415268945452498995338403879567229281387820002950307405011173925810866173457415353494980965427207739290988517119582276867625007558548491611266698480203142589794000856446647838235174213758988700693894293666545123073841807536824236343364652627539062569370398794916279836371558039490580681234323991890074825571853504369826126828549992168408538648202269402484610250893094659975070197446655778436950566978078952368330561335274198054108220834033226872330327185579851404072851576511752402256168820354862457034824340299233233916544119552859135159889963702702077112731665046528904631448924633727011079828269455311783013360804234309603052334821281973815485862826613046899639951920021137293751937708237308761150648187271622930485925918836961673237064919545886609002817234289036241834505377834128782685604710737787724562060325554070907828955740615762409232022154209348464008694128584736245400951734833551093113466046909478978511197888865958094864789921942628703721623269811245048401101295075728689285165633045936006257949686068494665256132613064966249341999151838696676486649022238795639336968603787789897347321359223133663091231358452812265280824955702362146006026520437721825228188866281191447218747818019923421942818341248449437016851573941922981367956252565651763340623317732273409702929523985166122654947915039022641047919049336154841829801731371355020229876411434363647055813908695254889633639717850349242491798306183771052745572148178269863920229808043329548737487869243676643996140094698173810430270920442071914165047432668428869406383380624856618079789312176799454897303994403593730863261499054546841099265969544977923223241133654771826171348662773145204268116474896841843260206592897903032290633897899607108189457572750864527758759276990670719972260657923437618639059751272070985710411966348308246564819845720643866700950703871884534178986960172202231638274207796598810436588972655171904447328383915619260500387865775341881071491078690202035895136990252502258659103934961390455094842058775368142836811314622328781289789723291877997906747944946254440738333640363753329235786902641604565569251027746091549257791720100301204882087394122429021984795199663841750717768498300022806908146158898279922651845790433319530267855809178095752854680900778552011787433285720019586951477996229438270288002318743977408885409932077196001247653409701713596043460982022019994241609380301103222471523051748453731814554737549429969216815405760980305568773073120434213659778484421940132400102825986899146106320446021233946282714939637972211816497904345121092479867754242142183318310453637762340088309075263074553438751603544519761019692853967826765405461515123170420686537278374530246094476638784555466000292830674516047510610168594703681436559650409735837882139843658307580527151157437368371390103884722094196213297058974515357095748962872957815054373336111523194075320227242457499552342899586526702931658367866925630539035366581217821950621789071174576914915099873981126328008099398168694935070698007408269780926969973248001116162343590545393998899726883082499281193825616824512830188467630607612336375427256070980067754003168747943024810271217526087076031356478763568155073179490456430586788266369094353083235883406804061381096030394381379815804748093668766848236797888237928101758768340284986123288907381949948967516165621777310362367217219594700614906100270087088202264866631707734622842188453630208922222823693217933321826366788115335709829269702619533998300940208195622855677564432322562768899211862877673620612166481322813729280597764876220348788025562707144693851058825722959398602156198749751022665280756353648940299902872769142778071110488602550604547816314909325069253300301171265265411881647976630466224943330348157665783263309069940101670438073469108496948522291326058094388576287399251275908378626798996406280564913435345013766912322320798598901635262442022903816056870458727396042259756802439558759813984370605412913933819836897733161997332070904994688257277542046244677914349833698573423703460212732781180662492782983856410698413536658596639748198032043254872811785385567322484514109026660363276160535501785627399523496711177671994167695474732408631280133814664858872168708884948619141145684650066025682884067780290165341280662089367061677289166107453197305058731848589742158373307259602059398353700603740808858205393003290166219635940694704724783836520220594052850843215133269685532866330768525357930265572535557015122616326384147146532337680774921451531710346443336937820395014343386675374953846355015090611148008464739653099989337075775104015102271441178135332161134961896678234183421030957722998739741459102848855593483325323613312779142226349298554676280624751603443927274140895903782992290052422573091298453649303978536322546254908128528092781506003383160907948872261266865955098732619959814612916013944809309142037528552647824716371386414747466202254456553570132645125313708987581517470810561770727547347900124397197196392425761372497566848923903114960461673990898252548681254813979259004585091409418920665320755295202093563931279568681760358040038207334400554776843450247966504949940274224196254917789682980334800025436116928388526412480662369282535517344044277118073507880441995463339483620103752767189019840877311184934735335587728009564359294749689186914076697152112102877179074082504829790971027676214240779473572128398604350986130537096972022676322038788346342404002833015733667377006320371055232034394231868168936263990006036718134109174510971254744588238092134312536173571753588394274087990633959945215198105872105520540004826031977620947384349546236326218938075058824977262328128167718189803991281977054482655064972961643424763230088615012457981872293029789065651501532197058974122919747584932848625842255569836026999762976226245444868040470546781694246034590450725549410840489325602613997118331030665621073497630912368802966313148495020227725350758891575225507963336034615235766502962655714463727600725540371485223588735621064114822512920182617193788159989216452611932974825688259027858834412258747435799332431943383012498236533509312671079397226754732937419066669673955986742051484508045138019023756089402462513666348553297781487572336364320490577980270840047774791380318686677509709168101173463202212954992676110688262693081780326691075626121910397825770889961031663886105155189591773322342256885366831440090850310339698500420485310202225069088454080001538802316508911971358409639958884560597475354638497422218785778895229390554370670762319633992041100104275263374720322739832628812320018785827643098026678987956719899589402701608065937110058455665921276135132056645004599371905457603064556403329898693729000444110034322013898988483699049066002321786736773584743379605103090929730523124268003316354025414322287244799418430614685027118830648856696991918042550702239515641532838206272150933411905465956351433723002356807787329046806682022123061670977463571471216792840503167046291407104442580666745244864698951663721157794551846290976814648490854426535979789744628905163376276384212467219430423552651485278683135519783657086035748106847224508546571839062348252395882351557856879926104858286410079780390116270663894817422044393346737811477519721247800329143675061335337045587703706934701967553570044936734113094327653672255144616640723302481823408934402919408552482669138773801139231595281984763876821214785205711134965871778155315608320220368088273126486229712290597146052854009794762951595019316062504484432769310238611405665005248971176456113098905334627240866316543098452289973106502489364485801680603856734700032919663944088261786484827794333465307132230342048488986580462124045611097045150208864019892131644732471911106327145867368823412551340647143226778915694954248378135923006885013102127321874623431349880981376305675621045678728003253801773900809940312572398592494355957973459924214312458165660273417135094946600285351009921202210603568005949408829626364307708611204504719883530803680393830751121858603670161564830627742229623856282048249790923879043706018065575666835585826919301773474317657785491997021135341600690031069503234336978489973722003567991274634214106706297263546280601867814723587459767528483021578045855993749804371641626460345077608961917243837171802628841568138612927825283713472381450676953176811907235269037311743204528137768892866006150816843653320053353712686091344197098155920083775651130352458810115572022197084578644019599004550767814162678481119225546611709081408377329499578308052110117322479299750116822428420381350034879448638084252072021468766949969116178891729877936343448895916625211771439457255278235618192615906902371346717106327817444063821561167435627361158462702836090638468026309722319734907406638631809216056217370732000561771000068281466685036718503179414313425744195997649556572676599509990700348423823926272847476199009460708629810606407817650522695305527631437402515086522217273158820220603260136829386964922854019888043789306872263863462377785146369484721500037433221989563765640638349074292113927863447329239331082765821974114027910873503608508439296500191491499985750162815988090583077909348480753766941020682173692228873800847539580287099214089422689087369827679762953596900647489978511731202962712744932460313570992993173898648130573722757940946008932412288946485173465121041245422219509914459400580643438230903161681172271805687189766536934505996895956484612364532426372029995202241752945691468494842524488823582492948051457520144866728873139422403469519707465821062742497974931319237248887920902030658733317930705806885166284513412010865962829958407353450369840922336739123113598360456068875571787594380783422428149717092587557258514555393731036692696953356211049040735656600216356480912164621786838605245047229286327670543890801720928283980403978426011058050928376395099824912332153983894314336618023120697661372278119835526315824955986305478066820189240020547809086355214922022064186074334586737513803762657228200971094198479350121934727803878203252956581378813551429679598564453747891449656290183509909576349922292400385685662208017754577696461590212700321115555825598980200675259839277919221878483128945666631610307142283633812901639243316416681199669845185768171724815296404086460498519988894912968391127071092492095699072522219148924512715195267130426299238554438905617829100278141190987608405699528902768916729053771058999396926968343665634821414691776483695239575627720222863724638701779029023407500836621646129688565904918387917204415803188923118575083747025707078348331906244593848073928664854984785395964051432061982778062691667263178778327396574616653405984396016657688901648489622390424547475685299218844463833412309462225699494739519702898479212216520500170731786501246936623872721957821641839872968738958483065273956504718187249316458436243773088461993678390330109358904008274661509022128392305162625605135854427273685838949002248532656030439405287443043714274202252526562103100090826864088584760801960397925378304633432207942549363592021603495954604132490520877621092778714385621304752600657836843454283786566897677627979910789161643432843311060441098016803675052319064043158792543504055848986567434321198002234206674524977275640308895696310575890662993413255222415411901326503416565662522720188456084747512312158690748670547798970360103908655949908306914290277878086865846030549618854685654436925065635144476660807205502236611511138194778413399847430840648182022005249691354222059132552348853411101808588338020798343112358510759257963982252566231610925247480761119556850210761845635178716551736364966984492983128247428098244332718335239615130008423367147204456200593285796148718084243513970508878229664710262360432735016807755221193924970049238495222273376284481559986175183652318520269929275463786822473930693910861166377351072925933452251803630529122796710312201535920940084633688836070059030719300037980565880765166013289880064818004376952218353497135169020222688910835063611370071498198125862633679841960527042658904620029054110606162977286394540388640356934616572812870001657317690147427614516382759252142400245178810705439713610189159452114414245566787505597145094544379135288243143005972344316833206392913348134802595003949188632886345316506455718335322048624287180274702785098385975881819882621844492843924498874960727075436169951070985217965445654067714432930095827560190654456178111558956212890458501098988015690813263821053060051943205664362305924202271112948408181218155894570132012195398498628938749350605083610560043914461004553940283191147373458861088637383854755350058545923419170359868776913554812455453439478124690524849108370941558703773182361902313210885333488299920569405303446538818275057048133916574898050273186976779587694378876292201359469397708336200876488299278146735305299398124523216625945696710168426145432564135192997758746712845095734596068935941978461008957771910844001018221556705919476880613607822524528241151727212480115022022955761074225744335555973597404390339405667676236940824850782072922573447128060305311611547781207965625705801245427965762321080004884350696905393920922170616561215153784386798566331348395856589589993658034546673138027338645493675489857384380540241440588459286215513164663792613161732414103571962789214603536355136228964553670599751842933038143262893910256174127922063192329277156687277510366388284267723879961450608265417081001247490803288791110110388914815933625303999855584202789218722895868264020221052730720391289161820191473830051290765252457326877573998814110481116446863157753601124333059600016919217972168667280024703655460040860299167831414203412645158836804414461689147179927249139472965476800242184629931350938319920376345390164488745680013355478785588716988247451096342013051137176747466801000772274003038498487970830066976249348435035913125805615255286130751298855569908115969448411418762600329851528874131025744574787875015491801016146823069708764818242849455985540841607713247133573202230532148585842595834014084294851075502597526777843248942888709828582309316683535547450575012966248908644514959026102741485483873274304923195146942482297594661587758803876264692426963536095211155688125726245072593461380779744454976127252270944773783891718320146116295297240106221505722802922522208871559612178510209036089346518540006337963487982806786489174632794665019112079536345313423816918714181214363768262965394710505810404263068521580488122067096287894792174091819352984025060460357555601732022487840594550359775431648453261665571409632025731034596294467912512415745953090239549152377198686738478716430333753105493029326025063775718015600876253916570642465538945173849271458169402041617530326472259877453590719295943908985811406755001136397530467145253131740564416067027817797319691473564020052696417528811647148016696748548897798011539068073480203766630675394922583170680529324573406759234904231089865647095902241807834746161998691316277016331755175296942648892008721427150707665648833978020222647170221640895109893381193739713168346918569448137421747363157821476345023732080268918177043202276067239605836319554270194922343589451929827648770476466133612432197935311609003180872082068731325228809097413242742547403381602039901040734092656979292993047326786610990196917375260216819134885679317399499830319270617109625281607586433504858972329173184167625589402848323839108238081266914339884299291532688379691839640918004439071347466922245444141239803286707381819418164157623995136767403562556202220821682034146539276604221181835525921287445036152596426770116094906321331292710917133932218374206954209463156367544077170951348941598422587497401460809988826752736713798631806594443158668821223479034606658498142912687455886804232079222233415427012816147000037034829967423959232001268941414016105221691422914184019060820326708153094833686089206445400823652595308305499473544683757757673015632360343765145531463824166999782163350803880975242079209175621380657923319633298282448672317819109990621132022032569395087042173152022448526966386423689777278249745301598264011261842686484313460816743656520516178562836047229798955621920284610317570761862592533530113609903490852067537247916385872445785631569131595380987038374810301542527120708409716815717277887188791900466576585940720671813593847196736815556418429342022762234710061086918064461465445079124745570022018793097586767349770109857234526149827473303097283848969355250351775107496991254465670772145942471847167021933723096006194614024693778269820224924004173346203999611983407325725799094466202217920816690366103525541724029893780373615383813091470211646072995152988976602620257432287512996783477936988143296508137695320410637714517929626414774374532136980124848585204356066493052248639924261682683682531658419015873924239016368844302087079209088270261526797285733052879332620170426303977784386463628759178910682241420847371619575630437164876976113651442970692295116117061003028255559166657962118089492753382866083815558131332533348554352834446202299491169724789363373832392307566340395975205858743318528063368806119576301066036356462892027794023478158415323738082213032779588381477280486942239281040305758608154693608457663651984757903609943770447896650823733045051599096188009180102521991152651705028732388074354976260081955474790487249241008023799725928138205743809288300995761858641723072685637879090146227232084516608312616725527956360170987822561552218211925543037252150629226137807735103352077454223953439878963965093421957629335834529182022084950288170516131417997974792904400493150976101594012123231082774731948777894426219884574974447894764629873873462980582038333268470737256555333787802294489005806605576439885831034903774357845748770183364111951253308141387933743240694418216256600446289859135008445866165531389774735635375991572403672136421838873387505789327117749175610038119268302977243840230758860027883935937509157505637554184333307945073726357470680628743048951299216973580935719729242887369454429836104846483168273082136305320220533967283986839070966081460942715911552239368077425850283940459648897902511225547578087514982670208190412134659341811298048157763107212512364371787873292316709932971002333957066530227088744162307198037447813957613215950803461785876888173816962568250236548396782300585779452274728073667641390665368616453841939559911071534207017659174051127277092657945294560434475003072445639381496615658243533041508915472993155704867862089298795020031942962496773697296766722079211980947434355928110692295639578202216902900604765609331729910024201849173202512629485277861058713274902654875076356482065380891679401328931680338156769089183365881965043337490770813548730629641432073599669217759831905459449101076297216013909987738072586384754062796611474808534365784332519581471640926267959242463560610554138772133129701981742477605744048438916819032183742352548177222465166207761726589175039826679564851763332895674668917294788331889866660548366342414108195895583900765748780530962415950202857200583967102090165602022749389718869389705831690735828610463061663473356343543925488505333188027416771278105507805721382099779649750321073223016189554707311481323115335993390269726485977685877771819405698633932541765261752495184007809751998558302958621375154134363678171420662639505870132884698254375975761701048212822418193260470325083370347795900982038933011570252224993263131056998257382511985272458428503465592678714584031759574424477122212823062133320734284431423789016534400934775938961281462262930259102810919556020225162603047585155203880391690034729159503719647622089121597976686232255930135140896758504698774539965074098719931421977234469754126745730423868226359572656597317532407010065129951837029928333001941810552326101289723153468412988880821461074747502555390360217500400506518388833075605125604471085051729513569868165212903688644168177560676621592538351803081467586965970855245716362185701047111788282773774005623573873768002714849102388829912453284228856859025574300673237130929418120320118387612805468202208684186085133191774725752855687314746505924327605561009729036039863435253243568169959967658986632921456852998679507566587199249842108417461728979441039995211202111706891497277951922227664744946951746224029399028905141829819636228949082659045627729073131329591709626538668376410571896185840175460606271933184147491277512857594612770142641899096826499317697973236410487563979829337655300760030657618130421525533124290591420375236828498735701312143600904306018622177528339962866486022241039099472802022086459811785961633495580239308163450648009732707832223600959923129571088377104015127840461600939969780247667059442138442009061293131794720946988795064160552185980498452923268480967109034437042409195267811476071371947466876842606161426461337825446770624436817903022966933894498041353950254723717444247608700032405400207153213753368362681151958180096451604009563125226324765582340201912984494556332168982416645331114325366367263558260229392270420035965528428168532348649052440752538341762483842056020226481592275107614188390401369505961279797535131813790454132473607609603373631113397931847831648718703236275424464862638379261767814816175429099652705794183231474828279564551451048770488701417114771063572553386657173108871845882448191765951968108095752144270299376009991060535946247787181035070423198824304868295352061346524112291541601560674810979797940838020499565890234294669842182633070081253578617089268766818973861046785888437614710040552568484952007233886521603119404981760627866319982397965202242866051091540705921783766596351404620234143696288617040323448451063182248791671648657279895491200487296711228117154630917889108886209184379779734226170196687047942729785472643983371367870143651333616643592252263411614033241183245211481911464948074854613750995128251360858411447376068377773541089040052856710740668039822108988170864743020249191217976256522298833301750747718141370764906659810544343646189302081356187934606118534590351000033858223878374673734030078679839760861151585889313436877212022282088745130431516102938733521023115966747858026393003749802519600443412587466140918610427546669353820383309434442087590927652454808515815209727880376298191013767889740470337700898650840378669756990981535026863338954214605013920573602145431016155073657476261770311949655075724893348832116323974604546434291760268456568801193207151600670381712803641135634917010183187705648808726097658294991165097008014221526776748993405311228898339295217794893460332330282779587821161166378615937816367455388327420227272661963316398856856084347471837666145297276662291728446587693539711626871214882283260781551121999135527536671664982726329932880576393288685176958006808791415236317749810473546018802218034705532012374679082808602787812656582056089876452176199376433460699424371274431615535710383153219420453635523222987001648009128957800428525644516853299311087910307824289415437460855129374515980245785000334012343782294329580450933992477170851438452245450330399993019015419686004451076982913007323426517493539202273390066074323226606176501851006608533268728858459106158271784592073954325902015645867313104620332215348544065404130749212648889205486407110173089308898633446337825844608976991074680506884446446686355929065507012046117416634839342668904435451718384610506924084169833250928446646750410326329513284748822932619568989757230998872574368592132694760520380775706313782958803359385803200331636065824455680556718758842700916026312899642529460108771492964315078001376855153215379658397935884977745281956712022074926435526220152553395236273473532321294384297391823542909069462435348366898227356601225411270444955572386482537210508323193766444233755683982261244240115243360575395568237095812661762818463294225441604780303678686272459014879086521956955931802021874280933737580234866784973042666733157936816983793895258172269517757313713285940710502894319801952262761887475031630589272861749979447560356652595850656963028823643525027509415899301753830107704809066841439028152180306398451088550483035831551624120229263086765807027613389591389909503176313186375058869964553680386048059846209300009442895998309957542747307177397464364948953864226517049837054460552472025556247587773449070143299966266792590541405424729521557420966006907045667425354469271640679342894794286796500236357359245371827392971884952755091269992054535724966279751899081926259443526134124815172331482914795443836350774455989864371968948079549274256068083217859830799038256644815906902161554820989031917178089620120300361735741750435425255202228479500552955435284115433631221067196302094572172764524716332783888506223042998113658320307595869712234996190425538944576381697482672058775099675655654461134758091302082010961421938064794135586235133996074695964326794301968628380901062903157087387813001497186553409901094671097106431271476264623185992818196406996949058705900441787302684704839811512941244938983454522723635402452023472706809663734405311641210726503742423799300442182868582374094208922245299825736851401873346712469572224311916532022969925940205555679379575248341436048264656619952238736182388265355856986300672676031785463142142764919180443843929232837443721089929425139710369965018031686522190978904632688244934971821551746287220935418321548607715463424186149701978083503789892469692502327843909074288675550788240264271548176138540358963709303008414211107363233817028230889408583550987257917191100372927926793388118599173689530034980889220306477740550097528715036352928975572183655771998904552801671690533897890975561477778103620221178819419487852265674089396391535554423079027848376033980290331467532511879344897813449144140392574331944669149972373323176326411525201823147682537236047105713011201760340995098364008756333387412967217184788655709517108037823677255570847725068310261539226711163581563848233427234755408240191651987315566184680508552411489454721819050900618033051424152604715749648224135126101440803147396934947557878906176372941928953300279104853257023085576093048916673571160341202838450016713648389164026975235202272361960980451869054145066896292089812239483090748741766070452237020503271933410509102413949516016995259319173710694417990071809169860491631907053494022810522565300279051809774208029236911128093249572434833859227148364346131291365409142410832191751173409247500923845816370161291893082638399162765383916771306890250074817844323438387996325676163760315451425279929729769709056971477929548745858629745052255795075797438912018014512367333715913230018893316718981570438891044641383154053622782779979622022779843166757949883612660143200991415465455232210294783206105070180001559184888468908405577310536583375989550079902881066837005850276288221659576837679639571031544723251378662089897881805904037988436973836598609134165571979997555803650348959420709852420397278402123704989451763255424170861974749839402567861119280739658630636717216565358358702285539152203255304515410924392991517861185033565907286234747869452683396457501127782798886185469557325780658941073486826056619504456424958416013092237926720222254866505956683778103189283035136764263807200307451219153175302214261552562865111834698175566794821921540988378903644981430518659190843165122935170600190009127123752537589217525704549118764479344521459459646947268991510435851929640928808197812192034062559615939717330096261225800116701247855789972473495325874555135656304261126806041727742407242867759826119207110272972111654536240134884688177166777698379187138049962920093437223781071725731847678105065944182044989544330671809146510057899063935202261993754890130532500807901571875214255744523685557516800577899461735732365045902993128349452223831444764630189730018000786584276663451256437341117142433186159861291433508942203228452409567621773953219347668365944568797981712207669359608096085017856379601101958946020892743684805699215893759147586297120834123505633047662889549160846926521530751234604700692614495678348673419056294446385380950417475360835410134304050596369300173705112629083987610824429336067544602805352417061786257688432167557102022691729618145142789346001075684261301763546177780754878777229534022496991947622652712233719470957571036196608282210595387251102039202290733022919339039489783894614490830077501297357659681660689835545938324661617506796434777515645448505763065846293050177843424151730850026919691030093886962288207715483393782762846886532153812104595155671067742984175783956416021529636692139289427601545088029590233867734509722542062463362398660106808965088451445935766538856552834266984825218610110986512882266914320225286421900513646118735919326496672937666423004075947058342575057289221794141090974494479634298129294142009088121576392143557822727177933061930239992654166690629372974899471958675767426268858261488679560090290630811621000483729369025135477032466528846697167386308124269487087015301236390477046253343719239455233888014631259586129079435630766003568656910618929669639441736417598006217960902406006323058777753657327382211418080209966312186426106632480875363663151175561056205062693981707293734710876202218338718608649770850186263518596541425177499454758808111576458135835034372665685204131597878106029875813288869842776366802439153966071392911117679586204130768869515670702886303250157914527692789565281993780173955429000419687344223408180314574251529626456425514144145856284316445341484868548731173755211740112531183785603291262463976820027286879902761211021667643606274338019537582044930198176454519676089729096998244590398430451896921489882486874369646843841676267141240012431378863895457426139232022574571302809528827233034033401492522023537497889229125698889356112019641948080633245747778608761442938098674251188877043096902410731075046512378206759021873620710439320086224867233524236040283044643987467362952341100264156880687573707104986317635382169078510322361787387558645952674990155466361351129952887136383700595106969654248378893085734605820775122967476363530346233733485263947751465520537972392686415522989916231207526695266887447315716277023582544786059180150062433107862762427167589451620225895904400650280993375827420494122118915860498007126359876995848751016778644602872858466262266879313581457152653077537560870167421648952316279528755638589677512840353724331751029885278769166654475337038493607364621107002642587075004725670397988135122347677594531389990726436727712991116304548019528430577576301474557804425635541190979045753497760481575643118390901516609822828074337083340096186681189247392909710383893319641971651143474982362195873443943364397914247443514629334867549125714002190202232422360456935619655231208917471001290749033584183993021588385183524968334038395579169024168458499581100041861040948082136346804243295434909026163866617268761896352013662493391002169405819121721213058113618727500849555769636619560251847016601753234144245327292588156199938147341883332213259141193661197125716672832142263019432561071748023392966561836293749453291908117611718592262961358561730682847457661093989098106662054788727126783277958009975204991359404118849135941889085845475395746769742502022916938062789473787693289684836575352778405413574707631071948121661083006640526139682894613855255078793166196148286349332628730638994168350080305917904380832534814500707418284934112515675172329515380303859354753501917927743559048382746380473618539641707679828904253054615347551926903665172826947745903033589984273221419687815627153357511162525477628920585663213631082207872114456920100043576784269059388655559190367477561440350049746242167498036413502781235008312775753602414842308268111693614049820222675471693899924572893297200191046198869991167494320465996321370321651957472861326675353110195161431229453577759183863896485276744490761610973646542988559820637906275594246691575374183694458294676569237167382769903426873927087300102075588763994889264534894942340706295931004190802904961875906394124489254694846151573595187587785603157083647146903824249661388894622872559607298258382685481139522555807794746683867757014838761469525112686607037558774021435287990098924126687641345274513718484609455202225453802691551670478174620434001605452228111086447598736853145632998334974926198356291725341419637033567311290845990729178474890924675096550120182324488165191707618163714044578154588948997417358809160820078435372483978352834769551128155865045499346302541715563017043083895845693795124373333336972343424328983256479750327624798088099753043712948403306879050625802398723951499922702621447030279748048415684702203717116313956322615375062376754138076286084491900538200543832782549928736589061633463912022754524259182857214637950046958960253894765998715495004061538418779393767212483559952876478703078527281526341918457074213925015613942620460851785325590830155797902296168390980261834332166877280052522124843186057967479087887132686801348603680639842622905156794888595767673550049415291794605497847712153166886674385084951576399430609269027625330031831368640513021677778523985365287954853456300498450359627669356203900353007480521361467037156221736829791170131333314731240366203128970679521816043224620221510434859284622330960509466936279676792337470068969076080355180465540381287109062365250247300920535486962588054194718125568244716868716340682552268953059935933002541618762063964608289381172254166245112846115258227277528214547301313011448795640688143112033210057139108286610856269423256823283974842464371564999627023553481820369922386464572004287489175074890276811727524767300699144089245623263695771608411891723674575411920064554970082902317076417015459054236846190941983708917525634792768060762202298506530917105711042419995107717250917238140452050260067812676801864777647085408575958233121460834136223632227113828612953194356721511783669799319498932445551805103917254867537234961083880252694670891283907159732023029535895191063494440920538179081208077817240912424237726027355798846860339886117882337016385612545295717481698125375313926871221610256083912691696083877384643128187341630854293336468052296098015264568446613815535203241397934286057099544311106889706828139769217178039729264185475932022022094692020569997668900717513508780730439996767097569957790537126950716776180664014511494202734839102850157476929996749690455879954247833526999002071796407230452280274091181788865063357945494417278962012030626502601281877058969688985493841771472533232811424368305331071106531366086494835126910174359584921412216792034974104904235061024836651515816019934316900513340479348518982905455101889705910455178416538350678980108782039713839887469929692755885969850503436448602894746851226743674922926752620221586072545828206563998670669951127305495775783811539121999410559592948501668379111441321712901340207406499834780345591342210659805457602459275125739728493588277000777223950831206224071153969856581290879913356637596003886518708815968861290841567316951801814564009720016972336339587626184364350468039038765614991046718987989053644630395791954355407320552476013153256393696627081778277856112767882743783498985029403566300181057692207531585917646556961734025685105510800709177979141365469329349675466202238754756360267028562877276714460219294474716334253908179397180202032781204933714263600206041730257407181415966280329297226815541880183060284927344509789144006652525311580590895956055241168918355891782727286907968309582111110721722909737168337122085963052437373179295265248726371240195078936816666942493663252100663667608661491416287784625774596289224363457180842947657787978239576642201068026823544496819222014525949459757532029046394674394195589932759682524117380253546278082537310695551130172282022002784862850910075316868963615530581318862485929296292555936714508357408084148108794536354089654696819828369026411050012435030982195250554558579566894691133392245225687703355782417975192943154420288320471626497921484898961153736137362547841926477658251346171351474605587905175554223896784605401474471356039167604873087880503958262836555029687750736290415212218650943464360386898838681218240159997259917040172575556937799984780017109102015597788104995018620030520815016247545100377676998972504501320224980305458955341980890939303477500595585836952828669358761354900936713110608770662684847459937027179905074283254364886358231035021132733843351827399509830183607146468359762871663217348814776217544525249551576874933333171613852018484493593801265699403430365682894528203929272614665501797772795728025470260817186382699849438585553775488751066942202037037507691111770593129676866546920955959050791473576137161955170346808300726039100425055912852658929807181397559177326595373474240446224151846878784202204900671052491813605884756766733816817545862211912320109993029317665963383646033407743476585698403153245293614748742984769690957463256315766983092845924967459732992738531037574193339560848404566019798246348187316047859608092128054290756985055208068550029326303156852632974851552466908012241156860612135129240561110522111730321133806241092126273127049725656697537703032555747398521982075716886036184353513592485110187829549839016440392511355250487724937846722938435978844253162760999140348370611892022159994607812681939664497181954418414025710217187256321278660065448428473390019338816833025999700373327197808726540704094686751443922050846248222113018923371601964863313032715431168059873326399482809349014573154001647053188808101528981368746725909369518995627697463416500771279208697141433462060998622497887604187217684325836153944983978858156918843919609614781092070468767525716066043327655128494057396945936863172781813665324604730765150538919146646649726817801090801685786148307399309756379508820223066136915591277829499175688023439947013092675340600801480424060734474588896110358590518555581115283755582577750620156911223665509629788348382504057512549279412069649471281721432321183081354859961622514290024542286067978103923598934249392996306453220426951326527366161263183685080703238100961934374319205556070900726699085362829884236560690578014831144944813002145493995872450782789732816997875798057706597845004428777506864552458517552583180893339295932437314273414542396515545986853025970164559202216275244065999036733833494995610557023921904222482044586332175814797105340446715948154988028676156932223514971012184641111112542417320157043269643002220064011366811821127748940231274878643253013437858665529077758970923966804720112479014470722463356664543929497906708846744059378626465382202369501314985714394531301743522292964549535111396924698578312988958541988477627259116454007344481064116826149767247695574311374202434148523377365837313821478440693310108714243371068422446379285996866341448342022607986369984463018507026007414594107543636932020399604566847825663924713702845003586044894431940822219211020902390043152528448580318882113260194691382075469323097096252652675304260508765382699075892947241733517344462925381944739844095613266984497543837676696140836039287826460515370566415695770559546051922636100357554175249757836606237113793276720404298612581281158788874515523461385928930292317192376215376069525499275694803570788715455007403205854403403779861956863690338956598791164995433959020228110895816999800885952743220218587717314390384118504078501214388268508908439737777510437185161743827285508113308966426601389895472994567118684133125586186128408222493946570674756276794227553868456851543799416269496991058467018880850457730267421450984676143335009893231265590581639837757830971438874494923771401715372034083494528159360713189021228028105275927030599803772628687447604578248912345610797868730910780803354032505548609328570521455558604506526967032766319785285913663421943706070628245202272256082280965303462152563070962274743964234987925414631965324743911948889382345991564713965536368649108874993393206537187077426235867539759309269426707140454370330898447495383822883113850250621940586582421119035221779101400951350501924951403281962343130857111242049946997350437789134598541724977788743251952982763641944626627008683810826566071515912985602238992554023562288060932453779845477053531129572389268771581593194347726167371099430071744772602088560227936373215957477378247696065577205322022888527685701346953902998490954451505361440876412995133808670599470168658942196898403333277687321844693383952211510894574366903535984801237290115713706927782892879155303343612519720956217231603252208676610103422804685706618770159825018364020901331221968098348837979209239644077003768885717181206545921050026844615103504993643406946716288224153228442321770502492354612033265509979024268463145770426229890595565516003235727385996531271688628534418381863853645382927388894493393682074195182511055624120223444249163034463156389666520884354605529114673579161456526017336382154108801904556169396006767613947056544736903145116874665735625859196758213389669682836783513290728357658889997817139626684570435479377491151353619130413158402226220874371352066331721785247266751920227445146764830339404435684842554240662965059364735545769421524987908816863447816426270105757531280369507766362856338877706898291016659289507700739254657021254378370489530203166682438304999073947550805201306428708738061055727838382202243935964374162645406523049470314235211119155736654778807308154712405730159520086629658859647122328114376341327329192026364014526638491714370239708907471776722450474866626206829557782559003978481690512692966066827384128073253903277239984996336026949159705326134831595365045571606835423423295972205232228082555073814303232929695935715161350029618910996314897957696911401808384352137040671887939190712998566266029911357245434692612306654862298039800575828249567298451923144962746073272358388905010272022137827826372823738778259354938646555020189711490992782299133234976128414603252917005512237486161543930274463193672011317520516080566154954264902628658850952135229430911883458585179978661970096767468037785141686670403489319706697067205053047248604012974799525159843305611122112568988795407518478424577338875748282659353681393292702139941718124173805565010313843731139971047780224152689409585330444511472312421718910848028942465307221169749390017672988533591177592799966441716623474438556581794807520222772439086498845906558762384105921553282209550389351497329870116500832589722479739374158074431833803554461424551926931135568717182281545300484873935762457727378664802235079390931350303352999255721663507305393596238922031018035085206441902763992866935023283617156665643262250933017147392212869198332862483844587505135830276973599286053828618573856255397481815334935556729225291484682118645633622548984299124413550082098141158604794553496282922049087942551375353799679610079281389322228889785228741202251503219704465164891206698258646901892284065883546115978999236970583199405089871201320020390362198150101644422435613026451495601024796038431236168196249816055573962891820811977502818154056279300207676058557251175287418277603485269303664668517778600541468202709145316739694450736472168819109172689455377343381266931305521508503918864703288339487640158683293601812970732952214890462305028883227288942621023171912781315151490131969588884946004658521385153375144098432874812340073788027039706396971782022825955497966676167038622486089920322684768725184246618269037886599021504237248931830024906865160554517997735063114394279024529202557747410367256860200991559222345643198643246204925415745295919485709474027234565071588445497399539741458424207862394667858862107218538622848052486749269481379243943400861374481000233183802593365446246475596043760791006261997617260643846831878156624724161860896575032402932932905812106615525077854508229302022243788784295800544382259450855232117841793063790337288527920224525875064529501382963034371636119686188542150776583027398220719398483863598410500373213393487998797102772843401818897787235845797604708477428473690661902442993351690881337092180238927777300346306003168751079931503608648212793974874482696962425259172411032690905379406458590896420109711763170020529279947984330149923170560919054343870491106761589701725779788843462936081100750550250592647143334181339082807603543434446425535417091123285062231953993345362458850475829446970814577924419142569065745202278563453663562108352805450064379980059497599536629230125998520506070311378591391139385909763941450969324255991188572994825628222925131781139167731558238945602741564961856062048269781913433370534660750022835349094208570757420638553959279840534551510312972338025391757143510609949314409986675779258578583281861362763086958597164190790158098782413595163680218720780731868841307725145813956946939421590887265745716405199746654092737861493417161447437888440125661861995370784297629022753821238016755562022702443211864703582038651420064241008991126668095735105726641817305357218787575781986217005783012567034092010452447537171758982882666115816517170771375203972660411334111678129380353784914766791311326895067788756642457636666816611199357624231931396003319706014826236638980819963135114990827039463741742204670626385029304880449428295562700821937570801439318062051295806418400420273088908689178240684424729512110445142598833326251905563581512451838159215147192498635405903378530758648536724388770414720224441794854396780374159671789778186935279988019208787051468520910173081288992394020382129989309325871448919586254233857457377297208669278128539631245633667773214858919660690799869149116414910207066987920016337175829875397242295219363360468454807050439859178355117091548560496497941907145753763013642887013544283427416723698023897044955843467656806052080284795436940601580289192964419681954269093760632102121205350006306149993651468671498602396487628657494475210069278733176045886078803466536489360202293836578614110139367074200298463560809178828780768049082565751804026039813409063023091778967695372267421042952326687138304652217294769770389578132776646642534809596321663474327703656378788922297370241441099107374135758709965331300899831829572074023662164823769284140117832566955864613426413375075935238285614251363489039030388242265922150969014698379220658613856988542640537862089902366483743833183848642126311773803108071359479148098884397485943904521416246839490434835823184210531563025365070582022817178109993683991178261660818165042483823093993856848407112199089029776884286669493119039312534750756369450588139385004316223426334129175680856420274765293461683051746275170492891120856999659338404558350472599740577520457542414159618900322774131669770993218921572689251744288317894675204884441926574108207000342765078325418814848607243273214048314206880231317198759159914090325103500635606253450102180009378127893400668796373811132322619412287185558259061984706159370439692449562639971017212382520227100622829040797422122830521975249492026220990664415943739875761223962195061926680064208749032035801508446126023084625980901725289904374134121274497178604651719011169437212202162739914475571935028138203053778279497782818561992720235297128276293015267560673944530261398860472601795197933647702639740338976713879905854044778223641029036239885270805938954371890574897918859138901183440288576710825958182271019919599932803359839727813308200618297838826790461795213283999271496797464526600708011644921202275731070911788988092973555210659981013104225490517744944177846949644725523351166996120732027874780980688674909752149158077132268242736296557187898882538441734561259204970820568709725246001043654600946958272818703784224211392727920947592919525747895124927375966321366134804369375808548210499980392833962572439810648172496024663320466198632774266009850669491662440193671377241148814936695831385188368800917908385387398024666468712395539950320768876416276116411513664721165514793551630906908218646892022272003929651392071348752772423705882357804787765785144770809062447863833415146273389089632959885411078124638626354798365292935038084054962472165223866831102987304022107728796598452057298000101188617689645501664933976459189774052440435910194617724188689880548400776169486781361197641358243928561478183453714599093045062386991238211344535982014866024493088685888706879752334475344986609017024110191537327227099302740660610904415601177678584452038937080105896379699331062557185521987383028288417974920225433632359216527591201245828001176827602692967436972698479958305563682701595665195053123811528803522191219428916754572805308631056717201519700222932396384938346483666354182792478449576686431886276530143910927129409782006731365813196887512744300185319384466923327378895231794470290481442004781795213972161196379256051909136825585631375347525018911688543258811904387296820651045600239799021260912218146496877822133761027590126407994925087790699202877682901751209979982678170188158100129613874581891202244522822211873711756512947691674978634162672701040694008667809200831495635927537636753525675230338252718491232427637670113624508146312484888148474712510224641143780881301696070351904050026866286977927783135872421525829004149421640470461815233272481438858691973746494429188790467093603921371411471497658605589767483520577502093640012603429726877908683013768021797487090975274171678472010005852570191355532034721188434001841680725139033775279772697396425629137164339744631535935659955389029894535652022214271098391276590323336166036645456939300514322324198974099779735944194798940362921536704069848559044237719200356060610322701248897103352474903176166277752086038238173199386264810027075052446927598538622112242366609271468017516508720416801768511719502113532711642078734885347308252380475648055985666285191625240101310971993742934328965971143098094111533913702895256646073072601023139005389384574891163077296591964935011280162567645595349982128114193454440278294478650120857358902865186566170713820226518780953474886210556113138131915354044265223483616801302025019585125060144131269771393670327278115879031932541851004723269470219618604121569349206683388321538830074696365835588816292587032523832950136806936494010923438400138025002625248982370628382452779687437229590682594022837081749334379487216835108148283752296480974986253127140396062922537337625876346840761509593904784556114635695880949527231468432896873674729912944842770318067109669278378268171659389014744799127632554415702380180580537202255076906640339564405285313589831065999990067739091496421572269566516668418224291467784948019215731245129177510263799158648584245546201791202836024946679180873030632655725365530061896145619231446277307831869636570291026831648694407360125873228242394827295649236140178475205996975989612506995570753240803680846408210119924613013711979945202845642905713791704340499292677637690459255185100425793332715612088365277938608419662423759080031406220312428062688925756632547892385265564005043104616779793192022749491156187734303974372942433701374605889693190589015835538170071527579476281114486094786959726050021524965874031899552326054275910169394569090795012049022831368447911044191154137237674476667587217692987662876350444341688720785854955491159104217377468346099864176156023673950323322804405821907494175502459604994921585321386108101702287402671288933537382071071814925458908886088776595833994322210958415895670461917978122759330435367196411454911865968946433221203460048512262623089066319397061331620223366830201803269231185285456379292658515398078892413198490336796385106781294566013979776909829332286719971193682356870285782034178641473142690026588974182532421019308727466647218841885493853268548542188757020352976200860686648714690263897670573816305796542519983336027020819045511746267789280404677963486342875647716946686942625417524626429561307941698171473411922428510683616896919435852763921284648041482047787888538941400673297264900039612417636054134397744189062790904393701250437738692135625202296187366951725563089190840550377988986963225274740964378306722278195481507821298472320997717893301871429823204128759235030095609308921791527171142756642660314170401237671040007696698368408826556959531966086975660816214079229781983780541057767575103007909402241976332200634372071629773033462695247312666241956006952772723558129038706536076430242617544352366658127249729135673868991154599821308440845130253662094552385909468746302125506675532075080598477407053353973676407738063687086473925167118492022261403298298464046763659151025552501425046398018203304211842326104640285138126151189448363721261164856144660097556296400920406635104595627929238053155325115784005064747824094171239042154965603583939233117472170136593109424311572301197446305608556883421189778764605161922539707018693348018170159649845495234981057440901442024408846334220930660736962035704982948409506114045772717176886996639261685679375418283914782858906927202304126016900155643946040486690975844344968627546577896294528909673801920221926977506655515367729295533081702290781470094830908150369305746729210987569872665334336007977140482861692455609907983189201746705877165228011218436677073827852736623515156096981130433882762438866774572496844867530057656348057941900886110656299229839163645157874482532880016936028491597665852506677242937232236769770854122729132194953757207132583405012987743613467138435482169041553759411231898837778082388356549970586129913743831350494369705954070499507265799789427147503513496798557255548834625202223036496398928114432898470212568784788446746837653432690391643938826150583425956239264666407226878777240717604772002186326415750625423708135219290213193055841827075585191446138880923107512078457434420146722199647707102845254845067901014458865571225378832112024805174184806581348980135328145313603895930844756032788996408824521398531224296337745055629018338471806164703221862706687525193554996697288532160954057548120518437332306006910300835909622320583435344687995798831032754348736810314241779822022018885967786608584488239813809267153511677822510296432817240663571095044815058814629829605151536786578458478415030830534971096785764451229156140022344000927502039023967217128800990908707685125073284853511663295449018444725271669836942281601647398935414725231698014313545430966845999159983645272195581060504057123511667702061936121338170650318554574576576661522612788452483945418453237724581135458833287483470268391196357751098484941128974428917162410725704346806845953590040469142952992269177594120224757232319304008765296764859800722713636003243304357731663968165248581035955616435885618484453973133871327894487222756267379463661415394778766654390600634025897426522494585688241500211827873548368241451790008767780180538038012593321735918851240122092696128888988331059700976089724366290791939191170018521977802629499116235156432101743358741789517383952419852316795669572076167808954949156224601746726380579975240054418780494825586801829271679421700891291334809318002046669962158577322819156836589202201282103639348404516826727593457597895408557736729547789829156049812863177381084888166623841588850366104071337211555092845905234814291981650651232522522645089380632583210096455907749586753578517715252797589879222808371172484097938617178923183703409279014374310427615396873752359012202755511144421624796949812823137417303640059741421477785691325258579768564746151859904680978190622689330765664281722514081099484564290675349035191312759402406243698033612620083724023897092456403698256514164084487132022949366061873223687849084445226502340539974134201602794997049679522523698990698567381684418884745723295998669493770637128500037303353226618158723515271946410139295246477054144582178578452022620206935602516025378333308879391842633145916149924705981453730157114032712560613520428012348076171767934894290671223387971893401810835192088580250511905749144380225958614519723212985443399167894012122758652324001147565444414749495703266814210831226716173620437487993045333931587728430168712519932398587866820224637665289947381642919891607740109078137988157947996812913010682330904078901937161842372637860620828232122836630213575826868097527765565904010089205305005488932034112335186391981528576774836187168604731020158201728025138931625997613496870243219960938176077407521480142073544071639670932845970815990289968754414632022746222191687916660299053344513467570930230448248141319016318322108358504623477423283183546878522860400624481659373085931240360035454286198224747326358092992439663087932602901633561202251036203390893985078517320955877001436842033069151122870341068522218591385159172396352262572599786541339389587870793520545683162897605230315011380950032219353994031932458962226571259372228932353847110887522622303612433221175341994212457772113496362788015928147622118407479273620407784044748490021487420584080123492341384387980008428479736282022589650209266653297242878770152134293970450295126956028739501589525740668246076010720388566006448469498692747247832982962294264094459326680020176287592622022508140161689294885834830351098197848782725977080771807347678163453671907809532483086779980676086550370849741758460359959604772863841174244574317176079881144149958019620233398282606151090673201891664078931430371009433284799310007185537793323090117874939491089739592515116030033311036829880999097277121785614047837022554260165244780801841472111626334067085219419911192330297891986114284766536997851509114636612025344425847949984198276699361844302002489713557569526650672685576534323234633659530922220225292787680428485376902376692394621364078084941894593690157514457703662898382036717782750513072816791116997897924405037385344318097399884025234106036448011712722657399759696982288837263284299852476321105987153499637707813227864386325598190311044069123451854508435447647284203145552789231982670269301985718216604752964414806763440013587381730786783464615692204923935696145436318945211666535665673299759773167979923820719396495466663113046332426550480367240957662232749793377164284282413694842317974202275283218053623375512759146392779658830132566869810895268258969721439374647775852588372867822150355619026759443358122258168209308440589698517676811843654223791918299666725062493306032379619775860999896716966789199357572536613805101319571114143745512140766276435731570186058925640477486217667924967509733145350458077050096263159261996188573587128556051385570807352016313989522938653173192835382312656889552512538840966377139865074400483265894275973872969608533734702887699503305999840129239165688312022714305886642132632856468764524772661812263989620387238785755254795481819757834861741837616839061044660107802409205681193177291013961031019190433286091819640876656469978381039139368543804973185861567879458612834457429448492178939751412838514066031495652021029390647288698663778185035524591978883988985003246491104336850015614847101551550634736394972006211586771680667438836350472149720171875951046651746068200315634081563161612134419798259019042342483502812794514303736206395437177370466103044470420223503463875675384205691786989308338438370480539453060598126770349748104696127557453263572728771730349641780275943971905918109246372091569293780386266873861636712742951919653564993239244713161491525281863822007230984927439884268462966815265418682685035096110443101243761794676716099332816487866570815644808310567547762830097598469193550117838657996070475860419163702452471192229145492111865390133135773854550812272332519653457237833750499560479265012489572126453980899466474760942897780862963351067202216056955394328922756934469964636239088476862528059297584837248519742363812377076517321177263872276553307776275724915853619813807228248313739832896313074621770466216996096000833513466616188930075824757352434911789502210676576297652516403063583147494723924128990861675764411767180946223318123342272834354422573640537025987766703719457109055545357703913858337117141446839172209030392277202226872509776062413442970421357116608283460506185508425358493502170019719494979428510827621636634094136446361632022661714183458552361880163097614851776739062511061782764864617114807566687689691980475557236574187259455554211448728575501082989190965072334373232697360701282466479216655455397229998402640308437997857862654933170395944654224158727257405784450788278168453737860275293568415320142294364296171482458715469703179504207818041437241608345266736156445560471304281591986083029299180166480510568904699703035987961267235971345727142005647923184716911946857532593597533160927180550357390416048676648142857826120222640765193090519750475232849064738998794653285033984145016070515653208927948120656628155471194887480838314474280125436735171312394554943678939927434857935229880933148303574983773115165500000601925490640771517262977904323506146112990453360471981524107955032147959244697380003366641638303813126668659231724726127900499310683782821106153019160307094844281817571304843551050691523355239688183083806190476834426335173767775992608887276782622111778179006375779649220623637650839843975112195503442961068202267554224880651367003282973917746505619427068609910088650483223369413414136307797203657894523509528719821795189761954239499779697149825164126511369663345582004853160059900637059877204759033351249893633981143901531447958786834688120141711049804178898533497974401055074760507096172504634012938459402637914968614600145605018808701159308492784121787004146074107607798764361395415191134953708686514054244433578392776554477248483676930428427910988944529424551624560810077250866504968390753635775459897302022242746787042105345053666327836035490242851849000226827919419131791708891089257999291516892553352368396927680886886232212371116708957285679485706714151921081586813421394088129693433004466807441638106035424757597140246503001288774839281210955491237893631195063717757017417398132598208840707488425587486326673954246311879000362955574436183663445440498896093434148455480289849679224920614413631709567525570545180720500484052141278029492571521428905204716423462750459906055653191447883602424184325138020228191396847480631313838569561865729030874887669581115180069100277957699156027768222083786663889426851527209095803995006356630787187143637963950974016930354116977491432473675176314516704845705651535266560025041060559558751747428419300053091882767360046951703752913492854938515066145101435669784673277235592591831705649772897415831283833646868872218317052772165769253304230766247568810710660772111736230864453672417088557321600433997230320619475160708268769832293341051869861143918720045799264001559202220238034498332683053352032316483627046636927831338061647112931626787315027051877181169420423146395609165666048481301694955337142200361638100340765231152728627552286700422474525698384799767739642248303291026460495947428490595164888141401096698342483735501364731112807194833583547480897422788844601722292796127281621178537565988379797821851299123104498707931910020870861164360212550448853679440254939606540892136454319190701745068502237036206632565077959150650478397928465311024322860751035026965532022281446282145783690664255964825647253080057324501715996482795995652074522154078805516830817606878258337087989022118428336371887382621875443156745173967760022460444192337565210155778231235407279131554299541547285394385786724517093113367788724575956061262464168322963093038797418194582546602589547846087308549296315514250997074141257122375542810092409913805009306774792017740243693577840927059923865817889516362300642880106543699866588739626160710141944292541520807180370619864246041597414830982868020228881994988250716830539736822460011843413964699487774760622255322644412088510123272969433518765042054743281625521076332876979276033352173676182885202518291522848253421891614656869719714690895951040756517168855482354768259227184208522476991042831648279879569659147953839672969332348371933932484098018733125460462412453180434345463770966850195341884436977841076121273812016080550012923449533165732548430137971720555794668759978777819403246768227392933669659809453305312462017765056226162708802789034202236315336857290200379535539880420357622106660296287478380369381164858842453676308718334136705057377984555610790984898991300803297357700811431531792590517097936414643035332364292097789236336427372525150576470676069370487516366060647174426892042554667354269384262546919228712008049408170162842343132727912509074133692560796149933232428711451808039695754803542520128041931224801222928525860246822103274803634787086519109834210739347467839934936822347769155460035334300974333986897499029693293984737742022077742549089186423462703764668311592544664729173315059894344192209246227270412744042368625487471323148826390458236686145549616243312807702357033843816275364485735510939535941809584577093269022576392374312108658022373725911611311268507329827156092313260307432083294823932099765442415790044793785040560691871119773182355527903609411744623302199263849845812407140652962884601150658304192053794488013592005812444994648045057334092463398986302688953939649881856184882931381854836101105388994763428052920227104131453800899021151343819138114454833966561900138013928989150933159858026444734326199336283245223282945268881576206534573644194587183242468465758951234310740319305074181569808863485719670298113538166254733621533718845887577743944857794075853026209818175109464269999868574724661424059788020673173073843329186786906421155015781304681508352913618305947227678768689489576261467435042357656965794850402090157497605353644625465318671433379749629659281416156181850893019948364600695671515351579314311202234916384461671460641741823513579650003823118633562791351280522501488839190292510199278424122591614490293270787361171273122278897892837481387993498506373176240624125046939620181098617288887917775434498814398238735809449952379371110701962922809438326008156349234481376504203659729552297291899843377988869218973432992039754895975090346881601548310619959363394565086033642714983327090230625897506596540124511264315300020460358657361939235220756008498601539752714630543706066994645200249648081726119852022445389717611940008600702498408028093696673485152084202264855146398758923936716486170908571144065179392898103098456203597409212440600071586329524441295404043473061863044241892538537456364253286192195749002400613142033929291080686277457922427950420928158304129231899870835318058540193240498750723710011373091662394472770976676256472606372675778797042092112366968204712253621797025448656765687211235229711851240688028974051493306349874654048038453938638563456128515235302554243155600701434086191792120223556924435181943775664864253812409212760711576492242389114755417758313917010786684195633173489859877215239948121108391542723367029285746855086454286787990432146923231706600142990650543920512824303355608329940337200485585403861692486838435838051239341839914939543374470402939779107357140913410459572567095058642940089482469953539699797880579716899022081460413008652023112792185155757832309141566712695689104105274707979537956888277479287544182546812549013143735793473174729829402015273525043458272202293352020487007786113535137894814570461125373942054335433696929959429258099365950651312722573683381486314409420190708855596626947995957158599875418860824714959194692795246933513485417122937186346184031531676858653978107986498934621506334208696048532233372473350635837538190624821806068507172473824118347056929049517252246217169749581724098726005697150552012918015706958984611368338032735968380466272400985526684325736531707798768845713961732925273669668193233944849489893011916819757147790685975482022975357266288637172466331533102403983360009229957408823342392263881628833744262777433997845835934761676838529440218574358173001814893221385752244914172547220160004178391435426326442381081160460782093985387747304429085475845105137218923591135964274005500046754034286622269059798515428087244704162276627688801754167258740458520873566733702084885916682407487319880594922978799137640847695838461643625070792080644712488607370685785893638982825456041701521778746866217240360113946431250436038894680783820224953193212216660190200671384645702951598972363887605433245238173224436202487986533453776627605597529588798011844490807779002827619382838436008221245226024108114041029053307581990949495791191004799676401965699783497691011652077544044810648092118012459183346583950815561311585991059247323618081225196633393629904293016111582058280248890400629322291152825635470912519705534617664493763048279828432074480349898331455810289162185377540460379165633879226489187063592393536283992418236030541480152357506202256878889955656262851416850206017062410313034595041058386278027796055564250082907790290659493181542123584902747108248574787910617889064490912010382023147795259613088443806769370354036392121724035020477072590816365751035869240536334894982133183329023146279001787524473101163479416716692387508901641777365089094822198332392618603495064005572407102898309432492022970117554174051086203086498930121005169223570984535581730944440108800582832580325524497986525196332080618791425706095572891500025113462812022200531664721858009099726901995267081944551587129638055028993277637462378254954911879766589018161260336177141077247882049990810149909600282971868548901948110106239977660735297474482365340671154660150591303420871185922720051456903205168152856069079063965154897014931190315778429594827001121589736220923646105282412523467122430207363067712832300979044115089626433807463783967089571018179782689911304895408517926262515384709177497905595229902835350542330650912720963531721362295131035097606056272639220221647838353295227286961171716668028667094482263006297613192327963678438812270526979217679608398225415132105416120867988420888070405186640476313841636293980912000408995302641486711333308307017452320030395291597707010514088251550594293335324315155710636204589733254011267451339808474549622240376855629730729468062942364664024799584572363673000022087856516172125367707162669440361888695931601681526903731328062238704615926171686260603101981557013729026161324909854781926313757966640765285046088012337202219499541492755402059584646569815635067980894909624105897306705220168975783253572855399054741806748282900424311019955425534704670326754052638194493210110715318357645436201004668104645282962770707716930685137182461135440533859612322569392914172009220413485739272951339817217538693680664093950380185040722192452191909587295066729316692130248839703188602434223181781878375460940308882766474863498649284216327874282930585182210333293469061063136781457383471943300805409435986077197732810860243306174162022091004650528078895365087264958451123209625929576022113952147888888168667743075718949458535980340561923030160906353984845577228281798145903459779654137334375097039500850242294459759145183746947983811326898522819703166990919859656215548987521136299811805658170514453743238884315926601794036986348371180913997235626606112454993871327162700749460370020708333264629524586064660185808979275798387367574530699554008622838458258632299266326942281132574082115734630647513309745589939262820339892643706863120228848385738439849420094484631384194223995865489013344843497296893685831230773130544783167310992495640100308691791876377324627245984248421004524428713624786537426825964550701537458373836473900483485520133673289579668886641903486862937400062120950234393548260622472925117259726534664645517125475294651623545886436057718274510564944832335662829841215000620119660422958353917258205772594188876596817836548592465809067016938908909547843653471955950590557335770263235795835422576321250035785263284823078202254300198287165296799041766465925197714453260707251522505652899363065541921665052701010591412097415512088308581768071550543206329193683417983158899260741995024618160112992741622038377846309455137007641528001746484697391742597168952071726665375364261641170257688073563362649023208322689948127029711692627349564919683683140116031930209421402808917115599199449374422889026718812904290919256279827546065716419775551450663622751696706680903693461573245240081232502538184643864600858773437414448639634142022924428787760201762962588859653509946120188009638500120127083558625852124725677630859380822153123558987855685149592025670466146284202354173922420372729531510205970055327351035675963348769402964696381895751087120030112957455224761577421620259932347623153555371202783015265073115252564540250315774331844418071324409527157224030359351488281377931135874277302458994482195534047435248381063907073440044569409232209589303246115165875465701385349951745796632749405446308608524630336291656844738204962093420228554632920243821731956463135406993469704145610014520777670641385351332472537443195051357558689754733780796276891941336982293923441558903851700828679498526180011550037049800839620241942369353604664194556257833436122665517225675157330361181634513884560993214416830919829617000028334739390036290406109073480439661595856063825020246828249549171297608163932466722671572529985004387585923895660021514388288157447985926636317152115785065237090900968972334851868788226155744164524566547504967155535335093202248517772991390504416152150301598262356258697152033225405502799927819867340689919901306887135834656642937262797525842401721799585764422097726050416683368569071397611850136063533630510152030498138087416054959388451528153713850735252958819148848231713025089267581613412991585440359376019476500977641531489189218429819159563101892330068362984619185829423551492564655546531152658602999867576176010258241908049738499015302245402212072531809998216670542084932533648713641546462961319691850704511924087082022641235116489963276709076969326546464101767128617801591312012110643445547259956681308967818536461341821769170615760163149239067733381793167030197099955781180912773254607301426119249043402047796443481290152899411782674241264497214556334322598984467924923607316153532205508983119699292851510029888611474006362889053584788691823909566413619397202842372132975236987622897762922987386413014945171604128376896507126518620522220639281841211069557601852599266751940684481157206066331252533630432575515682820227609720372512673006964489119248167668456605030172602442312890171053536446638986180573999236445261002756398198616719841668239795040732861489866026730233791575686335068223337081351302253562406451409476232590916776014344999654006496725950479571617349147563749005354731193104352539187911514557800738368634700016667173193421914130194186528669193023157560722623324987391066538821699815666557932617869114933126212310808131426064914379652825995041619387737959883062619355943310463513264980725164105293718202296257389206150869901113711085647393702517332508435457414812792303641806901279575368786187161948904271468407692942342961245978896469202089516315868388068810469176260732771833940650347438741118009823982307777104506775741669986809525901415307527173085365896637489480811335481114155281682772307229583750063743473746448517344719288717380000888714847519771173175018976266331817906326267789713049127797573667799236313212725246240896604046736661570417263618345053687866638914863749721017016174285188478372022069150878819084851527817896823128313022052241383929281278853236754091096476410858503244875101054694488147400389870879624880167625450232853978349144859235581045816867577352446249585973886254191630256867395840075553852221791300006168081162809814164649455250226095855458537513064851277866088687572922435616511276508923846208473867954908512520500777359066175352011535159919357611032804480684196723086026323961800452540499898065641898965417085200515529211032681775651902652717912900538126128440389404020228155793740031107427224977504506185286840461937328472789815158332443177417321201895043989826166938610271846858080863201509253700979990072828944374490088425610339447900711351245191825198856016649378936188575797659767345996150627875359485006475971674233816924233330939847475168882373928183239810144360112909149730555487202158492313033545335747343853460620992245137256196314323223397705230387875832059732366644068823929747928527935440962047368946563466352527903938671000739937741729507309334328719436202225000878106424659415725491586209919074829232796873347953029775926266614352009615186034020835855341047078544995253547367249750568820863786514361257604541997013807986876986702673015875864263229827776077207903337436059775406630859138805999939210392697992882539050065015191311709074717095682765911667380161731657021485130631199431852714955431367924772101469287252908248624915798836260353647830550157395931584156604281778319714029749717707159441706711944183919115245344790223722749384243292797585044152022605748960641073676670429424563908415108333305795134487663665782146420266473733160031862250209108306352770306735697237871384263697854436590638413974318070303787749623521671056820632217553143672752631767795350158561557417300602780311990346877889838650716780507026663812688897188820413319484667771893240998333792815191492328244607394166783253614504398492879430595428825841919481072409046488801494706259832859113542190962635288913536631463415891929941715620569613586311720163822858340804818009671145120225624560939624817686277588637191337827211777156111991444338923131203261496475644226552975491726944925290224102859023380276954272369158673356818000266901962168581837773413453452598743938270929626538512582273380640972991424481569855986881220908140116528521847126489812428894699584142775083891451609185133526321464550762689896214314060394211094316449809698032185450330932475089345211714348123326372968803943878999868522170238583696729092611600887963303803561577565738144161507555809203231646445404474202287336215998990138837254050605453809010939803002150225843670447065735156129230536799013081154246568163942559174235616450580260589328072940259055499680405855691346691130152151693012159536446545983220113471186498926068827744182498331049995303936962141921368385393445151529193316052005499062554787450502053032713671080693852223121723337424109091489491754650754577751576961686266074422729060681616943772851008003585359025399201969435563760957974309029208025618324826997120256611535885393381426379490302022710347640980018326826748785436653705720962851824398445672949896770725315015764225708533468798807925418347627462903884553358620609583918156062581651015907056761037831147952811548684232193052223496348014256192857434289514402325295657174377093207697194913338493893189411708364356041113745443694694152314247732688179266474826478207381632057077128756874589876383125166315691542303687941784280414781492455306324300226721310491002780016326518160692810248018403393716962080588082419761499659976693844963920228725958222625032581493167004926429100101721427844011579602313530956503330242439833399720106162685667931320076495580666120893440407083931151125302406014847143679405125463369425577778639165537356086566073199856895230725486484687298481268275416526428512303219095994587648825810731418468745071643521134273164872712144584506145422610919138727238501349953683747695555984596395002723763790810878803222324906541799321302648991874540847745768206111463189029743698609214880009289365319773995499997761796310202220867375851352539170747267519532341228280390500378367208211016412054636506031525441095408107563524279604271184168395592456442471434643752907708857844784175791668258027439599189065549333779477463036192597860749602020550249857896019612099890475960595488638161063500016447593083679188453428495447808579223693529833745699913049209785061717833647793874648459151462422337002568245329155286927616360595596437693273389825018668774688227164851399203719944602001760652120178637328444316762697898835220358542022925208413311523620068049687315473886079837956691815799473072159502521983877969751015116141530153181402318867720689496617131328056838917329962366789044782697002591687437383823358365639219324083536992563187965297874553253570621959308478711334363542183786759470208235701046880163359410732127552781965070317636150354206053305122332504691930818269500635782883780140137593433160608953989387953807960261043601987870150981747915845538132286978322794760824019417980516868167893007998504938103896192412715420222288881888010855624998677759751259727708489808225763013886376439699173171088907533509682058780286243497402912008125032152710009993265136338777641876094610999517035832962559386749858585590785668949810794266465996562566216722813795897734529359834952524862696240548453859131979730551294088289505940412245770331899726142229746948884496402351944877166667599293113947717154178513611598684581769394848504299461721113773527640156387115569757805118259398838552082965798454953260555997835016178250804601913202240946522510940198533893529930707419272384169220617639068578261184578699492175839420566338239852822675756550486249507001946821064203354128290897641463005708268197487709403596594255672150887658133222462525999077681270037012348125600245229865284417233779034515407100396853616045788538356148470770688207520339160072583051899791806083847049090936496420753998484333778365773129135157235411632941543696483136746236875818687448158554587929563196559472269496391083682987650993246496212402470250980522665612022623880472753673855056080728918441262719556399055801996165415390776505787085948284650554831059201111740917645051978633973571841373244533981567305877827182190427188971978202986084757004914240641371255091797987205945001192228898217379938225024553334016161080683951453544939078645614837632809007199317426352278978565736175314856923805743990267433029361243755675864117589913650841578162801543285886977257247028824420790716295484870723543611874932957679687842136861989566271599629130978931551733852517420228337635015753071905314801301702591097561746876356694660326237323973306393012526782863718897638159707001370793463270667660107024041888982566539327695027237589857313510613113503509315040008008597226237782191574560217422811482272549214699099918819797647000932336306450880513087940001088297221346887359543836551361979395084607266643377148779968997048907548986191897603889565201093960666028677305858925796518186436291951222197974448339850217358306109221439212907400862817896904086642465777120868989905202220877047907408893966697821387768220903589111568155950282117801615700562697193528932517627008782718649137125926776424342739686703988155287411368606503544802758965697146209316118000076657078747319779663346678182158378424817869968406299193163224721392977192092024225546051708018117903454382563016860698304826427841182219873270918254286188641577805695928276612164857431537088996811236193198076728186886928738398803341363858894356518040142799058515422420002826506635662854757173789007424273035538787662022783888600018470968520137367868611109610279993854684427591504417299289107294111422058970530348070678974452531032643573688208459787660071482604316762800087164686923780606048493871580494959077247069640347801888916323739063009581555770208010339195728633345621019578491702554716594645286306292592541792040820294782096447578774286291451967498448937869097379086455611461129603850429183245938800330403602384274429064772366404730716417915545312613740871194022812828894733004630485589037486207966268642898220226331077531899664441326349322001274842452611406289196312021264156438136459185875775027878761121541258497716474942777930210606388815580215281171602427881600134521645269109940773284068551861157287701237121538252311681572518908860594457368335357627842546252737977726787246221202957459921657002167274372806716192404366444607014104595958270636600900123613994836479706080096181488584914637665723171963636527745637720574321370930379888319887151114261589869408688822762156106264961987311385373324862192640202258181811913666815606350617735136285588199514907911932523036264543435174727360628959322886654756919513017658321049731941069608505844671299128341835593863855159686647784250699863662393878198132692699469262778587285141956307067462120764259174699304341816293974786139750619761673714660572966106278022653168810080297985301852945921415718517876737467147555746247479748716824692138242690603627047117093797180062958152709066349256422752196944081021162547891762233565917057384358963444989084983267779972562022158681425618077528641686219541163624534851213758395397390079659554070300010102518392957299563111640039791788500196227192527968884059080855746270763218290542130815051975265819125372389845893009393142754113627647087100805473261222581224756324383962362317180072796532873931994711357881932877970787771153965124631021692021888516896333154095545520462148719494725052461565109373004505403845569844223924890577500927581260501216842524658819832667640282142842358663525091135994839568044175465107714653969420224591392338005157021461252457967414846771658728473829267467375229070687606006022140332278232689988625207087375680991951451756179525940455344265180961643600024247938048721258353328906917805673559073665495348418772622532159747730475053609571110778503889256275852942072236705944796155174474903559003449556086789751248561598507702086050775160848271139978973240222009756721332986001487564699209183483114099368139116890420550884140719691813676938800741248671773559858703185971736527809185632691467299184202200305268970491866056759985943799921819710241793850131980245118399421680489772337027873171313070947487186343513546179183683526451686672319536420651757656157920947689340118461227330877835932924096812990376393159449912686392953682922240001785729306079345456555267393993455238828755587131282294316857256330405678506073180045861031450476909109105466755093021454120326203151237076561463331469287280683433169447513819022165195258515783718586188461891384515783082469664287042352213515000667196288481120842022860242072719784690691249904359660456710972497348471386442441109007989172776296334376763494735059915813544990298659167180563841011282951657638688577796672608277870430265774499592290929029059539723798541150119542488740564192819998676110059487337594866512695628080860512391443895236795024276237172881140325095433377528624063447643174284294218711721215439004099319144260147876306845315124937011481470360854978152013205616596005677663748236202808747321360979535404193443696592861545485647287871246407820223323410359627648509570036026551351098848193343237393395438786599447187643331727125604081962725089696287932243716124616080927054204948010757900064863520044281183042085539298485067316958878520873642227370230524571963704626181055291869113281696228598379142535067859631591847222134956369540948048925149741326209994502647066607820721702083382513679872467721047336461245692989536040616085949809706682593345391123295133535264913330329510005656644293648499996457802432379691173638505217395964113101510810202212674044300836547344331100879531997337157129350250736657288717333398485142934784454001237630478498905648247092412781591342798643537973709414749330096187606895343478870530222382760666996167295019465450521375003801549988751753191505266029766345009068330784025271227073891843515392200186140243171803480682131016229064889672596868380769944172191523437995209070484073230190545116980192026813357617938707788518719996567827913535881904013323440170295998051906374908989889368146664410292629696739850004812022280318940772438102483972350221586893809631707592874231374239228647523388540633019927726149115538812346722185744479616651134200614585957407905645715196584905114549945455574235922545670601182228072964731517588529286773346230310726487098035676658358822744537305809172523368773349465718663085275546352018580900944072191873577570655360590777199989341658755960581596440769582935356906307847835513167919140482423366655574380096649625251360310804964444186752432706595409584959569002476058721268560896522220229945443847681227620424883216998442010571292529753334912375551703135544600259807263346500972404246876671108374832113456980739894360103446384981183689330137159854660756461370279231409036121195394399411787770417267092838208101713768856928469729858606976138381307087684798752404769060965125433383486305331848415762941900390448578070366813600744413228371581626599448220580929069849310826945002815152773068087559845620090766579793177750059175754460995438025434793808006920777196670167448641367836813192202294370994143768619464653659750454755365423891294426330319094860842515900787200034876015544456583142880265502257599550497780170247696791753567674571033373665059051382543792396390285603395813124765834693538851304745006324244585141463361034116724028247563156571511893773394183321621060592126076011149660746488991531418401661649628144100528942223270810511899650931899843419270454925491728116082736828189768971326869551491420989427997912286495462836561032279490929934033106425942598111265354787899538462022982660726724196531610670612362641852475436213948860043882902652372694259495944212163556662644117134884554408935041253203246116050811632271887077124780455857552015484242779069123506681351394538957451605458350419562721816681862679088838435420315755568879186103716258690593773572526820525482184805296486915627930967386870234507214884805912496561630230411706851097001824240081659610493056713520526263356505602746180974491583278350816571375274488672970106955076919625982083939906697907937604016140200820228157655022147790182755861230731896784844732845098824630458278769842407015419496671831189846504300354682947975052000036691965026342053613669440394923974023450595258769970655981926410478976595606317157861004376232945442001185976463815252698304546460087923010284522694071328847180808597068626590942047958319155094719792323578982463237780318326527927946445760558124506885496343367412833971519578394573899781687461788443617199520016709551331388030257134277182712416632119322550684569526688244917534075202204722407217619227959124290865973405564523158789594980216806655371738759744095105224963689875912337544501617099867494480061068902515897480206452145256505849994627861730418890975471791855899518792475013662578002434707287720342961020156130617682429995879002709336334518681948763526234549935766283271780117761228878081901983030120062849838046620204192813497402317356025498196607719753916292608862585398641933468004512057121285873048454471177664214545510134129975836449066853795854763127434188815604852022389032474129155174130490775049807542593333552306490536921252086153767923970321420063530841529446486008529748126322445552747080245369503329301053702155878154843698967140715499163663656307805054918551000645721509122989434472570038025420857536546553014603094613936273058630954700621036500711855944212590590935648737951865226240196816404662629633066001888734193487407010131972427128096753678963942835362117466146062714512621514055975293003170025982914365992883584956886773383678858856952464254391886020226683848502909004845776341493394448913217832457646261807876995089609454871461968249965252284556874709058615388923250901822519390689253177786422853003409382380360407288384523583363032735964126083432292202065242589127149114124525239166804945435666749790772273011151029466096176874629677244666570080245307826274165315250250224135545358789836746220286620836697128039229423408073738596233479855990759525613782716575393761471474573926336576060251224304101552287113452138111623287515384255138880166297567202289874188339342502635132356966775114818658284530116295768678631302780205421494440015889358787908449382248262549894320785134869209055866059367893244758718159280462214414919887591221619551430853758165876563742527427377433771714081959189993171400347708678447124752224155648257261280628030912818045564754173532925224080424705797777438025457738411451299140605022944658454054272768700666121059686498413550486750087024795432882999757083603960479018724529273780657192388419420473712835453261010624346931922022995521774885635004275203561804592473642294117794207374693512609876952473804294649043265652934413982179825474671896834140381077788598226900247380219826639162086559045969082244515209669621187811525412722570024405839424696999968664184763136512946354464824340769232678756564256915104303231782530362476684942799241256889356668978074173402238951210043717592830032745908463588461071988141338465214854498256569569823669235901839912943870201450911823833599111900008824153225314825722771212474548411224340820222924672347790359325527801904107425486226936318747903681106683725546203155530091652311691278926287946601519350503730154245862074700348500728072433840970773031435438929595141218520210803327696776585213889324011206967326030380903423572224403269783057915366071800475216652243709649037067744833452294060802602429365292846177802595466915826869654956482984098993627391699912632431129003319652207436498634465117776267407666785707074907398747217650823215557080935356748726004354783424363673491524271619519202281093621239036098334615270797949959567266237721994492501194401847999618052721324018898952310824581335148180998234162668700578563795950787753189855796383845299385900651632602815048557214565434403959820035779178357871384960624971534313851299967601534267889972659275981853161959381815884924305254509459146104820427437024822862249066738201643765263708265693420011904966648219207902692205144435769403897321740710923379148042462632007344482916358365160345468626869967382305159375624518318841379208160642022025960215880665948009876889689156950552855266460772003555824539375517166906322246079608611593742766966129941488867388132663387278845130013501714055376038203936636998240970142432263249515976298819298614982129304045429002745364832600851142566840349828568376175903510908795223459714324075779275187152783376857437843548427462794108675570606558372070986317324467744425671513783787872294304808436241440931626580372395991753128442221473978913463788176172252986556585600512456325561443917392678288206220520224673535942629570719358049741217001431187063738279067641966347039505217305291873616808313309961171040966139430436463068608676811896489915832448899202032342746305419524270110664182068680941937631112288475390704046063283231037837628063118737920859801630553935064302810196249484660332382102927027596206076149856872831747144372776579498342843460110689858942777329983662285478266890562275077856252820800785596048347126054325453057891609947817522492766449890965809551086748088704304191064203374307198039202219892287253100779423610721673792732636564758216385439940684590774545963521380197340326575320740407105543498787273579214873046197062166074025350516694420117671804252225545868823570654409409281960815375675246118434578163929235283469958266054246583845679205364308087038586258456101243501896818721445937565337315593454009157802832586613497407197349943251959232809493247266307931226364461885781923390978201737209392304131760084305873690475925658037516036860333051426987853256171452593787128378456390152022403958938622528494423492389487154048201859085706746405208291788968153619047527017526028023082470358322149343580093584763335299006419040086408505369065456366199941054888320334214943278278460959555476414707106853133652077388834448287928211835288298654113902791936725590055121384416414276511688505026821906165950641130098649313490035815973545219007218729611565922045276114409008412926871622513381263595084707059001277810848545991979023427337400951175016293780557198436708291257814330473385093228663720226330731390673668760008578849552867769199204158534272701085337307459706651008581811734681488415195694395691291329570776713903525858153840932378852239773581170156441568771158846871818026939552027705324682121475882105418713876943905644200008407734174412589907321217695526200093522549207538304487141837640900894700644431540692587107579715330508969169178814723962821146697463900795335644093427396997592821619794863949426345912382340468094564844750377968630765593395053026064829680968722630526498076595202255394272407768325896320587380513872918367698185882644460029681388500363243700631167829287275087292301968427280643904454829453021170778457667002967914938130750563188255569272443034101272399605748257570282522477458525179127757241442235409849512237665153063853612775347734744407276507501927916594691269810825339944191484703685758201201146904005985396672291407292044331541294226177074217563385734441427904896514923469169704760495402838650290343009453412123918558940917841024553355940135741310395287612022071799883618055518649856536155309303089955628610110816009100805040643407716312307378775572858024764664435327090140343417958008685323005234933277878772339709419134226958465540961874038284240702777796310153308261548385874687968058274643299248758829532968686660841835439317613330019046656781934169764308151721622044173397058210365315994595509152585561777406820233727829899294633534951722281813627799303422639242761380972711090786432593815220342146238648212282716117574008130826600014585518777790812220229641571622269180131598072481472642625530780499589798085277333710362570099465012660721600629033640246304720049613095122205297685100401490479120184695531994891342434430401663841901503159585966361131979864779295719226404160208680120276171781329756587449967840789249933053695801324027659457925030599304822747335753924400965886234764994400262741054505752235026877393644891481700183890428591040713537621547110058485957479017974445063478986622482582365678137800223259313233997486216655097716399947569013202259353997947437729108584117198062709361214852153143457796184742269240235765617854085384739624038314165158927716220156731739517011389097669001778585455706407994295679896330682147611093755065419767807186420607460310486158850981006052477314360832685540691363682774656494470300727781826036323375656405389683489361737635944334206223287286665197939451359033370921397090427892938059975649152745890902065308701322544564316993609074407181879422030711388909259404403747607661490692820501940442866927594520842022114190548476595577287657008991058161602119288199887231143713095592547054856021555759270292455098775504184821398533622574244609152663895394394301135565063761002248364197607652930748376659335798641224362603408442002011234184642288963025851010136452645761001487193019151748532302717083432338044406571806625168219548358089120645807669660317770734023393472594547178498055871222944390278400203321703746980207999870553191227040146499631495345235629305990725334103811438719058969402916101603709352559832720226650855510704617910073345293820741838247144505663108886840078031016092581448186505992315216784935809088059498883918207499653381708760523850116679649464307132006839667939456833346113729487357891778446321465680406162157048348426802431402653259224341788605224631618094208699616593103940373481428154634848945318198351637662759203082236631262764741611832797759656232166082461100902722790576871202887278101208350810650155952088555810941384501663206941364575409078610097035853814804711950081727837784812202295013724243740788551702410166669596360246463440782094810044241609297767437406401564022578467337237675633418485464283632558214680277830585578811360519919915864939842243641580176414071714858075623068349165211157368450879341839919213621231708661155758989207702261342713089185248654167902743445214188768540268365826605270877533767196677960912524528925425707151511393114857056908668195205722106942166040677342694448379511707843088304667181235236269237301656075328576488717853604261670306363954923137902022185369898941866991465043465463877530887023178523827765445076158545864141223371071814914518511596892210181385260997550276851196538022437904150009214950371001061332391353490698276331419314137753640061557531526356157437727853868489725905751084310443227591707474683858511575200226770956247801330547407705205131334264416341644902725517837982336929928598823908073727026655825601286500023220946573856913807764676970296440204523212121073790864622902209721326325434901545415017821583214147312925644434135820222454270005338475129273720552534518567986861911784050755424405469760904768957016837228353630716252916862330966466972916685169415148187749290467658849154200584238141874117033837169616519603412625533911717562545323291750851297579372513467835426202253327007185032932406835529983962130789023601851715328367273783487058897896109606458118613917377285506281375634815592451722641571155052532936172217760502968439119059594994190220494553937564104046671809787762121621952348924393593923879587038696174871480202257125552974845082328730981510899774984069984224012573939924643419669975131443758143449349109337693261829515736701300488477291700155116126988515126474353563973841977525780065838626302938711538429832509292391828708565568286211127579956043508069594909511242017243909289126154458647273814512880665681812972498889082044735820159237389128619451800366792724743829285279080480854347566834852592013567597463374590373595399551493787421757449392242560393382952704895006254607226436216813736884007870323348412022611959326344198392447740115259517549811592519918562210055101963643309047730759456050126278157420329696843396170985324099346976853016909043038108178795591853044666363879766216624990696786609897642963471826493841471467517235438765549150917236551028917667964468851476268688500836434459512012694416100708952831160526757786137008433924747785723909867001809290036269570308399005798340246501824168816453230565610573144946555464371528412935493727383121341892689013315839126027816732288805413595115734420820228239839540356502075753128364099422113993858119401239285461471109107830939036987801763980390315190546478018960144145742683786865221911019462928031233403584057754304256465072521765616476672141773745695847174818043159348458714690615030279893491701258305664225799974982136556148754516848386002144020284496992478262244857352823278594455687589333881006039914516842369279375245593171665772827967127543834206197298151761280806335750904115605926690324016359433715429288574748757355420276467142150389584098202236581710015416608408150197438275219135642050979478489602306374439423885087109438356175069964442964840458444495751118251172277456492170393271682832082633761471200776205857958848185857100365115056203125506758853989167631384569092311433573184057993192570559897134831849315330272701196718684993238459672635145488772642091511888547650911118842257229175727833635961162068749883378228543934810668655775867839672784900556945071537664372688594960981601249125081328457908514139304436866832138732654558749582022367896797668050859777353387491250826670945660407835088640649409837098114786772539375733984122724081053683785124041296314078957518246859903353138735873178496221026264297864841383380507168691940974101329989732229650068843148541314620013144943718237712371598135601641463262425848236761760133931556240990752402858456217670393389410045260743113646216312855147872912099822746398677547315148209428577673852187887619796402899741280312696528033122673242605586466364927416955558771885181987310752301482577620229890999115128826620788558723077128507173787583729492210173985908731802402281153514639669452505121811147827646552082587889192290797543309182341665591791527929801125823420183358564943059881525783772349626020793662563041626731338293832622200257836276950175195977107925629180121369483578523991131250241613597174596004690622965464013106427542162145136066527416860229353297399022395208935665936141681102349085691621062798504084629535260832421831530243285664646085639738038931040438170530345298922368693202201324691985101741985413858830709569194386099765775710630220276794850738321809930680850560021663202732759783914921581007497959204777726104134625584340492533840124792594484645235602553880991371036084585762982411052687411745862262155157408834285455709810241408603517494375926099569198813986270113421998001231672110564584186471701428459620683996515082152585728452073832420500774602465366304341266352797005358178042505271327582248949837573745632133805661935562157330035798262670700058254403564677438332022614556219484353390974027939543290793995894605537060196695264473039119285014363921806774778228298673068889355965233472170609639447269886468045902569321748811465241740741839223006275051956410339388327502625175078665436166372696807854178573777127868618167007522821786919428803147779612466025728578360030095752413412561460221980028453748343578995252291221776889010434562477622870771617213265994476451753316207504842609572105033481008122859375034154001776584519348419587428703902838906109458555828442820228650797457700872074113308320564509111661009957490355600307960859233032153020875328788112231715884489366699676042686031182664475558037013245925887754804354779992587295356788740956851136652339101507996119337434793900083154809838371140706854075684999748043890985751429065154116571541464432711425269495410181732184285552513541834280243367235051911715942976782756909730950444782494834956633681343631316752582694428365570801249351071380848735242130616546037924443135268631302193658437494219599794510392202269767692761798808662041471157689767799210559011877956413523191713056021581989619961660759681520210484756407773568765656822592917368872461814061617288924302745025604381957382293086114106289389615200882722961541120346271527335492740008724268367420620647112957692391381440946352683070443328453593222171663266892763821252866039488967829318966150844237092897908266570485126946912084173921288692147974716964803420033845219913348404511760845237263407749496885280474299921792022139437869315732889174841152022253984811684561388652520782973805052468492282086917571270379291358509131107512951041597468614576503903345520937193023473533228268450337694411002549282215107301635412470139877435972265219666609375115118530231446931419797802682113271974750688568842123271953886011644355909471441892304569731870090550185884037348144110197586389400591481714565848459085276354153933324839908803652903662101051967455478071037526228449437074812654362263402833639681282013714453711305481722261583755601886094984659997401420222062577652400874845381368931285759039315201403156910138441508546856090932218043180486737737813062220644391760273362716791715263475292848870001273578579570595350280712274622334315305267762661895894496756255461636401124227918388503346219777279672260942450225455595399978588817634627645748643205677090589199616123368461447043617975193120477395666733705033382670718600785753498491762726685741707969395850110923540713829124066550841099686465940208304739447538425226472736850204134682527642817410971063202284342459504709579532063738220480774868766503820252779273221107524763331423245896739727017154875673253538404397075039758850853590502491631233773342829806717490800037069053034736380443711056207196818353777970285575611168182435628726730804484351063959461444319858504515301866743170223799444394418483183676650400716317714295924798633915194319963289221770282139179609315525844272636612866238688272966630518564065084851685688691352623064777140564069097745283622321484647426309380992654369587663520229832022689329100814615162389799109971765207145168779051884616153900605921332233312340398849568488104893667580695922768997692069883541598685158944261456988771353405633375657506334703520170269141358425203598900995842497822442754679925715157714298804476807484984731323614260958347437760931176184932886619629957023047432772136086031904844478132377074716121803255421599568166944578169663034467091779130113423870120992008688072780515707768265011038110976369282798813805132100865401199239902867536588862911728120220739759871601418606934989003837138907494395909886447358426923990711609836591198228442886111019331944724657536229990607303955225736954124304573503535403814828091022622395972802692435749627637432278367143724974296884760425435641067668381383080582437018102289938334901218441596455862869296781337389160575164698996361914122311843523345590533109201262618905203671955045896817842009196689269038955453350262676341865851388158997092235411758068378782735879973223391111572947107664928950124189006883684886202231591550941675066698374421339107484337259022480023978573343082585030244277925854929152138096039103814645419889167422203897320823619157559900847877979819657544048511971901184685889077734385613065479942952630804114560244411836977419764005255751276269959353153786468090631292398947935125949020240501356125225825224043781423340938235325098570298437547176366992241352219263276682675646181407574464702621493537340506929900730284665296656526959424975277179606430297990660943923276973952195069381861570682022518853276124903754509195663737104117446651145619972868038429746010917389396582151777633418936021691431812568130303463828613746248306423268527621559402115498294865035736310717376881979380548121460406942299816755766533579091574007389255576875102805341302676034356310386611226794402492482936385429923728309441970339020985559245687338776107987946468027603810664792230670897004599277260804866723548616676583862486710926750229289124357622779055644657481675497118824397534697683238094535836815364310040820228130784089664035598917290221764284801464117262022407595779296556946738959777376422783820430812019794769296577017377020497132067970208511235773324013946617456213431090064416288295669950496226912009014700969944707324054059760185092476815212060781587014260674605783144752563313309397618144283563849807808564530679116916293888524859740329107323879754969728467537576270579898435376064180479083086071976688942720570868522627669351790508997151397416401202753619683904122323928952570840512141675599804935202246554503682435542183176713365917414601604543191198965740324993337787299570814988434731987997513819657931938858525484664386347182214152246884158054539573476347281840901160061510171662843750998135796453684325867147230324824834735536349552846584428396452071456318289573242626155944650304290470250534136480255801805249817374121245364988468674351047441715665503059799892789243801293154800322034882607736659336829952146764829573398885695444719853532324920089264041951737362951832800988089383688862620672022811402963113132919932713720624681130373891860536415904956683142018987564397601120448305963824724301377099315772347361818039210966530407549575916056387817790057590421836787033791800064280609665929379698023170597489559756992121532551663652935605260114445932607533053494761047303943443327570891959748493836026978736567944552530539023257426528388375887539901045481902118262768332181097965334949926241094745335568547326603108627462072357671821810241648980380339921298690410757476423957619281411630445720223449872598878584869427655708963913042270630931159874338496911432131445403222089276825444407103539394712577195592965363111290807639523998421640176598340152193873854706070646099214161020566352918547891308709589985775519951731141701256310143579312211270433279189142836952973789241213954269996310178383469646667310328706317026319994019383927932632930328768246773732858256451792329159697612801988765672759684249437624356073321091054805275330418438961996033468722242093212571551263733033801670292932819202244744067409929032862868001759701328523731223556530168852940813627834809367163114747151554877309101440755117265778163711710470027028059487435205370845897996364122935979000049925299123240237596737179453514509409105356640779929235951527499628043319944273949826743667796520787193849220426240361881996542249831843262693724916502253075887944030861882892094648415757056061874359438883924476503801417249370322917887103783884021774435525051541610181418647851141552838160214604501141092723053370673289243002022738728744090569470340971157482018594859524797735377018229605628891042654399759399821854106254583425820635695794430940197391148879800153893167792578888548759277659672901037506828112113780343807327498122565546974291451196692006662997215263220420232384536815075708984919945447018543915560205444642072563519962170406004091087966528582228135409379921283262398307907513484240355171793544150848102876825005474634043228542417415080319292983593845026631012310552677628011968760405028641833247647051397441220221352355079807604652322592110286857831552934916055824916373157553486182206107008275667552642693672578604399959143950247729384121018490186694833545081783917023029083797427826493029753843691565619299575812636501994285740552021115601594661533046723560361641577279676380661427485565439876359454770567013616061285609850403280945134247940235801042085624149951676230425531679750106434511520663990592294388380857630197490063420143217873006737685216130377331931535969948276152060787836600167695842134100187202238631542785425009738106672865235214357964588421903353215921290439752525981364972705381086588664924880123549602570108347946345351319881877365141785918967615233260981877325354778589318550191573063142914812341365274364674419899807209307634071495691075276376220269942741521004840829869049063647051895885243791670449395595872519914245680296678675868436199947806600233567937622516576448794069868875841517029185305675446364166312323883585762871817666102180227581078795822174288654635122255565600668506552022616402585407670605169666606731083059640438264777068473786124735957957087752291792024781950600414417468882581258628508100394149659560305810428384807241065358109245763669422954619740842162375879297552533343890308873474750553996243407342157068245869278422511047984855471823693503580324711798610906695711507299348098005318113491313191422855128649842006156502421818954361436410488445536956777290709721909115676303292121068354878512600317869954323300609905747596497490894013749631741118062754367144071720229160133931305328192415339013535129538834146492503741639546852989782529208752520048846361485896707070872983737958894501958623045513373144376010457831163366941545870931490679764155877472780009953137063966769708832146255572838681701998367267198160281598881397468619857366848749622106971109770356774324727537174622505775505204445053460676911046477765363713006195501616947311503117845165053344504312419188738420184773631609272192823398846997543868104984364980994295903028956369131736222882004739933713202221762185506571021391177335812883378048435460494867611190893466683369439821630779049910243822729230633917065223995287163254481396697202012100624979721949417483857897839747409418347759392295041801218291097777904754381704067480099382116529566910123636650967574329246437952383752916135625503854680931304380789307792005361617240115555060499876280208891415644229688598086768180661887276184297592801917726051709743252821409677363836927531278073412717671783206098237731537183545374481502133962099380212962022679176123874438512038896839491970435852404939666123443184377390124251395404801114684028358296803166347652592305816570928237318726177729034236601512049525146668373298619718474168265241625936969984202314310490132704919744054219469360036704893527345223635880072723692290398221255242351205580149172476555267533329370436459475564535162699510193018614192508667755441035971159899199786123864313223552251072028750516784685655805668936876889964553803339647087145858962610815540440375729666954486006716428320225513793857301718285264352569735337381454303692689648037401935885491403054342923136932047044153976697896203462700144163707977623329945513809057362524412131079591723102005356513015506692888675201505098296462308723293354129066506436991960153972786240682892171517570448729842359502586548358214312904074820302915957753958302721470811119916199406786129627328577936809359084566987849703474579677588407065763454067531910463635449694387409716533671939974047860224155693965842259914369375554383419190414264202213793775204877515062286145292442388833254316357758753757311228311631648724887570620607850437258520978669236257710912642398719774780987468864304590137264676347160411828187077312500631868030276447797617741299309924972475798289318874527006253043827379150123561356648603742511014539319649062319823913427721173328231862991756533151727678150416558392103620416703736694782246864127856991988585076732526572385473632590467286839291759748610373053152017357239094590768948576832741482792507006448956582314602022192483219856672664608634877991388592374248357362769144445699377881154918337949058622876901824167924771664610666784134771555649874159099270160662572248514261763662252529098187657604435618713155028276756859350618964101171020674818073615740989839442758250234830779051139145264233466111437609827715659888516893349753381372349536053458225993166142744441181258822752802043878483196803156267378637488185538509592144441316047201095488873821744196285117816712195372695799238100699300742027217877901833593720224266503671581486925028070002526266263952057521748348933190820924505092556206533114169681915622660601714937416209293685131026903639890600170826105109444185023199285402388173043645684445539374783495025819789820057882998634348471033768231518606300116546173151759063637067076588894632118801674513804589631356318481205210606203168594414190597864873344543098245417077270857323296767686591014733784145621296398397951566675063826471267459216936701629313936188701597293152250197281233628544782485016580306202251448494706466352417856688393492262806394921494887821914919160459112069883158460665249810031963856276670995878616473282676010112942849369892082127496693322683420721771542768651793016504295343090741223682277323961348393824387968048613853049053793236287224110198551524881464997540889617327279117791806371694542255211019395485190376810053567665552046328074371375333999391978593281399568715668918452039501281518214596871755807011987905743582680635086501966946593216332637998840199361501740283327136742022060963615278363360888692958932947915842325854255815106821607479436493113447441848378003848752076270008095435969633756347953552500918940676077711200077790433201389214435199360333305370610896971600006480748234616530307918076323264435772754791034350085302675919008816810662310650605301974304999354416213072739547531049389123450221585271808550698566344434362553284042366298113663509794681556742028814199874014337766224964915857339208033730801686463377789758738643979303403005122574853615019485220693920220156967725969373256164604243467856571091918553305727281056531310340872303675375089141271990418607640203623004227752798136763163707748719505333755917278789531444547952353058818381135914639827918742488011142696573776246715183629908562051860323064497258754995964117903961939279453423941349815211321839227137177472824515160328898933446477492341168181790452203048236470929488471428197716844158735725010313321291941865202878147218008031505277005814397152999033868928767292553023674547386920748823514121202267550702362222122162830239979232600889331790077945009647337721823106367995597129435084808726803651781448498944485625375753197888635288641657728362454064050492840683049532442804774087277726759877571157139211499828387200437125475879317081709817290030597805986432145611041547294843564892809423799492538285307488105123596502557293689460333141971862380614674507609806925369195722620886750320550660943717439581761993841564309298057840975630713200330909689724977538036080055120468281828413964263879675042022449565282304284947627874011211700061133667181656730197396867019020018426391147029190187837957341782497139654824582506902173839553048706459617868743622002975072770839259682483979213452274824003440245486544297704133314024092872181040368057719847665214725652381907245416576741492930642277056433845257459336827960790185052519415902228656204887332105638135848176836812176574816967777049442111761145139780439107503748521538463559274168060206471289044997863983244947953496120451376052989897066951307972020228471040578001977524280140835107599334089570156787584341283293814754248640955056423840505915172717014708205673849115745747030972604466392915552707076567309532454535077984675262743127457728030076304295718904437182473623745450908884478692790702710522951944216964745695643218886354663900688842394836011895355572369842466079866398597300007893930729217044408782279023026724888615608312850846352780425535874174304443670003878695863641041299852606868798744273663293997788961556649782363908688027784369073202200665020600908998680548011580942402095092508135013062587824619700400593217619830497773768096210105868708423106799980035550610431761775755898690189133847880104332391986999879717271935286657577350065186645552203993952342418222976146770049245875458891281257790950421098403938337722059336749545929979645369514942623362615624932790000267949398112344144287400888501246685299508147192180461613162568960901187522381611619177894642222231609922149228271528041942695034139408758161409253518607627736032361912022319844048188397013049079318466418008423856123218597991049419954390140405472995788501500993689030091881059450566311893494537724690046494443032367700979422521890478459942546808689352953530482475820973164750571912397300983927061237462545293930396878861081949932822821506827700296884472783445492378852757544254565399038449617321373881945899254604277022063358781290235733222665070431632082264549516211811854619829844530760008373459974049097864085210273344149727031944240479740902521755904099730493469020226570313340843365292400923277752977375827592512673354042152456479393128825687944677037194576374475779869083206097090437295428147740287520876381069452759597395405963396250263997579797602302272775921805396698100852308980042887964611589351607130859539290759673818502144232495318426410210452292022753146717047198396034252870786210536637761424570446428980083292977677537506383898938198978433042710809472606895369480591266278719561691246970698019109868353442348018744535589036128747322532900890568201234202275460986216865328640403688345436803339683361535288337916399570196810076388513721516561210692468666756043848396655244316858139271184874165814452744671112010856897612407266701621425579248418735094067227049699340905893978233088856566723472889282166116297636825190283554441601258506481902241891709711244425149320300218644503601417451469578755353714329018865950219378407314018739383831523524607769188471175880488728706949054800150195303722520240355194413795176566833839484253690264316558282587365033622022244176201280540864495506393997711875517939465944991684151116894876197372943498913043459302225152933455068312848528993061522511526177688514308320060016122011706144856420190453704609597496017897179637638554292192541240292886338461848751040758214719789668256827299139274706492784034657841831246556264984223756369001167664009059201167471490467317242819260273007325737803813870526595916159043080797673340900859456447794778540340725982493620052408491766712777805406237163698325975129213286810256609416820224302832033569480882692505523521335297702489760618943168677686518690171582372176859008038993759148162731315092064474782101224082042241983790011114489775677286275656218673586422219825929240325600277785373763429872464350508824665268794948611666126062415655428865910393722106489444586503123866537552639139308728259783732572973325237332673043962454530884469268415228349472250700086088575162475346295001833532775730319069255649268569592177891884883476217252741920387929388833524028480016520738948299540202263738336035164495657064527700037753731048756287985567020007015678131256665275152103118597367817924814568128835115271638981780805198295407411861922094922082257184211128549404623846118687619394357335871577142580524833563235020290150454961417527452218537258773306449141575190064049232427843419115498041926490710977154834993530851841849184039616593030624507782809975037879575284538549367452126879095362332889448366707356093102742862250441501361871404243820637251570004086769946557351297597157360211462022620663226271397669315784449490417246832798016576842134651903204253350749762645463743741432867092245183603743762216309702549190012632642049524511498640131167370417544655600085355046437963328773821310683282967170965194859513194515011459614741973905211489942406324560468477574578849031619134732551526905447987814707274099895860039596793892466161835947836503103540540892403628406138228919588768280661436047101110145160617395973964248248678257427479633355810649804669087793647398106685202047036378709620226041671826157015867522922309299171029125443768009299908614068355463418103248809801304221063676871038236579557931100989691010689405263377211002759961643759504360867519945563116885225232568389483279370573560968264618294788072087212795662066322048685319903812060464169808935245138796133777837883519285671493274054935828332621376970653519153191240923980443631165912923156363745675701352570698661347212674970260457002964833535654633189245881907058907537712550463582396617421633834843497771691167505620202248229338755953832752769847323036329263581346914874892883404211768062231135406593355166110692425355260359087079752389688832114006460015098197587080076458330172199081012516071767951555736191874963549893349297339346165396935301486116889556197562827749514479788437873604849887464290657994303122776195599959753786000485447937518743262493015040807253602440254748544907862576986292966072436294932796686803867143877347735134551256746933606126982239132973024437511766334305766348329655280459472438948089792022464082326454229533124766661040707124352594652242794109768591452430053630122878483455308399974783766181322513184929143717880103412950968968463770113814683255651646286461531320621936382269768623152610082717142881042231926040643340459313347172572107818291834643915406316785532630477886992690240965691814320487015829226886328179511310236822868450018520024984680329233393814193865339539539708346947900247438186432072557867724758221273452050360345153899531751788082389270563839792633895767892221243449120226301396706887079459167020327945925742636114884436555363828930204029469138620249492610881588069066727882644629204797434686295684503078087924668438345749566700602357592668426274692386551893883450031903260806046706519929032149955297479529200547315306196134759328082054308796292340550542776467880777913101801151046805380391605039312877480241235845665269583369817089051616864920960933601006922897775891571427552928289265143292180860689940226669999315095112030188258290468728442126743571224546128395192202295176037966067203519626859870215818545771644332498329034488471546569479920889013086203940735134282493898136139649258726175529485332546819982944426453205023270754936595638461626076787142682171312777496085468675939770804172604041213061174878048238061643039554219411177868903468804334591588421524223236567403626965848453533201820328260756405561577101524813648455950701019646536121767996347889083744934776189367963558874604531519375102033224973684419238692663899708818546448387875340540683304220696902022676495569289808886528160764467282993171753437044579685482827659599389936235902320206891511779802159725278802522555181764957937996311668739085892118935116438200759508604857082408526279217462999293272724392987022421830801724452579568576961141784564594124879061156328313370698366775498867647911232660251088658379254384185566450880971659410228805953201602881936363887554801830710177546739813579482569017646353017883271931499517205175475967774205324032786502692498188736042041906728756721264279436288520220611577449403239323908151172144406888547844665393037815677405799025029249834153932605319697699926279250611950473856564901511565048161722171070189263230062538605687226498198916610527554008139483306725202992193248518161956850884583926944100588846686670015221113645399012100696249837718056045416474323905462900559159095951612395053799053888731888294404477779079459236683855652776613285399778791916306946384113581596807732276474212634445933084622070781336205749938953950735696853542668903571808045995202273794936363857838224153496466421967026772061346256344043760897269170361125589145364426098685001166990928277550968737392652034094231766447538545538879328234678645816813501880986053446187889152205124310116561486111177592689072599963338271946761489713645224759938993193115306383558129883780601020056913807275807886340293827291109193909904608042132786913540090378523831949203824135260386750398381971674259785592849343604843495301866420583099247281312133435562787522991223947234772388201752306434740752022987721865910078356557611734020760996125009735032609089790944428271883440598541169873480471997422984498693496790349124985889132446278865643954099323895812631937729181825770400367759974069537556979850821923049196894024584507929193134843598733973954803650505041902761643068245672699786094312856169451035727088929937273123289100243587393245492716164909214226057012309486523606999153428967741565119173143982605810253049171116479558381181728804612031727351490212091511288263076461949312093942985421300820220791853602916048517843713221372761380284748569373073075987758476975204019268062023384059239726855659368587298196027261961568193635771134594200240969245763132004533163085145982918033053104965860775542803381272538116005381185617220189228255882138391250733266771045970545464802394976546833933845290820258808090017038865245758759523062397234798391849475363518519621367159507922599410241429026183648270070652036930165916849688673942445415585433450497758610750616820216517474333133451020679459964585579202202077945793462008257890469524737206914509280069693652395917179647982614899741831474187542652829161133202648555904460315154815558165549714645735376032620171009263839678918942735799928109218246559242655712994925119545932238423052379578117061888765128994412798477490865871724402945671251221066112948204824428135635949451017569253379707132128608473408411696122586553304472579394259811081624597005279730531684132991846434610681935023131189286863091446148524602653483721156421275223323593459697179906912022470012883030262418827891751054272883561377233063949796417191576011356168317468119638910131397185756681370619940480847106327716756149635123035498184040091814481808395417010269299039896741757531050506851041210733980267050551040298512398740906709482475728010740270484121743956889538658832027879709030571150251515508622835267425170135720075925206511105645092729471307733072320085136550603987939653094239441194868387565338786494543190981664736453849313493212424041530203123222423341807313693077793531620222425857810735863082847965600881736408084645963802096888097145727379747094111848726201613276916389704256040646058783667721816166283509894273563069484068332970649495965799522408394080426400715465514929490426319879502872190201000286687128799754414067269096641256039675801251420872122564422538236651624629148526863175589193786223347742960619098741580883616686536551443594868198779988607660117704350850928636401389953861102932984837048588072918711187561140215093009054729966442645029118858382407292393202298831211235748884119791552839694595101755125199927361815637556033788333258811459072902761032567594055571038765132565981739720992465007530976154888806402262287045095127946537056591623333659518637284235871578572550318515713977348991705129832713451093362903704518911850831583748951275048024591687485462711295992833340864800610486296238042154730101851529358237495151314987375773259100873656782439983576692677309567055854139308841273226180539340363575797658158866265034228865100884939016494059354849142022943371083728599872635583452486609841666500311395510404222118631752705305048289216310508333539930415077589544457786971032402522031303652083837983181733737288654662708111098075832150580490625428761482152720138920526304757548565725760444503536206721466267888072122632117655743155375922832999370993891769798070238851386174330466918411683124196212593445451955393763995360876939453622290043757908814057913252461822483501726800331644128127423352667730152837628254995153484100665328677600321338056679510520224692281095210375032409970985782023619630702891336269381750940862870782489926275114291514932574907364516006813488910765646918622309515872120303505271735964563607583983817166900471159744946447130095790286832736188271500997352710869890144745848426583448056460722143880958680368505579139653039443059002783006240914796871822126264972953920415662171842993344633587668850550531686925009048415770833563063911147199753639191412902795436987179841863795046914334410978322804947262342799749744905620295300873202285955474819690121620251675993565666638602262045005698430960463053717794134712728989196123544585642414728520139614638565873115872414036013541999753013271608392771066192174404844426584744995328139058486968976012170346874699475934476041640700408742357903560557810120235284914811384682050049313066715100886130940445099984475837115188787373330074154100333540111523085944442583693717321555626159829955566246418620859451767727328180063362588172079799622448348311499536492547469289444549290189371704281152022013448094340901282032409697336296179652145424825232689803606121729929853193824470074079010871694422996253007550065089949302746012526644385740247827580688898418976178234401569837404414467013062517535650611466894036439632651113385614217839532468483035639758233951326841690798915421796135621468781907761852702878245241631794075034742834434570227323322404205972566226364932462064378797415383263985558685914887939688646625763906241222284053281601706299539903866700917226526770347411286382445034066346920225306410174723189880297568824205047232238340956184725900935751982438097124029524070349949969508954262877056180425583145033377227411451143602039487287209518977585376687751481978260320956463735692499881674277928183098471099200500314295769343226345550903419724207084742737701809773640634395760655820152242049316735146897122346268960007873452809993376939695851397318484052354682722973609765052418237023737220918158769769545728020378105475616566053229948997611577322960004873646631909303260068282119764202240067143215522448721404248689592027451333155830965287494366141789916164266018137253062579317179390100132845377851944349849835548609833142419183870667006518719636545991819457164135760057678983822631494627051657873816392083736145233913880419317758530210966540553869582377674763814609945535318090302721632473276822466623421197389057542747935265498446811312460718713894428264820770215152462378978750642183225470893119660050114985598996138982944145255415458068902271502515284789469833494058918184536352022982195082581888490048928178656741640902272453367846741329778847532394917905509845249996669752058926617418757866501102930794497102305692810482681956951153177025630871300409071592888625907033699903518413669855297558055802304158018230531516710986988848441823014099162456199934832338381485333209849594669930450823800634136867503606750103080328138684507372672499872752806819502638870604705067387586656090459269945785258571185866770228279651652721324353014591940174718175242589689208537238264443550485520220813250263071851521648772235019926504435922201220379065575387943218494010904351615564464013617405082545798300017734540446304709961693041689277811753678664146841181006442025004356829167617085755752747695458744958203165478474047215173507120754043659685829563001606024154828451490818587088983245337979405254257337706592376469199718173523261524964611081575414477777624745161924944182924739869262256332061116286325597308180357458349847873306584934600083475420973936453698914572124845120746663426655918202216540508752622263742240342060545992049310260550425049590143117743534133730992988288398709489256722163455193875654524094512700026063803601719373594363788885986922922147392365251651624718966390365100877339802296603918941421260738586624081869092533788731837518680661897141631200057462314529282662398085691946647470722581594382679820407020010101654317779312627373054031243025506255480977472865982447769614778052226328967485770477653481120659701041465025017851890759148887034729503889352100708995617382022022739267879161705626972326878820466068261089195949616605130211648600798988403508070016655022456010795047594972838967142869670614673072796467640335308241865254199196915685156069726459003519252125845478790083993586688839124382821920459208666426360360627495057048473950068473987919825993237284465331328695227023854473312519623987204132933963638188586500841724912578546205374927731063621797254921584248261691436958453092226855548956969393028109355235832957525688229374388970540710917303812348713569420221875273010290750917511668699918189567185795201758144838072551256565951761722728730232187625879220516043559745104287435793951866914308073569602295978742081466863085728665807538494123133165583359160462678646742535690174946577234440839668684981850265819361474493651024834955493948902884515467356231016440507269503195946961832617146387619197752242143310785750036137771440687898708961090983438674066773281358389799646220764754123710549174706726463488701002417291724303408862929525787305428444245824394202203295373978878060268618916295584504566996748539257251001380542581842630988884879497622293765471371397890127255649274147517907743350567488155483758057356770700618132461525977808446044213878648173994660513758982614474121147022463026788150543381517773385468743787900671912633814457762412990284418877680584042246486069229279175669818000689262816515573497581218614059503087410515618313467808816265945110952316252259485526602781478089972457095588129944889245608076543611516368870850728332655944955384532022631329925076072343536539262879677854519020111258456944691133655897086476201662575843382883370280155014567994106698694963730050270486408611054004064493052546080283531592222900093145160285869187577747781091548526746928197084103479906414675249101031892666735657622856754955166096089314844826062192659295905630366883692956548528498291580328541157785141065696880581982885643911932797178526848775127738385607035564214147109784108041286248606131735872287775135212409200903602540542329370374222657629294520227255458143175245199556988586209387566108728545564613334615659185920717268184983783477193019577171426273689112874839724262961861492658192686204888295208285100440104701332548177451337317287904163832571718551261014037665817244973202399242751841126621537908941599353703777448810556162696207423470006793931996528008485362622508233195772448066014740930885331459884083996018122696784192271920873738028495196908354714182290568834084254840531193507928695341885865756149372978241171963921918317776216512275202218600193249263789306496620248671007674689605346616628472041533071013832399301526925471008608491401525179117933394317722854039567139334071231946088724992042497185333392773815612068483987338276381797874746779000777636685823169952119868361337674075072278209759752825949735582561875675015518513462837875531526114116295588702920680008772530128131532641593889330060131010282935665502497075392047413067426575592753060806185424484941146823434307181722238130063123103377490489199063235927444336835916329662022876475306307007547519620835913171941182585261754892909302888207280993361241846576879244020957213501865272598226150482399623791771946146230899257325789021758699566996697549272861109041063007756702137831185225281344788714333539257927137998632783627737874624739545582176850449747967458673259461452126937713103145695357363824812371201170927015548152626415438305807049223202513013792827822126084051736498707043831982496195003493885636162189235111910696705841040008829436110908404174568721479339995189020222457833638256307201601966127889371649768827205649067866354673813095750012606678643497579219087959436757140483361619882692715956692479161134653370006350830157111278115999404016203288800436841712863479401561272754584002258803011024627719947483798424751199818387622803061826523169330196820172512286157734961609910105140669599640669041474188319384236937552917237412219055918406180153066404848790695445485185391639846392024262673188633225255245933770598250629874128911020606386625414907675317379806589202290370275915711013744189190951084943770651246573411032583464540550305124495793864828288413101896952564818994054482796590031506556457517135940404461015693173404379190443360138323025052261786974157964694965898308904420904571735408914115923755469427766697110961923963189554690627326435752756815033985349855050592307368356986425286460525038516597253216594525758576447069318832985638348975569508444229848921060068136842854107367789297335997349901207223459041413043374854596317460736031745859954605299272022460476636490144861601732452302644059016084758348768967162844635713114957345616263228691345584666353069706591282969499264448051678975360516571231120887878154224545303783873507258196752835810463669790468999632034955745421433037250472590855785848217221934399419746140266275338456899436650333894451560755210061890886214469251245704887178380940610260237564814076506159571779601045967936454258380786124234008152216803753596006001741813786187509929134365200715021852562097395302452112634091205874580076820223910241118957363826750530285934464176976584693356083179073453511036174213909871333515983582395921406393327521610831172112496964045879013019239677069152570708049323620385630530728033680861128149364797553119674126859838064205068443097832322881198057533240574325790913240546334184560896450521676339258497924088013895247097434246831352281293604560463719199309713665846447470971958794123676835716133825146536747620789489056405487575331736600009608300257922852198670762541466593432492531761935658237007202275474177323264904313114784923925086143442383560520810866421001566486235927604256419795993096392219062238675291981168024397951039158964898679571365779131549993070965477463543933418177278825316148774500469675339268413264806358914894149421993008497762294593618399445915707239376419830593896307585564694708199499442567191194450054270815088063048300524498162444339922252976125084550759814874247158254338784113685167801984761622474887924173676653199368853884231018987765981298371193280009877739610469522022766998905385281248590831129065985912688596358392388454317336366155615532111685399762776387493107857958678025387824721343880540622672164116429161681189755964388977967880809606898594309469740361864957877428379938032569922523644802985410448897945179345944807454782787951579150921191911373845051233195005193534302045871427703580919985931104537813420575767250633004234628254031337951557893874409504886736169327092495130288511311985262589965635984690628141692142403012864879619238581477672610794681265120220381273942887688638948306853332623588359621308277976666929884001600529000658277948681257567297261664249329683091844665968369088132335578553799639324147484882489842529619685980355029691233606158302241289627015575725974705184113791577707255104498312616299248058170030866346755340727378697589733568581638544939069543644819279301115380313445171695163655117030580297860442944548163483988401102687670132346515827274423937775367299978979755739868648169952085443477244992245935809823307961373453146423622202244900642135520909169572367989934526626998841340611501904227598306206499799575643503561690672280813289066564621546112071270231754244067629698590084466088855215463737825919568990616353852195525448250088784826644743884412359915955231770995211690654740159893515617199903139111667069666232089912212713900458358717639011428763173002629020179557950067068505432075637027066083477625347376086791871082982352398592754792162737722182116945510466996788077247394474584634063110800956303741037264245974429242402022843853022041290924235904422642893215216189541118511626465327024645602140076282410290674491221297757663224012807146979907626610431474942959224590514668955002355931678173602453061192828695741271073988030534567866101885351060387365047192996910855990988699699717125073348914142945789094864834493487674131415195491138924664189175617340122975319329966126986791850123598046262233042145722613291733004208720200989504550202133663651440482397174593204974233368785263044071590410425823837558791458932484517620223403133076431833455728656010792899130700019159624621153476276122676443932994688235778743911060571402978196780387641080002930148794631029611138398930702359972083658923201145416068594918009994093759777775929247984774892033286891048242647330607736751624350626443895761195392219041484675709301047552452066048022290077806887747218461553490628553154932951970507645506955997592381216789739295690139069614748610360301901901469264107968625130627827517994126991461888270768506714422964038611210607076359308202285368005545294289429708082539289926399316912393545571027596949516976657655416567750619810872327456749115346470719395641799025245968864939217170692264376975229816281923148587562135657726638306168675034570337342441312416846174515181987495581064932374850622924534433134967497095182400421213956300274367161354671262064295789644390705936772667825344569761750596994110050418742321307543177780308495640628712331237458256270377889574118390423581683978755681918869159703091438227785301742853195017136795402022488067968207079617002092405722374094996326919645122151530215288810380376260686434750036397707396709364181193211458863415635603872533186311889953955686134880261381131440095887849511100752259150566410163134675303033993847976254935616839642039080105901585622034108050822368706359768204270354497622078355736382311920268125902669888427202280099592537080331327987498949527268501689900844335841932779769464132267465823636920431631969565389917749316156796178685001181462186020391211823582753552489759915520228501005067401717033566376848369913742863568938779525396808015772779756916065180750768630143099779523383909626459444135125135449472387260078223843137758712945422837840695624026199914767984122385091882581000264384392211733179264279186017144368638954131180037506046533957729143481291215087154667148161417972261357904833258577518154035738464404868389475532723438037227957559171669114256113659762856039147774559627882904581230320816995881324688777515378463382400078703505034830823650370198791225951617202218080334597149420434490041657190082013074595593421731013634484433763698414510782106720210800471981160178936155976877673888082661651683078737368970187459444166148595939436022545739626625224154980985597696614411615932109980634645951976304446922730441173262719315592871914867580745904732586360778584048059898068794540466640993178562850604283236807701146478602688537347981483456374394312217826695325370856635608341550876281496826535339438768875368447065772755678443902618010020386612252210398133340202022702891332516361799571359970349725852671895306740072680990971209732691991832441059207720733298949479037259040097758831288549606236076100336890774225768064336604561181030295991013546184661422524280686424310975960085087445639644337909738670764668172511898709446366440697486263906591504931029365376289638522587913198538294984307137720314272689525894693002806450333962859566587156730679310734091235063682356033408289704215709494943112217688608465745884776650988807830476800945022882713399737007111959320226617219056925206549611080165017231207430773145518420920427881478721576866374597550898492774469330399187665982420319650326896211820217613896448639405520705419353844570956662127990253741471432164780913747915219051868987846235419356438062647387739473228617838841349239112279099383747827808797904990535629451298345560274515419775232986085614299026225007209769951991992461279194959393781909824710194192204182300896254719938501004281421689144037993274986793003334265058440966988786528298464863290421929202265241230534832890521682509771641586652485972547351447369285278933748200212793822754578328679201721603441346052200126128973074437448452540829556490915019646299533515670758113969074597583551814817463363351336138155564626119347370087432625348814866929069736818844120301182763114346154387673513619139373907344500801853588814552610210740750832072256174927711368359545587222505153041371450523194788299203022639490776709967943561915354459559986469928037996675294999309402055345441312467247793895952208992022453496100979576408887267152699645358816304229386961928710884004556836378783354905324885347715343733471953196339672754462189372088055229690690575181128656821168844963068624694599658720497072190684826216412937512102554770233020320369358174001842710158165041941370884898159099585211589756552311605269450024429219475840195053146109689020593333343706248601173010560786451811143968753892647534717349242417741082661629752597760942895963963538366609272056247968918614730967834665148230935190767922430253120223017374880546345342654743115249644080373950936969095119592894620771659005793277402632833435519015417385822983591838474459898476061397652218065191488461447143739185286028353702978106889753926398451360197706464142592260718705557150922876008105188725024000333822707786665160413392865041227692675920841974923870905795403390864907872431924179491036363877161996887569200075169425808056567552655865717247413402211198680680392202923721043631383561635607779599368764234665350640996211433071196941080480161202289494090063892137306185751382404933575659224298702142118645334059114251691387678961727302730717251747960637702283055418522712006044838969528248113292095086610647784943679908544170441725809380993393266206101781401862815129549603733048543867069320724477471615575807970992190986596386264313283554488017861363061660389757788664321480860405168494564006767610599131702630317084992742799187363996385563361112881138222684028229875984895035526120334360135624122365342662775261455933209033217935332744731912022618770777913725228077769099408957022389353560923767879568950731984874382542060057121872551804227383862786543313290880877798623807101653058155102444899186049619024127931178582401831110541663559817820094554571783923614810332325096791567837871151952639614038228854126776357135960150991190346890772413833138831632400250121544319136461409974809066797621796012540722107842419219042845772863886523913938040530876101592549009161580797056698646748923627508285928794916009158162793728003368528147542543673720227427267185794882854355858392576731517617717516155808884759054393540325223010295171074266894980919154976071688800872486188411050521442484323904945943135218792716069211974605522307686800439449840209049132866151204183253515657986748060710523289011913660956695547172515737660311547755683245242635056833873059175855187370761358231524433858482092874374120125265233289109692227727026175393144763471759350548017637208433288047559248975449555605374371635237441657066338018601786567453664650374397974016832202223444835698408803835566823599188536761022499634385224741430163058332162945062435765341322067003329055770936845465063715517218405974571442598893322205246073217238667522308587214122845583381938685518915225941760299465889744481445883842246281937639054019561111668628681780425142717716871571742165325507861463944201618123476530371048959744858041969008099977637140320776421566973143856244745755653000607475117744041595405775982200647407424527124705143680263308788279981721246680756855525824975396384612022322204163757536404802285446483572363052667566406986550477719935836176374387449994079337480915048437720624340247075358905880337431960808991598997488440172721129317173170853950104098719455250042594888343628683870438275695309886089344585162979726182999450272660498200767997797829154572167417137184617643928616270225007157501839585351846630574577854784890585757513638611096556328503005761636882046057077614039007504330187733977125003325215548464175616840755714353748598195527870308504590003033128803820220039379226515737094787997765557928593517091271974352871406204404869574176653974296865236472069584526532806171717147629502980889684910750604521595724084847682521720073642302125031339896921125911770745492836066535415917304142237968915187669019243874508022889509975348210243744150807353404932621630567286080150128631330997132943809296865274000181035483051479986453034937104987456211507523643442293092458843071625820847196744206584751298708497978329761059622917117243135083812072741515952030278402382202209201635923610113688713267036249317291289535581528979711364095637191639049863071863843750651429366280007603608714486961599165702219547750612636214262807738873549209929309166798517064791065649931874307324900484648779053637183792509712770147182199980421816395589993186796098641048598859886006511127839605511353276752028014001455165981069805540880565262204637497658557049791897509361229459626385860370752604815437943909608334305968671704019470557068348365353976324662110747228020585094868249868260092022103500170348362767145329691035032615207956444923429796910237528042563507056101951723471338317019198259294374802011854430272391348142200242781747665829424873761125287037237531986336655820719931870297741280694769242473562131338041928318761389849335317161485903778440849530505471322837113266776094109917499197097318137863310080296663592239704427509295296173674788837567858158445880393680844956990031347522665269312290320802212083982635597725604224397582818655561893027318593225317389505971387153138420224384353017855672705355451831089624131131755920087738887877879813052739869954776031248752218406747129238228641294801368564748673682623027311314602747479890335409001168158064826773483431364690322893529350892533483110083379893914233000795950781079012981159852961581284872969680653746043498327567663453061003191736995773041315238047603761414435741725472135222921834179496541031545334528741473250149779817988826447223028386165790886628046269925369388439099762675144497530497304616337008539017777897708202217464542695114579768896651971487636142577664024018374485988922556824313227553989133505017601844804683974114421672570121400276582279006364151400117990699582156484621180287144317397475756076034886498655734289659276452285873665434799144842658365797015406986217104922033003349080415254441389600194061513229836808179006592004267199547096032794771737829144397304239049455080542440522206944510223029956618352605906777972723694567055204812478222021997908589961224964104257611360657277470734197086356508332022538798728017358520694418976456086590398647411034634036414729328672674837072555569723954762035118979921216292205003376562584018368178824589024054913560409762308281487934278286187810015924007466409941828494974538027704390760389852528707162752356643415842216827034607703989335319109911420922543782704806920512213796616162477711139196440417694189028511397062818153553658969974306248063265269672723158498889812395914025065724939397571514272628319866710654724597666951179584470451130017372778204638503720222924664040555979182397270406975382090482394798864363813678273663180462222449310247910111104886672551448855744327969596006393121598711154884304806032353964463542520673743000053328958961442066602613379029627513844985150280909573179276322496193506023274402826987387551810922679879043200979555425492708423987877206150775748490255444945965857428702519013199199782193060733316180037137772723615665695407605170184814672860006909570114050097229479799971228455588072968983621685143036053648844304823881797202222325112471723496120237667788586590911931699037719119046800369941445205827280579679813662232433342948502736754919245267143889153647065863198873734015582111925810517195840428944565775492947886018976964594573326278001433467381037019814439635222563683012004729939462786713964060099838141491817272269159449000657684977603027405593251363011031579894813752543329199516435445192111807347464450786834199311200317587169589476605269952109545534016905440535418819815625488989115193826105857864607601951196452022041267108270744258738555176341036250817347075806360254834822385085562722916090828537449686652251108208797151194487885473754095478503020164970841175638591060699896676800884115316972648382650575438911091581532930091122209153726818804028473422956953206376959241636165325722435286361629182126676959750492584624456693834267869435961210786520926773457427494960660955617665725394034891999784042593459516812164386082069215685169738038974576387738071171374103530771648546346385492876972509795976455245474920222649415114704648891470869274160007714154759911444818828484959555702285468857714155978995033516006308301509001551452844918375764827137666315978837530255697875209912063015529669907754460653739592180791791910714132312865730628660902362421017392627708730073248091519329728361039508146761251428842955724003674531783383045771489576699629647668184425794327825284461554870898689902326940767930599282376272373966615722302687096724573552726961731241418159796925351844115280382420376223067710755072631256053202242487381571121744636767053482624286062474715987143607222509302730584885810279159021302306239563069422273571869743333231100943263518798574770507341443185413145331230048264859992688110812077634487199588206549143196483015747980095767663717187800334273999910716990141060416147254209666659369173571776545587693152172252217896682498872756853455612265172742689288391198505443706472548217001396089134500223785075538105545616728940765170266556205102356065230550130025715982416908226101788921090002102133912022923014981086259246829889172308592761291065853715876639462582011921720904990854350221208533930025321659900004224681000996201527239919312483191926681378445829322612456644324187936727210032691591652199764435831947694701139085240180302291219260382264498194549682518024591837389783986135650283383994987323531393489523127185693790843456550567226253507116520362780167611377728363429910341385838916147038066967451054776021934319874215399288180682501552231154702158039757470778544076714571303902833417768420222872557994507794450981200562771495974016477731886292288325262414876820292100477446233471567919897385187432431093732436230943259952624040750235271737766863193926150956578375451204346125003004111193128794482771974750321034855954175444099723269635326139624602813136548520235794105272388799110199272229377924340571778320478645404045906078210758434050692619836101446716334862564846613980568588655181997325064981240518888514214045625346251140693316973677422671080542466231162093343695417586053999572392202200171805615659987928254006547963305649122814139738272776119013909135621982832688490952743962922888106650011006596682436339764487858560299723066162769405233057362226347596081145667447149861922683690355991170411224239997344716758334148287366383458695691241474560513649564913592200674657905633049378769979219675852679869253005521656319796817785315441152314731821898928796628068322091551081163280954745883261433558991302324257296219062409641685486813322911970704004307914860736524987185227932113460382022688945798609081060075370804690634575627893528573762807001149391930814574636503310769030799831589943639035453498577557890461241106248353193439318736534690891785286239157682114914459011303378591089726000043503392723525059460806894405414469925355306253779623274362547314784782346029860274923973992641592392668477363383143788436627637967349851899356306666386148052831335037468678229387240209463427990187010149718791411178534272713971501053669948231914421743225204411868731816650013529612061856859691520220799316196787693323725177060257347348319749675423064272339214109737031886942043479769364292401375038737787118680782695885791291188840771638157961189362973264272008688570738206479479077284363953218923781149243957608126427392366789648142336187192408218492960032155919862084672578237618122945182346802924094961984850397922370957151127669177889850846909019261673579427124688523664225607538020365118367652998519823499314764076226730834213577663472565128379714713302526976479115460686735074953070765782202219524997118509426166218194807913106789139503244720892731148527204523514992826427208547786815002469540021850239186758444087119749699472897852091138922739508452768640780223234616425814381353305763632039994533233025272176312245019379125836304734480217195676682135922503979602337586832247164740189190778967801319869737307277802172010906543648036471849773301084680756781979734969718699746853508283994097374955533725627042164419599970170352397331136383903169145745605097803072126891446598212613616581102022382535263016130423702011806444833660802557449670724215293983341560952726171266081832583273417668493481611984856976983144525356951701300436997952793015690443973549461177825894965895710915014854319056074153856893103897925008319333704568208519366686378042195693415211850475337441808134033223547436157963766409832033231655159387711823580896317579155185117149853062263844524440609520174651438731523604989704837245997567539868764196588323888718740431727642637030295591194657979350428551555772082744412820227105973170146958570580069508697030085043547060151747129518772082185474000845972680508149958185011830508379795176321796130598607029468551855965814962937481398089677427407412758298534454808296710700259989025798355368542386758711565098503046801054548819839710860282959464145339900960898624420611160097929121886175457273880712542407302161536683976071360434661624581497155758155249289084518659477352873530250284771217728905196587722106167808574902472534335122833181502750352050593864656427550485437370202297710601687942533836530700899140878224922455057269426648222606163263295500502843820544523574631277347084573280937858272514408368965921303509646755257914095644497272960622423151099305674764157833827929114654876625796800526924174349259561403128872074694477883875811815664676383689395486008875300279613608467335822792562417561183352301394316252610701507965380583912622077464480461263261685154305801800152658328952672963353373300492259294169061690560804307426209516617347319768958884076619114019706072022742523912316981702876532541558575257642153355722149000235902948119408084772728710819737229029763537959805527823332126971029697099432603178004712461391062523693629898967394050493282915914639642356950104742901858610097086122197399290321190344503295541112028020671245405710422800155314584058873591448913304734996628745160547432584540119694481536296932829688078976514467348987199969755525682667128169070571823166497557254484633227289986446919376241639390833013896585271805805399211991315949364901159120221089594446669171020478743516745251009401626419036214406899515213516060059486140795931604543787156684978691097927388272365841538867209743137966805404008986397349014299801859305018114235227784006787104958783908310212931346201467306821620491910234348799499495301080499005474258275798843387426278024272076500808357927554376163725885913216313503300363045583598881813022964279851204453109426279537158645776559631092156266855404561558739883697714900350894844063390111902296173509668000977240245017353401202298689256792989148706599366814210384362905422501856214400060532629636880678173106860067002350012889245324401890566490030377315440091108345787424646548994900793440770929860130254287121319726347381981847332973236500331013558501446480494830160300870672608507018879318183381720213665063961719646616320311477146533088061812882145884547451011207266381594545636033443421585516396566772846095200663846113792296545266134512159400157443485351350629068754863398961963065865708143526891897584304718335657944762022240612452422563846142849397104792699460239356670995365065713736808947629130556392970778461623583093380009361139566462777732345526251424593545452878087408951548745905424483451254788566169850525005251754756366418930652982021294212565067572932628704038820822603964232897270328151013784150822374396182789111572651055548832286805806587960252930262436477008062313303610730050030600652829290004485521427830469428066317714176964531969325934299617122994874874596439258179228070572672027104795972288389027020226814893131690000928652892921183317783940256656902471486188454782720008011802701077935015608498202540726793110117770492494084582533320591403493598936672205233760254195437863060702306629493219252859984418819791818812437808220830317409663725954001510052630075142513694023496364494933829490069737056699097656942663953284540309748036540297459379422429143530243847220086084251941472144579454349944445229549297808279645080145782312212958462858192928203214095644037165571366011823007780842235237785124361202256662762590489153488679393214654701702461380425747428582112454219234825196118198568955015047680673293744318798458966992536723209977114558040628503285426552296219832407724989128118386222657111090518956416513679393794353585739077399932253714895561035501283089938698271266828615356734935019028899780091212539632092464425752656819564033869289650060576954308068503094293962998548227576469332499614824982933520282677742898643803196326418465165385561473598723662947279945986738593627187828446060920254392022814000423503532685272483439422371899143491172133613276503464018134258997147771235959236736433767507474174415054008391989777391262337701996686638076328773630981068576120124538939101896365097612991408279219855190927847358034456621503530193729146216626286411641159621764310694500060682494392364027427517483552926537306126719554548748513041061763404086078987643605066711832022319432283269486608211835450177789458553334610684716773410221646624178606230179418028651841132582892511703285894316784377930420224403547938521963777237460746256656890414336407818756136601637613542013062266563529937414036693519291235895183617018897700386593585619277898663272730062795063172656974644751645789529864574643291668808563589719897515719993129664717394554568654749991716132910211026984961872704095504949771038471668576369055277739900483235900890784810245099346602436445316392863862827286059278819542794431597269988270257202669551098831084779314330821442914726952899774359584885143623478809904513513304471718156024469202210631585101193726918355044267363407190133293309498323275785602150886692049223608991129891194092051836238064903538397509809411207707849578477845740327166006099826967455043438358271972260399398067498597721277756433772316700447295932794547073920133391920063740160611761132571515072408689444968883064055934606768743873778035215829359725587858932579770178279792820592620498219366143107362862474942212792011063620428459788998758344321007795237474034745429445185619441388821222239109054450846618348874482022861339926907380944373653905829725884925457018359863175557084866207057416455818908426532807024503499762488141410367105452904689437729737464609103744265265373480630589755189927872820604268674500400382573046337762438362858474433881454486524773809566145435383547283036027046818363017924514377549297142750406164606493938400085061901610211661629385432346706595756737601370744269975221212608377599286864195105137235475771394786927036856331553079790548833864495848983098653802679341766241591246517253341220223622794227256946584966638596369602983434746411188132114994282672234804889256598745529216118995488639919619247883078441334422880005284362306439974477029650292893778502090418918556277502433621746413994305749018127765414502715086151901177194278943379827611715438513588825897701158726159521118162822768221982549809804084436663016371415664864069913858090271641458685442161452859035743518235129369987148493489222186771021573689819155927465794903514072909409452730556920411102027796616880489780053393925202273206105192995045344044901945551085427952588834849816938897880804076723461429659337680829644033618096649767017123262373783922637085700707047478126209584402571668993341113138012991416174753180248990495747213388990313487539968855794981550803624603269506079845726146304781170879216851554251225949664097636731799071824490692776683151515304868445451916924636500473619197785667332774906657642709938481328873519695360890696858909826829514745419621380499387656415560029204805471381346061482406694281914002022143564086352483885945847651491297395602556308030368135656399690335616015935116983508776421674207984929293888336213006426001245439913708678650848682929786047368533764648262923704970209056822995233912006533928546343819294436287842751171896761019660529725752628856252655208911524498029464543060321168466991055687787719106761686352723806856893751785020222987385904409129571599046575553668269467543475686743547737956869409245829822028749863432585260341327003746398224970966922842086992854877168269414920229939317485681636479920976328556397256368455725540241783986034416840915094694722897832047001684919883598303398600924894550450530522381051563415615913738138329477948796262718571863408433332660060817075734448572929791941460519176331982737763384471425069336792483176815042747040522800560929295036993328944120034111776111874716531537504563611214303437510977816708430876505130441891748226988595127667709464973102308111142282649201365270020853167186179873185637111238518412893902810623622020090173863884202294247243296297308882316986725683631327709558787378936303314036921631340971458265079953787443723349585125039399361983719124799230953809972069476671316946616977811710161822813623929996708843455228120980824134617161137030540644951907390257542891287336016571116909481514330971547680179470444577967035142853041697205234790989384758805171110127870302917815298096956646290323640798384002887657119551125355858094597752555461045679744615612392495993171674567434626543448061821741927192753218498626048251072022996791348790935449319417141803654496468695397849770298583768551831761090664486925312423137674949661286752049810062969674116229694703208806764713994288827345583593339939466266275940679240394397928533308228843568572092037657948536996125332576862857642429857095690472554281780777085484252418056283473410939522683200029265795497062650561438225205783472471846854723799316999386207199407655743623065012808556749416357166750312793503553261609470051010250034702487422412655805904218139050670917481729051520220504030846179505560238162754524325557829956134831498437488185930062241767435504841378675926865659772482971195395424212197701897530151043451588775859823151260096410094151729040107301731671667388619093385710641416367106240990368796334852920488926931418811741240227198716605222146462177132344595734433204464964453448785184987356714124132245678459274545604225436897891163658214241758413968803416891578248910313253581606305167541151979705269084289160691677116494268870834346393232309036738492217641254202218133291443141382342881118346867693495755086796159547411762949139125353152223298736195189904772332883150312450152219745065476025260119562444547747932149730693929022364152841864812084295837411619850946413838632899003940555501840680312851375951299294933918966302985275552266299921346908486763825458461226292968318246742899938438777538549109641659466165904973203579450793458003899737489486788530843197975694455240043191092929227623083502456395994205257151981574205400271630416250423312855692713043492022924697918044256643825215080053066448176570275223564374157280623201959608493971697891254134736822156739095401448638304636162037844570032698949377747842542925919683771294655264850434895078086444478803201445017437522747867582631266276297510946501893933616067188854337758205614303404383756082464103913420553255735906155475361099691341861281803761627236266224412534290751855966011972677690254918249326423949178734347734887306476482275370397178638920990100681923770928453095268598013002204639255421743120221551703840297670212468054331283816131930972954973145777393471279312299325790238075422959153134259881724069676682587742714843659832667206583674655988100087666052780643016668332727095963027634333229626081604858764570742295763813536221902124289750065602940520996237901664230770538059511546207905023459244607510494515027995828570207281497246708657874818992753321535948360604750501141114903650780416310009951488311209998608746395207603966989938805385492088191205264810933255110022734823501908491739729202297689894824458487602118528127016705307970363052153541808116816180981475393039343038168218420626670103534180978205939527679856000347853794191106891303994841423966661806503771983197082358246362289111568312365521477586387208256715073984423503811955226902086822378329971538868202443258363793549201599240924463598460570922958893123883817471948388513430382462613749590479115218110852479693858644507436170876466113444950751611553666945465834090034276971821684593360702154382595364031746389775168758925952022239110040301207614495552441948114642423888609142695389548498187287877394517914812980891982589158842460420750213901013612957715433401782120026937847522455385887819970645185049287446899423812877023494870257275229850615654216733649560417448098279723476899916488330231526752030669051801659746406750572441444328472897565881236245865965123047518843174649666799546731592125444909561999198576000998146009927671231534448986673654948188828920609150236922107098209230061303578505725629236816700120044972204420229658296857947730278462028421792698594701623621343882806639246324069955106056274157203005707141796475657840139938589004195552787306369472899818472901356245470049072823008833789328647503119799524249341274397002366398019807553605351606841522005214061110794819910243264058883372736936396465193408242596404736493263668135728551502034407018051101204359560863276983717505017252130342186235316829385287380158731004164313643224985088315336273873473725529428731525180314624068410555524718864606601064833236202256746273845724598085190781963316023822569571645694888322633940982568901531809894319208989759487928760060906990386425601341675983101539653781081493268098051230384679066375691684757861400786232158815033416838202912306379733975570765150192592881063750702286587869882612788901183496905170613856905165685108617396042803011859173074549999236377453469978702220513769090918216522442375142964237253100998736529600648803914545606536928683493457153145014993276688907248441904941262683795764979536419752499312022795332648311886180305349600895138552310050627550205681964784598992786057666164737159341219642795741769642017252372201731060923676942107752065632356467581463821295131005308062303132216082681964558370882709854852742853265304580756394533572368383376969479045910071545672303898793845078413946429050530243832839547055379036357988967653826944829931448178742655262775595643129870269074946938612503774624775044741801841927955088831946737998231111491478673746085453399584192105775445725500724384948776086820222303709683912090260009847111531717583276860724989035375975363849797527869385747281675898711123246144994821933257225816690278367683796093648050553142998995040610022470604559262320973014623857483054167963831655131112332893531404019464568428190143842255407808827863302935899703501521202413783078197845726730666002744116350731553444562133802664695997374919400479985957392644515714173514839271342117555736955218056043011592659374318709382421364331943249497341694195004382945859005413762977726374301617202239210772510633986451008390090120876912131383277019651360952715532659115915096929699306673934302850805414573862392136381386358562522624583349840826953258476318098089787189239502184938831269432306976986664204185615720546252872637401490356769617044408757972888938749780278436931636272739379790413040939653233082180552790167788251837640609980384352436328060459936763598559873559436036516847161868460616951340394094287548959528632311693225410917009488430717670707946478133127543128081457660615766684642022557141110352486524184327017535564247699250848755903325226294237404985524226315124332222700713718155608874112128652407697730327616585357184407549638136322578599355306737416379483994311551341069017497256374640593211267041382993062181874322018869935069055800964478674473208907558144092969532928177247368804358267457765397597917631945399209124043937861592315983783359477871777272463332455547967917140507515668277091576915275934941977526914973836892433565198750502513524843734037505136327032638070836620224235609522934982688851115455233146681099708768728369944732221553065211839244071404371986700273587596150364744845983658752230963365092603949491201747477152546779756487428181111263123360299040255386830324673118239411133279033503731552464189559638216754759569222227843115463862305087774067369368561708875873910894013083985413367640319753544647577944354113844854167043766176319054065246973916371332906090408796505638499892889757282218743784291345460534976484036792287603128239238181983930850443079714202268347338364010332113370947182082623322792826996597502150721132875005194306482144997459786762505989001443665055678588802717606606933439782756379322354662186822834948776258604433737696894410599236114836088535104592194953486352184970958802800174670995666949008763434822227177913930740306956779922180249461458552076889195557933660788485352192015975079641672253308124773706307871573888123383455136917386480729239959212453533826711585061261474321635081729041234308158105040965329796033935393008005731982022760823320874835625692506247762223776561347227001717974777502770519327748228268911094748227861034756369764526237763089800317446309050506893482726971883718481092369685432001481196084541603722716077721337007410771059463885688897975954634012315509170174517960408438721866418747268931701736595288615729656911105994874939547777556136935729214113035983162801643325658693431814601495621509393595719719702898050269331344865419887404040240534896546115634280667566731301459486051263961376040878751756675403320223247161970178834476607342979402063143015221095041614042152393672039419387901503491265835885580611186427401954636704590655878400885215929962827065184422097438935847242519342864595374391429775088027527376680581863809825112700538763641790395442305879432820882595891795757699108103976106899103539551835198249275423524932796033198916079633003201938101402911801591885839777931468812102250433221044066395084790088985541987178898513324263129003642204245191463289681555081783250080607338502723599039465504202275758473174331285594830395752775683244097407105024390849471803810941522303810340548146033120691780848760431274586063033670640489078673319570683218762981958299351414398511944503757644796284977724420764876161260309382593379716392958187651406756223576613046974464250705206577595768813380717658741964495995359887614801772838665053261424467626873106303950870785337104607520652496307451283400027529787808003936112091036780295281406392191579002239821035440251798694279024298242596436766837328087974598142022848138901570030035101193563263231821011559581955262202397141624322372180851798595367460988876457346853869726145133691771174585173429335658656444826788437190891962144683611058891894705888075517431504769828238759910597621919990132529017867608127575888561592901137184776316516519974656494196438852493095563107079705254181155624905746715267742104204916098777047363359132640257852013142682005667305790267516434653177231336700569655833237362649083372215139101701326888865277191966655658472021752021685720227673637368275797500023789691478677102021279457281579671527418414089851378290958814944172337800840007668214128745285322572673492789481899467074036051317703862452838395668066553126397598995421262806505580346765972639138494413582119120922410834573971836304479607900331531185187275332703337177753133987821440659478587077523757996965141984800109024586573376223441092007481626017826339063775195460130280505047214142840191360349098958681430548558804166535379180061814174169653130958830372897187474156462202260025794546432020474880219364425244859572713848410222232139498153523845769720282922213412122371117828733344773499247350186138843604192001431936785493005860374385490510232392381194497717786144308677677048598758259060894356572737490774031664632820533402635667756965208279677288078152272212962472132641209396204838592269038272967552905197371914384872185736119737082221077773499329953066351198559623034214890628203844938154686063211002236932207128703746754608892676472792791769931496642218470397400452022033854733228879961641324013072234358336477333030470357165160014824481844361922274605861689379928395811496912987084900077256491507506972656071143277608540133778550187890410382659510466517613082838667959345198979172113769971157969285544264525564725160638695884223781315964586317615168372236532200239707444640197546221695022296001561991888032169161878287384292973246830967398188166666868801552931035481372905663129037964345201150180316251446458199003815370010491631529409683246530016226295047807392920223376153176201711522842414776290191295081764752123889932945594869926328799776256618721591778271356213934671956679648082503603504000223278718497602628223670960922852538024625858902885684468158653871349512543537211969700408486218376311633258967589728115955837482259781038297669268071412665413859357861056846288849214250977186999502543348910928644322675545547807424058865614946692680720475962232120477387788111792704632061275154948189623365954290982916650047932374989379370402851133193994524447187990202212905073603010220030434208518092918736124141505880984827074845200854111402050127106332516434535549032689442353169158132373420185484472039535151930430959420306894883489056504015143788074252445029715582722109023678008412783643555352678895478772586502538349356573457123815852342098607407729611131011722188475855757527252857782101956042607616651825501937829835091241688672130628970948470562637495013580991347288195506137777558029677668877631628789778475956857163924761423806269434622084209612820126772022736551031161985378844506522130146131925649061227632922898986653663777402052752551228628135277809264967408725380230005527532819740489002640410180355312262103522261078879093139176908441825845352852794072754769123392660390285917905287258208619399817010293842298613012329008080554334453263767686626873968549547524785791371916118116269482428468825287265248485042387710447312162598573580779267851943186980054785563568083606724139022363720344068811168589883716809868206832918943527485344232541119541106020222382645463246776815017857903842212773108644292528471545139149757224916450924292718981673462184331998426455646897069344693958825317242371152491301312499341581487143352052389930307880524084555964837940445791097222314082702703615716770127400833078630778405870771836397565402884609664592411898370856373293043670397150761003033889773583675965472583883110394039824669615931097674610007886700382965874583029518211646867496195713048385601228649510427543265347636205088119246991643444018596309904766404685202259608988971833808681852215111999925228311559786916263892387292831523956630189483234154291268358802716341454709447163176971208713276166939888658784250102943468291627140401298369814567314586075291726539002670872957605256485800148322885185267877748042996444620429179797166341327635419486789058785656299523875460306678474514986680064431451777464658550870936098524026427902804801976178261634312822033879454724949707458896470588850879557650091484642226264937227328034816443462778910790056863139028501852022456235522607323693142871914036373954423387168205711910821909423331101142236509480779785111989385647428173308853378959188907596792811871780064525754404107443614893551666246986626084968097856163017919110960132803002354951866625027011897870873874891166638848488030060426932884749529465954113407682866039268049251094104535458781365910489558919903343595679915425388938518402624207463963618052718888598748820921114488292253151313959609705643338008997628632937222196520430375924852779407646483647212366120223401678594973990626380977417955081412411680977489509743242385028689372791555201210337092901903774299176384076923091253128395811326221682194913219971031545699315319326853386083697910488591576956773242475756733454057083353265609262052027573616739518250371931590487354243863964519646898525101369603193691175524714755304427597588796109582034039341817966645446366546295962013648555308969573110064239561261081126113295990580964035378411978941642407595194712836787937770857072650292245968735735068241002202206301743660301003119508663067546007840513883712305748943691003816849992372602158751694466739654193994194475407708668304462285337572264877712714362002432132342168447926699056984554266872477423453195113212595775881395070601815682770459784948019726859301474330403407428415380573271418818172641854337343092253935647799868063529086710223258791006601636726456821907031576627902604033322670526643758367659867945699661897681228715725780082477156820222331620555200065518403893845447229354825017192321302872022895517100854234855281042859951098348695095481164394140815822858270926884135322944340518607224955858725918848086545443896880711231221869039868122339559519445827388619710514799237980360086974685955136086633595510173896550513998219125346762712162471063700166972376042219849240047975105161469914377989581159939134446322379479910880022399713923376001497740224929053103334511302959648431082796308099720605995416547733500743392587894472226016177779457798275360126411074946418568117028246089415609571097320225211540048734857552374509614197176925323937504452468741394737550564142498809765572568026890427189672593548924700951263431956468164609049916802322468002837583905232017979749449607553251469958294788102950688630890865023466377153850559672515301856186221295664446303002827436609129769132503051457618353881966612253074084011326684645334276847204224705873832217038722168729573891838498342506711902913438980387360203056276252876731846252470963447418693383213727296100987749528760158830548077304263112019202255060789047065910252855019551794445351606887193978820783991321020103063427352160282364593824059036810757462972686370066945879656206364762043360618921138076045252137178359956053283413296130923008944014172269424421336829389184391532478461463636368760302566483037577204048185741328443971335596952972367985522731467628705233860540945890449007375941607144239231316930006215818553239089567309930118795576300426761620872671535473170750410131058047952805154131327924169998271946686465217893364064011546952022220827187322295299883158166408790365011550527164475371042672878507694756212401598061389575519007566764704495518881758834230966132300404219117228690354633907191495422530503157790018303811950261546688924528015669384223746551486591089285511322351873444373944948176496975881318973421071952920997170632085573111903405661497761538736743148209460351866625120259151187880988759667850357311710206699015517248978960691822998256815762555578329690342038456748612409180840420366207221436718328345272443679393720224625577003147440210642479724342519737745359060578074206824067185150906355941098132024563433232656227782332002571976871419039444492454039925325028751118008560903965247117022160206849296193998665786634495756459010610433256044150275027619554188519491354854857550766506719053551762225697091853520378735965586159360334436035211644028886064377749788457970011564075944741258989543790285969840488386166438882194666796566462609193628717382036622496400929062659803393918403601151664288760462377767928331894202295783379010613452079430183677521877342897564516867551791146772899673340873546703093773430350678931387166239439241163274662685497883601786643334001399931008291574427159327081149239672808145794018872857903046261832131093656354312873724230721315099281244744001654467581123806753319347658027870499334100565388326673300503300529212177561201023808972886407134598731804014467451124427423717501597170031745260624917926096381060139583873002415848174850738456463422448745366179002326946128636947269816976272022630764275799249354928033001991658711457942365551148982416665506933056957376226173076978249060002358633533306102679836352865537051384020961334486718674805959595477230470155349525691509885053882106736866641670141216910699251365455742224679028730758520100491297943443931971700420638315639677640003009925868901798160299016054015480228285365800085434077732306944418714253060343852702574858360073993917943244785708524170705103426520614579612542266043977843255303418221531128305441313535163029756318987720229070461142446694305295269283679456395470142811201282089986145853568068328212595226766751985063596871810340807741384753221901032257048780466283524148545031399057666072358206524137542525491896990164219072173752564027464731549235861605356842210500005977357285099237043062004588504754246102233355800748295567333378841211904602398275797204447117371608119947061731403424365873503529367981638916404742050268162420000790474130957053205863563077547168658980725987705868039287264288838966449683985487899458202253914696738883027030378765474004694065562601110284786306549059611924898471730461203435761855881559390262539746739529936265214411604050380819261651580552789324417865296858432175503051045666914840181853360225369052474930161891071682924710435207162336365233422882696856391806810608260910594671917006500353559460343898109720202930273012157694226859776513599552996952365678586371794123075520539493081784059969171207696635928641172680151276011894745952887905651248794853253884673174832707793882265579912022296094226892990766894892466833886265424544940784587093764324478726763588270505658341264084758101623996616248668865160480238398890980264572710794527346226381158537261109045161667742475173529395258593219461040499509412131203867084407311573202940981753276206199948794214210291692988069385436796096458035437030687835658930320113233334575284725365225945199113581259678015362843873558004051598635301398278859457229967025422177552765172192823491095937507044831716748961153990387170188880982575044420054320224254224043248590216941824060174395999815451536639667808452429495075746940140080186979306275969770526925211227453199122631255698762950507145631032628017928145985422789831570236183558484522885068686918783434256762144336454235921475168775103471260002304032596853431207172648673374647995931647164461672777511545298642548274156997766301464395437599861137903326707086730646373392725984831913546753283391996675124141850005032072680469840260737129018821342617372400125121249051067224649354816571558268060202210323335837627831180125827129571324518187502728726819128710226382998278242178892406021421861552909529039551528243778310154653444098039227251207968123877866313461783963342613456069686775754907086145069066548125023207278565015812853035813947972935863554392485953859857128316074928151041356547810988370523385121692084881514108961047599655541090995894964849132362610364673081307326728262067806521767902931196209489040910966440337862037996837146639250058516123597156633305946601198238118624752123344192022842821082798095048339369401727516772679186080876904772485608554084812824781727166511179211658359008103557696675918746272883761609853078003884953210972822875714197365025815843568815215756371087728357499844112454492619408596176909167809571577162833121815683297015486153321425133619847783102435247101400428651881527093363471423726169309232149223308359215205710314343980557019271243650150464615318762471316468628330657366440183135897054572610002260982280452995114277526489865365515026888526939567626420226447160574196366756134768951220338260736451719826693584070301458563870051786066794129366311861279831475969618467181221113909639512264214408723842663682971788613072120521738231181513744730531711511003535366429113118704666890825355758422452423751546385381858599509204662906702129562617503451120783046602295258213508087825256510010159486981633750753589422329725346966704718070278982716226358119888090213407824405499086055784725686862059719055273304696198820276122507550651987535252866305451381949803202243619993387757111323222431709127813368311297113276954450441666525144606415585925892854564992801410045759543126803062911920828041122593696642044703466089826584945374119412559610090732941374760704178737828066551108329122151495776423997756183547681842666567911900973087001580646866475116880903322409241962388491798738260516982566447085126348866961344367570026283437535589685263673645251462548557487504297224947381778566856042217558527892458325487690478173331526310874201188856190928040878652721444482022239227159326423767373706122416049929983605498146548998236343839783275987906216634326252818528409243654826039202323500601462491103189365092003952321312332338932469826663219048843243600102578084754480878330136027355415417454946332288346783323012838129348244510319568731278422916053199083537034901001534397538170320211704454352104665241870789489302013182189199618683181710305228617624697780172769839139460225693636227986901944051338058022854940555113163273290267611599035697654350181262067986832508120228022362237120622568047661691270231412903456142699122549007801558184247843489533451160390258383961941558487021051312627566395113392562904288118120232666093888494518122267583009825917190821973165049635940550211696227304300557611064108173683619801375102216151416766962073886621067738210369469484279443508556818060442790233253662769586951352371716739214773997963416560997372901954899181891997493480244919689387695799801123323971191885072140116228471604604955462325557637849860454099415555421593031346202290754369129378114679968708091217582639107876462408974467170995631416549600603123435140156885246228544092588344292928755944679339356931485602243171667202283716912680625816860415411926202677894559332588670318195758567981994858986535804768684069330183066684578666858406729903215939735080799308992519119825944032693259057168788532448960446077850225590489150729028370292006080769473071461401090682858665072330165662493697736275463582922984700058237642857012972781757886197171337937220734893876714716092022206429746234136165194113769718517530193388421485217811865280429693679338427544191842104586782224409362201598157500481189092260418505763749470687084794236871122038567354290172031337986177550688581486449449438310676442635737501812374254808440372146429107860700184486936313315497744792967747139878605809474152343368017403004456912682316996336462779286201644929124575077682034929754322087287864392911970025600915777013223310913324154006847428677421076363270954194787598200364402485622794851097090839820225990421177676852673504743157515940786822532839005152204833226409355540200224351874235899813754634622179761683662709735873536509883081944311212464753800747830357104304993056786408577282789283767475631855405681829311511771843798248571105694495098394114009385501851448742989099291205339554844515324017607396324424793027765508310151981991729627522406946780043505216132305811298753115265616643528347885586620068383922682083592725588381714905871234733085863539960146272755703371360411901841895325933638202252551794842126886362371499382691962764564097956085945882924582785602113250889606301151281199753635926148302772008779207177548326411086776938422720307644722426604676019921536079663015706247248753090721737839807983105189446173261917051749278710988311988432024629335188581302719546272369579065422946453887744422116598885606563436641428711252024727060741860239574764820200831287161462217289142363970331564463940586792792874702396561148120586743331742209959845462218549247841639420684870972755514571352022208855629112301917886296009714206550745682833289140878406999529326720201105240307162347214390034460488069283255144972793795970022402655976367597430264442602992262835654430814116199297734991496078406304861533631497259581031273631607190521078693482654594423768685294450603103495932017158728173790958872956974809637859997206869852576720191742916897825197796849284168191426898469904347181147623583513830052381595378680308889496560902192080194365099159252918443097938577132315925111987947766266527069820223308144225659975273694080323385717061738396570645527220581980507508030593550931300938333710177584997285287118153536660902991478708624004595657510990879302083007848823591418505833177893747900111140668468308330840793144968011184427276746240317163301153774492880580653438295001571799775624367491930268753165142766221456897160707618714843751531758870037680063301959538447054889646145746482490593418738108999389224864708246292329515026125364420413482363957538147908458299078055415877718574425115759583202251929931370265754864824147896775233066196232570043867050799410377726312493611290120579443996765630003592006819620477668694225121266743128523545205106534167095673566794276907643610571982629856068973472784850941484282275835208421705048063329197991575825701120962592661187262088021187568398964435202650953506610241306725486984138489741615084218129964507302852715315396327083228313873878174693539778263855928141039287173827992040955725709919937072715415439565533954371503249973111406523133122898599492022546564971243677559979295522218785640941978056285076332444774598918634496010295860342343915988638305930283122592448208358714586089170990896694681635408624200238525968131829127690683917460849726216587249441210519902818898332008714765723569463033065249230505910785129857868478921262508731056918777560136443862358650209333057148050028066639739806333871271783857919145232649668980225003360322945634105360869074761116706240256178058985759003570216115928235398899253175962252146251942375230571080345518120226047519938153096636848494057465830211214787761901373285326921387676454144106649794005157345818127318322786085492940196281512867192454197548977607825074748061814282484296548577103673587822547558378123550292834363739298257292828733056889869784629566918296880203547372655616825213036916156955839081257471797391709019827075195958029692149809434321589940738908010242462427443473755812157379632452707905172046793433779265091888284343853988421931377242200062994880421076511085790965756598070134292035213202280422578220204502861964183176207594621701886682349968799824253965008704934940174475871038496696991665706475064202788473693406384663947793498808525671947155955183322523298924646825689945838289295560790419466479848794326895769069633293315474092835051367433041740995997570693854342230528442175871748108969236899953708376556225151761160318368248029564243675981280622512691684564225826278669009030498830963340236796959410807842956290377940230272790665995650842170175368466156844519773321919046437705522022771449779996726045213694697175116813969372523969597541149502356986981643807364295355038257788491542559692081900765144389014400136055425005415928190767293615896452802892993417571065423880462331549514535021027141814299319350351217478348338134392575463001516239493595270405365866724185089471962489218282468421800861584938942426154253382959451207250344290472755637038770372257082371336275871499134146151762535446557071838245275121019226949451060563811927106621442443742993459629286681616113780840958320222762546134936258535797182812302124963092107815286224924566052561858797253182462463664751319581402882913385948538852880816119147439184588578111287995146830991585134571442475639415414597169583895678131726043771494695863348418141745605343899099833605241717136776862023437322892727673889938071807495878406952560239557245637579147582221161003675995542922540843034941035743201300087610230664247334921249141914059913857486230307644706247854641096829317383939766596511515360444372765576536220153928995627202213797781871025920140855878078665945057830187706269064025047565831523579764911249889620571681637722185538930749669450949897797781771306286145626171829455157242166762896840619051453869714625713241375086243583628826700184038183129900944091581322929241648186635660717881549930368905725382870326273821269019663329881418895108597624138307718127087140506954966445336148844941390267691706069295488986152741159859460018701226924452891774763636825941130390254379283109957452946897668555281591817587395744912022241493492257498662160553139612296985280911168632687123987372884300222737048910629044367972760671761929217226488316760204534673832902751011497869089708317474489810591936145223969673310226941713641283176252782217892662789482279517631673869529471637737468646271125757380491101934789604437697622953429503994332845311783662880780867853698457556126276655414644688798477528896763861696904976549324889316016843930844128771920484311637754426414840808273660043199470719626663567922860540870447012681999613420222985066129214655642555211159226748918760514885244458385668645779582608337507197986619898202322681269265462130300566697644906615633851389455476764712266233385741070480135109616364292016956883261652479565583018652949429400365063246163923752461820893661415474595390542734487695160371093188437941354264495617240302764801201261439013532853060305267063700777941347756149501575559356882609709629664362841811401259508833388446650002359607846813061269825227824333035096089929059734945097553848678721644255202218891348678061074614790728474048549303832475284750949875531688968477193877477431936259521582999011457888825819235263947879796844566774824304738790625920933824861541674132806188003680223046595932290690275761911753274111441931362950747938429753501726871236183176984404760050384194101192175246747873515633629211232952407200682101932203211696740781336960044151839795102364088366407587247218584596803669838363682868849363166289547822931323778989872442126495991052819480405966863641679182438699095250822022441657668908606613280505426500426346215611507965141705321441941008976174030686992502078323497949990242493411564078826709610810005445527621516968033172919720910023643224535100803479420063218902648549283915054805342627135428987804443685757582202833351188224013884077544966183086612704804299328470386610993391738007733543684246689808255485439398192171992356212033075996748246321141913274165342872435595553974392303063407620135805611470631546598642825908192880067344615390207611701325221825994483327420225962638465834233203197854020742937308166550197013601822813853978536952715132107708466644324362025838101983469478525169129420548845223680246447740814551771680380404985311918845023456685068821251548625243794505232952848881492662204443039620858918302465963769638987604892379826359388751503726575943694117255567405091536537617148416573274605052981605237544054716986975185293919728296143184951799078251160570440661389181025109658566771486193599150602726779847884815998582626371585787685375702465042378202260257788348055490372715406408531983514007166693237161264045118016068484471240119317210947487119768999597977159448062743877070029697790404295605667032620714418313808059084411864132267699513703645192375233705481947363153170880819306127019235672637280786546360273359346595466634127703965153660681222799344009349083544156223151654726598249159757111055763718065776251091715243333262574019180017496727733125076662640397457795715710056831837101704324797184876701890659204869669824437695574830798254626712022569892724760932474798316755888025046085709828198790804986815361168811734567460229730538342264644509523532760259470400509283894455396821976391884531121885633500966155533186785944083025500259155718622232845672050298072621819529696555627418622891271064542850702851220711719587352909021411709152500744495849971137281890913581652381407077037076744320974472742921330422129238961706267288556148311918352055703052237757076897527552724889433979868728692460317059698758927752648875100645753423415412187265020220877535558308477030719635018810698964104688685208862713573163221844215381317308344780440691536792758749181086194719274677170723917639390549853671021461098186941938474579501075884701378545897627273366248317770853416653841892121070971107320547368765170667839644643319363269186354999886465179780562563253890084685975257738677894778420191634474449685754387894025528076095881139309205601461647186226084202314313663303593526026287014857340948320328464597577475546410502816058708504639685004666884122331202285791790006742682942323770265565626895624594195413331147682008402294452217864382386619177782975395271732061107264498733358187870607781195923059582782831071500901321671857504291893969329021468908966111556544790353012364435738411044058979667975953380624951601325205100014910391984376458695161967174473212257912476226006748545525038304839318501062231357218240236209787540726762579278197973439815877392334669653085456538574219776179084916500437177766344076176268475719452599764264160473147820756592642022982369433218683277331356509963752007022068341140520373926441282635607232640768259268860164182051731581233087415472256928911833941362675432831717938971276854180069915793367540008799407135587851320112501084056281691497925820475676869099651969638030528412547488343066987841531340155382304000803043184419833288517094764639134684886109227584343582465835543978074440569061990517445141145184248561803298291699494331837460303745476421237052004097700715020883401250910138962745200753269983259084845483849620224641039179609566606175925872885713743419920956479962351468390261045767374209567027598931311315023824265762015657202795726256285327647332040574324349586782626549650293115550675268148966885734054504918634507204822557494486111802427008978176006837519274911125127958586100945138306422821375811639722995415845944035587539577087807331084689666514308868123861281699153387396524214822139815326298911277847523742730996575327353566858301335910012426792026305356578541400180342017120030466331583869708763956202205381452710036027700862234290170946926822736196732121429495976453999456190053338911704927381398042650297901722865871202827235427640212762016688163850249601329886192900452695378795128964977842971414294554004615671423640272981066967394975011225566666595263562538649273426707899063703039472954845476451620960206479152816386770440755619806469628083867292461759203962007385898611416514690729868865936939868296886509473530905946091872084021240520194292752766609445565972613830708833686305640255343713382022924025843759374030411412866597355106698582239929922966123785828183241140969833158145685574541108156030642765221947992336605458822880761923678120427483040579970717539498781163446107625358739171541736234462472138753993989882189035534266944591945768813181513318370441292535546636510689728458388664637663854454486769020904735911946889798621455420842973481745399208004609331332880835548839043950007562862955493681018448182382462448336469195040140066964314223393014845343676976021210709139055063908368720221146700871477910031860409957860995671121883259418964169261185441216980247284636247680055226960686523297716068418420496643678670349143020762229934047593232606975040644118544172635226202525027471683067324983635300930974227339988052975884365531159173131401427624286232401882312617590526383927367278222401295312868645702228053817337419990071892261156965038062189793105044503623258021968231272121960386081389478620826549527010877472625235238899240180676190430194803837184424970141417335851779574139799202200048069213734839986571799290324615579842444118779869962265124609671413627999568786618818636569430479511728506857730424534397893767169635920142294693939067022730641601343701998497750469017037018338899855946911991015826286746111085123397207609797543541662193986843652636759791652352389050426350150082565615296053733541657058493342430524011616526751385631862763196665512592709107059167065391002729909769139465223838777060564795039690508371349038110721578683188763125962893846758486433159872475694842022301863243810945654995012913885405572819035186159939953112297093153971072185688460933032418871368189944788602487657508159470375920252458120293338914634932857009548904141978998900649806380735260206541170838491412423438665478014544107105080235820647366783450156796007232136071568411938901828147840777325003598636128416291863798016919578262517255430786819423192419322229622552671442801611668795769150210823013732652003621491673913830584428758935576230429240258450167557672602438580249469659445174789020226610854952763734555044092203537884930677019952811457507066816360306201979153738267194231320966571620790275339095011459323830178479575955581198512034816243063500362628750692696547840393382422339731968205075203976001715609771529724111150368246179585064810527705440021317875709525365539660239633344080506569135764574770776866525349728012365113659394353281594986904342495014776436920685183439840987275649360612519691116418771366685728122015039611542178565355502268778033190055890039081611792025533404202261882148653741241691976724598960781402394903988659021216136054189144803711681235967017892472403574097588329587056816861216591749151763884307881325587540043707067636686345716625495993979229855313879978020300355074641386041871628054173377723938351658552509451169578048684305498425278239981758027326856829182460573183580576948632636600175341390036311289368347453694241540270553811684826090074162632063100221899857926294446777324574481157073561440468428687306586450177936348020124439661343614473705012022313831472842472357699410719045557010759152105351993246600969660194597428030523237309114006724251108143557887072283828572384734034623375186436243405973358097308071061887613410195636317801793286103120287697794262378978221975414836102268316878904916038897738858860620426507562476457437640985002578937990835533365786549946367223248526409189368923486730069275523601240782151258451748879944871247685570088000062109197524354632064294805810068076786044371741320553858775610755816997984132931993946639856320226141203212161169774144883606190054114130453574611932513095417015092159361415409274668162401279885555510021619359894550092842684824777474851083370589059697559064395758748762065589438354485559260469221476401936356006278683715892895673907884104960913896435803452335188471549184215940387922953933741887389863787642309305887059244995975850080251138349568650725539594878678774038098262644862424817085574049261511557592933492633396682286971879057099006395235842518916100119594924593806576480908316389460202206784159034086528671125636947728924345346913535237638578314831736111937704951651181839260444472938970523023500982738372349476214472840073216062786126947848960688279996801962387656871881833492906725150511250365304584044261401777708029096442653663287898548837271507974842108502063785873195098408823534137153480054936950242448186685621684953651591878804553280579997287905227480651156468558303720089118348043040140724888948869586663985657030315774646675532317440906008813348625946824385383510508206612022658688927604543596395682139498164804704841661342966243484384823620161576877657596988658894714321077101644516394930212208762069332581197363690381842277221574332384314603892956729360736195018308892187851144100438054751888355195537991472607972619377669492374923984136920789245128094811662401952200296526527075775434949836426646091819750368712131413491761430287403534176228035974959286745092339809811668513789771029121285740896780223472442841552618239975373430994550627822955500001709432064924106557320228425594660741456634906423364423802899969528656042595322153853079096410772484697783953071313745299416241642623058817230584573999438150627757994400103422752289466523503693400836825317033147776518377716438531844265372963054467735739273735569015980450090690612022701543659610471991358597252456619197081664951880027007009853830387728841249842947413413779424268298646272815734280940284586940240753078229014201971678048179919447261000334478194063552705267614140132632996133444137969281147337432896877880202220029196004594705995992344860027195818657462684574372719216687046053837603609760374868551053981334390151816412299729528565794227942036005628541428852478228848562907163954203518674929685453452767085257516662562574067407993096726103137937694302348149204310848092419898864121533547995884856719924357037958087466885027050483206757858067605657039597268349130378026247532124496242777291416136636810511720785399165994998318891514630678896337071235087407334601711215821673483169560866339806821420104607542022014524150553314009256625451507774707186465942881056704806813266216286505488876154275104326222147786166412905390666567725072004202145106760262096444891925637448138889157386119856232399230842628639116736218929797846414369345363381768008989992261865232561280489227770263308415508484386830138887456050205191159636151122842268658100537385457706356036367192276732904831487845061247348921220187813462703799261744058349748054436236166427582176463430282537398355078574356144428796680130770557988732091022420223380998518427557441442989585370068449198794976116203787732649679366341389708919091192978158090844911324490683168009876228761166102438256327379128958124018513937785432686247154586039903563243384495727228156386844632938251127509842772427845535934748646891001273877951582081438515751481123070150326140342967385628964835320901634490825508245564556341797871266469036599938417126397009517968410705053892723198235107234619039939253448506003145999140624337155603260888698068170129071551858004613171156163202253554156003425536744796525023676778008607417584437673534201864547153066063681473169505570508266268747299798037513768660041809168670667304661138221297348368996975071254389124771081978659096683203821411725007868380219757258156352288396477421836569530458143737891876699548696518479874610218688748184705510357374670696690366519718348383890959145179304414683835518257104728930344232410497010116095457930654484595114155866858571498319513780351022454294949109314234381778167940094775626997066101782913222022166637550465877419822607442066304698360425989668537883305089309198868316707499811943197503499413076166584116532292431059966069360088118394108469865884986288555963836312095002245166304188860288929397376896629349193467793686861798617628988840666246344853880273662398692459414311081660293614941130052308986619668226610201108072617822426311009952377045343635339952726040148963556311137218316605436968274667656507229326847428559185408399629799211600445522591334406139176540100532761334761839944435571820227843562778845000283229582514651652594110678689947087747311836419848471780139604931457675127267991655217326068948825208205615749079639357256934422764429111461149004970859842549215017355061983490257498396249149657287891508992060367692976897891179551790178443022684993455324290803785091686808169523091581731981201255990110073924465552536853849565864243519581634458593806111296735120849856820853344009988024449295993105770027556022489061785552401160197371239870398405420169699877979882286303331658823202247944910549407188588388024002457615572717615054491434089432648479137862674448130888096343065615062326842790992033910700161117369662225664326987511752736135579212300680523035690034958105540609115891252238512743371130322539303929547052565911199391649849072727578290283216847623800954157459534283329775926625484672297534072667885523936672228870299523030072770425403572695063171732025305187590412857194028349696770538005650999622364619567005945010356825631514460678939147761727743574282435091371709602022462063740343755866316121310991050495707058250841905014260583867535049135596349099089253363592758748139927089775273470688328719209708536280939171467634032396003015379886061225256500296586235591360337751011712038757231400983274849125897828436293607971903846889198884749810183994110536194064416636396012001197089929135201003720493039499844435675913672455877655435049588393550997467667383535049800165773890395011026221059668328441726207697386595246061473196539065645028372525177772229129506734455431820222293547142252944159994464284000457846247678731649519072875592835533078915131875432721334302541384168118617303092305602076994107987986295605546971241406121465697068637744835720311266557651749539041319891944905388296142086144622447333108948807447477784951642339543988222240648443485737819815487970880861995611151621203311249860972816472882481468104811773550387335224916213849545131727786013765384148825016581356018386974006699763375658977898581473588047993731270520887589527009875186520574028483165202287933877099495223120253360135498167939010331898345757494593277018109768485899747298987448797019769920838774692630747954529868810622304707825409075722057089086062604546754792278797690732200009078323522523829804267182167975655336743638014721349993787956278951317233919946561377659743141005160167977068897313848370652164474016346992451877835199113167769341328263900062343744264237551161387738219843756206137393302513064419932701395185575354352425324359801563675355410971031980334171713529776893373482022379040095015959480200944388970320378504137918116798919564059129872852690765561922781573027409794427677976500363774111966564871162342068892536354024716667672454338593117843039757085848560392269553269980430788406456964774589491476744297942251121439653123017806600272424842490359945687451929426266531150858486958466941614006800203601925580901629236203435027131397472171402618991008283888302589672161031566756126882968381933387103166789971371460338775889161666679929979069076295294670536135726939868820222725947887740500583488121257326521680973795221948635883906957346473851268939137642949813169053736139308918905924048524307110425099975934280644970903602702411216420744478909380345843279819994271508423765882696609511842720738463295866399857377049482744109511181675623819630475011675110349189193477577750544042545996233758299660557748309327950405526165452414944811243080204087244892743540598521173981040348228393529072240455471725888620251833841847304970875463084453532538343283490881917956000670090202266684605878800912936825904201257922963008938414844363608986272129660214099548336414429847595000656305193528622769579576288213061769279153670546468826594848758596088581317772975734799864222259679096061114068633398277027331352299119875398748525362145266560545014135712077178187485419184949229062362496312399514200039654331271974713961543158785325294455541702088150336941218417743108116112874303075875764626295071103044545744968311495964563396329532847804730573640550619590147320303204423735935760072022307098850872534133112072237382178067367903409744152357178848147246545624980626067432338357300022450645378316916034668968795889483301199937618027948335368669976893086914934836534142262571974202272904563399192746648816305349551253515665786155216249513330717322663765574165913953551135465823133906750610940420058943009407396352128044465315942422469415270237149143800334705718861062669090919848096034864985949915409218798115249838226464010399781970714356917653725360152937983469379649947462750821304920224872584906585392733442450890366282414237834950506026005754528585728135698547106417778894748705958464794640257773090776723722870249864421343342486840546324656176182197300724575739775442259789977048451950045084068622079643186745723603698205373637232466834899430986263816922159939640158316604587831330734001286781762659074559791459498578108655953169955216999438822821351491544758472653535982739539864451350025017553677945341597239195750993684429522727128780720739112093121187423392989464564221415133202267179868880235425455935851566746947300084024490733094942538196660591163047684108646606325897153509322197848055517288604245734595040875956427598301816317089230167570499599156759787124082215681419055801265978679455080642564766310207883191427094144473574705733937964438913440116902529059612509275125357566913953060387332347410129104146697214928678135778208987445570001867689299604415646416776991739183722867925449233669068541442984182371037046891395059490954431340124522438146774947527153915705398542022993747926525105841406876193094848454623562308365879683753128163566532094102297922316035615963406380334198880451092799860284614369968563589118572424929889127997868195876299525201631057688114080523339548083294610708540225690578394116451183289361205602086520794414505522262414229659370294832860305432259125988422463473640822878328750692366510466171320700426161656620124142632872539608844592217475426480385985724642565869739348563201869511907703535767262692325711706023521276031562838762193593561561420221641379784577979425360851818295864742933275242628981984352832960504343283049745556784736073457530205193348664712306043962056829538739504405616271035348793262651076045131996457146537285540327696217035169330036862099507230800480662602329088024462629316398347572102891897855459912318422036682642658085243101381348947499117094505742539077722813407916899996491971177705410265675472812223989272604342571032127648711482423938341982055982775499081766084154339634712299963328279986485905591515211853304756202252876555299909350295942979438878514008819612128826953721916938309115176558672401416201010424489293716270776586413064472405952604062679541848983942439002403265197911763731268752254087925235918685251433361103064661138535453710830922141466207989141718807438405230896536282503226396829941966444938297540890661105249605293605961900650478993182627158643453822887856564068641708302597951186026643369182758562009275603385057021771275877286439845970297982506180323999869442642461664428706195544582320039682022164326159480048002499712826363075289778117260105794406109391290756514492048542422672706554114772334389743736914289752515352383324649777825243135686027605208089177354763210550049057609025038404737877312977100540829829085336050414732168944513128909995373328462700029596887404972870282384030304434381265858831876265029622289361095700367816710270933299345434098836476537872612741961544984297829994456662357521128944012503324151326259482396337936221522587390361273751982868420263832189765975595208546820220227319080126216745185524973843487187445459260050165117694563779146665122262964220108908402266447024997866892522678115737469798603628621009128656594416361018537633834852170777208381811529903742588650014047699253300355713097265053271625907249182713402247057303855213155749187929352014590068522947019440923400941205690211871066527049456965767120847157032336698693796875453929298550186548398586932702029687567689284859799311084567884072069841121863533098774332590609133882264235828088063343021525775202249255327041756396608522006544660879952087604645942556252595961906817589379100450930272419920280488335295872171793136886857129079054491561722195923225171557317903681450171324564769541297924481886237664089730001852380160575378538005039442806016121096505269930525397545364550397739873674215258085923807282106530189941809886427756408116989071009498839686889059881050764803538729944542711376218112689104302947204619212919616480050264083715908168233460300035818766796180409430022490893700916459636464182022193029685878593176551235031532308215709721287274099951236639442334983745251725674634592609732854693773777195376781432978291083893170226125077917787594257936568388647519887528842283761119023247151793206918005751008380107663410967536411050019561491595293045224757782337963938401216814834118808812196434252295460814840528764411840175693918682786625210203458649707583751634305866005235588226629053123725955085908229684910112923079114548950686972794578415729305077186804529580192547734736950740026950320222007185028135571631984738847475664259797082694094349819629299498048220329931616163955686247154229963847582596512367567046557405833982002358929097222614140397687801525143120344321842703593574583880773983784249794110477345326301928503232196395786638946590096451609747988020104605617144188648116124519237945731399660815515682204846278397552230182028466056483446630826485156691420838162548569710367045563173766359331545907384250309181660507800238483083762797285018224948909248517993146766065027473099202258377081875227423957813754704231831804952898816655904242034308406196874054526437103664238219350988192069488164452589969042501387570780258467316485750415337572093743886059035298841741814056605010282255483355165180826063165751081989330898736914929589996520097786789551609112880162999595158341663571847714116972084969303753470395275267162420474524601611692652737298973722313741675387354361787893697371375017398519688111112765668772024902762760950312524537252688746141000548617546983760610839428787682022899696653659768964768845693424348524838095503308744321085944068077551218391429777281655040771904041786239639361515724437919460394946295617230872217558860894373459607348085467997070865586329627941999877330579984898445896248632722018509529469406718727941780083722224731802155110105366969805447001442410998504008427804510819803103546488225988166690746782614279410097340297851965359363860838527246122907881172521226487334980860293410193081186704965617161805531514300383615349717213205328243845469281820226139510722480027342291949420197539907099669174966868504671629178571942145949735311581471066454018337239568272796738196519094507286562456050433679263521349959647877535688692621238888726563114631541597485468936016602121034266123344402123840128190456637770963715056608485917009337683293852306824853804889541529324922729418818975514040342728237715991412683195675481588915121295084417417635944361313276194514364270762818200131313769559286862580933329916633842877350900740187556375999842689492745826054202281903612919280303212379864902645031673333184954334915051626651908540673941304083057293086177305233244326941504085415436207906505405607828641319480029084646146789648163167134799828721676069468921066413803609075034239509255692087239041888749155800601051768960242121434882141745972012076528056731848021478229765476026028105816335428857570526647089760087783554123098928708053753271309402105452471277701059825271057311946417840641337835776009753631677406264532107562533695867143301504484284818383970842022209680228700790497017828614372829809759779169000750969278752095856350354867755105653829108409463839665567912119399729600857834832001831722476541855162147924147122055299829217393917344495286108522503525404766136954203188893585662264400741578591718822321477856518977683028408748210996628633082944850764925717732668696410953458615694917942302953796404241359197552127264580194628361744471300252876497621515317071829746871478133119817193851723674496787040848304183527794089491174843973855552477219982420227005234805112504655477448020572802242234035461984769695817478263489219919579862061554668251354965579808356142569357441048855424167276031581702383089952342482582855360477286873252903978435523670439674172477171212374765837761024871098885497515883994043063508952947825590812686801531901362337483135490800335095973776403597609922184485348871914695998588916667578599251120414461893622730618468132000470885372075807976837806170227375934642698634689072307077452639202450057118407572998311009738413132900202285683714936386502993922376305166634699037493217313908741653687522045029796643919521135482462949832156562019382001972410400585817815045571868510216194816474016077813331440799114003265968287687453300291312160179348715193400181521566813737308455569361875645730081227330501666082455135804185663066394060786788242850198142436414549994239240776587378137328850091482282326770873789486276395246159378172242196206203840489084360693555956033668485275057823048695099824221862639525721556786246241443090817802022908628070796105860697998739519813486779476769881155873586443065045629994863833135230426699904822955294973061893670332886389272518148270255760849561696872945695696714881360115848679047674199237863065253751837867847615439269745943118432428404968828784106145498965070558470756424926339744328031518425672204309946994646708186927389751739693837194418894269447347753677742216705098555645072951601244778153599494368127379512145527192296656093965906246598903331218477813620892132804816128575835021942970920228371665564374890029047677375100519995369905605265801873863187748745824676465363176276592738203162005891453822446813096193037311124923560481369697925110979375055298339048522193101027463970619709713065335309300705937371481918230522195041311290527329762660993372174528778075339024349740148821786610575648059658355555585021471024002588689192555949420693900392194737446481950439502854278374024787090669099957143292681984484340169728845870167614151209809380499626901062733088999043683995580727896622918202238778138342494137070881026837767152118666427878937562555283220552559246318196554871314802566178504166054069089722613558365628565687661465217202338344526877093506966557516758650505723328998355384789483325140065153024684968608324523731542186621494494685817162025114749767598333855884017018548289185590817310391827981054174763328513469730566369357166354600671799440941203068604134392017805428627262441570655722053980713029118620284870517058085982367991216737215579467731534287314217183681879401522172022496276150965417623381727562279520672882830664731652213811523013360493639988619204887027429254138911133282622484221808568369751919015718329390721581974264706059366393337231158602029420586425699134079502638054682119531484826579646678623318041988805403553950747815581585068039025147476865350938384613967977287826310641942571488993272769831972257393790279714515093207351314502298212680902486823329813373832041163888253822008593682879659703658993288664891026048646369905028652537408279708994281322476120227670888253601869345988614303285015606004510614998375110027377495392997564437183928904962393878293198709062650527351101794083857449583215913416530378673072408183783157107021708965138340473238870920319128471702717032613575088571272762693354068947481335848734068248862737332129336643837893200810696451916172728599140252331767701417325619132869699822860264705103818962341923570356798443925274961775084567284740480685026617230028740449184833628926305032012556473642981993627334721931106090229358975362202247361470853842829589270656921552723837596993575817497586487666559761338685851777981830862450039956661081797797957950767171385822421115033515509579394008031001424290115875649814510536983567673370848837937065510058961898284574298252910646136432583202294936696070991078670564962287643116527247560507909913700292138219361414137490277495533847659340714355093497712395175179015572616907595276083774583947923936988973752569843707931475439497528057127470929534828368744523382417056350280632184756882323872022233309156659887091075627515283604793269890399729363874119028696168242586538221481946694347327340087294146066817465706672408286932189082950343040610520375964702311947648899253031514721838059037425592891841560877404371237885505746994783475174113228875815556394535221095761754338952698338798369461246726025764459251665084887782220589870135769317013995176048513796718759231008557241301969065186395419085946773678730491153844943458244947552685397143283793244553517889962979797702336981874276831681441920227564342176731581589672731025605569728008559452729251084894683401844910437228196914309112465754156345418335952944969449129952037722073343087574920870825787934044206648022614146881331910947162196644391723856109333068060560876508855666071118545724619542787725055135615764070593376843378538718835780521620408065003941359614632484325032843539489052979807613945721066480320854507731283600486846624757543923608131533429725190840534219447642360325177000962462260461462313687337072955454820691249466190848202287986509831776483757970681701284834709155359491716576899877792666794573194640069971302956908680776036975953500595866059465270343096674671079701319220732022689747695318604814509668912264070386311164758953673928150882297220281193023990673787965447152866459509377651326584946679353583880543364190469703116324802852270679395068853408773192771425219868276990671861841346042783618713963645404263929022518050351352113455925960632695346947617212696174502429733976691412229305557113314793064182046628002262022725262362203292330460913544339355767287964268729731157996613756178531352940378625527854543649880548308729518519779215311174249356197384925095543833700101722342011843626227882436925850612416722706320772683002867132024280030390318032558104781520028117813182130990653357953666888573972090310928250581009932324888359255118873477520340619289877826036641794321717960600025107388149573618013252652716714886156140020477715484282535214635995770145113058145543065065825257982618388758662969220779828085715620221007801544426022351138280671535419494179530525868503988777202715994912038910449139665473497164948378816730238210430612937033156577719715545195885632748203671795928766322138772867658363237228705806163980769889372155993227994797457032184130541275117791814784018430726681227483603772120697409440940744913010283265388782722334550711379750515634044742606853852930312952005489101788195063230428572845152552093602137305398984131615806428343731599009030203388228905400595473253511409521390521665320953326202226863100420980336290725853055589901833758430343332890007739903339918384903901917380404892395647436918918976765408807508214089206213729527669219714588679168358190050396552994322713823640750687723291750048408412883483075067285426638403717752651169566255329721741452815910168470646040795481065813470304940493525618870193377945272849286463404687615027263895002351315266389140919001911720781877462810656341004829838155332865577180820213633063899621813037962237193113153289553299694633568711925001443832022356137007161128649600533012731912415847935672364649921154903887602566447361620505762322291307634625018561488711744174094657219594571391977617264204602954004454006172941703593705620897844104845058064762650636011641721527169665518631272467812762949447017234057836007881451865746229217414478427477640321421801919636245706233817130501240022334035687743753656029397507775485535763581505726928065480312284218378086034158095303767450065161540762921176244029528928334186820496489495183410751246890552052820222374765892374489894167254994632743858322016939353992921880377560776339775330334384921636961977037603111881262194051530693216058361630122025449369375955713102287085035836033525999882887769234735484943831674383196460754300617997103333210990988768600622934622039179686894922374794666243189404997287368224647300422559125546730513448686006797414255708634047396067639184820107497465916266244683905313988598061965083224475471364080622001844770846106696040121736955917038065157762198367764545614164835834202249181737739198555520435616105318202091824713016053609477665007749551625830164163262580002202879799642720179639746363620407951062691609098067347154719124190801417105926912167482612594317566879017406219481140665181538369999500299166330680289465626308385409434011273409422191717989797872799237717607431593667024650880505121384308673410869373573762616070225590673384486723405799665724961038232496806378697940034475935169228660199008540860083916425497717561495876060119146740862202413454394645148131832022489140348015995671393215249627675382864214710345652902123684167314721548648765322364559454464752540940638495949831427276605840433165833198666864587796924324375952553606192219126720178447206503091586256049044756278489467620344118470673150707797053992495245238317318077892476792753172588326781636664532484793396846922737338146413371008421358114673895155345860748542632238224366348225884263027914905475801608684984988711291174894281543994744165694074345251302436028725369743145162436188658165354661720229873602991712531107239012963486171048092928079263770531637601256592630544390772817872950365200574901671347308655415180005498238345767884823714518089483413795001449739532867507142384931644923433526092829109514226256622544606930079544024785964247600531744140431641743349848681434045182929612619390375092084002475863352372134813669700765509460749301631118121152402088713906248134646522124143594043559643336508397003820125131197923617079764255486933393711607033048511966633444364915278239030112432628202227412872385002666224139145838940463543028784516951607603578075356828263435316372232388619110392731419683859251449731212865900264110516194651007471326483845664527013681130647192262414195256696075581232948942106086934528440447379576622847834663681568312145937261191992873536110256902359553226361648361067994637470862569572535290586352066515201988227415532507936121786933332766501569859632378410941265657196846796386854971379968809940558193436600201565609022502991908455348652155220227466412377157592022747602447345852511731923614449142497426457177796550634930836507900562937724325148433726259578582121110918923971853686786982756166618483435532302451703733467070874692024118246785280356750994611808205142935040438081572378463769006279784980241023672582285800584470883488469834272171585033990988120402966212724698038950177987752656672607170763307160769812262445433217527963670593035951897132917425042661508729983005293907260273811835782738812536049166283821082096896413486704672577023328453342004604220226345437463472106252303670434274025228030457708205900312006712013587043637204251114328905571482457165532544359794106472526507340761273133902802291339192294903723781445686462822397510284603321724865497023572837857286054115612371551899836203237876822610017762382795602896661492123717078903195508045966013811403029398973990615072978531659417069887644736872937272482340573678714859833995109894766973591592758295910937945025799261451751707874833996139785172229213633776178772596747187613635291742384508202238760738210821331853812984563599910618305287757030448239474385836391957381422717840338583886317888836597343681223546342096197598942790915973224981516396210369694230183072040669694314309415118787062295175683477007381989274690396061078767861779594346915305320018248936148427062794815231446083782771312442471081570386879696089399155322376261375405502770020010893416637928021927270846474275874653751773413876525302826879803519159573861530332173053375426235294879566265797859344038429082582522184151282022567723270747304746828677842870195615126351042419727911935560592095709692512045989279012950475654916974102009033135266770088298743152645451527406082826255399258386220864723298274710206378903581099133430105516344993235353965173830105327973201190902667043140761541462787616477762189474446313939529425498186120750250602215788533047524081677676908922012482613000996142531773827221531359684926333876540634222374307338667470637372125699915898818484873704398446387126055761958251507272010371454949417339320222936714791942812960172804715978960155218317537767321864178768371274401982920400981752737986176243549131769004526335431964547066800708754077673301335671906058983309613471789698255156274205207855756128696575560203245597773701376053052994177433592354985808357565389754091228940347969820596092126890753533340421575134800055332533693033635326708130486574364479825497525604097814426038282004731844371285497517968999448646078570521447803479178264432718916806738037918198677296786477908445436893688731641202225719421868136753176543597147026632865290740872976212713456968670124278345658118644571764227842875880926177984304721091239570465101023659118951300563631503400281061223812412393794733986447879086367910125761165143516121225102356087954412383153530508308185343682660116125924842482439047355460969281114326635366349813532278824713677791117999456114152434006496163556708925821458515549945358406850206130696007528012009374601672236342582686899853745520635588512040189669080120568518378654543906871075152022876426842319881432107433742249560676668397823410037800196945904409829067219108281141850371553499568762646734105167622421447284046879642760604348022295624337685360593750676165058472737576249187450564207716592907317742369677883673164090539044447696020794876176270088856283364667582647907207185827257221016638066948959854138664909835130520217721809196433961792278082088989174610472234701552439272767379956305483057831675938274105955779524525170701520953187415927558048397732675639933655948810408004120228635406642508616235952229582609150900454744198222514163160518869023293197018323626929116095533863778448264524457018525534158004209867366138028260012512352203148258090142341569961242767044047136129185798574823581375762797920007911237376127030723191956114627247738681348162770128773457343217645600579959852263070284990089458701004314363145124859744462330491916071169874122544984667382446972596453816178544984951517440149499398928161052963419897869961971025841886270397674959514696212670061662780431202214296316621500705998822970491575877182128416180943586907155440656968341700042554053883322002380565191360844102502595504508889549377065549370690046383067004338628495473023260695565235049832602176870388821557568366690067622336153514306976895185199650726143097664828340685988495170620515451112552557044389685074132136043824672424147889870492945041351347375716634520775091085501366990311909071638087800427673400450797150741451913462712933364111763827596796330648533322883790820315360275817412748726822022579142279065072843475537387610025125135301464958260362025060651998098037524826592754312451275368062270783829887946960578454665973794686047732692218478789734733277566855047824623237662443332495978808303089747376448546129334964606550482038487250370106817202155367242695140304368521885503203291642872050560286782507580270338777540193960550924993879094310963039551897611924970437055602298301872347709384408865096951905137208418724768117396388002700586180175453264465228396557687232452367081271411429720222135908412309870111610748420414403156493897609458331506687869120325390380994067532576021124879145944939563904169313202919447488371223872865602925292127228664142637917231517497862856865196893512430437174584761072202884278187339548315166746251019376038698712883616497405930626011921454610166843374856889987368258929634374455935737785602550553382526233336202026140678290492963277084042710388904174581154504301203524250990289207775640779045471194219101486273552757445742618709605684349983819444351314202268387415885776632307890997990502596149378774638143917740604723116314251243008468001382409703257173997953459792417356736109514047461554683778470761146261416338681778513728928279624964132250519338627125451567545724668569721056361965539449800843526397488724599683734898357961928676263406138050491851126628308191857172139444805540263141261762339666056650022739036786069910874972615409342265870325043567871713334188293445788294036044052950957756233982173062031872779506822215179457673719215782586367042022977763793861128113642928126433728347826936647441065649598395713932849489570005254705019257450187176904732829855545372363194972810855518388545573608679447325431085991119365132426121493295333447041779516404748795224609245938811307410242948746708469334980178296504351163907573188204430647644874535928027356480827059070414857261305334090012310643163387028318862732107558049402039182664021391987962594106730421486380233296117632925193832891057482704524585019064665872953051135787514812982117728661915420225867978647760775315274054431623636552681932097533677338320946552907653284709084926592627689800291893747679618553905219022992093034001886603052199484056801817145159452966532334848797252258642697059200260918112954718904515660972150945257041264378594454438875723759876682649754329527725927409020432882733294419021689870764828890416843866687931405820960233474226222448276578060536208485356721615856068713749587048622232151948437146906190614438921640343870637353720416280421324957783494546393007751362202273343582490881012722099405299830882252202408165262035719211942482284775848522885883590554594605555298878235279601415166536800640226610193564164507335880319584229986941443748072314862467361070931565679694983543171548329640867048908018389535078294953704463268249517005380043296613143605212616021630720503600398301709853086618338359247551126163469039418358737598812992323454583646404182720778139094607528490922520671110555340283709538074626838643061327497837832329494835352353218088444650056347549652022601876650163597579996760107890565231789313528243557640983008960929837468469774353521955586178759000618305995426833754908275033841177387857464392219956587707795673786125394774674097380734339464107361366881896119496814061332483323358283719329159147961702151259359298447853270110524487463299400304438299721278729308006476644556399629883721063281312839406048113091970374167023930702003932266023313134454462119373515377471140884338844319341421850795382284112353928396861937392434265200514421389456043320229694372367500657366194534785611923868471446299887489872559837071339017108818276004878892095459221092318354886245622469452055623784583436881442721954916440834890188751557700254033349886199510545009671953985455509109875852979388526350056666090498994535794729245102411704218352331108356461310624165071281802412311514309044301632517086792488647794900680328349499374651550333694154002404713306882253738445221613176571847537619720149368755091079658287288009969232870817483010038830842888889876356968449202225343349689907979855497277310457470468278642223117650949145644413821718261377927959105248175554650894025640170507324632011006468982077603303172383836029148950707783199328807385785521011976394442542160638795972816450397642495418068226942871659154877006442354788804118355190029527074334126989616346370983836634866680798221156599544943691002666280997051926306735067003736794975501498192132163677681142174203267759171135055874674610251324940925717523552042671128635397153357646225331875587645578246022022001317033736842281429118973370629408384051022128687293218602888660732133674856354969634081838466123708392497487335539554103508231422103678333815378953647499763785073412729195557914365212100142764986490579606376866533636647022897705439807820412571509756830612336063870979062879231481178191444538531500771109887485316602356938214172008598740861897747744029835559979185730554398996725230521513867115817040313541993795467262067687574890373684160894260392575150494151257167505699506234478255722958510120220704514727351565604963327503858520170548751788338634950222790112479115365913471148368291459488296125958343479214960793452545310274088177620955147140354520288871705032061968599851164674246503709212784171991873146449111535002089774261502336606555087827819051671116634034559053001620692850825744117991363798882265159045393381427030195125443334853438160360379606340917675855743601485194868286533093768014927966633514954859634812283417550817579360492514772017700742952448644011695823931231252432931968202200957851664738308152880446846475683970410606987050341535880004065281527960968308678640517871602142179643140152628806526184975336149269983357745945297479173102122163115589161402296559404141478495098631401904365899834615262163094254823256424889066494436966526824383917001306102365654238498356423495567163459391559228887059364227960080351697176573539582055587818203674961970238998192951327684086693817980049141786448054185188369393015514476864083374688522104391502118865301296914061722594137132120082022649865810859666789589527382365287790612502653828180651605612999438471151727963257259703179251026257163572491459430125635667933095159931212877006717046931373306727622208048271160787163429664868199039577820221051689453473348425099611775587499908918194476861938714553062475100675927142018371902802461894006203336836653450595246763096295733327669203600899291550020630075308846291437796180120591960714980151016972559447723795356663726869995919686966969136101046554301065057728562051034357369185375991920227577939458819916364776044181931710812661903580152946302815092131473005945804442215800425997910434943637606305527806860064515104982619163142231687444091993048644076395061364728002260338581504515585535307885928648110006059841981864774734955361716006589840803242500492395701513039756905985303584667887218720028027313257974896003530823575297521990883866987392547202905303190124020939715066169218407677939955470583864473382973177350072151361326182153619244344938138205456163228960524285834758734595226202266878012162470984227905876420789934578243118638959009231725522197243496935143238400679802458678156670651228149378505643666541360381487170779047649823179030270145142918799208327683734667028717996465637078063277194275100950921141441267992476478749818973999963144527095251429630776770245322498363462439768010870130543720035539674579104716384487913082966127073702935146211854952313769613391410838619082310975563118322873032922624818882888529753711603346888461727156624245329561006744858535427158597002022164537289494308193857073817953633105769495189051302120645435584924609766592523947971960022539043173754793910202609399388027394681582321144589206773643020517390532262449908802429959167356797089128324011442690700967784250680487053856426668419673545806934407766828138752470366739259675894015325127257452383351762549944332534178417551755960706763870011190917337196296262022702266990733497590968283911398324630119316533999581197675812062130144137688682080185248976592497267356134437722043260408002892120223314052128069099530404024639185306640323413456059558441297265386346311263517403499421034657430232121590759809490455079533223416618538102012859588941914143606720480586507995444108277055853752734747777441879805287436786441982945709220514242017778369823260381412025822764068209975424380126716607124875088171272695996029379796317563833619332240024250634261599404516189060768045095326492297027703864970378865569153029599291056077171487370472633305557767312116515161818535405897186048198796683266966878202229027385271456646022887701823751017454141900210523589494462127317164031288319791725241822138794577724568826332581348130457139872572375156371325385582118078714057763114888891613200037796830960917934417222300790173615827683258253809785418827302330855097512448081986920794885695081836856104491833812178674862395085511936937356867869216126131331637769553814829702343790912686985589870135996071415807867303745722776951243493843812045342570462047878268326013437170602180587615741703630747076973468507502022076965589958797634872417349421681608096625105938147579545629801998486701982829471774890910953302595565257894565275415998380404887704234213277354031195274375336650595162108799915415362331725798996654695730230423142447465081672663702038345717821588793433424668468971394409473213178584397813338613827725883282978231329852327980831574240429361972290853065633866969504071232885851219354113558864751949576301634655876019663656166309002384657289076859990412695536172387601982010883457819995934684742381120226270328772709442261124655711774865218752977436372577275339806393881062315473059988201423365625320195825407665032788869979761771369731062192211667960866560396833452541451379383230672583680543172300495219488538468535088134501397798126970100147536704078915548055188894514946328263734689108126467357787406327034919664207995445566432659472522717396772929675560586778964206862551823004237584696424613531143153036077987292796681605646129086847097119389324365603761595445357823921861478092725412269993745202270280750499025991982990276776728422407163082739401626384789469200359709223470306483540392657932454276299180432775877235268358375061743756660543681331585194208535486801308769724903779994358577332481847329359468702235249931769940105357699030695791515395527118533852781705888189810882984195321381330898066588828346824728281469629362560757213606748126849567160259524738541564145021983217213823378825069077206468502044466933507226010205746481944298002798632894648522141804293514130715114577663730933272022270621285267835378148089549712160524443523832364713571401627990735680547750460427108349092679619428922426813945198848748131798910313023744826110909191464623593801929212830284124476322689514712843410736396318169631636502212274711418140810591474531092033036511302716120591035561433421808920969503273964476561391344268721843895814840886202647884438796232888275961754085897308913804801400794127497524987412220691970601703526954982120755580700263071243824033865936491641196626850659100386361875918450020224700275654515557848317924687471964039061709338665202604438998355634597723696525651016518979453998849843696268414256255098191934145692619819850914886439558528666265002604805896535136490375547985670022812974450876195465881790149816948347467030296121138068905202545755331706110155765182576654824695709830065205486376548230295773645843533107966993248747569733417997181570362139514617006146296653972848157860869690018575105743165406284597897604306159601648428539633875787137523263283122766969095870043202240274652574887194602068115075785203129858533158017191655302740201630678141333835894941233121077524510798843404335266229702558353080658676404429740841400299828015567563020324842489748748000340772167874087991370196309349268562150300354135349473004354221271075088487927206751780619508801737763424633128192759357852570164264574613554035427127811914659657442424389958222327388154501086000696266235392083096043125233520178778396898201324498222155398832503912358414018289445619339842441017133090988450612022385847657232167990291742840652966142971028195762637249785149109969579200346131866914940651543503624817609463335219033479432125915549911188945622465254774067189618883835433810843608425582786378540737008229583238849138674496559407128719287147230517893842030011052034927629913456216752770394381094799669450326692741309041474068244876474696215145086257669449850836273578983894818192732572903520991564720475263067596677110066120609873510846067121867541702291734848394748310877027623591324681726671521820226610508891982439762892020733522121529700414652717872323688402391108350954115194796123530499247470810051280347961211269643600385357831384282642277892429105091742763363209491540675405099469734407587501189923492013530292136448464179022446743468308767843092713624582002684303419514169305429351657027419749743036492617799801941740370128345741477661452837702561113399226553372281317241646194549863684042163263015771466810260418489070267693341469866140600549083049101147042533647510550654751062198347643202232731282452232211900207764626678487057547412572525561083006947073795618829808740930761226464187849178443249790108415571003794114312725799299244534225702720532276594587141417058585943550881170014627011806573393089122127059632597495908578824210703662619830697585819533565035542179990906914929449071990386069973113996507062220032138390169677377544424654487462126941423165163019763957602445197281485666168719276139843904856260856785731313067130960504830068125501768322988676113263356507697989350780952022352487449669809295516461995730565676172217922363393038384508265374209508927696920556860705038038410182858617120455961371087650272425758846983835825486432776891448904955192800135141989706456116114157731987743385545215084118122785624102854851996825968070290178869149608648994041407588955208197677744609064137976698640195145613298765559878643127434297594231624315051299106687507867199597214485713143160611545718672232690356708586191036357527227612377907680617440357768063097494930369545276881151664920225568222560749690485403083838989799293546911854877002076189579311444240918026901755707159474379631854220975142901404506577953373187347511972267490524067830124869338199019647834349065686726991920195371526592993836996020348323410750614347682520898731035954878731798608750375522897859258954833525075293952532283350471168491660901651059763578287608671465713155283747202696933569776080909175065122323450215873148066402462153488589237964478064431212857055289487481675034295371025886975074253430669201233202224559634434830344862612984866031964452895775807182938071298439118770807865548708375001399638520864964374975002971544355269731664970213325588513257688564230243429951606218754220695702082578521296455783696745306164925235428533892907792689229835837328232509371904204976824411107445224500303940226258352601771325197697485569235391586908633842002238547740171558714462937042633599467884740156476175695010754302634716382417758103209706785411788508899355503370424773097318944549436534009096395480349821372022130560145449948172611692448173173053983193638420935631766472372092857815715951011622383035149038680550752471525611930550211090698708880482159823108151375972829629401331895556839649275730024000354466716359505842265089768591021217889630832788923307908024612260409927506617609901065828104617430504162358668566777671236149950791255407188344777281667828983138212688150364184070910114522700198362054074406194320006761866786434961382867601659540159143561804270824795587479634329761622162751530899954472020226443506611773541384294141612418239943440401490128292122259977569495446184825853723806817996263440127163962697603555272956197724208260186038191924292721606596709312714639985444463464326440365110041535994825287154635905636835303396510737355577216327907410701156997652112415177924866024934081272008936403932994352554280279474861162882014550608205779947147646050938886228647606604340107012469303790145559730349653663616046978032341977992098793734903650552390045656145363485475654892890558093365613643202229530412812757262831959568310640705440295048953636297909270923557122790285192969562697363137740628609845730545880358142129343426368263918406628478626643320518518641995861661696159454632739896211596611239069381774010054385591736605568069015744806581475429399559436278025049381146348222919927046763903782312757960982050766273742394021825150080813015300598725548878365139095958286863610037752264382972094762126472899878463472535920296171391291752222550594593829141490700546086295309471907179732974442022118770846644309299381268332337773619997430551707248361015715970270677512173893701549112913679671165502698020340589004519393032256396068636007321196203775790641972448586060851736121146498794104475619979544256401267896610569594245398404195842499778782352822905226409539872589138000676673050489012956822225185062111837793100650537762571089570671049528004141904476556038876312787494387553209212807484014164196122095121265192329695951765544317712235417041972264973347160355735537001490954734111871543420225481082429630636613162677583225228449697721575657917699539702085448216157057256101030952389376750309462323389259485633304236030722344759874565170551418641464031257309357803325256281560254449633965292403476245565183312318520499392056408107004855355580286645683339282131259513956214397643667924924789848913924662238753406272158893460506236573480433900004960194974844088837273841022342133988876699733265454389468257517532338731495044672738618083131311717671584249837656715309566706408500267259406579202252228172649377672091872301517232697288519862460198159824876423027078673730191267047399410727641322704545856556009775740558102247130264101743404377147052360937841874030007634195201362507479681898072490823205912423568711282401294059314335454566246149578014208591724276007589291517495404395310184686192966347496519627410363018816914834387372670531612348005074309984336673824891037837472182615582550356399654388072927076096110763063243204735560068993977675169951338451064100855714719428819501202043322022985578941252961632526202698548750068921411930075489019316056949722974395482419583377826906552946879034074601182351595688774852115303237241464241588825733712467697109386277076329471785658760096725790180320098157288215918463002760341867771513889448035404321342850424433935774920167173961100708652575283044926553920104718300131328895778078604594895024458176895968324881544364809554834124473377516211899936623875913251149850149799103158479343272733103951830904016123973467393474308581510592819558077220223927658813416479612012255572739530531651662693611011993524926197088444416849797949545078172014346787525728171687824067025411413724225343856464832815338011623713349592601014469153072584219665427670900182523176144817645456400513988652701903841119861077382994487683547992409769035343742375347337840701163707378211469997929161742075097953974370382757490502573255080396177188873663283099536491051668716203306081794301865131895446741380118970139694287069660303253154441639247875366036635511208107215380202258620558965619597322199178331449461850765721109472807943678616189302367740502441316835775309027463127185168163922748962728909150667010992787116138149148100564549798067686311510606577762911294573097780810414364879172654544236027503258706452536720221442158785233682666739770415997698545638532794855021657615686635195151690600137442410726159627840395540426416848356635295310001724426775085320558435968063194397907585899339392892882604271653904958964023037336570042834915290282404574083040970283550352022185541458739010252776657580874874433851245891907836214751651868592680278654755319960951240384284049861596108383615622334174173310977519629606436867276047640527036962667986159193439620356634376567182205643503565959381379140136887638068036364437323147304139823241887666800085921106568909571924557907490745282315837416137743509112265888804950926566775300347668834252571030242875620391345047165964450035916584920153291911945782042643349324162917339397572430542345752817308054979015678727655945302192020222853042653022662549386892142662776075960706317406281080066974694593240763782008081742624764322771934258064213022214824319815711669555686153871313629674324217718974588394617168284712325519147965779446185019680800191230685342397874959957624408137274737335049888222715938928415239799169359134924786026526448180855232207591632543228019768768563565461306506797755528385458414500142351373351581333532951404524318461864643115135708825905801782725568466784738330599325442876730405211073009696743925035019202255740454847900041645814017937434471155092126355930903015945465787027653936658131959094414229577076736024519920012091682243378394351496161633384985111558599037084348885584970282807677551953567669374051469253777756075827731587322396125802614095994396662857715077474492762783321482275827881127805022896394358335790566960807379166193443068813175168013359908116993109954224802123318519178412785517231789932959108130714649400048590475229086517556611276940159596434800125474587011372948237688828380475902022557064836152753893209875745263650738723453165688341688007153917389643844996000287488172708199637520987637202670605229739085594856934627055983018865355814136776566224822669303788909892961076277829499985069451189449622160332813937971223297757825839422990741861583162627499127370955533686913794780678530016391674711377066602955239311228572892254522003510897895181991619431699289039216565324465578808448820407397627465384261127490968011239152533410268046362848266031431877310678326290223614287713706520229635770661499499031161561227658904771748047219923090316983144564391735128905025115366497319508790176726051953762399857628624768072360305611073484560364110471640404021243934842991457583035102850067758279576664977000910894484235647030891037989030446463762815558188011736604538867310934616950213467867292718995306756290042686553203225847398141173033703483657116085200092469872744441511822821322432506002439828016714771034351685209565130522475031286681248492580595045640247761390616013333015689423223202245148286926216146457801029665960409570832645312893968572791419036046569968166463005890722806094387043680867709617829323669554662871516938330687654350792317569776633475225551411947183239225800257657103989387195740970322319161377362193234128685137523961266447664927397153851505732315974877840197662782983728690492169686482750329943556063049652246667187305745804247595353368471854325980841218904749028738951860500200611875395722631644524850682139670733810266598668319903963146220380163800245017729052022202043377085497828228870259026857347034101480044809552031752924723568405824290203553107339813352452923292651382790609646630521260769941674933804050104406123405094834732443468783849243631717382042045424872958971397710545593780608520714783266341828031592515893386979011590094963841679298635530911327720196384228965874243018670544217533395503029556185767075817218399262849353442523551692919068893865205497664530158146418466083408084884509701747150402813248058184178584680908381076421847248787200993920222773924675452182953859935398508996275996822241686281639134859412782598245645896939767511969273555596845016700415692021836507101703692262945308944747453179357542865293143236418182667470649200878765304636869922046312947702806488481181071498522437313967223598450893328353415685934096657498192972667882423300280259672216627807249443797777519200401368116329145454618748610064239290955866917734462338845826812248596319348318446321375764941643858284178541335928076376872489902393293490737565197731448447202241657960231458220605010122658482487030521589380648407158742074263078317466989008578126878959859042423293592945166988100729840542921490224758334504520995408225223460826987475295194035914853909916288357405936416493715898417415428620404970193486967035811286350112026272471954034089681878353815298582305119012185689765881469981686727755748404171788633719272187062636749018482625247260367117020859880093321675909654216456944273321795488344980994732394275070772009854704210167990597332331322271017852672022368449940741468715353786294214574806041528511806660205719307036197431010959804713528133698486610342987554716036479547965727907574749500885719772235164100051285343807401646910504569917587238859264569632886620796281727084789326993848435972126565365730624095548261686222810072201946568930766520240014234560783546762422460803926696566802693823078321553310936454107737403827642995986569020064976270414008559724631376211209713430825573521760305299638237958625566834438743387311147286060443629015193215020220553987855810956386889191763850740832404677594242827295793887783357834014616591815172689289245721902339778260881033637183699067416352029777965445983810215815152214532130049903023044380413391428085042565098272943580379723260307685417049312936356918313044883874475806304755758436459536103654050983753715534204298764152718917818704583436428565896654797396776143751757077488285403926713904603832544364114677458320106235826593718177709472795909776906100220004660543688957904292754105064871015849707390202238677514381201139453219994916960160784276137362167231967538889463197107806962405433953186037692809722107889250107760532281424576207449918657440055333633497323626137390789213355358769877322594472410833366756776046984134312743812693511297864194337832223150702475249773696793357209028657044799287899458337236033065065203433592572169827138178612296461034858595044654943424336401925495591927382283000539450330389207782717522229148057164530293960499888753997198042879016245569707039413450584896868565322022496238253911814104578415321641941856715263048338568400270750179590426528757897457116901764526929733721473975175638491161451964502507860048362388222381494024918256196253839610179454268222079757118095503233829149411321907669919135026535956705044980422763934296354900138616170093665684033774616126983596502762675269361032506179648848435621104570465092200270449011495942765174195972352816194427434538113632610660138781384871512590026529449734407185922612746326603942839821522188715520788848728988992420223765228629892943824452414403692176890951537634900158767926331748220240833434248779878120247758471701190010931526916007310630994779686480761264586213085373345789375251465132715407540997906349046584230926306390226362215853105375531981495922655594991012595597877343631343667521590156542317651561586163637194228459014637185472794949484191386042630365892251384151636360768358368591956503888364261661175239987518951862210798845580900486952577475764398803108639664437737172342150173690412554124489451176202229161444275667424436546389581669998935040808857405218954790514455949512488922845699882739104937330269463436627060129336130615799200740830690065788506111602163678029185759507183655912378899772179679695832141200685626454231656714996960910055009633826462477994895690494310249947708370404532043256355396789076351346936298754427968711312549867526453522483869018493742034338342662858360354155353237282544332210169870414044139990300614982329435250729696841111826576653157300520433574681083688005368161772022846404203513099587686297481916843630391905228178156093230267239223244180149957118429371068007331466433785785634324946653405374637822483835391452521704202150693257889636018770705462623657735416335320989208008915347302341244094564717792948866872646574354393664879195602082863560440322824568775049007446634396496698937813957586322801084954144447060336947601432189352683252661102331795727988724035060026109037724366628863817967522005884366523675459936392637965705781880679158981492399781708370613572520228096286001052249279889335112412234483073330085928693256509901029334489543199151263248727778159098298219627738297633082277058942170328102710639448715353964218187943667613233832308873365730359620213640833036187736267496019535038274590372262254387834430840446395873128108634904534761535038384717336880683830502936797183279846942899855481426418292983300755506094555607271263016023305257994634654435385193624863489598809211563172811305559300551119907855279962139737323786686734290990393196511748205589202281995198468641180685679128806559137284879871476572471353508588904831059821277541167314229500019135323666744721363414893633648563138064115927876658491097390806199150155031737456702015450542647388437305982523798435164533591712597773815630939509592347432464640841634851100493952671964257418496422232535643679751829133581611887662431873157305386362259575664741171967183893435815371647498531733775164778264701442763092594831421597314614954290987785319634678763660025568572129398681230971831507961297352022272230265051743504293928915770321004951238120289446970806371448924914437563223218183612704347421407778193358513839606033592097789224692362926288476502485581260676181713590994232048302413033483096275797122232183532288471365964485603404564032088138323400025340899272168476470000819338506982132259065394655988134588050073898995240486835313102466168910511584488910811278649789944143407062139540619914085034121168179304120655663235804745773792422001276781880003712915225198237188770891030825152384427620229735100287268323232528033949509866641333903204804466517030917872973951062965788239571422662686825307688593564586411433299605590644618618608800250424119029031996963197643444433978464497293953501640805017261614110184720806077831671158248817139915543002797758415586496290899401169286493001178248333601118688016087588869085034635777378774254421860517852548619067170023453279586258757274044806729275589663868538361445161082110427238078970521169595683826676715501933161510354222591193942436949279796327202200289607345179005198978026736742212633928876640858646671668051534541766552518104954478598401665770407153253529088602630780708532365760570664716620748974729329584217276513021429474630627419303069565386990753784628048627703322893377767762229148541291257199188314555698172516981945527309120981361933836646818176254373104994545079240992520210895827670065819963221373120337349062982487834665144601596189967557879518300925619086246871237087966141893567852235588606932065216425762385209918029589802696912022081466497447920254450866802881846593271536830770452748115770777315479974891454502101204883799839560646767688063580399669730459185016985958870805651302871522199573810277052892297126605876148348728486092557048088379991876802333801193397801116968356124169436322350451109048678679315558815917365669461917907836103344506640447488211705207534340477336562945811193519926531406286089131655878312944387644780048950967907924996215710962617392785938852358812003246304052179003621331757999162446374824906981620221227423748994984687811633177598563814350977612258846933498371210334469206140876257590145951447093811654547685034117103719326615076316288019428920427267241069319635624441308915047027882939719455966467789676214036960697071538898345770708033069500127404187272274757888560664608776556661794856370261982819144076943751139159688595567502094507378589593871280866996068589241816253852901709698002086025837015637759763798084439429432559645521665169628261532549406411734904494603455993455308347412000684228202294506386927674617876961475006426404807409282681689109850225216321458911208327024338180475940731529497340466594647664187139057723959878355953910040424311461096630652903653643584278800812743201240629181878138780242099146738815140029738855803151393460122425447745130500861688732969285111436818109789776469547860762112999120781956063523860545292592746395249658261190572849920080767714449501836602344453046482188263547320198858206106868835831895077840934376683366830085157732390489310278707971306423102022720477587179146575710773397692346141354750893212475912528399785732586241731777211996378022052000161611229608453959356147587245856350485325848749367570152030678797471596772639882575935153825309629012193191947225039749119301371155524366205250226565388520903925876412989299909699507464868399373329799938669844463205088951113074760715357129736911700605352948452190917054196558225166877125684099389484436373569891656405927950901341753466179257588137995746796434300782110694258946494362155328464239427720220096520499220950030142266566988329341222514454071779168187739686164166688274691831629553046557451462535608179457408710356236777013184826421502903270193767572327040171468179276633305181385882810785112521164702888325404837453027094021466848691763264662731306208594092409383428569906049661841461427200530769626521873087295339790644331032490771994913778848269807823029934181021891786182560699680368645040122080075415210156030562303294915118917080560550911045374210200007160668248507075770141430216317202218820411579339316922092286614388028063598070942324446835276477018150992165149720777668756294747992353107359086103207712719440550319358983470305279074452753557394628234647765493178718922351860167268572859034902835441093323455225834613714605744370428504254317512032790187813262281129429890816583453838581398725810069143361281009911933489355136123563805927666716148480396667828429050267411137398421494146644910048387644828797470283604112680768281012204612481442772946314601270016366149714840299299222022707467615390048889689942041686454273374394784139158070926938939849875665137402703432051044736334999708456580528666637533359733324999293158776407121037180860322871616046988981765084743855525473999600344358046997769317938451806755178054537171705714982523118837020906499455425763326596357204094572777414119085807978784008474540164067494287124802350157647414941477612779002105756890825321663666851205401023119064791030632918491048860514720123215608670605577486177446316249039256523732725136846447667720226956171046463599139010819523914406930221600390407932945640539562842252083491659388942167399056787566146263363100687094930509585490018420864569524095262239739879815728535499958558132823461523941754814106277530033040584481077876120265751593079402499454010996752296304755232761054027138962306725234672704545976491533589330167386734753162838072768688383700958743305644070021946876941964430284797892855427582061201029753670565332936522239296457107555294600940985155859951426619664401056651093869147817202266883194479647656757089628335661680165456732774339963274577437215254468019907848029257497337906102586655818930021652256147723603318789674176210776258211113541265092437545906288472305540865789840409049272514801217422577861053872875870179923354643463775054085150351992400895008976197906450212503546408899986458903067751773334454760847529450858904818322245170777888845613830587185237576969977281872194887627292300699105690862399035913070665506955368798424886313019957947474140756111007204521755829942022748858554422712265471374180085227251837733634082435571369660939099597928993768422401431058961682952739264209287375201452779887878823070345467440810903743633333268188750725043175634046364664484391675561224755459653093085229894949204946425231924244638700187874284596300621694090482253216405783473990538461283627441864316337353638343403440856963122988256015598390909042801224803644564895212325878340052042287608389586139154114973226028617236125841651807811009804323694263180018683366659573420357598620228303132105742663975679436162645725785180921969775138796417515792814773301562506019313701451731751197027177716188457017103572822425358914644396601916573188296595946473987859434544519840496689822494761319605032957028153924237382341844398049854805885177753297723907931653413589368177556263267316900490296688311242440871882228035902344431139228243169995193029293287552110304102458838249491933448687455146578985711293920894525671511900757068365820680135820448998779460276115743608881360386237551048908202279922388759321101360946435237524418174298526846297299664305448044701088826722685410978586778164822988018653133167051034596485743362003651163952861560115237168623345989701858083188747103520157977417852051210566553249994942110521197387963556177663619591429446787364437309438854935889232272915481384700299524761420258713765396452666184242724732619134746010142496070545054030335989073152543776918921748669647887411005561630191720270283109106575874356720271558400104600282593816560155299179496932011482022797324900059856340296295899596647695075355320517324194665790568515493715390170173558051615119625809890773580272034165872207297944875865860016935135738280974635590854920308161429236598101751944912117084561486405004794370011717593148262843249841595505797211878869183216084556574490652789681103302992150680198305758349717574674349697176351334528769802915078207445694032832116422922039341668878100177418764396509315409356414257055043372748636582930027237689570799530596342956336655547979390561102196620223231036218882398216855894584723634882468714516994917417130908153607064238301647232655410759537915918657038144285753543451686376798906099836034982248637222466935592793085283136492533799500096370307736569787687503361755164755196656339958806201368821636449286301283071646043248491206912141894044792340273130817716333967670765680433255553890290670041831162283972447381829121277827779345642705610035147351002142378323865038471770517037814799828067801809808258753953742977208163349929073969764251067505202271932383853840220152461101500411191088857026424084457071885481643294732407668301446134752821192777135036405171218291228692974413595197697500169360030414041925067566325701922756056190426826540199908293147830309879819862755932805772469154785589462748879662423751800442323673685138608445060170820356793398312094441729592925207714093546381040903986256527110118059068024738996283765945958222253257251337470034405735361704729892759920803670222081275610847707636006387692001623118861603970746879719643002022547056581524205930758872051510385311131368096755317828051353412278652717805199015474165123344417698768367688550433334032085818282668523043960271253730211913517277414447940173552084864600844892202448216126538997125729510267474242420315921480995340427149906765378536669791445042866367360778528901202300882657515559034137808092022657656370020099150352036849402000540862103366343234550412101739687522255571867155850287690721093446851885899774769227583291122614326231235888819256393713726016256412069720224813705231994534519086219093574335525003886305420465210900157418939495737493566092269229483546894152274732782697524961564402966605438846568512164799772839494630087804628728853958936914847824765971474946928073768939939546337726280026558983562090389729853378721987024857229143861291858405145594954062591242003144530520204819002534868274434399344460244385285524854630855441192098785162081895272738034851393147549627053455856762255891092803968281208473502173025607746889721862863787123096526912145847202245682284583497567554491910972336170491196321730205536017475266721288794376144500366423596802558301383830639305209263137786811492906560260647312140073830445509122100572544464610497528865684372828544858071463215939207448981437921566405266464075389308544409750780593140090290992777017463430052299306483279173316744160767778136547435017260471166922310659450125430352661231589157691096964275185833453388787061018537241626937986240673463280056269183040479109072582512025651038305798861598776819950141092022545753222991878042751049837559143577099433366959433296234801551418236533138169875312000854052168165066643496471096954556584791331856089070743692689133022620176386317935967877456522560887097527811948045508278448113021596845390108104522424258276942308995078568075211530063659615652768574043338653598075954400726857949252540684351200474722250163732643004501263303000160838254867990943473141928782925036255570504992959986531232550535964676255724626262684543272538764211436392001483664673456614538046420221272393309168885168561562185624053353390772375301186186282913141885000620763113701925075875692441618205497742137111244802084052188838054976480074894763267060228650661718339659540940519973461480094565046493686512126368461593962661031777422230191813652436233560936382539835653425798012529307913929918184601349932116672005508654061202490636492340894949202522071618829418018051752798234390344948822012365243798914525942397100879982802263581850960802813187195046997930345173065666429006730371691056808202237263651829426625801867572169308864068816023173535387282041006644584319718985639181967343394503697320260765425075512595856398635295677237918485511768556975661025198180125882627001298363362239247649616402358356217086975429333191871578791818973504124568133728113816444034188845532064463843307244063129743121437840932226806628435251221167385007977537024612868043479491962766495393335965093563450425016849796647736080231431141773846009666403410843507814246718097220261894697761781908822702638160216502022674875834448447308059307730359909791691791516602471853270782658167839964713004636007292919489206726465699370426992042140840192386740065934602741035123321867707389675245114781088395261665881777631139758587184360127664162088118534984226154249711469176251879098541505336200732677383401145836945174859015970825898378406413168779161283025881775495070406366479373023281033398415232784014103088275955776385122160790456680522187888903593998165508755267736642263159233652169188361015056281024370693594398920227297157991194885560025501734125840507763611326521493780514056239606392612393746596296666902511775945506635139759881822875487731422662665398492640387898620480340998872593036047167313423594120665643932984517544582406554495477472341911800082940806759395417339325594449756757720576503963972235408735845814380168471680154786859653170271083547199266515212546485289717049711181194310305667226631314329512838549828128685743845872858320592865347615475351023063527282003435510225532413314971475361840420461202259420742743234633003145968654053492597321845236427997942544710341261434756378749145877134254896921707442028867104392783562687236096710405629859724482081959277832177097266985450195475882855478906121931699351894444733493461173102864857240744225924650543684588243723781689392258994942621939606095262533157696904409225361133303665422081372579659960914768508191890296768207744031484067322370525118048263471809262339860208726289001279149826093140838395928693484051421308338724971047149764417486873814842022455819387139012032566635431564815463065861432706086997425895344108613374435807765838508440349251218102006821257293713589474851360801244497310451375261446769294992618407230202334428544227846536576623660953961254018519293503536886263935681504904993840802853577901134644596970921604685274127935562664016834423676112756263077887990287531329212734943433494886236644228115565281351550251662334156287750387788422685791307485705574667618165259104889556331846007790446339410332939076005416717437473716029920225754592258937603012433867803605699457001118937741696768162370581375267432986316629876154841291946787435871853931050526195495419407187504445361119486039675122218056054024880566359079078045870704455753876449921812005254796358107627534277400046092163463330972045222081040615436553931325805648110119831558476123996370686663383962123272155514614278656107221525000700673787732693464554372897489767625745346090333347870748983984329125257265655253117559801391895696451222696537822827486764404927072504007202249135588971981891798823157759410017162431506919484754239159454506376173323841943928442669751419286385982651806134153058937172549207517898964180260788749723637617982519671643631405924982183957705977002703128764341757501479597408023229276327197037223328121913082108233882486655658976474150937490811607063152750648121263128648715021010256720465842574874545892302742953580489801713596099270649570677551803802022975491327312915390770709457969830812739782958072163971436103003208952798081857140680542822022530237219224261521157236762871594164762289456000766687030391092330782898133283576502707855122022230526920542321814806438247363176132989984857038037936501197405972619449815159961480955361071611142912174300514662197690802321614927633058953087882837095616752929584084611417800002378452804269718647843976405744382164045662974655232503719540917595869742321285588571151961404928675878619381410141045986470886881003491438396109643428318807042984226556576379471303609436852821254144656304407211781669671420229729508702527977939809113994721765803535137788377697910860152889649247036359710928017764468001192236326467484246115867782779433247560834157930867275751470472040047154334420390901172833990092784966182999906157199223124295617667598253436212710551173786811357974718728710464765724231959314855595258737288673997602004433143889566032592474143214176954963993019105818405431626389493899310011668700166562673812655325444505496526694194652210851387572876811663492862408308307317943049494362633654947315546202285342783557136803196287118695581930508168431273664380857918404644072907505536360740445994662899866180937266586459869551860707701745066909364235817273799174090862208991288527514410486202049744603042726552175653421473504327463213072174992263659380321143057785773034731356883875385584579278135845614494826999331820900622151130950794567000713383122925131157684801446024565018095057448100265477224734313940667224770132259528769966527492088978601811193915620991291677147257943131750814479972981223344932022175043418349588855931459268835438090669444988479221112800803172045384507623383553039659675432155380845815343965955799942768195781621815797003659318540800569585848753508771525959625126188220784124988865668781940112682261963862620284661248736074874785671394734239666423493260805189830775079298423576420746574677532730468171988691984993772800469958709858883423042539023677337525864106040684753178238783952865863951179699192695793725127675907209772623139253423806276515936785857618651036644941106502220228199853239931926252205975057234514130984232341828422797013606266803439704934967111309613740055475259040326430621224886116824140224914128112098398963427155193825271010319927908621196455992050440892054481866577310264926162104224466826141539988444098829870699037203002851914685412134585419181864841793689481913183586372196021975062062426673366555104769777429290696492506858116050610565271820570562822522735312203227233646103198323824282368794893537460016344189402821365417795151747893334980060921777202226256917688883763577051161389005537814023741983555617402260628497659407643921030063538621198096397548236187246146692428496693865747595321705287358750336818890012117459625210606751623008527137679281043676519849165602697648277952723758280992367752497962211213130745927636209023318657457087825129938842075258151243090309803280304948084807394702753564375237525184545205648888598921532722499894846319492098244260004967457953113537326179445156878533498266127501046982137821377487609443430941637028204042022111150907761940929085015737664189486903954393520664828297358256612922725715582154990688842461203865724445256810094011186831111048278094187362959424582762145292442092778343750574186778924190217508699621715008466872844150988947201464351766037113569705899187738594791033336146077771791094034583115194770610425565533618813446182756118966789702034707149334748550234561053819239735520060012640277378596993052048520095843864357050608721699186210109741329303246217706690261853917379416884869925868664609320225866948070139699285926876364178000317167578367098804605746279327390497260004609595609220926745341039492941484123738070005691021602809568652970535313424503096758448636126050977789825670191194728108504790130435174768161534401062263343492514896465315362791003847070888822097736079402636258808023610328773211742318924808000083278624679086930402929298034864221780654493993081127194383865151339514215324002453630098304444826639942938992807144459689056077288617530161191928297735894985767182178401760974202267171151963037340788383000024795586231945247699528884452884548442876674185835401095411583209259785820859989133819668310480076678424939396984956334492628375556018258453017559855835166819018294992667631826412388438155173397507159949887600079297307967334596650947665720368014252867262809614295253962551723655984077190895207446426719634546807520646611882964837442776400188047603960425602997391529688522076075159298807965654408739683516545517968923679957059269412643707722130586567590525023972432998862022406367883606370706840613725417017391441259546979443794525527269726250091237379325711236878647329282689888772541060525718181678377482865838977468222080126861753997737513723982099333508366788081303960702173706420339595258613334044231262456065247156186227562288495683770989794586143900244195281873857035569501235730260328699437729520887500578863303791040132232783510817848647477361110536351687438082998662777968002955981001680156396198400839740475308294210956144457317335144295753409120711757898491420226771016125552590252241956023431801120641645154754288722834331224310597385052214954462881901393761154571151192422502843023845413484015730736078211904980735734187155171047891619117901777451294055653462372505531768699659667128523317402728061225672725203511361964811525903670086046428336419172100426076183575923026121023156480814504902736911268677605677120344462992290940697365762855073948840972329933362198216630701337152915852895718794449383748139558208203478383807765122747410718253106414009940296202260022620742780564890571279977832382930491216311547534729250244903020981407112385515260369745054157351321271396327845868286332349698679214827811222240628467896034402766618342533722531319121242339628783842762457663791715615122737471689092964963744968256168390788764778977651120702765772150568145224095948997896866981478883434038960459073555589743128618077101705940154118409516270106760326781416738536050015994304694452995596876385551381835873661396824478744511924705648286671828345260056150416492322022085420683219082935012945379305898067920397173267524305578052219694752221922638757847725196139386956203119359699476294990653596221400497832726633556894122165981941458248179669668419982519046024615752535758070862315197028555254130608323618393343669186427777862220230844065751825685234813988523184696636967527164120197085957407743351487954030782331348185686835398836524180945655174948240978988319301095991042314202843964361072700273217686478463231122443398911697135251869040572771232496475906276624820221168538022330199167178515321143605511254500990847745797062610754777003796984412429314754631978431256515775713277359034953064564662599814627599796864411035398998947327397697091114647158984863603111813899913105665007991158519760902406407654692917967951053626359755151887870786094804610084400980094757307642762599725349364476952084172350859058400060010357151022464531740195563165310200402279699209461369298527026551582047812245001722399381907133706431609344432306979241860860842780931759696455167036202241411662059260653461809087255068721799460278824906394935649060915231952774261222931827831860251661695477395051026608043682861880250914523261748528117238115480456418444194208106284332534320524533992817912159684338061019624708224899499359717274940960527691999667877065132432493206249806561739206602843643896741249611512484759174289108425119223436677092048078718310722628683301213644254090247595663827970818346900628928660961571512529976060372706758386982287688090760840321829344316604260965312056832022528982461044259517822103800046547378015711525060373083263472463897071637361389749681392301611238664766415969001201433861892263205842152895545887806843789728574542666839077489085141177189628498376151608388656312164458060641904722931022897309931690420819727596536977363155649167079017863293720826542895056423361084910385531283072450407655314517634103593505658628734819335354418521866834242018385037130530517268464715073718519944414906651940630385828399498095107498895564061720243697047650124315325820226989834302412750912907310746516227174905978789199329781189427773866386844540964193104156293137330480681388886637944794998850770584449801322502288841259611568549142787987503169655958291975767987680675584028144606876527623732295010485042694287021624462325559590981532423134807035605881261720119101081573954130682183370630532248004227176609295116183477076833450889709484781964144621619711728840225056623708084148918175836725287411072064531050414132538851376901864984084849712488123163385603791837723202256090645294350819993654702701609346064509263749002131551803320668775824795969096455912599311326252127293456841927936036824845239038077880201248982139363548977431131549036447349636074873265288194452267523719051580768815633187320533629110820304325787550066497748183863335668597291065566765201204491937250676424212083458739141697878119417770092917001985637249815884693983213314722218471283957889818571772277251757556187392728718572414423838981267093766293535582265338637363688299977093621366313232042022187871623747774615908966470418528075183319051254879634474145851841164963115552400586779466369720975514559186293957615657923603707940451220385689477063519818660895514953290580767057502469596441809668979798304167414421859901630120912427420864881977934700783841656785443136300088064670096198581871250696675238642779014129013186377710944560864453980720936327457909405395885243620295498953457177098539361478900327492431958842680435202634962112754392389848788969541229201631154645878109932675008187679320227692615846691208562528575553884820235553345390284267256554837303296256180606668088142215955752117527415216343906602780763524472624453107025748689511249375171920918783469460530272050464679364213011462902956027066400599121709580453744512996263845461546143134555880485114893343734681052947544047044754906905683457178689224535631061463255984672498795980889524781091943570249371541665998054133520357811559024155078708463015978813873369478211445953126472914720439006559432999607157609118614935879133738202275815571990956066412834121025430466786655312052894735794380475889315560762807627797941589537968762090504027396316880618843335608747001565940238202102194201321947000346169698825317069740206030758032354148421324341699572387945239978177706241860637567976045944011318282523208262735365495245722801603130557172442295162252607421693347028441583976626190254515991360790029082038599221236387709232991104966177097111961868284920639754091991941964925074938427118487571890261692289846765147681668605880375262022621095430396761797404944629436584561179952141245887151113348154901693158423132296363607559311005592868136270568609604095181996924358396047205168005393043935673071488440696262485208546390969846563471338772308022038920192034369409801057038725390670714250650747064828313658062120131445427620711217821066318453614557016381873137203592382121930526590794149389241114911115493113713149348370152508316905064650172135041651163379142557449532623941683493601200507914178485167957980600493088689725928569869720224581910222169508764416795873461295708402410520169814224666942072462033337375158174408598760298941662703094935593935911328878087365246333948894042677716085600036271465304303186982987295439668102095636107472329761635177772512296565699499994942865355182612693882000524791664130919451043522579571715584557171371442777381369553526256798529607602728056087055956870449050465806268043980951834519708785448503464745630103784566227706742258345228997462990692047851324225426221780203857331298944066091932315202254922654991532484843884496040886046517469732451150372489935444516481856712431848999076169655984670832891169762578515935943051713933313366997049442925055054859011704868953579530354703343884131756100649971632384735494969551000449876397570190492701638264141160753970293343057657052829236481966416073422498878891560768572532948866710033245586880844035221106749445162950061402367736070533463395026747335340701611354761509131243000193325480617131669123576460424979644366711529592110213737729540219350022022940595839130516787673128033706005594310672331867049078144445185780022310767939078068691477041022239487469917548030223697768644269398763841904174154642072728172503125621182470377350424475062758208116847514404982777396360655684479569709455152288037885887308123851821702144161909388276755803718432106072720462244929857593122422401083040330293376743376334093451037068503249498123304631974169052019828349438834179405021052283376425843320623971977089674341118568836470817756278334797652114846229201410120220641996530216997484909682607541311702697805675174919206948837207685689586528916309928615673173290959359355628691986231595573536832219606941875590386579748446463939641126058827392365715653385848962964590484277068121761306681967185163796925934171852544453819630092747115938652122967822080247318193294855756867504388469020191855973430739897598380992125748833046230820914588355403117769782566343393286439244455940059383354201442211892462765736086381818836016104599668132043102778877854873624495781282202227742023356016497360444791195334532127432896446138956927079383456554678565594435502271284183070136876152681732148502797645818448717849071200592119066206502653549210623616759326496111139469100771260221843184564642182583591606980464070354827446853851748136009429373475807050820136469044738835720080856368796470494348213232212943649615435794727054293265872044354066830667585979209640999498402802169055939117852628824039192367268959363522457271687329520428467921556938692743542733023125315086970335542022569953732813002205902895192026293449238616721349973647786459315915203826205805258038249994578559342524329476687690169553475397864895704897834807138770627452800271035520537249100900193872964161097097377118269899911074153875043272748160674546338166976055246632724935532106376925217756935328152479559363496437718532871028333688603731771787026753881091467810295082896860119995596965579547399950388538121687698047212607274465963040496477016141737933680896934438742740583395453200061283102744916109184220229030861144486664180443626064932144557776284691788080141586284368686757253953458616149755419543219442876734157912564677161802541152288511376281596023306833122756915543829234199087633175034741103302541738887055668666091402005021535379041463937608849283639489660577387205987023623791012342923472134439169579680876863135497615457963393473697755252325286311943613687423132415820392256149910872598955134747995082638135612289020788161697389744798012636495598237885743756898930369042457732535430168395481202238982371804994008399182390786899731451389831857419291303306149573216075512282103961359498908076927459599605563437497743455303444143150398606376163661896464511607934169120234858149283557637115585490773685734251723328239726051780695603691124401896063329038189431153589725079542998111463511138842528293295848977605936208335805575483565795213132677504624372569899605689799737270555217800117199830615435938572300960950811040416972010460867138003558193870216166324487143187707549756860610210317800698072022711250431866342924725425616343377817199543504834395575854340030512421736629382862939000784242046024921370654901107078546117780330468918236602522523905336284972746002630640477222389102148365109396978317062123571590189226490421575770016436108562145199714764340517462353193411907128000601498684391288290581561970493723878374546306696252778397406983126257942106268250764724880549787904702080162131263439835287708079066846831945950160804197107779573331959172759275183652472984144428653419338829659704420223501194832762970636767924082191719500516757606967242314836502819399550796794325109803965645456571187346551825275458986273862699958871292054928688568463173170344437087788275735667393003745406685403896723025320634899744160863084668138429418757548426415320650859217139720513796501526801025858285052730447541012546810751119866987085271344246378330969700717473395335955213986128971544350102518950015776190533620856866407046322888229394682489774946819639491261238685627211682255027915749233643734473237202295304238062200408821759228600932577953752974571917075943731847413535850801354123051419445372815793391720341323691490701999300975988374375055054361245332291656095288385185141332758875450516746560782838849757275556653677110520420363614956207808029225902159831446749041613069994883399128247606190009807773463584454878919632728998813786581314606896352866571273021834352142022734357867585458718359037233634612252126541278395830395955503943819739367829961412240976309779752126095433298321724567644227852022161965355441549922971300670852807489908972355034802538016712055242621692790135728135025117212443639755996312330036105958803764714807387752587142270712176725172071658523513462021395005392889725110182895751390766086037982891284272301413072743110742964101225623766179946118228833630874414732225819961258462254902274711768666219983773385344764864310784606199589184009170789581391158445698955125735684744253415549862820402852723245028493519787754969927642481554364916952322379834120226153876213435201020227972418425234813707583085468191986968847387548564180452942021317435467427845944077845107091997303506402657624283989249384165070983578616716062266850596910958869140918108213016826835569475745292887894796276734480960768015272486148188928582861170226803676561789837990562478746039864134152556544922097405657308920137001732594159371904062576738197391101001178055088482278908850933787067951330707212289005982183728781497458237577786727734767150607552888884694594115420644792710079031990424623430909247202292526365984551588475108404559236324850208910647887292092538525595729243651926131274786493825763401842773010236818267891249395126794949535709736582155320598547012589227784173535797955789471319877385762481046518696932455608771372110806190989575555697152517301319745155403284085304971183194358650569442937497258659069611298858033402077250860599462868638869814736476884861415176425275242641419993361389638787135629807965407167875230729070686197597522569480013867148901405524128263023939694145276454462022084048052363541548738802934190251881284043886714170858671097624987273842493756093046176728952226991543452111495332864415331263371593841446989564300550684262925033902079825009041215999849135481585803706482411592031777185235457338948911987603042061357248331301546840596910304892338974173807757756558424459523019567577970022837865595294771755566973302074302195452023790793058997788937148296067677971617693134235051758668788234361357085063134229498564741645967920767784669942735369166479064381131350820227454852063873188163565258941537515421956534471984555049451021587497006737158117175161367291649337595781418087935152233660738903283126190055873846566218979700675134943915221966319706232106960923904457937498851412595054651101310466614552922111239627627874785946093154907126712717035592958932791910164990348007922615932017346399850044158421939305837617757002492812511839676635309328357914227585027644517044314309253818767130204411663550073669807700566679401159441279608592090339769565423639016231910202217872246558580277406795572056090231424658125770897627205432288004430082973376654553683667688249116759136973379622588911747963685389337763269789655418703772085568929675280522344489736780031809119708447414201155286923628618807794805114143029423937229478472910407990370347837633205696734922916743225786887108081090388599013835481316887720334958999760219327728048544713435426397761193269980378583748302278251751106126450229185287699811030782500082384120640628052536121179036720858755683916372263859212022805074639573653289552004277638348519526061276198975482831656329884775257920078560807669042219008396862330337396938274280678982256300452754193560600377889005263419893536249010193057140114517172919292414639334854572526747793999124468428232041422773215064470010756792801219037527697957612776888632172759474236716860627676890678339973639750295278652765949088857928411825243969802721373365793871640739442225551289415842533200028422054799637072649806638616673605168073824403860571606676739084306344164420228623363270401562178936274475378648261629871081904741137963677168066975069082655596813739089555555263212467439348375949486599967193964382564913430143115855096204490896661846129453759116205423627799796119522329697464591453150405025133931130418659319115434562216598128347510172041708028027446138437933665499644233465760683930575677406851387620408933118927102126240086824718533462255121110465681999297411261987367215793760475297372555615164227361828771140178055402197487994118485016822052615039263928202208522036023635149764025156527040153844118966318836354847963837241345584102344580674237357372860640624996161372183169886757534302261351296449865946076919335122075447166505967885258046830236098888408395638655726101237893203258926288030279341839550421671008189533058994692909737704770338345263838148666283051756181056918774765496261607392627131803527168703916152299544960882616076483595362802282422705025144123261191453149033509987412864194728782643997907306103917906842015282408320280792812283735732022569737425051527782479752851282354965698511158274724350625598420641801331815129624472018355391278990663206654215609250393164080520709150319377853808319383339556372616228664179417094450261459043370260399119292707906200196126560127665637691748892870272640432007823054075447385099012890522928037842247953060196336809081264151336802978140940917729129913284724984756225927746101229024887153066986559755520464374727200183422739442573632141035851370987597147849506810450410258145019099317434741883943713420220485842007585768144212797576211252002741710421370248965243607050989477036136070973548555170693349369079172051672330436387388259030184107038430719483306862596528679852414967017731138904579772714610535901031256848361147266873610344943683095374678023537102010087202923650430185153313562065737156691048937158169897562351592445698746366907963070735895144229594472697578953865184559032339992891539526977747204665050189544390317921172913982439131155805210026133318032680414996159998580776322155547521731202282357338966415870242914066321389987680994467350127777932649910517373841855856718932346726845166004540619767820244405931225055165685612556035165627340038096742810242714744512095551172373611900415911159860441578918194839854783832503922259957420043707966601161964901670580356894269583703557254437735943756144028064799686123806239388904028876522995472845824618964871422087066838072831844587025644488366797131341761306026238368611614965932056702956407573567449815172860081268668950577784531847420551192022050781906337507108742285281557937121314065800499753508174556313747577001254435459398550207679735691530924901981220344832285902108122387388981861051599279647231337106182643562462249382556179058106988936403515208186851671792015381992466353383764079858761030815542160574219077953875161125753931141619648473762593602379666268171212478359499393551776524657617495259451483688628283380957287935369650413732604114782326501989414064203671567563682209730327420592541285890959930522181026372892558055976261320227084161776391750843186317325187462743441515381537740984570158966572499829421370355881188183854689057982132631205903646665253892958864129960671051173732630939863799656664969994833973598219301293926887709700151750667369693581363776552533718245982372730813830563691047851692736645804741911916833921053347777023972830017719100566281741728325253223344809448399888459493637748297568748159105734068442578747452037716929865683085831334526512647872418514692348440831799270651171158860099364521944581507821202201636686756223974992277382507793223110894893013420974022100266076038013440794223238269136530620975130353986260203740946497476886445579979427999215010676795334786069256237185029505526177988477616195469699373168677019377914672215290164562791644036222274620095612272624164966240069694052910909012650265708358096665046867787896888721675012150324070586665418415590154014879940813856435339995713702851256561283665100018029578911088041990568371218624331388531003238134360429134709105524783049888327152462022128904917592595672745090207159327867918803532844434319569330098416460676964796642050418346805122266531036624684586319140202280762984557412496389899113040386836162448845090517491415830053778544825737834751334695508615447196023294439580030438059084477318521922633747087204105283729736051109264139741457619292578671162346544150559183533639277730997678017313922505814805955450107800964359354982427359237544501286305577618081408975544280698279321769962551876350960298610734539989116131237252904355749620220072269303190401615283804950655059990907202905842204689785178663186732155612164187818905786805657527618724035724101929654394676549121177375295419101325680750917796505093643338872832723261801876292593366663382331488689740559824661954400329145671325169354488546158042210293307123850136175991937362982758442931955693399389486926467175813998076461020929970075333732603221388764632782954489240825279492285182619384819961893206965077173260528685961005535864534113161134489665915536302447402037849776425202204009523763642980389701292451440096616359598343749965498478171549180510363280720474447285832655777368734829445756961502202458126678197310828955688592381872977421992654914890569379362545945370748861273990839215264285609656269840798416918901112610822119654399953918048486156480015155475013788888215011174784918786543988076896453155893512707666565707758193754203508124292802503383073268147703807339031533676658704807994928127221945069646133451986299145235360836294686598256534416153807824030559213782022191749197191658367173097208865381457945207397287683545324054625886851240691657150406398935210850450124364454759057427381102478637410337385373733610212761471028072295201754978678361830519100999449994130086380057202535431723926014804630045911865516935008383500587952443296392192169897836382332605828232497490444888743554396484417270666049964842073467267132867817096568423692115193949950154358369499400554644544316847163983645710116574166883417454498422965395963109438770233442792201054369769925975420229855006546308615410489602711446457632010414139132668659155115333041875602861480157664855497731163011057900799370717196428282218863867833859394283553623065481386299586847636641063198703493651825765009772486230783956462217686585931958801800373263560295971881068853513005438018668951068824297013297683504397728670915794813298011638556119356978443789920767243641396263368383500646024538112789364968395156850569792712749151878633258873017104287205197654847587369100107147188038597926562677517783173668202209030159543222004973709122567509394835954861363874263925857537803423989364637312572862950607696860011102964564733245608069942396774654676661624118781220214440271271802924622635406787669206928828199516506082193436089900084633675589749139420950907414037423573500542455803979270772065835306475438975788612258588021316100047352911546017765292516488787941028717241637261810708238376733794639132159411845363604057718387718288835922306932108883830689545897036480160150565259853154226766038256701132416682022471032576199247302906313978130481802036766651074564143999206526687921447754593343309965605402176390294131355057010671937276131143472758988916742265816072767437651114986954912993175395284458085777538731873323558118062595144806166517612618670690320939037490472286323221655951670242049729506177144150744645237730984344163446388325022499700480809402720973727288716340765461135176254828282463047830913030263490466721628315161818041145654023424017419030144069903972245481544995682676774127831299802238820220304756143893813319116165352401747042640559799828875114786141312666993106929882055564709890363912819635890568036350005545953297998883433322773254255871778676919949892030705782105775901489042618850798911027178368016376427833400184752469361221026233846687517072766001379126785900774673515839432332079026957925528766900012795663444588569410877646157905262849235531789992549436323444615733634949457974651753718257538726300249041448989934923494925668976091807791689919600651642298853420509468411052460202255597995708017969200574795371774639700585301915901759689113175477469742810143695877443256140269827415790097543865053163080531672898281479180335386917569302932515294922821977691526224234007242841164759854372203468163252181048711296108899045019793288537339836552624058514378035714746259567538248666885482226159517183260524387083612383538862436692722667127183683265260787239024066943143532054299573611876935739845746094658887278488896835633078863139634454568524176979984513998626991127011728789461172022995931234625024416957940408637253918983384663769524238877763172524869983202454567252331775232878780918854398874962215925962668320112284059387932578597315664629549416489674656157618280552726482557961059130348771653723516453918607967489707013072162975228842315719345853860157900640397832548160957092893565937258987879168162097873879138916988288378378516442174707612853467326838477661170627904554643771104101548167655967061076362140679158883766331618975343277744719233483062888807767942156273128409720226350372468482879273985905911132381216333480758146312873357877841695453270962580487768687607348029000704973171084763451322228562476181684398174321090533987918071423002414489373492131274991261323961797321197600517398846027935157025326427830753291992663582836378947860208629683729125489045487806006336461489325143999909128633001646244933360490633476824873535237597762804249306950244165600835568080783740347999423327022397590145432423497281843821367935451808003610793428822281046380414826793614605959202287864811199528755880938872098267842506656259470452967239675806859230285193667113726207988251060365595511642414922787206760163532365652602083691093935330792604668332316974146359541939142083831953525908971204383322547273785922241575731484792806103061185937490151987493180934099247002249439448833603384788456766963120715389850896750399977372323383810910171751690805439866662255773322637230418954124473451431584486194120528280544382746494508781013702062487088530012785734113578182687660212304045165172022000489782821518513897032610182586986809313945092015721503673814008939392784120648828630467822472606914110209494060287920262994052631067532657410239938064105964750227659866372084174836850447722394900845356717769668735925805024398747121027964749616752306733057143100618514497149041795525621999271953072393501881420066356989927803892038128358165928767327371076731418954470486031995975167834056887100269321911127292837293429992722660932617633133709818409791331554121791018109302199467473190535567768920226647558961889886468495832857817196956490800973190119765520884457318330728783388651355748061186021603320631328765083616888134629215307414226854345191687585383321375654813681158828454112786815049198882020286341108141897710396851588856759189230128315383388207839197788858234270359196754553347180949903318986793096593597165266883286235305547470590414746496655607742601641772073540963170613502555675081072150045567427138975715516571493035234490060925929636952056939553931884164567835976793189705357173202230366698549879185886640916293359164438849351289969163994899246290753246121021507388047253698603824104938889872626742779218078433455030868121570698744993455858743400446431556968921223558449424689757304808066341476025770059202532267806813184325955654222363969772571757557647529292557271425062754031680866023845845349106069871784088319059425118169191896880753681855788805078450249470888777985444189668577164756463738330932587291944585349371997242055743479144405064148490159889990322357052965674408102022715084395166377735554784859740330542671615151613531859240421296444717911626564070994707562676403891640869997532697813165359269917429724353273375296721786779332225592787016408869876962451694756300472309102815431627777822194991356810180195631820210932064630196961466346495554231346332089980357550432757908812688311481269289194733029281600372786123286452129053717557251895419682351139619574798384135630159157496353569886359376050163708033138214348187234052384789005062908544923077685879880928965986520221110668676968357705989353877888335788546850599556005451499268480980775912372332915424922473800985806219151949735985156729071341605126662003799057009485544037916998589086758040134797292965402479080177453875913847036657558031088154000680928299345705489477242619747799513158149347349015451970765929631547664214011553791388874444201641732454591655322316735211925374015132663945996104827633318619967651549918339810883068945489829238082904367540453623918751589143419087037738865501201599671749864110468202218661796866590575312761384527777972140647953597868884796115467279108888475674505110003983343974402040467103091146095784991366476554964265535163250484137874616039449044594120534519935413775033441176730987013077847394642929465323991806610950367230368553978697344689834564975294393709325691286031514076631055978017528671824001672672293757873101584481633272423397136149627461648202830065073229570315275615068255771130178453153796433532689525435347630791087979793406600039544620093591023173069983878642022093474775723972357887477839799175485228362275674246006051560325323773569864611017480966544751630434343131258616974973346680727432502816196316040106104394185139329949154440209812421260172170196417862531934108227160986334562611075078032269708246413990724027104814640022444875082553201314286646851840887472018259007961758235036987303751861790524273127391582161101451079889819578345265546840229809408976050866271518415348690366655738761884114675602212045758086674927782806657309363246208911444513011820223766286511012136257548509193352499269743793679023162879495009193974202410393180383165897613134323691789292190613123679885604555842232675051898779745564489014639907609240497038956883294360914427500258649359476080250182734341501173260129349335909628924205161414295324012483696534004539475359675126182753148809091205012709093779223167274689351466721016303608037735293946455753895678692756866133663641180347141037596042546246349421790535079901298490177563033873127968157536370029360146399621336404826202275119089383213152180147515297200664007027067097228986363119060504708760256887729800878503482641101215048938919620870639556311270847196319526478808440543523548226458939472513246602729601533498714394322041886152005038492371865030622180081978645188481502985079020194852172667888929948991552271814804326573111919583971512530746831276627113959131264738878610216154016504101021208727442738690754165097084764979462543392496812233226549811063284344155180115411768061936694625634840848972497115459631219072022769222266700036970595932982150980792165469839964623916632967789950519860691793466094556064747034342441597124340388352542161166260453096696187883849169528179050106290415462891597291907878235142951149667252882345251643502699381749639693594564600373076459135671188187880902329073499406945375220339876419648753011521004714379159462411720139197065813653960134331119192559543568990104945446296364080309339103994171399591506289467996492071687370885365016412157070632959223463063044332925470793846892171820228555827012157636074406254877605871237716402951770822447303003249199337874516137028116043473906045759251698927027102818132103591093596422767176132781887500846064472872775174624568649283871124036784277404013188761594736258394191781997824847655051695709582562577874864872194371980085720784245398313923531526201944358900151822386753597908156997857504985959108419483625109806833573324270316819397868233917785161635960076288377998042903237320496713161441157407208580141903622987576580655673361479243424202271371223788081958555546090694045531992971762388514144061082938403976618728210576622732183653222665457919056114582641190518876929784181580702535979999934523291947921837317823970486606592520228260218075505637634154926072523342963421934512884353200774241840323811483534048332832837302614699765817159464242134413396716236911749620165503493603735952020477103202745596003913979772097007891577921244828430279329241284734706320612528546041493159744276522336359606286216025612997842562529060770821762237262022513629602969887628609180190063456254631526708894593389185178675269458982391473334507012916500497866879946055870303106615843283866667509673412748740575663428070941886600412573525652051963366260706402688933030475098086267437272793967213852481284795726286698207671678781948076785930481673070516383897442458528466508953251626144264311682179292740932572662936587374961994743596749302329331254154879322760401851305706631318129938677192280535109771557984743968059577131208460996391066323176117235719346020229275734390743424809654765771062141374447830459341630479236407122934736775524935317356697154082353048643493411390061412510696965100125502793809780943305307059987289324158658020098063604230960626038038001038541513490708454208533611483911852016270466100486928113648489808169130428901470583438755503868208676367138920059819626701649039822408716169912900351349139036797141886288918807905593353293966011839068797132979699621491979690789741867746602532607477137593487545482112838955588632280091049002466202262271165404265038469180515429734413453640786744748034112030996274707618794042269949878332545847332961979338096817507591973158670067929210479653610065498517242545614234435756052946476187699932177135173472129454713223305844947217912274002108614198276739078189850055210941901250378373610016426729941719643244442777568793316002834117669068612921476650483130131517085425377170639973822383082393774683181890295467314279838121923942647075946189839089317100033247947872674967475602333550411569273729069772022962139062756296030757777305878938158947152357761284735560929909631907643794698989959103231887815078497521960045377298218442717113985117248984903712410946130234823685126762950916709497466503860108069651918745203503990815507544266053003687807605493635428439606208366337672847091739693767283515100099055342698212803813003668305296264991352386123939616703053586716975643277772376761107574571249374092803485102740632089614766227130720031496435819449598935180738860932101354385610041916697298013923501220225863604873285222803111578582989243691960994217728562769936305351184674913349582661973284165221978044717004458735379848668040738818284397379559601718883671740250044682883099965771692441166456138889703755244976931612656577705347488603518569616289029669336611393656314021258438027743965174314836421438719705426819776773284548322964338337088072784277220211551074063641671883256381633779656415368327656898336292580530302109092154970698713024534308429965430200219281821922739663112493734936524914895534202258716333702733049621430415020493275761934536646307209446585485868256494984637805056584427139740081767680007294112454538984820292909212437099271100088599254404352657776436933773900745470980900449449404359991628352611536346469184542141606762945523047368615236629969248285289679935366466538262384877612570025544722757211223925599236731792876965735923415106216544671751591797457077040194326105127472926075077641183986885213160104004065353098452200116579118707100909001140795899570348325471659454024952022590373923998532312940835156850266344664489831377570948443245665599813079717681523382002235445445914920005072237945855297803999085334491872178288137484421466263989053105050740679063298711807070300684219750295887061983896449136498296045884084925671660774551622709115596990581134533091245450688065529882574605599591206834443049465949459316310572362830253078622331971510760554635075584267791696876005556657613346075888846846599684369448922847408341316592245373804944021019217508474867217044425547871620226607870632354026822855866776333791693499903817470549534128280173306708834355773542494849515503164000117191942488379295437591947595378685381259213163145135970795470635653544969592326044003511152096054768189324754745624274724910642098205829260779903690534851069585444665610891655254267553068283253871842310374201210929352102448108754583539665187017624001564544001434166203991511431268753702653466763096547759243300071505452612155446417563215513847611201477645754134265070720033667701354272154847978202200764960466827531434923046839067334368472568458545220576978194631442708315880873372195053150025506863008957321643414437638037654997392359721930142906444703402846156607938525747519747384653402323020428859483674709971689773124271661606024993507098965093174243618865786672618702541266828256951605352629494580360954578054851005236149732304453469503712334967849279238791377657577481155400592639863408591652358629761474872645080897154314646605541516595934384315759494660571029403495256924766771412922992022041312981018662488061198436157965426654298966419699380854774564940283241232892630339097350293448112028727251371517225113046834125840693208093637598382369017158707285468049987810417906177489385086450596810834291777367280278413809836520568455411676191196295949615925500304761595862159317352810231764774864692667373094652862869929037516003347431255620805025850957636771222683137014101766573845339237086023972415093055847166495852070582497140903115231532769391826259302412438300269966576382067475908720226719851965742869336744104691196478736778242460705130509179200917202875129085460144771013164062942229949912303068945930413002479544456470554659344162025784256901975809571208319577719169431498292829991169318435250875246469593807133161469762074706113110595415168712727335853212120358260592846926218610912623459799097294502088414487917690076922258305483485767984539515188157327047890633020471872441669198456842147042088306880665480718109191278071182767615614578863424859533512100413363822203318504211202240224067794459725364987732447098616627621785923241100668523245891798374001173069379237231873634328002212585155532059161654607868225468987191922930914498372992469715519265680773574115121403102818291710635674059988963067430540904295718057640609516497674071457013168642408030812804252186610091034363712242097902402442417175772326121930820925596299195319094855070682666459215226992739142968242209883483399015696551411629156294177372800060655492553609876241649133819329716468210518419233453322410615182022198535191885872301576760315904300773092281543203666833784549894436055914328731290925439514366520868861437232476739804459141869419834747140829076056787621070611670456576565459810291224871388820230963815316644647504621968643189784991559588436538013287965592643979393449227675470226195876920051547106074883393373053449992829465093152356626971571012862951846527909286906092384051906492135169762518269663211726117585806819623327347684818145841686159229055161843044367351716211166647600127448525192181620225455472064205933155259178117803864775745000896754622124254668135758326673488617303080770675085864565595977150684349435678342073629650852166156550952665243427394353332706653467361284684470068591364030938270306891608261990082645075202213569633819421281600746383679277430389479022383271243606762518152174141847895719740343494805588999484588536603016045587696877588606487761464517860568620117998661494051836643217508069875005696613331398654280704458888084038330764205972136809131274942493398487862464202230215350640762526040839728647559557764349130547364927226713620161263498172982261484931256772269982536923864571441627327161065296272988574954388451502091161354060914180743573387753590694041258441997247319622261372502496716801300869230157067503071958103961964775331099132901985239492228415340920795163709382661815511016012598193961479412039767594252226488538533927912778141641750907490693922082902345135143863322360066392703360637386562458788356871100793305695909754294467209665684339612370456095292022547148813918143243184734654574244425652287393715310868856615349142160393105194070125330182073899090245431903535225464859922428070139261845317477845315268137974311129032345206197983437667884328416369893328838400762971674984884340499478778093604622717188232831205225135836209977519341924987011666332143649241735639754790546222242928032104986399787766618443102129734583735221421401305612547617817202728673676930780920528970873429095983144955841419293723970356877084637879020073379865396337929697910620227190199152337623751289885088179451670446697666359530806242875800054670851799018536191411202989148224197866886134147235364725892416650912250992213431028980364532870459251717304271749822962003485177083761508433099312394366482385924453656886813397657060248186396441504192936908016861411281360574772037140954015570861791833468626248169946634932211419746584827741827953612897633522239857761322837439886883192941593984116279334595936082701211717883552588294222727965354383830010863042768420785285866908202299542526903269500754884063859792913542573910335250765420680603288478986944582308351848474403110694223269077277085491280368928368948392091213926424135459703675007145401543999748879727058721501560541204546207576280858640355053037900189783758313380794837157744864827376774803657127829040342109505554646250555016700634484538583168856430043037221166548693088601594122545173755549846827074630318032182194630667377914187261314984189630860902529693627743460577267832943806197427911664416797516845465203002022170676049283682035145371398142190338892460972736981980596183154003271083899775951088581024738113405833404895479947372731414560796406365062536633469909370533608706068540047640734078750921348004716407403486007574759378661737300132296826261173812350411491460903590032784703679853768464648998429367003538751762693446071478977709827515063291853697198756908905438030296602146623505040905289836301232937944032619384895857949297135569486291970821449026034533304339284940810427605295147875631337504877291820227045926133582721829272394092999176143883739681486000198709938456541187374325224380092516235751209993379925886650003978945593148346207969654574056457534077054517889670217574265472593595405632153740663337783334321707057765819481783223329363286156341657381599089236299521254535662254634614799746712722351270141905416616498080279864325985333545000220622712444539808570692675473819072980574463366086521804106519653246420496110471441883480612012336745679755776179052417051511826010102110460750354351063202286021247899117790434311500563965515329834884107425851232225023943452732111118166158136525304315958236112800044015439326461029477443288820192195336179593560767813668721203746642557990286758461637932842130983781188294930470032326574985436443096119739178369990381553983174517273184180461381975564543499138097947856642077573286488257044376232593127253351965652815475892691680737021575406168925723544224562196832448299950240974997145951087974931090726198679681901868998175783965998709191807941387884522022059054776990314249674199653758391078494328915182673741729243495166561197039851561511486980868385239729301993731231763252394494421366634248890053836784756956102010907046235750536639655823337180135365326846786980855017755440577475452174529926052202864219588869798677453540190777681265956853243515387395949686115070006769700780928720031323697759196463625684324982738011317464821054429652755938069430935915087378692089479808966777094570559270525777959964662293548615276601529394284211778289873557125720220721199862188834522303734752453652049937486775550642920578474237311036604685947878849492057914185544452782750525279822235204404266411267980715826738526071252121689663987026405683821266295027317256890996785159757707914268469366272322711080093139969983472782791702402580733852678526413646840998504788058523658624740760101159187890081900496689868564489387057311341092250338293349101618778819497340196881378523372663132477217615372281538687250904127430601027790902369592595197718416342568130198428377202208585367278119211208221892937604788411850616075943952134921262581024116317337168156523906051379739026518950661650915926817779440877458740958398985087415756800573102169136812171846710257679445591605601423754469978097222367594182792006456837010172277983185574910517299376212645158277842839516956044748694081562411503674824005540836399755991270279312398333376761631887592444679524555464625403445257113258829019319263217404199509438511343945572466542427558746747513492864906521387054062738503338052922022440353518251633885217033570169709453229084694637046588564819071462922209243086018005864545918708314000831195272909205423821826166435459526185586921647973066047735553391456320274423868038320794076585157758666579095341664396510905715510235344086839478742551181962195109755139463982393729622611563355647779298941874338873379682302679439718250226610346443529673943321658773854062638797113346389158005768652705689974594444336160901761886935174573804894430991697115162528686239266430983134436729252360720220386170876179959808834051812476501757936187023224682426250377655613422632819471485602416679531961867093637718651556171814786539964298882879863033879775203265464018994405665382959440583635588815873999598463407265434304714746243485436247555158045237872611151078721630554393764266269353659700793723087895129683229023247170447461958139778002169718743577890459126275918622535566502194718431418835107245670657707068827861221797183191745479545661844591818844163141961314973776988267074022933060061349272202211503216275194120108612454333373553740235687299749688025766873829427464002826264064285056235116532527303962858940299214419497633092942139198240809381755100645668260324601494305012026180337091890019410067319386950707415355252378418695314075644151912630536065575502193270963355197241309550994678154730809967705904238673501983524109332888229915730833885634200848870960160584624792615867872260654841499646289318397690778881148211382913209382978959468237330502209937999871338394320191212381883587436682022560696001068429749431577891739691278619700085196008950347795090006765709211008650068951852354025713905292546220324131911514243545871510108444847842969167325285374164625157030650109933374129937359580347898152397114933542487792164396663129027909520971125687986102010572397905325884845591864274103195749592980762571904230507802819557479951363977157572196413243800995124483297763792334113777305177503721951453469295756521109047802576678488254092859047789717029600528913261951576625092041763787034762120227242133386078584395247905367359280878146416831120514135928081716087903965196877857759991692318340048159920058817177339529173808890740759976234202253333396296001051828956568203849372012650500553701622406751668913803750742085028241252801622816313597489512576754252577424566642856526687059361373619452277678818903786105438250085545624778645992577418830969008715026568760237766248368448660289034250090552646989329191706331893748225296352154819642514678139357917256977259412212748563936709567514588532202244931379927995270746278472638062426496432823512188702518326064958291700129711522871814715166090085711175022493388814464524677582183626184833783831560126222305616865860481286912217069530130547343114138262423468794342809771698488827284587045859136090426510498472978539561452202309183581050123635622340907810515020926554664088737758981506757925546791070881527975806112102333919823460197040600836311404809275009659590039583029602728355172305582327040204797605407290326041832169661822130289406610664162022290955021877175674245038653108185129770907149715142407831429331065126904595906380890064685595164430885474563560347193987235960167281406514999586700190188153188749690940632421212296774072276480487678710541099122231878397588446930171716846441611329135959103034647379072439127391555399761240383218999504501557233194520654331274850264119029506798263135317733504875789245209716967287328412237847040782645544606652317655574791502549025279951810571514008561114871322352060084696326845347901904740666207520222512616099046535835051245230595154880416128655080188870989004586744657398951042398979682479589319882095393339725960997580032720178736100939870727208808503581211169978738385063524728234568516664127464081609157137784808374740038984101266172721548709075493327035552945939947635421790734664884686151394572951089997898834020683936119628360742172736959773597413139629776865733713187250743629834833496713952811433107088184100794775914140095081278925830245594333798677782736868278145319189129696463149447202203893046437191381680594009210809994944251820923866893914199775843071435041948143782435613479542017909154339304167708729472416547961024003906772945258140609225824508065066582288978957169131820292737554254927142345017688209330066939714322763061532872235285818238520300578360458398357389549498236697384249877887256494851787377704114691631580987896515904938067087322795788611533631529054382103882783959109330881106996434804923893868408991480695999396775634311066307020643474260751781246312795592718332022054047679986826506730508977630753152588156919511507731413992713428260902036266727349621367749056966091810056915068314572186398506576669138490262390176440045232870601588483923417512343488491361033079052396221491523597131547388768872413596190733568188519711298642886578548564399491206107584156076708867099429319430698321504097037338376212355850476745951281057253554364176798790347866126382404352957366009840603625485200462893294913230642226517014839177195184076460647969920749405911112645536748500320220767613136548904006837285472212615884234584077861064552757501722607022426100632969402895177799338110763981391158362788766936206732556075338917116468455189593958538742380524621117904290427578266339033591686874576530436874703492736769711519148861024732743106107469585475910726892028449953925611715359239952953631310908652820344627499132212037097526273626991001212643282746042222770260462364379094031569281323208209349180122347877397338052213521254516369977403177977343180722561750585855201496785184202284078344128314113804720145635026604506505483425105422523007513691012148751561483322265612418229228129085465447620410750292846495906167109038776301965615438989088289699127954638588601565286958982831828982328250469923308130876046686545532017340139319565404636009919422235143165390069731797354793089194394877964666603943735673039068922385176170185675382338896399125577745459759835484713775561988803572754893875846075469056644582124780555423669187788088700743770797298473553218245818598355710058938282022762691306934163242553454243663686320191578438949699459425846028575150520927365755236123482426807462530543385254139073322270866172203513667664593149498269928544718446092715867890601189834998751193377743327707677412491873982298717551396670223470366772442862346843593589914364120259167322185100294202079325271827497499612170917790644952609147803944473370266175416373591630351099482120473700686821685080278115939705758771916257533092469185138530727135235779509331637636096459450360704309199493775152320229283788713079251334801597555741630457351704228996607828070098808640173859810956481991471377144236715478853778886047557536474963069433339038279905368662520443529322162186489093599406432952743260264733248717189532601566022974353732223886995428650251518345440796791483807033076561163929672657798259449693327441921317569109882488128074519639419088688661306532457674945987294341493291484654127378801226754063422424973017407378953112160293489480399283918259841304572145004942992799007896097562850621676202239784808040216722682318415062244864220418920619331504396055930552076480481615818034114460028762834139568968172984604533769365538522448917841982349849937155263849792395276512316619675135472853008543450734523646521194757135421662446033785084245118210615810945946531985836269240267950582304131183785090648687726459403973961210896823908390704936627317539009709609632565275453118752571254575534090536252452328843167798223910562290857869858384877437880217019217986378467646708091923364454547833869497832022655493997786292202624219597818736290852294583929314266386186936722016948243549869043443528552960860705315001475501130613509151299193692138312896078718026311743783232233519341264385558023316959573516679144586477661237512667043319697775925637015491165148733651460222268304961059834651036618922709266932346281630535640086127629469076461044946018883989687085483220266718906296204199157852963171315643071803072687918720151372773269184952686041202138014005038418096406573486461141954713139086161792758920229116364123980979942461102351374998971542465753976645250341382101163009917977082676621493907454723485423771215174069682079605662792463654739646801148730147240428850132558936968508933870910971907895479135778532261327345133738888161971102382247513811352560640348107239507160593076861647509081313158545745009856037661338417942938037353523835571300992920278004166905303087725822692144248188578682153645723080630396583638372467407926489216240020173225682276686905146571703473747145459833562684110039937202295933664691992454909633455114547052642971054179671926002813515375630398625466526859107235552611494146367134505841570320628220381100412125727856190160145048773324442876402468063747613388750867595672477979921667484597285811099979685588821085434976010533436393772529021143194850628234416919491990834239962635993602173404398894921518196124767380435471430622276218575545901554759739554251981164045315978137581357876043255100197263630770081867605573084047196447802121728728115084260101554263969359850132022897264395148528489873868574648758696061058641851328842172177661144244834602878058861457470156908884721691296452453405703673032161645266561325202326179904272262903489256168627884617995758685411672885834132039864773338549117675740853757571756403692422712423687447398002270269664080852274230703177690649454791509100037345201082490980693822979475045137773786859938205047297543580132400204578036585161057914391433603204396782696320564596594082788622654144349877941987868193781897262888714071916307830120227227290838255900848099381491650707549935507444367272255215350947998531784298924071130866585240024693166928752514539473228229700146447642598135931306585637452881681153932926107215392563534357295694833162953837904536168130046063931974512443450635277340636416461684406671231024193982010146838316071663784447435269408846662056197639898714578223110163250773342400409910175991099121380489813348054942120648960281740709504422018217245316687875586358657557992039685760134266790089499379692251808632622482202224613740306689640148469198502177200709588572445323996952518873356317549468504935494308027243885559067748562178667914825394187723403389537454909539068405878018469275614099362069683804199251312691694092230946039919447641621826836233658354630407200665724345545887973237514927149633378036177939736439928605902426616802757095676860183519956799585029776489892071978414512111740545748960867328904768196919501867636134973642803796287342417048622577699867601831462877790997127760385874866544596733257015342022991350144097764596913967270602796811402062927475259583034434061942116795238691950298739059753761697483918440891707547733338921606064252831926115768332329099728088963689803865502823451098885573920982929809050358932735171924366460479353230249746086745361203120931189260862407896328722823886036069146914506385170891704369815449247025090639111195750154967700824099694714667249941203059042497263867757062975455547920946446805364342757624969873806180068881889412252941353388857102752449094245099705858720220053405710094039158547197190567173170510997291581033765215736268790732865574544225412662966341294027724471151558668248544995092151577906605380510844449754377881620994816767414966576495512130612853811716740013442123270779507137605442430270981897704447620250000293414753619221310665359724162962542934973677312846625468720865884818408257741181750316719157144095458570104402709400939959685813482863374003179167508298087164531966163283942974363669527367184248032106888300966633478553448481643878825375202266057270690736997156397616491813846878354720875463935367299112206428584517256597562439289022830787460857069566223070579114576564603806073881264902518272244624837923560214551025779320200900385864772676683650460968933214774279150641214420213343206425679454780785403703255935570900630918920218834237977411371359330549068737451400823486302132051138699294582287562349821412256572471648919599258524905441396880750328810323579794048126817883327371150403707018241083796124395246131157361974834363439450972022453017303385803544064020151225159291916240873378238686838162484403243493314986332682101832440885770030969972762008536202556200182688771428447412891272487283379730829202123313515683675885654024835714362291090872073617053863261761039619457359503874844372105267087329383660911573466092546676563606818008281323149138793433026419529679864622012472060816498377562722247499770073561386738939162522455416258222623992726594433672085992194644904445483181578310674842789477626830877122123384299715810942293320221093466215582063445076586558619602557007843746230792140618801870943091579967285626783381592615744682532447907563040190783288616580429673042718302817814984210973136074685708176229055038137700467167445635272940486765166239472339966634590489529789909170038654302475190987113810614148923528324315176671618578310426897598644826132010453473717006056192794218137228828767642546671071832022309740337970427959349559426754569580479852309581511123371031745553487895216268485186882586028768232962820469447445202249056502094998678704214417015420524988157217507197633813941848638619070854848212641801865525136160292809344784988208886135068389254946096880790158562637574186717241470768829278020966542872961664341169362261853816989000518694900869725842011361868407766133669516420539626327597680019673097016776985310965331020377943222215297899715585014287747341678563760987573043296404062390891459559960474346672680775444708624735614139683469841864219744696251029255921285748914182753452609086899292302627349990922022684176623661105550153376277339448941243883890187190900558541319115039851310988644649467405594636084879931174468893458565490630528229544131877468198130880260876285789144217332538121969124644032891984284454513358990644248717304861692433875951313119668077892342346796286595108693272957919225976811856586877453368779485496208610966179169688643461140186988904023193086642465401709622070652328190072934837763134316020168206789467665425590690599228493403900062119796303672156571813526482102147907217607820224657449357125114152296269129703412746973355972465275453587784882049865415465886579469660008788129355728549242640952278039763744612331380937865782410896361281742488959508962696969750632547469492231497585182213090424172652980083789803609505955489478474993259324148205562777520081176600474342028586646472304457972970548109610406651563527622516688282600764797212376778247384162710019743801327993046132657003781919711546027620346058337904522515824313933979835317941972719427310888957266821407158047598202220047489423784537057791537645128155876429818147012879941251973882764668131705153626736960082419779788321260736647808659348737926197077705857339902904467385280095176710939297450009423302538775323909170056035392727318954253901517823542786224478032935963017114851004732328279958535297956206089235192548107713205693245146590754759623681279738160697276060994082270069438613386685390129414513379414331072251181262271956505518297244772877251799379663091484077628850420939545676444711308679051674084541832022915604462590729738763113091231583896822790822258762698668329259881417160536326393621530292034529036566170328280752930153633694449654416640428988045696176607457839076030043703821290965803490384984523976603356427692814102917364930050256117413918237867814315649150102135460291197921611238132723145804867212267012537573410456120213332200004994332169248563265009064972252857081127399277247980045825620371080368455782244064618328730213063513785664647968708777447866262287733570616998181064578782366671720226195833482573046585625190341483773084289145270794025545726516110529370324997001956131594535070242956288344174337590082738946750596472743072478193607899750474133504784126179152008477076782448619500611014655961076085786956271974826096777403937680225950602092308706461126796960989999991891302361598472116346826243907135066285037759457216231770737089116600233198722763545613676086339139421215068311547327650137511028213863424420979683935831934787034849609214853118683725172796073750646983146352261835202276825114901760730862393138485636788838042577044434673317782530425698095767856541987520896566042321717038486143424418926751270189101043227902723758898739617211062957942412886731330502857060197940625914133371377688047003336102697103076782013369494137040212363382480663113984977277843520862005603345265442375214674922836033846778198925036388972073790657107033643469382152423192916188716136856426068245519306948478794034532100968244586861819260228398754595854470374087371560892816710857871510321200792022902910021015762193163234450270581948420712953324928720542283276073083538749475690078707629454692352442643798388338210922760127646699070037067382496131940431186968093504748264806004424995343263895425114016254148381169298469047442116736986762376901330991267541478238986733903410012674984650299783822566003814931950700561060499723080780785879289758228371308887241551492344970762424960671684103005603817539457826293216959614405826590066071849747369813489462141957037904503009835136048912776211923445120221941438350123079270683648029671431619889784765669513167354528426766047040264807769821503755664967287723924738644776044800256359299947082377926844809473400055757815763295600270286709092450296320923492831821561100217160760410130257696770142602259439342078591157413958974675129362177990506492197144390553923686882472035887345029053677464167073759690957239436744582459586553080494889508580371481125204471215477801498998787891711943229438287885801839085808220118917037531977566834255062983753837870973202232289127380601022262923278001498662530326468328790289222635517332612855529792143986963283424418402858905157621032180835402680518815316000888768108728416383386800324856863007400793016561863410356301465471018790088533032127563335116141038682413490302366405531569167883630066239766258347090754830383673201265826404944601621365187421814069197990089797059734388109362623498205612909586912174245551084492034372364624334339541338582889150661040777071099654650292784734288656701852761941182017574275525312022281336878522795724003269931002616841443415021849429177193636751756719297215295316799705035658797645422691647520733727401483514375745212362481612511025352447016145221424192183324194432451638624312074388433518418488107449129507682591204208557735047985699540348609926928527031295083167517156021435948788751032333247569962359210517673894887610641074276753021246286931174512096862404926187369552105937596417819785509401906018606455642920513339214873477505665270031686803507252893784269465488920254887320228273673591011896530688968885174117755980999365498132429709338520596169179438957358674207857907664698435488356202449874597358492164029340467588621481850408183333828179444096764329240901112110149190555117175574168825256102509275261157072614152176944042383171671514384585104204215251191490489928023510472085874208544487032506758436023784265863303344218962347018251013381592313770953318775896740677041516259724467511549664680158594367376131045402709244273601509522999482198439402826971125233127566748202246479500709519177349125463214560565655274962525304865469406994994997454754800403559789659898735836134108267823782483477227969804483842176370224885998319415073414449407309701663562072141478490128683985726243037391763741763772273499991189806806276715420679696470336672824954461741433546025774673139556776753170771015467193065018426991007919961949901079471358471818454347107759855485378530365860149097931228209132610929574232263924285606436737810149576716860317072697744598863198104709313862036036632022305640455492981152193752332775008289015989662794423653101958407073941559176411495165818527804629313237163359263279856780438665276754780595608572935925307399923447860602236224935939510712465511652175975202149328079715624328847419122530513863098701628750652006635812603012348229018786960352521477949976291834499138148898550370323137134419269679666138213256533991063487998621720626540665695985641529550135390214593677348518317990814434901180887540169988898371910931330747259628880979676616293092550020222341556083037248181750435843756613771057459732289873502192408003546518027758509516871315328396513593216403214071465804782270869953484102188279244017980157720974249388018219828743339518595495941059758415524711586215002932400075974519575098783678161248812571053192518571693541853785875848477882284635510146721053116495114226925526856447314325247738328170376311220861083667173057373177003883992085387687490120572234602350915594760926086033724116329431874020832873350183981764253637518264730484541537202223711439181722536418477885451291747829791125259784882248654286219251794612992234236355810237248379874652252046745693867100522891408913941778988452913538581431973391394284935643597204015160430597254963921960370167832357612841250896709072967676415775773188232607797096101580146021565741732241196171750153877724760499887400308291354352499778933578788798395343275264428693350294520535731328613767442612454922859880812977409123734130926304604024177756157970084690742384547605800759203525830434316503562022873133616590335081943151632981398340927483860451910634016020218228357274387180254354083979249719143628488703727348138263997132241173134058550932675629456555060971355694681263753750945475631942283803963836631523122075548854545315331416500161322736515508811378442947903014187749475894029908881235131601279329915285754931334439437114598608771056741675041927277555746023648706442150938713588695421984669540432140444792042814221332661636372017709475040490979243985711550010773092330616771094207073919720226607632230664970268860586233976300083841803884534905691119251700037012094175186541799491200764469027109263593319352433986877172499602160186312799115105473508569512767057446445432444335953386865350655688303956928613670097367468964899789941865214680866301690345413988636352655971796037421382360632126453012318525289802871963567149858764057454328426191089691163148317275839340061363248715879372947343345061384736401876765432239444254097724850280146842029160316322191972510300571725657613565606259507202287376389948403025467628231134927452922991261422991128227971331489335907638944124858111437557923751941582097884293917395875912429615744790233940835334911210319483600056350071503074430805248525908607323097704126987760409958994994121586128745149980580395680135394443754473321008462895962240991517424825638325447199636996955506103220038246888464105300314553966241570539293337077793065912613909069084592313103987525638702206523800799200692988950917562643330665768353936704344947158516358868999785845392022720984781148830667123908380405863904636004291000130144638354926658017499831410920958260544227738985202172493091116449981749928046218452442393337405340658686397130078443295154211883208493083354850407451996550269993286952819558873108044461358952137344231624214107519028592572377578226967751206368698123403143417487658969084762808361683024996466493403624987135867541792857082096083344205653749399562760766420442589196043362709172428592861715869970558952917703867488538976745207367758858767710285385320227047410007309806693475007201165201948370450965232080425053829769731550048983364576189856230145495361225172249012586886901212444100210486564748032527581956235669142806083208866451295038218401033714731693385859897811507673217198167315048304034588291286694194887471500330849238419044528442777440672482045046206570406521579988631601005204964049432968596629905783772994399942418995366691317236938449399603209545412842667494826424717776881079574186282836563028875573623211131055350519721716536129075529202242117915169570773903220295964641927061868586902262346778744793989414207106263922463376900672650545791964805450897943843245867847976298270207068502716857548145347416461921551416590619969252732479435802511661739238334538818473160366664241251603513117134900265953983838928450803821289887875596292729171371056381030766159130770147830739767989619247644456785883363811357410352620352344817960458798937592027984969595517367506833724322099734971892474437182004688817861165753064872160909872507840401665812022069372084276180558780595455060590439110694399876667368278008337254401302980888911020844267273513330748213171701603109334548154087043194604471349346214244165267390220925499001484746228528259739192387676662831066688607015152911859201050879436725772117798732935504638588568077931585820492893427250882302195854891284335094348897440677282375759591426539889345458755459487522259309960606319145011793489943325525536539159960715478264532455462572400591805257968880842738305174843416685404330332420202324620222454843158480373027702132136073950630416425326244499449844499133088288743759971096736510474214005826693980693566369770471794216854351902665085456848566068317586571641519957804726487750337156076425418308055025544040372473280287418709194326680050332274856284349641333401025961929283364065203358286336593679272767307742611874440963589040161194904989218035468326219951211427561215095880248467938394717603082330021271682911398241158685411946472878851947183627645147227542317374868501374018036045308090202235971775970164051153683019433672016643320897983697340420661309383801267832230150733653560531304599755584350517435405483879421992964017533141212505750898271134312248733174609384123646052022707213851544526296343869647666368289596798140037559279847649296193458012334835423868339973574783405384752342819489982323349389013311437504696750128111335413824492206171726976055487014642580266061408675302966907342492614313678845365559366204670517562412919058460208397663386498674797269877918022689993218052312022534679937857882905566254317242470755171436537047741495529854493459531864383768059570403590716812818148969404440708052546316854081902481070672533914212778489557682301153086844654962019806167815251986121358185609938342097354288365294810761698922719806928283198817815101502676744347685719162029971292973982361198668513993256502109614275474365618256613051056885236629242960164282881389435418055830368879429031091997458633186597026690550861480578191839351618643366685221135947619691804175325738963314720229610750133092446437045959965700553850925120616604689300839424218811509878591923442847880065686803493253724994412704687219860714731160739047538581090968032110432244512134550713630163360756246814112632853939071510551163477745101977989971003956199261667220791822804204262417242171946188950910560760355950042991147921420372166008026762097545938440499057705502511436955537452517294043945771376525479095257860051628543188485146385167707741814227414180741540429569603595022368584238083339786146480328017202251313360287484071585685817147884208670798551166086679402311431604785356938319276537526740803105940529972552653302534410907268358280890833371593729750570545547430737527095081758275065691779685670463281818419778189506505271339164917965083605512366758217397737180831457624696304265797374500649654240848579977589691096251978896958346952261244892685467656506979743022915526579982438599066278431008787801182688054698064172585346812899037534460463710654728865504221564529573132325668234660303677349498742022201965293513512915724110697020603552494076115821329974245480576454612184882486952960226627061914039614785153156435392994818942661570612962461886011243491185702202574984271169372532974146956412851522234568395768165748657094501373749817094558279187995380584190260054601915379662985192939912566112321092374222788624960782366981539495729090253998489639698911375749844479740049130004627984565025156201438449452847635939223084464571282247021833996398037642522862653762221659984669995394890748204257415420228594320727500455174801548401343041053194391409808813652081643745924005429461591559806308657666830690854469974552939739635297389273863946489870561612208718894601323552654500259691786762061922953012961001284519997995721298963042634040251190360014999372828872492693920080069882705347051038702636779275054137205034572612809740639241189578249085465332439678758902342161024870015867755309352907860343153757184939201078521147416970282761946118232079718876411778221830841480315282338346773696197868299487202265100225709002722791909062251309517304055330022064514612276114693765013790829158286382815573319866435136792898471865472538227090444516959538378067012346624578180595686680210982246961608099230284780836158227118324182978721864593153372650823403850351744900815018810409950464240288768720711073209160615843554878889185077838748291033263540864113637956725410607779359096435199417397160271183679595222542392698601909020894090311454146822860501336647601090212668210239204889303028826945611896301197961692022355771734641018962276859719404876021410068476358417995002579718035945701363142082712790118013748359536638176620119489336453356135121360005576561719889309767506594106599602451905414112390111696534997172556864798308187244811014995900752855241802489040289848731433176651617113879068759596229935393935012241465214966355564301317071950427952629807159389191718797729550850862377508893140489332680765745856373605351584707761751030127287622099027628470349794872430810435183888377022827763663933090840039820229457201947346970923649439553865182047540111186914501457557255998503534930368736108035362506249858352729374547303013516779150796682798046418230170843645935749578734054301750771292803023357848504373620600920755294660584190896258613959435764851989864161741097471273521607709365469588067724474906097520310148851968149159604377218798524865418097783432278779701205538533230920930451146111241076921350360678398289362345819195500134568092845858683525401500566401765237854988629971389020271785744480197012202244466124613819779640030460430604910188621617425279735206369951474151328527551448984030508630695326882142082979010515079505136886203982769613021808109110579739559862585445793489695430842151306570396886483739103181763018157964493055925212215619027209594253133383402090027166260585933749950188467679187090935087168456012152197905085600407150986622827274093955214380388897599885589833550359729278894805429277277741493697217151013371872948318236272675342663107215179377034396161745028827371287438562262022697301172162495591886708611477544845647520146451072850647156825077078237708729549232469939470961343014465723877966743759650277804938155576278021925573478372849537037098323804271791952926260728535966547678700368344660142747562034520458341176838866116968702109966287791625439713386474651450366823716919629023308254594826205980263999915776100520948466830990084433181353479985970407087602594455134412533928652873218329947272446622566134092753225860606043417077236116691657658996658503053885456477991220224206000859122646134930479443443831904281069624923502164862383406094055369095256499122918100855983964363683426215885041413413100907354262042612398330603552198328638170255775966376344195415683378907700191355229635755011257143778371412021375725015029890136026653638548809729020821569382254268806162908688033072841218140279630240352644533220887537476752439656112450407339913837854287064872943806765253048301193288252438658556877658679449669645493185842440358830980163073342688169627820136437353075288202262631587148715475061253552886868053898545903087987044119692286974254357761117031420363279095983305380114570143847764959314620695369241974292386607718523897802997802548256274728873124338330537889680217362517701224405643666042199916013746324665133029474777385981910013230910152477197255216423593628329162335216705704847250140233957076676524468143942981779596834853340612840082142640895718648845614546798111139675067413969261366121530672863641300473581625050369982242040221975344088558737253248407282022056028851980012457193593691252150994771017707191223549520390269056750127327424219162579753361530443059049167394479465288902706817276780820048905527791007136894036015889353942575735510915005638837134628407939027273592007160665578093927418743757399148180855144578684976533903278918217039291041376366104460014994975283899302482051109049693953462089358453349682171156978518715314769426002089956899628520875086463587395404517981108396875185834005089554532315327419628689723082579813261579394116272834920221730713200452780407011453323465898159657890623287977406752019820651233762807879603849267740711495904318184207477884020840114917407940827772275227643712576498846979079969867951429869121546581596152214475683830817969343469365848795199899844332096391217566212167379718415925332889395404843053329849198282909764151369444480362474334820839081043897401563029945258132690487392039458070410138272728458517811462395251433917214343601858810843570199806274818447458608208808711038274134271750654688634956003202214234542577791061295588339073097542975265339689764745164506517908844393141779874478819745144371387675444062879754399343516201722158430890252580759360644770929043218646938506474985738896772117438968506019760585607233404317988530358911877359895644292654030376559609256758867699130372094586354069429348521270955352231279810669414557096857834443899316209516463127018973575917353282691053837134244779959067025712486401615055590049976829636910817568294154877482182111454350655067024887641254202667588722022364892780496875175922200308862397936438265662134812767369196984850222672152305943522630304983094449205505966523302378537411709639632063719140372086587452182271497024156428883322540351928058841653989587284146377353520795404063353743799235214127041516954543181631459838275530152467451832138550200788547046953499547774160145074303341889866219129363408457004877721286196966088950048565113870420387705999987558059161251085526630144952057431063125935429920169669492627936534604662262377651772627481242620229814694144456389360958794402616280700897340714141184844189699358942559651152823909577234237616624851954157399770045339100765309374734277364370758733410016533355083574206649225766740048513074059279554600249792660206629646292035899168730044763272487176239467941591965293753690932124249793255608975084913836117382761511894036164966544312955250339108611669546461460859547605317366731653457335348038114423330475888693153382840311731364129487660998618272226300099920135724475739290218705217957224511992202284350974523679715824712091480751832538996602359305576173506436607045801653096377906677952286205065292043946593441938010450827376927637800214593505495144576761281064674459508431384210894328042454614753837502159112852033259367180087478277439542495415194853327794741628724408516886296025904714082377904146125942076054261005159990186718273510453451757776597555881537494020603560901547764287656907807030539614539282290590722784219557325270331341756097104111518910320104692819726181638154919348787862792022064858769929284549181424998382439338852576262564120166440656453335037646286684004100337623339261385163489080026083519243279803935437028096735425974207232647419972694126430010454847015327875147792030624630271024373894829551645302237453023812863051351639813562129938764043484196863388955138095011552368628873938196125047852300484584882491998119686943702167712583607888030621336502783376567171060039660418907222564455124346982908852381483135566235542044193689176517460775978115968503422354458337479020225903288720780526961957047048192708559063787865180641888336823516808271668311905176865024032869438649287048600045471332888581787822072174133629104404246347370197956204480211428416799660313597038089791965233338218530384748419115087853082271863108026304336846696053588021898590516545590792090282737352845401191988787088239002616495272092085303145547201568018577895122268480925835783209339425969654587394290759755358315142521778726158326944689965511556499532441821160400335431526173632490136570284175202250904730443270281511957568627834080615649108426457915887701032561249194547047474481713763945596518965300084232483501351595196024869271272455116936631303176917022381189444970951667984703875434527858992476761302735756977163558497965684714564034501990483063280924679254784065827468988227335795932704372995540119338636039203212694246809641093479028771642538859880219706817127318900634818017518708308732683099219413359344897750975767335686900806372555126308883261519331436134126454191259621585065150542022149261864346793116433580892483684519124281468453427289363365919251773268084117284563190684202450198754622835457076773755809574405954190805457814638316895210317466844108496156428767955476320788779806800814604383115781007879512484099735274104819619337107639352099446612436399389222111934390132527395330384128597640553186518819990087764512600812876046766719709603809433695742136559672573810213537714824181829078227987243991978072481573490688183239857092376994199432052455240498919867641555534341874320226479989839801719609928205982698895641722681732540353008991620166465613512476661856330437071308688053019664474349809028248871679667463020331841306495532324428697316674278973107999881797188212037127783140258658799436693120602794648513210406245692040880983166163097874143604413532112317430542435635091777205783573148208752074243873642221679597530821995113753389642010488933014935536868905282103573066448206737485820190242645812819822259040623051450681676688118273735203298787721295229680053036927482202299486376014660649366584717630314743998686089605571162489172817866874647683772017273509067541528758573102215132455833709835939909880117384917761172375876650256054125731923221812963484415338143883705124349570931426509227868416341766353516628940465934691150553583320654288621703197541113992310251144845640769354652744876511062795671900569044794273314820105015456595305382735262302253176659252014148179785002498659836953294843063623014012934478191191251479808235518505840246211689576706932204267436552022444155263872670740834854823035629147128252362066424222208889458075880319513984010574196213404212101932478645456584055740042326381158591579644487539583390783445195355662769447259585213284156653209065950353757216067124237893556707774348389034952218204576713144125444302182269149660273189106791884001778755167868024471243226183430599895472766517059585091858774104974508508628486769230902045906818142106620286417236557974728430572884905779217523437591461405653496051260901596317648855900941061200524420227363461378657666996068285787204508041513960486211341548573011043337441561845156745678119246097742509414512819207553264196984143186539451704660294590608185948768776189095916404341507462328820937034310402111092894742547512661101219047247392514784690610356828236490497866529744116585980902312051067965406213317802315602815312461121533455534276807687625361979723260693801731312553586748514780167079964616199110746869771491643337368099783639587772084680852201506970955153595728982497159026865129843042202299556436499938726696153742574930049811263613207433398064330329591612191321645712890401554959022718439882139943640430602365419120425160368015598059652811811687229834200118117902872083466628420134387110217650097411534175144706720621994628372998456583197543366837832026279663776258009567162923134519307863115708169537133305069011892668631216382601249612454642238257737033541267091679800612351709383935365733921912919283023220649390868832644239012606993048213532664818344675334009485665745210980095892022294357675759927016218308551270879890446920504434589458859868040257814654496027432858074233972464625054241991803063851750048671620698830839332615333537848739277343796651436448844483064886476304212781496252404163365055351744962074616131850923713165195858084050870983343422606807249314031884520117504298745806731817385451594001040569253423894566963903001605510316626438181412864522248351963229258380324825833636358135241456793461273142793189290331978257154512243763645799886144616015344195615569411920223550721906471371550937226046242771471516012155409255123374043473494455734899443100134196755638455845005012136461019606491669419687219235671402187235063144630822045609158753423756499750105342564926093058899837128478567253132702813181767395447933308631525125993736358937111297598494715976027875648724506071001057201089682028099212950207935400606774163422751923102461813281612537236734214129082950474767147807313155036201756651086219422947694329551721549320569126645069727119864657395484277365466757202297417779899468793694242996984274870507432970958418774035933346857370314518683724781133893896614148346693226740863849660830585275346891443169424788353879437942084953333673137931789081163209307586846321134211860050751050281893759717910544203231942758670572012018097065579075941112197454701521835044140384032604417098422363323152938748614730552821782410161459166614253591143303710726101882154853171929115019922104992808252490114762840200359814847214625137653458477765088317332954548075885170674939312022475018207990416114334165276400542345988581047812154310786320475407447093639223761749687678402531584821288093339996459298811031841148999728018851381035971175184870739550980031586346820897115826729012629463588553570268258828477498383379198393949845557464584187296727646071032106197857526983826074801030170225264751103352632185483397099023082133990913864156627381005467401675817637171904981512179274505159189535734330649205999397472004730620567465490957345671458065896459121179501295006987388004286820221824959278454961186217745972107443271098059304801292978851147078375074660898029167926142804543588928853847891719862569453784630291637877688598522295549748129400441761035868110666045629917160494272890837554337882681930030813741913791847196883153897926617790917786553087751911034182982811703114868446434643822335093461117423687925981016098478015133375365892482359704496829277973843643654988366156074166230385461472300892647693051336155401201654723036835542169286285506085355078020616032851009160956202210789877260508384764103941360509234988632983613588168806467547539106434530675510722454739207495132538684265470110439163161492688434923253789464115678114056258957990617788669409025520725441669681577096074528465344023159926499517657734535576086611380858218190270630202968016467240290653737654476968782102114026573909355571510230446028540448930129150731466124753796817745886634167054074432614128982704799712754248924590886524432718875763901225444311090176023850383547374908630248803771363103542844942022535181466877416351649133728950857337020369770149405013401846013693332496597457494307920242474527952935994536935901847038727019921679358107868711857684003862897984731359810604277010616370018714361320931065510140428509857988985027182154345057350011101585853664973253783642749721845372319734836731780621487799930014259095115784710179084565106501772865555471452248294398261990894924719858892147464176934376408021574366518782155129018385091342542107169222678334346819209430309692158076317065914875659420224820946247491176042951338474750287231044890117941721583874907165278340500918939468322069552320324259759697572807683776277400825156099316564184638587415507364379938093347462223681497911841031778262226803915681169028483329418345001741018971946325608205302110961235227602207267686536247002539728670571412161061875053776848681576246823962567149196857049903951767787051529249064150739372280958822704753171132234738882952422087824411183357349389406386972565421560873312058967291318343072484651370235990202251615197698001203009737356069277113700593236751782320260223193413625224272257459020401201050732717814864478512839625047047039960024429810856914486027854509245972926482684023128339089975795451338624754758294927771991527833008667067322297059901215854889427650586210095913160517137891411698831963173888980686784596997494268540704452602405707231077468979264804187393973425612329962653758819658929435442784249641370955089457871461011549771622278267551648305049910321103970441936150826069532156438580582022745018522979173449690668834338874525784898113361616810231934423055478112300697195752962128587740224855147358893841381508508097721362908339712617168350775185837685002258590287690608876131773283389245424719277556277724572938801240012640018175370121188493847779278755952757813891553786840261303713304401492308138269029005163372851607749434379574242939869485708119357758767047807280044461080087017636861143489847014125565395655752078742880571919888944621479981449263722940044396441768257088360845165620221547451375106620079908529086975386228305692499465041326512251830761045551359302951611612976001164680517453983852427769012909303385749650315147927542755788225956091905668696554145636450688299907808133184625438101649795468367049967285643095951401152257123229388747053408077919665803637545413514431391821996777143806062094549836945336172452966302132067308236379223453926566329557182583688183248932484885810119682698623833556624988981698047474258179955676768819472546665652019602310243737708228777837202240855191762573651591296087994624384270429205309425618657382028696452923162808765496763447244923392611341102766865411631846406952156650616230667918404154757594381389717362603844899081260868925825337346691823156096264723039813931472485443727392541433181302081432606995387304055678744782191408742629905811604084642375963503462955483263432986843648413380411963299175948496035384058797868263785455046119194920551409601801394170563112491965306760423208434416442455296448059169089837746737476298562511632022674922856411875011856016093208553016728152570303164184527470180382212329291792938025143306419532793877416424107140546325735537594034707243548371683997960673488358491890770267581014441539889513335660454668999080367134423338587292601166942341402397022017847227416686504938942764991757451702762449726359718021582164435030647593867243152830400725292887697243018469915121487566129269037961563051818198872946331177819157844475466350737243835444137374797743068593068503861892500796353166991607095464013120223425114930128034646530281105981185083522663027497237542284836815299341831221697110124225718563028043158303472615674634676787492130331854147484561715746583835449090815043665010352061741960720928774904398315087223165810995879126669446252180413348324212511487322197766474099115804643967127962149259892156754220333710680097953941010354252074064788908182456071166905642831939421804919754751100598326206619131701445674367162389533538098853977391329083684357889219544169846809496615449853962165523345056202225790120100879579307422830401411189304706808591787282366160788643756092520495409662842531825115957005278386443562666807668585699994041509546361977013107209239804988109034320241662280767423270029836337726769294696942919164889674719293076078622164919534839374942924978661023480688273004566765566335176625034125502312440434631607890716735015453529754292910715368928652433953531210051750035618248381519971186445215646363800406401064182808356759382883272165872713383629949173986388545475555829082585152022739812817867128946569417278018564832436000400847681042475950944933325753728164216051957766181819985015885259930944330138501678702145840306510882813439614880100439804357902585720454267259933493020223098911013129481269077254468889682190743912198589175622816833317303860141182113965057904312368675463269878929577533221242021675923935408885564629142041740381771308143364682565451353848321037647598976810422819720163534153936403948573684037889995357120721455590027390998021869812743878712776351452324220226452927963126441196115834392001686977378972867058777443604248645058557635035182297409604044306774904897898549562543106498009215225036459298559228275533596455233492481107600116454626923882437392224904430867400971318374897680457703189063791533241793144270752833747828651132202667130720775891273698825043423826200660088790342488924655204960405566143164415533363818185445667018871673666047882971635437882842514044736423130792040758523250055875916997723963272343160313590282462833268046212624610009375202227512141182525851891195956766313204436601145907650924556320736679772183086823734523727586062463487151884949429748731466981367755986738340520937888174022649432746876413570365166106530583462594779006622077042743136123508432814020059345324421135854351689764532357402604397560978371820847688801031343707653573638103767337315409325120121098979691550162795507339312994867773551946237023496233172325337313445260841466297928668025985007975261016237182126177472361732597461793165273044761783110539010156562022218338171348572415964768966012878646606470694395448684474464795257724419384883536670758565934313946203457421788260100100229009137360320258871750457894301123443283178743537898732736712958885236585405657565303527046666602766940621329429343115277977331984756338716188266680773484839021887959052668727288534545612079734040610454648814041645075190729544256000501113551688300097587498136305683563036380253468492218487133329434216981364936383229258208300512382013790090631871553108556050319473429947546420223078873396878863637438398564052693943605380309318646369851085528815384976485599790827361229603902730924565180416371557187406766535098567233941161781211040570013894917223115248856068328323723328973382615647883929433454955115756410170387876875769975099874846335336519959688915969243741247790662118317030630457230832130513077697001170514272663303136458269806378221828445067856889593649155214432459581990597772290345699715739706395471616651733997708917802065483634004303237607513538436737509240372024202292427525637187049538608096441095510180935602113090855451447894949598251310591787194462043907970467236912413962027832477002769432339885268224477712453061093517785720996845330862770764235623566034157732424221909082357335120981900950480003427418249587903445155287679712834446583042555567251832451904427045830626405870381664241311626414954544610572900558230577932135366403079784062916321549977004737057965675790958582694975335006890092532485538349278377470602059678837183528814718205294679965941268062022547982360768322286038619928734319276407886791678341543969968405377264028167019176317663614473398955226002294206137749752773639872798713397518897613700962701823480263988281239874848565101774079097072561017124008626061848422209737684800619359281828417059110134203436602845496764744175488618598900460309197011202520914630944859628714517804028456065991010659156162660892619606329047095893246359815910350859521150854383294851877038114884286555921737827127733589097570914820236388975984143680901199955820222262605467679537148951615929897665353480138990001854336258548953665254753825888079055842329697877322208508429050438238706983260986113997010996555965611164052153831270740621371067161158321561033185008046514097635809836637821143885401396062855237937793699292818323480564647924893738754518100720786866400357997262129327819040117383968724442742860331611577744399486182988630727312410426700345942600510687940919899234150173620077061320584592046503761441936914202091189190105789417332781391262081544389202253587296669912765038406495568606782629505465656735915586289356014317173737027885516722153169615954015038143400303413296873990359767332355394412962228790483229565999608451645040419461752114157748798328837223099587496673543697128936742251131954937124551412391446418040408490170198854180403508594630642223990437756642096019088181601667783183805639753175146759075885750455396534527199751922003518970299730812779746539557423572197276284224972446366173064969063222872768691545195751675712487883736166842022127369448051335689110637676696490109871010244885173126689094313221444945346553515404583306259302266143164298696435324689889216708319266174126112821365604931968805593213375863210448808503381193860240569518580192306083998275107223572372388971452523708067916968438449402947178954989982136528028715229033817986088180933859927034443326901644153852828257840730315140110946903626586636810856774504543086620458995487434185484908345923659530556696967539649001459455271979086176593243378970080342050789765020226396380632223215950257909210717796925833047988267335961614271060608843502324676153272936652185960724888772189686245151638157409326021764601912315640500087368103361372014440122668523718966763680578734086456709537040899358517527384354160974255471722874999090749478852069180763242762829781202562903845642072620991568071383970739336803733727461933339263284547707990494150390472490696817575772717912784053640127670060047594638083735952837455561420600963482679580060077833749104017046536948811503765357202295397601372216086632993449975359727248378155419002839518885221804167564918155845636826038277182267470135879157688257610129317450662805257953117803068561919270917673217205581872765594209297297039101632941378384925814503687537990078763189839197557030162675687496237966280876336123570281393594409539351783479158193765656872060504109540816390680704504810654102780929648906263758440574279302873070847725332531240051880790392910794199575621211666110358681122295969383679924060948263986345088100777111082022737814590657549814761598212017631661664208801574138218200252035369346623095979119445935476553575088308573775144705214542996237382177392885054328286903029270174248200580301294797745504505420581061676552651903243708053116321145873759575778400050409307637751863792138301549826848056738549696803685150252524130358247841573119635782654378898687327046567476358885119035135155664544499044049258713733229108490701627356150050266505887834542405471467572570253002569820687533600436433180827262284047354228620228548617982849406079983712554442288179264636724253295214038633100885835898783164521076372136204012464470235864159528170465628032641091582557395183526572367348616503529312485525548652376481662883430445201423247654339767319136907713974397226367199489681346276674667171189424947714267661050203740662192948523783763837383922915604695281959933540837443308039521863478703514126786708346941790885868594576315411640980553134330509350006561745713806898790194986859207052456148763542783589448791145125369296202218350827533601829880509173673267766344604933971556347015114985942709670655643549007346909826580869667418319807984107829308647014313005956539233596926672983840286930970060053124483186117521014641985245959182548241843956818701416161518181057498758732348286583562941663631001244345019890241788565540629134881643774285199710495826518399307465876727137387863289224247487741351066245547600846868769567438433257240252267119422421039724826214883562690534303522648111623431129079807253667506856236358955312022751097561990645268019492348643481194631291159365831248659159824351866013447305092018889114570381364776207758595120795325592726733436149841830044973524602817715460071364094616868466819154508986369893367192675102407925256609908135756605312179768647338027302231937992393595803441236698202662732910838699692118186031281901958380887561004536391727916478494385990683085035872137540706928372897765472189895840035658546382120847408526331555190941011427633389927253417408467730505528798084993512841637986920222562884391007719576764766098520967364571454452562318245132664321642884297772760203791186313704652074703062713030231396097513201040829280462455981995415921088285168629358104950956552487332281224174517640815795988781082964211176536343244926069628924386331673791014831312402681155118496853104309442127352973221540981892084461590308838673108118306355657926198738683592876750740879752482132240153872420384613766033148310015131178342075881633668244174493136973279450811455387958201794694575168734849178202220896648088878439661009614067751294318448035650180202009450874531051172959959419663985052734183052908020965750055429412572465949767716662181077987728442282391264108357226503636205109187677485281643078688925082223259117603075104269474063239803367929863578929238469619576778563119323510115616210334893495936977204457385259247498991367856710912578194201031282006928491056591440597924152063146983355301448953453367480015498466534999833643486578908077104656152070587735240016013063297857732050316654982022046306636703410795842618729194742911902491486907696894851991533377204687631007898473847782918643858986865257455148363396547407447926009117313983392772877806515876433686872465051258721736891244130248842443364613460416722871820094042511444743831537721621835289869666540882867045175028671252271044411520841107149181426079813975527399950402374632082099067456222169979809231239916646528656728355638267415893836587620419565247467494965696441047066081080221739742250682855482180865520248480994603195052820222070363171218637830889995907219006012550507429410480318766317207363079495789943873692790213813582813856510522583315209412900388207965003328228331835714144251707525653120142707289967062214314101936134066683575453436428481141959131594162986616154197030242198763509786035060302883837279377933889630489111992133137355465850857636714984990290580495475490009943499869418709738660531971643041451900595914120832136289989694978983364395156012886461122623075864635156307972595443502421184944789932112683613202281523058452190724549525113053981611692619060931110992442425871395695489343219109689419586751075577581315276889293934994578772484650367164483769514294608761098721679391996158426057390926840560503676630359604569319314744613350367013274178143223580407732304051467964869024418052810779060245438459444283430460081508449789657480350998660797105910696795309539492533196093098587689017859617343824947626090891483950888228345102534953656127853564574407853360638280584307641506055730399188375324997019374232022086910263222626896370412709255665626658025074733175349490891952737482183528665787240118564540884387931724169085896551087819441540439462056280888967561021519940578356482802372405025143983319982853793521455869332598752563257909958628978510371710051791637101591936636394982709181978991915146838770150238851746638274621277421795345880601584599015684136099464744298395456909915625950445463873406104002222762585502469877312122082656216961740887373271293202913956461685119918588884859438098673962637240120221119532186352355277017077861720557444678854097056365529812811891421051192832590612113913697310962870817450679096508832399322154719880452968264540840354491566260040866194048836183238582629375988131349090460999299469078603010990529042578313885887233571319962316119357515065312277624818313003593559412281806058686514032358377733052375404589903426420669409753015273064064831302666816640036466145995948628255677751250841969562968412196412302443241937066144128174238608759269287371053719614115929957235202261225280342379747256638003796895186732676190894549504470438836358134921250546907117310913143284258868655948195739902900594582676190261922583569702491416762210429052553744289658928094346023400033507953824836853551470471837918885381480837281873600649437053877101604521354850891449122301577606114063008551196129992827989613898424863790317821813916841084999627399735930594268295791420330891476469616745335561074946309215635215079231848326273807123209092485381613783811108082901128611497984332212120692022145211388714864704798944394463965716631006336884057726178871250209747173164482022223885518919058699474858586279920748093521802752969890774791168966826691745573704896500145125804605903191265275560196857569059728987090320130424061230750822227456899848287964625550595087325158752322258208966016075023655829859470896403726495538968519930826963087811679503394850963096502777377963730599414994443908874435700358617815969133614218933395819942952325438510043256442009422081105072112098979784159946908148420225850854930573259947041432800261441576049432932482847017518371081403136298504555685313204512142255766622418094184459207347191739503592377143408661222185770974840247237093417071655726163804354569818355055020321255925004551045512270712762642690005170227840522776954549111702570061286093048389499153098601992137983536264163420761480270981156741670133539672094884962521257365506077303906709410686946696643195507223833670307872014656420350958242056240858198318908062248120529839978267688636172365171602202231070299866490545669036373406952503739561178519058997574244278307158791926128581375475162065066053323492837301936554498689298183211755736462893842015748972188883048704898553240959100542351953651398373865829918667534843038520499477581042029549477190505174444180725899445045659949476812319342231199520225683490919920680777927165610081534989458653222837504318011787871281943503235890070437641652307151502315455585054472340335690339772780151087482146383821009417258178964025291273646657344807933935862022925310317882575150620004053086375232693281800157181104793216559540412341664760700427088510657375657098534063797056029098490358563888956172601991147660161975675447853846198589887993887504653972308722493293163686857174389012637987678243852211791115525457580297371063111075652519392169110294472450341661066080700045772424673669530009147722092823978419465104151070837064193557715365843948980654492297976129538502534402451457747885880116012413822668967886498558722393098099843017806811333939865443038220227557666286995921533830765342975585617740175895412767725537423433945645476150363647545803095119428492870560561217788499032936550308115192518481243732903206812807750451494136987596674186125138465642066510038748234372491198715734502421565759185027207302063819729840744824769126500614701082935929368435083504270406129414197777547434015278111913476172630235066474361137978136930354633608378346799232112901616128175361836256983504436970259106545838021127697850432576030354192169975836018046775968589325202205675225499766373119805861041757824773031717395780922175208155320320724790856949948844037295119801081319514509702776309290988316378426735536033516777370453413954431784704118167140087314514633717403812751143514799305276773386836410940953475748730765907765180444626868099725371556186479123689344009501419725707036391991115162910975986387260929588173248164818514135750463178600339351320613058038054203650814539552416382781328598521572052796912786207846250329194129311221731456401146538090052626377262022143970026928432132428327167095253879080439106375737464088100602536521841325733061168239905638354746298159436564734911103576617963254648186128206710274544178175739318528609944719192641654396607947879249819773781107744459787434821930528997315032237286513772963238954229631731202345481714201107717692639995018728315820115732439059354955496332552239896940199996148461502123979871894230486546638663448671696251302144076105499799799845421450620993299855224314218608009874762825420609133765254418815507220225806370454600477722887940993499038311848142577117689434670881655776298415991173403513626617142678390454124293641471359578819280204613881461994516291030106525929327498512621387447800466625047735964865031428625146416766785715819673818718126264853477981451611958803497581875655287442124517130037471453013002231697168214596607250340316772996439260790419144794643032500374058691207251340016943711607472781364012679989940352023131840457808242893929143987516560435042056969477740945963882693788385708508202240364379588981726989108259820316884711846321010350185755761209029660307419865816991259297750363675039536042752213353479081296644089937636208379362862912946629058313154920551936480895981845083434661285698580022119280813068761954522944546282366502758272480470415266772189972675429507761917531173111473135922549301036121366075122375429732941430314599967804690187592243011238605316868298846569081795758382114243936574135870579750306877375459960039161120738364123885407374885273989860508751681721367022022487890645591511041704579738386902775824166617141531619215595132432985152466439566128280491798955349772729677105509607861846189686048466829196139073972194130139399152477674011452014648237487159730110599315375720199358326185231310967504062812314913294286253839670879925912316285241780050069744025781064924219584170657447839523028954643506840127206953104875192192576193186861562482884861715758366598651308372877781858125720080192672279330978607440382167874189109911079602861913471976772680701027299820224144605051236833945279646967166304945654970009723783328539406056305023584458148664591769821514930437598275581630190374212012630787551827030696030405589685677309308127810103032073802844892400757489714067375411867061516690661346136106127083985413760320991104337803606950094494557475481739902052074042925449698020762314569370232740922140025055835334422227536977034156402167596225879510967930495024358630777100872302767018733663011982750447218583067535706852361472407165719434214107126221750200345122202218027288918578630306325268986233551854302332019758194724410089045942289095134029341419375450272352672072009662444561751131746856788677897978356561619170084205569926445418514202714957024677261865458070175109437464914472481466892262446228674137011769677174818557016802897182511624182044031153192423894193892266085671244933634457340004955574322796437175590134151400560827594600891770945137914553796511375306520539823630376142056339915171850305295112677037562393852453059931378169461381846424320409132022132597873320371332490827589851757343161096257429060250247630225438449967397432768938193359118032698577159766922295292542738256863300605864479852221444040984979781063995852465489159152684349426283010403605728431140451667260951408171903061751080812637727924413771793774879794927825737566246265384091520257120711856992673894802037033067582062432652564534538249015175371613234922399723868781887562431282968199802966425634427677411743276540573384253998363642507123212311537214694672511127210865946881220220866636041101891616792346370597983088572599945191676772660867382984118477437976737824742785508413388252726119663678905662516799945116948082056604596799562762665485216882499622050490124864107222013364281348687284381093118509903532411781870391433648878606059570875671819608232849769242318604253217221168289469145244982039230080125676879968891555549799176106163413132339899532043429247826391730642278377791663302255829935664897277914886426865456885656708059719632407469413800060630772593589828903704202229298959776270702175950369635189731586590564383408915293078383581911289143631418190982478451014700827430046927591435840488812437585978714226370975028095833783760750389386602644151909232713778629550179293248644783992701379236624672218494871088132084641691877608855909168297969312344421464672995419487458531069168326998191210358547894244577469409193489713339971826051535910142743682369043267330924479836875112969840073120214259027356949283589944853846572195174261547502557264547009426011522947857652022661049149397316657221228246716726147812587694973473637157344753415456658794899151344339422456728309267105861834213844455704159657741684749346218926933304042321767772025045846055323997983868935569847827009403975989883185837683770982719901643335822869674161050258748469213847555467083020330685689501023593512162751159400704668078435662922705845331430057352510155764127283654565988485161482201805084204562070482270118738590110218512145237526966890412333907583242343722392034381915467428356248901398020221306992211758273742175498592270621867270122907873005451038893460317078760795202761874707821705113597458047038211474992117789901715442501652642680816072998880991996733921201117008459088917508067101213961564916957473065886489582131438387603241175049112507346156142703945357119233805514898767918452033290558884778929559161731259926478499574334572521319093266791083081287999179575718804973234369006784076181424919171300580766674012526163293083498515271611635047575229339938024803809925805521232250551202250951458872459820622575488173505758763388543321643788937796044006131174536921995082994614116618480562335213836766107312048861766176764108164165413930066680211076307169066407405810872271805473418781879098213915436984688954835321680465416573481686995289285326090549631697123957852365860270147250991052567549280626668770040423016424808899918052355204920486798400365751566349140980409302071229835531672753377628100050531350254542907928734831446161565996309695583822497443627195174319033093614485041602022405986934604562844515994515417703078142168667000011588349342369391359408786464034017518115343817148518444833153836082944236876229598467576435893347013066282220111595717172512094534399330015646917142829936276113781187636409193593250508475224938525972686062742397695597973520064494057586647194670629538913324747905834292456251188364966997887599132093495994870998730259465685932958722096021065588048689712869960263994862021359483702918481277461055013673768048939494805801620744908541708722901266271820229010837992436065534586731434205803962329658018369103733009251177842895735004534393687810461757169275613995712288633952364853323640258302316513499968051346565260943031356897289795763643680429456889287232338882135373768483050811295217658892742040635197975525194673392719312771276249768175824892281532296404927331912971477107984147464471088727178319509790937116116712088014259705854549442158904850439296381963450501021762246782167534029179778966796891561746238943840165323688842110937561681749373309202234194830721949445027684748368153945548463782069329831789268965556551708412711335658516798533083509209619908490721111109046857501308725676643831325566090947303945739528422191253664837982127126317585111722303684293943822951819046009649796298266962849057479578368440030887805651457605627461561097308957847341316791989681181403688457300732166083034626117218206644770743640281945201427255685572143655573465192232550483855961581055410781292640530535555554306071776438180783874837423465545073442482695692022219465756001024827702873694123223240286653377942803255653225373806882091475472886132229093274232495837656392454211014525309557277726171221175014400607770583473036383866645139072716419065818903497132436833853633904959170111423615749431405476584738074728616158055996889217372834365614466575983200131766112959396568967929786178567465304688524275186824478543601442259387408477840827246152432590425547301160570581383151169259577231196610852325407770457428547528603611005725986767383963386220665100757420220392017555530239450867155507946753295865619188334104271281179425577021546592791685380725354600367645880684100908019360844930060653223967016648104478791617411882099798393585717164428173253552964003688333590151034531410869123106214499328417939228394993166863680006837346945080849192111604928422912797736595516889262468117517349878994746543857220967996885231301384106518261473168950493866467942432827649848266700076281262249716255232729790446051781149715362774545814947506679282647600746478707612082202237709413329724391570832784008539530573595089329829787612984895752423644797092903238139998273049007864078382362537494374554579404258494560923094978952468469081861741533287084108261628003042708738551646773392378074132097947355104147837453337213626545417634087332556222970748062037249767692595444833735864395928773258263210737806328167668717633483483507793872641774727738159505978316850798250081500243643329669793471059191392557627220005401192654946080518295140147249577619759885720003470593413402792022748057614603746732119207515149140935563731645683991171402291474717346669596632360590114291579551701596866054373912999520456354790861261790797602894411840366710398491934007299618116079614801208219835966657263783740617457258294684740714426010245322938463040888717641079395729860456627818069587998909737139942045556538920463201825734134772599022580056452822159665244283020369516036463819571830242234718180489519676346621104186246611546533342559029081428984048504703879324757381685281016556593042089820220322374013580291428131148445755409972598190680867200459847452267808148888461931659202395330601588458341192090963143769717828718320319896438827768271156685154966408308309692337864017589644039075767117664610838506056767477389173115502744945879216943352292788111862114156002745821337056509158127061867417415631239303589029047896978139472951849314054454521854970200271996918122653454240717956189820298928884264689767990318360190937536208938279159135716903043618006201388375528674969440372778760170567202200471924068223923719372055725610208590138641919127390483553834935227431795058386142898633254521366402614393018837004675204753715620816819191636297930543769898196313782793312254287949629209334950016099067809970346473965871604214899104140844933241967299697530837270908264013730655991614438199059862297443553957587781862261050357442330662038199952846240679366873498473512690640408395810055271505933359765585493936019115395086644713618624738232647160676607989098153953514114514309701043571120977956932022136707391289055778558587212338219115069370819790120676937134937313426275081200861737943592667855262291018353974105126643389639243643998987531116102902034612615738835203793682441953253714289777527788977276309414584271053055016888012873316203830136594009217575351358771344442425706508493930143544661209118138570635040688367861985255519222126384952120446264415366984333288972320111008331673978586741744599115681137411997984235588972547886323882574258419859488329712443229999578035469925831667284513220223553848806320613973570850842486516171684252878011752247534236028916677151820740295310647097581147774460408454686871357437502145914731980381440928724712909610717428704031286384572450907297845074121511256105657332691685336181966619560292269199967312712411564384028461615474206475210871096207193252525314680247028899924166356093630153769055627934036261521578194768426668283471414014992672851779040055135376364343024944157210614368189872246509553573247865314352301905822080234814936144050131833406291202248949112440157744329179788261822977324395259240351975035785488824869075535603497422925502086344189478702786604670741473823720351172025277151577642376954698255648612709734832580110588178531533670171712282592832379172763501270085132247335820186991783651905752721416136765106711363243784821484351868612259943563036061912332943820594861966869967975016729525600067527272441111094619506150278704966751663546930083796621751384320001566917030249994203723719083432821469394662065282775923103056044327747952022055406241453488957953482854237631752851425323201247399124901269002909968165165736765985075482143974947825951265627073492311448959065066603999124896921683999157607689778145381178929850098403714231201243166389041109004187591631541341799026912766033311064481365785955482451881757833370093206514327022394874462485600753699996153911127654832364976880437722755388159783012311308216771587248767286426281104450284338764414164271891553084085501255639964709416748921288116895637243138682584551316184669690420227173950353068255764992397203685097179587108228610562738623003129865463148663538613280008286719433591874914859660181863223172406670467299492357030686610576035646587897575116470247567614896437869178688417320941817335138249282389629508151846631182360610696458117604913605620497354921909146676466522053168287846964675357169509109301041204496085820652601414541088881270274126910904421293310930179873315687657729989504291543642086936797622954923817386785915538363402743142240597651566871380193326560273202284418244551698581317241896979910347002567925913784118717714364394995166954884780139877900912890123410988362591885730058653051326587481579972882457796323409348267400471815343853950472326269096359937176455295097988244271520318440380905251330305870979785630744005118781442054118695535191595988951293277254815052747710093375682967467675737606831898962701641909134409888282328685739410812255959973221129484654351323135154318996333010307569083310965384013266205020048589823714108151546124853550075057802022560141304930340911452401827131739729594937639396501537199692372751416848618177203433136515680857145176350330200247525218031823413404015697383235364384220160025607307381703930416980911204468659380057882639098418700401010087581441687361921062262576548026406971187013532638512435790258604883902994556776675305193124505775137209025196617549256068297265537026222279718682279332978287273720307452889617886990597451799292310334851395806882109118260961446044571786660351785870949240293664559765579556633020226852155709336131032446700030685654162800083188114521434292032214777967682296157962166595576081901893752347581578330973836285538986007265276421283613362662574853911182088928508900395240510430864561792309579181908196985114449889208084847583640286194912939028995084599815054813363769170468303162027207880994242425856116721083335022013894807313120090282059276191261252930885196029750957808904319968994999567325787364106044910288931629234102749277684480550809849850574589451553791435079415175851083328202262735057263444602804570731213892565442423644381898645006010344281019991112568570837554717518973771874247505272858544081091270478667065631501916905092770725856952477482349399240638436543264039915276486980962846050043224175229127655902439651111490064470419679642462339388936682967510983495864994641746977898956585388441688091865301100924193211601896886491741801820506054932634991452935432472217389158827639688093914871976401772609543637924989514261532124953591612631409898023870840093638967561170612022028902678058748929857572755617765312691796462534501132120588057762991883439757373228269598308420241583024332497072482635891191244377550722052468639382356451248264210593062822406286130330968254512888255049411373656911935983837614783093965781248136365142445393939021969003015490866691000601038367476896901252329143296393980963702929691129097642025560036653640777277274252325238611677282409452586018964351456412672520551697669402635100151685068684690515581486797999954822229888274611897712778125407820221591472253231554226296989420770706413371828118889761520697306159246402662001458299198967143581800541157309942610591323849004708987708695382790264373790825198935300869036570009205410025128654429903505393197230245370337695849310796894731144273889264168944090278042557023450165015912715539152278421529147812361336800845758942298790704576026529656437278038331767773175773279603928781030636413981971776986172885799223570619291564038679345684861771218080071461976574036863925553370690376579666314765745202256145833399086806709457895639869877958406128545602451724145851332502450269981963692305170823972026819901509090768296735299716244138209798098330094167306850763504477941498148430881084164517582501461451462711089714278571066632676415352390179379821295233105290514328351195173283765586508513355428901943304421302555125944433933297701683012073651836557701030177606664075294410877078008486478623759206918376006707258659536815724515135177949186899348601672235106881905007062352118027512203895414346066122022847244908824256778689547145214900101289560942753902017602782371570978115124855223287089121120714586876208034032783203071333631035071952405277073722208028534458292191157014176301474426434555963988887492629642200973945736561724729923418281455236643220552704031080883476580081952304526187433472888405962269739336844762153301355618830395341327406909227093492001026418040947084820850857979295720631217411478820531705760733732641927620394578748667245898704319113168064976518364817966292185987047390062820227154276630583139372604192983347788075648880916815613133566351115948481740475073947942379650651837049057719252134759594382291371397486629196934692050086063108299768118835427783001652791372530907252723943209947973614667077919415196151256221866472001407705792977339692755862946105170192260451129442276214818722849818495769160886505217792818191597021881292750202692401928962004214534095409941246975952660977216176694782250694674245864802640349486687178285303893231305886131926707116661735321595938118202239422286358733811733066608241705514825113691530013274894563382671907920141375680752234628550078467400346478264214518618897663695602127330592875798743544008410488405495379969741405754096593448168866651016387802934971910386387661291373621401217468659571449088349502273833961870371516451788947708158465888475914266590481574169410513647954052880735793315461746142948521317016090479945468604590603254449247779415354266274211877405444111473512908924571907613499187567172074968158855507728445158223165932022768237611647711270723366033363087943731573551939112871549512620776760795025080812572704772353766491851639429970316680271083449828686552137706707387157754981715424134700991911067653307770320134800113895148624997883342666635460820667317279691629302464417639694103865726646398485099688958786805790327944659166055309377179507223791370399062531410805368112359718879737585987110050741289092929173959887574798790322331217704516985306209600550347734301571672996403148257491232079084545481007055783666447820222819447586914517536940643778101529261446771300709006084979830239673290070992655691186127572915826352606301634963010751163848502106389353667916776876684493788782483204901107462028740218579442795092562292654267273594188637493525605045710763081898651088445598061168218797779454760398747084333281052173743085519621992462216877131874133960949042478771099073958138717941126280977436543818183892926823530377848780693013077468909912890446233859903666591125211889056117813681339111411297382056571172030675202296782844438851680497909280527748263666049346519991755317584336654741327359099290354773667735388421104968521374017505988710620907804209442584742372207465533079277667468995030932311657068935594974744399795700039285546956865740327221013635424842925069065361156108305453206915190831685291484155636666098275343269848638826932673355774828007880127279929890522695418656750162921241048832730673323548272434272099529369202993032650937234786078569102358740006990864105698544776641554690923087921099985238582022168529414067288088702421548128174976332840134549394829925784953302499615714557113128473134736809685137316130924795377512170450816095426499519861161030223438617960194008980806347433692661915044858027284483602121117104710118568922649135568366933851844913713504903291049901937694487101745135470892343230812017164167182792399519153362906767498363787621009967943755521558533160995253967584973003256340033937018443311835925388527031053856813441113501365875490999685644728932979733831216856849703136073120228849022698667299829351616117716421474680697960644675115824085362324260084784794702243684235813254489009023155228890374721979963974289272327581602230479544365696039631031686956605829656683318452098259234057338876989889081872293230437527313928196171186784418820758180720058595926699232807840168033661732381017401373204236905535006328822467903459817755042401725700112709742453071627806015996154527125415633544775983890346682360963371767488239243166145608549996939849837560176408325947618847718737642202248172865257444614125779850713387259876503175359913990885150005617937747021609653953273505563067761121578376466890351162325621497496048140467560785333337100353894703511339847387458352087997288591607457771585648309836963073332301264483626167586854490265691328437831056008182442644949383824845070371542925254942894577976211564191838854143041576341691183027849100250238372332738477176213305403296932532987440155125305966770979357020639244359961993457007374117671776064824114803279338052154360114759722022468818771371408249538210634533202511448231060212867474799958900884886058841671440212119923171786338552789779976527105118476600402801762302003376554059507708037089166726396374158318757149009501903135627584205027630132059570260207819466044340545051650015184799957164545947269063511335044905932292727465827992329114025399315006816586699019443699369580971142367371402877431776685170070095804821308394695217661988009006107104263852782147168035012385553820391902532134296955233510440541159642689977823920221069547685348020330381214047543846155288510911114217435734311228671142760044035728462250301473230635925772419427068582431666997518918207772107761738779022275654350553812830817216500600694067447656942499173871648097879664120938129422425125105177500691416754233926306186949352070528589417140941510749690988521961492462345894924099096583060524672374083904535885390805699604069656298812232222534354370041458336061218957047510890575265433691894862844356275552840697765580046085121527548016839151323237202250203218332557013164105760455542337220052276895754133647947173243647500291380272527352370539582905120313224665548229882033901860088507734961315519909010643219887834445235354387554535642793273965585335226454325845662336078348878315590013204503625825435334567686172900257712651189833941387477313759491369976329129690509794661522263301735693132395752837793146089822846976107612857359847974492329423486705936856107332463454190652906045825051222288063365166646129071821195169145069074325950018018297322022026797226889014309024697629303781786935703446753586410431032325590516782106684168583906148985816261692763197757047836344530993001671159389296950340877091617769426980535261610844099735517383850241384778582683647035670227102351549374528625057633956796882099289023790124472678284021886399432365542901619646353097406751253174175883858680580042345103222816018797719142107605759008655697995836849892209773803864291434946576711204751249029369949601163386612564296938773288716255888386435929840324718824120223713770415492558708430276710483998305967728395029879204825199924723427458233729549864550840340974884311037027064888943224960206986326438074169292408875440861507749904733966248562930032559326424916553399799423038623030756610892896676477198333896400392034043034187733080098636522103216198275134863209649466885017514184379445907307159500734721893176869637716385054505143198394159306861297058317677851953579539462252219496367799971256291343476785610194512587577048904512574032958722766631746967890095202238504837462031970602276974251272904212452736171324079424652633045191121779208475629231357477146139752261529988846699080898772143008185892296466635110076498610813191315857097120536873282860692685058532143921531557297747738948518542613867208448787660486866096878008984403467042935944828248194142907745852369432215171057157404179666355057549830654882811593354727688087914526798627394255646390403844798770800474162053711047815840357961497060879650089248899661942556123352125991536739898626332244595632022840637109873042633696281371843239495651030311677797095041863640843598502358564650276251444151367288733660594311786687961970296418993720560685679582495199470131544703650919660155220325811141375200543001294609951978499361467466752242507341122566210571255292964508903487043731903615805491285499044939811695927148912108040797934317194873760080538866016413626869172190089491981602613948306980043712094176750333902288844932384498524703203476895135530608542579364870062155185979720211969720169953582309720228790200041298479872437545278403711269019782562482415971263085980183022240853785332551192448948977799083874743247946761803997779371758152365409730313547068226410042704786927133042774135594834602564917031184362026091334340221227666834370827440797152271247601040304082905942294321553024736990395579105830553732629087995351956859247895588556985751709480238089352404805686076997954385369637534225736646271804213566257548855242325662955699824263008447125239417135481746210878145444099904092939593762530202279123476445514009658227981461363240603261774105453924496917712792407846670325985385837634179523342436632837429817738302388236033267568589164908705743458534191148571347103036646574367915773180470111493451616073905672852733351706134718919260728464740425318562230267725444301548071408304498148044513626598445194381544585421700264036570959967377451716315732315316224807123559930789358455614745365312989583705534440893044800967393215688372012674280879362707743371823285372687795870554411329308641486342022741635858252863769821508017994304073958592788749151828124703339256244666426187567088816569744448041548652887093421925054347075134273451575765177935388758410618650811964416029805348057142924982907321846949237300065404053758636652166102373307799303678534904898512279911685257388783149196393582665350937904442309287860985123746609172659378443261704342350303717211460712019992614385978283149389006693087544406498254491767175022519020751735629936135476229852467040948439454525814944841424577025992835920221055287889825312386450348448212425017210895756916921784762363089352925231431850187175745442831938067723681582178933197016897876114931301892985467079898101771120970807396536517971515860490521574954894400872172370742483256028993933723844356662009501532592216499143359671903195792857988563244008876104450676101373302130586817458811769280232813889582121713797572589805228957097266478801327374898033839882232543969467170085624336490801748922280146136499903851256948437405513670213676581696196731900974202251000542895686394334600859409151273370759452275773745392128614706226475759306116462275776764990732547961886191681648833066384957238104810946122057749365746983914925760378966142140203270688044286480962058418257912701155184718888141727921341176751896101483366230199005299085235850893546015502738243809596592909105865769405108568441738315489153145659981212149932775556973546195529054449746447061732858470604834368711992487686123351097572994345864237756300314201304566226120615771433841781912705959022022794383567856269678324498604131276811442441933047378043000706960347246038043652089410090857125632792446973991253061107198014647010941456319321463480188987840630626956517740765691824518705623936379455668861295815970466861900270839693946691719779658066699945024542286895067054129782455899213432402708291576008645230165998855180575274826657047467582989923224898017159348882571118209283332752917183579175397382860986153649421468558951164778870011810295083141585351794583868967126840410881692372641313920220255657731971671752142826569129415660953957178444235416333822660016059146246625800351446434862402469688553589677940623984045571314777656103283265653695472769352270702439642662661683538669552022101467672788277108886450648925666959276545939067910938735382384695875318568341781372731709706677375409958169770193815868646538716011003050969977501715201448259249872005585441328117359485669910268341512210088419236777093523128814720442983481834485893444808486902129636093411695427331899172712778481582831202201703611633069796635891315731083317359286962273069617209215227058689623674326349695267925081028938001334840339346392060196691610420206118893378551333764846643231707045308789479122227957026723850185952130904696802586848162101416660696844158202879685834071462326743433540743349760088578088514008381024712525467986431048809932228445640357198161430622522940820289120071739008489282939508450441445868564761649358993644613961086364091086685939688513178585654120749610071327017809040411190227416865604362022138960699266672422029004031942065516780327095496303007687700199131268303075530901858267503369326519491111465955320178423768852521713193869883035368467214962912452707058164927410398548600908729572575544416338338548992223640029998586822919116566311621824056352190941912962374285030029002218403063135493666068207062913669380377017536508848875679973997343592981995718221599635653846625637932370867568408347284740316539430084031357280089743863425414937943522236020086090769651924062047864751436093983420223642949679265187720535670330655098327501267813052700636987885685510076303582463694844296302307179025337739525525558719379173019485765367764481962510506177231585362083649871058714449015964190738583908233965939676807518722484727879810016452773887943936331865711557778543578102436532031742670163917002375300838597750764071941417175635562005293765015636770096189893482708262417365713050585916776342438555141950391143691561764341701801599525094501638948558122166312326788880417190779724460887311746383202262905943745182336206943159630289260448585569343845473622092465182668946971362267745033153238835784584880504331232939175765071780942494081308420118660212830126874640876821365367719005119871244071627919640634990844374226093264129805990864352099162612525502984631242898403015707671360495650430015947286995431769457110770635422894615214277899944726423648867316226749786110674178466519010431505401264115573208652204642907817244999331020949727556768138575269451402250153212978057673552918174302840421092022952351425925983990331884205341697841776297619220162638723602420544259440611674513306548106222648348010787969139324510298760513636167637142321102328242667867565740657790160699943938055815560972070414523438259066302878895098765504534549259151916051340534912635346435895460422460890949323135215601015963927539068413988504525512975931397527241567124715191849246015679006651828265269702276739027482126166948986321389260700385502248005894175796053735973520413063173753829509298784133452151046712424001520220095881983196426873914306901892965506639850941863912858167353581914559384840542109444788753064815157253431545977824407082605334242179259362254906597881659306720761038956767095506452830236560091461148341722877202034053573847988753540123527484333577541366839654474607260564494075130356090759434570666702525016632093291833212744448624361246048870833441356776233954316196790863354065727953038682425896770320574481008174812649000375741868644156296503775647540183505057286097491361936802530975872028128202230114819144416233456467500067034761392545174041953652526933744393120507497801038646870875143012859483934584293902350554989404554998283891691893569271861882562408691071885907098316932055250818902903749268427195223446254475317728551660275711940007374289625960807549360261735665854020641257750531738417509698662881286737913214516842911230623645736620647181211014830109564142038601268308941118703997466264969482900369615406852606322261075973734181514938210078377462911266681451612341142655119322690482022614579144339959448793788720494830841516134582550508321860266219117150883825694850091189448961131506760718941590638633153288603521603327530438442413949447301259513354685241778472138510099496045440068759873733794813622930070199375516710732531768487334556618048696912603781709505026831743827562580867288444851769408008815400511531712822882533085918769073940184775244172226082107260216902703389603414399706722621629803145703890285201529721336371012847032628290675445882422060292877728743818731254377220229994679915501883046742487690304106471554812217797722834132797526467339337837852141883022899365453471153471098917718726271620354342317343909006068021198471932969427881398099619725515561575392623721016455292934339233402101659088671320316011943044406172161784107987606947549069807150329372463421605656253962363812053959849476055521305692230129959071546773219713429177010187557291137981053405983304052604962331589137029210460719836005787975605990101598685361939860839165626952927881196876113627890625202222164355208835823321721790766239160001112182299770729725112247164834462807260007601046194380614424259215839068045904285522612364966495550670659931129794867692936498115757857068624643191266988987154000025227741181335379093706997381622979393923911016450318839429234532192755708418694651677485679283858202320049638362845162381851575228671471352281021675177679897831011268840312177814654455918839360823953458380823073821232245122272990580284479164916741729267182715638568863007084749185652818195245892022944865947224326449840410256817154831716227956375950018756074010946757617813004249100060749603776107741592533245105551613802492817679471863838293544816217878189228646209288615455016972636227878818340060281926547898939882616325169370226925769755559298614529582800125740281719826498845456597841722865425465951596398012194630591165123248308940568719706817963113277018174703029079002927560312808114457446368600695583985106012104324387545326495119661353740677962269047484452877857639544328050798556230120224953387268359298227737674188700880186449899001111728597557488936467674355134361544095627624578905466586312656510449670980058922564863101675156862102011692620441825232446108797483633133726705853088567360473290517024608659494067672229437104869128494418442161200952537143392253412053679142392519412033878507222214451097078647244325579832233387461792501619866410191884324210317759566103210181365600171550335555863869325097489155252441585893532855041607520124295759625353650495783945087559034550608466202233802908196200099214388336918253027549344484641249194178678120329338148448270311769443610052043321089895451581262746636264906046843752810902482113482180277274166784315489119292203228221693378062728183444369753751894250054512974701999533183528684973158756180579230885612646799919397799781023984856620682786034654761149258313495756044869895739370495305890786841947232105119950142132327512940273807988341425984546288446509208950788034246103873769160147223701011555809930714128769913875808517432846932022926736278434809303909344210059885119728418232650054403652789907731684391674833648929419190108977299989956221118650503224110388251265773941005558574472207040572153230707113710905375006759345735424741048495190719696025962307772729377929083607890875585937865779312437121257967016476338734371599611193751122745626319059808700096722320344931936160870698035765740388484725667261816732615159547494732432076451916426760424027087992589493198683387369113321372825687346455052528946138932128444882826522500620229498357847340507023676534382355376869769245402186336574990661581564957830574561837240359756183425449476383277455559614645726699378805507063877650248510552396484697949046882765427501474122253320714609422095184367110619608275845902617247692176337666814100436660043231211866626512879575617581642835836012625004806391530145916711761902165185872208311305334843565019291352420139777808036291589101876578591752933806966473389566494313163187811377831867486306650661797803025896355269480117725375649903303202221393998655248363913110457699424934832997861776941616590185789443539617473108798618502338305962745251522488068826257328276738298136159780762246442146993379634395555681277323534195556290532603059222585260831110814037257903367212459313358745319511563881397712303363659759124078831166065673289945024041403536680879044360452904560477533965923086798456382040897944732706122229591447767194345196342027054976113685648506722847575390027337499648648065095729440290507935160564619977047632908177183869298762022005440966726228506977834226298149977890472710972748021209430920786967579480366053689005874891601271271815673431078126741269919467160593684151247260438689474967635092446879112649692327894760787030012232099555991643437879312384942066118145321305269610561560922230618032539381491073226893269861164040695518921769628587163411148631999135371235134630150823014084845384431994436698342011594574418253086631890909526603454803425575437251341256008115854381788802193483416673487654963224503219433588634190020228657948009443167663741505156912615463840642491241028725780935641621653959667352210671136346991418073379418935153286744746214726175882662862377257801000272939214434949318559353304529769935953079301190478075856184407480058506289487722946988869479352410518662002318647262481146628911602455138316036452142425922488811629534807014568392627699634396101306204621568664743651618048032406719201170025546333816579758503825760916581064509704159994864104064529909756702446592841089280560981678892038187344393202227933432065617639826390598886013293000195209272242340631296159241727289054890533493673508991280096063616056275799753021505061193505276923311708331363787831943714633135518199755560105903564290731957466372442359887033770045238335258425152253347127557171815374619369276862298026078731499383343552118091009878115632705021077367097468571171256507993082706468032133087672127208843723499916373391968534787455016865368219624912931889970457828428174231821932631745572877310119010436298021146276162794267432022390220131260032641521647296475190132576023268882027333293167144353884600186303099486703445734633716424943122093905991987659465019087356076088526494790524155461052309210842114298252013802489953068536524699749634783189131372208510989855430161492906379535022003749692435703224031202071287729680248787196825377879119903205652973014759525630382510283275141143066314529237636536502562525018429739580796234884152347457406330922501491386392940379499013869863213409738432650891728035164564996329662204803820226930466519302636477571419765160651330268255678966628168656668384072135677358762028098060578901903219450497054215111967801794707488780542054029308257631706817913315692288187491453346628861996957688183113113174225207607691904045362526897151034236457505393896892324937746327999818374575971442573616359977755918890400368352624979314581229623836484095357114738993252199670213350197334956296328673048746632596975695807900062165880307433971559912870559697723387421652695947010066698720070012754753985807202251423909858297180058777153725255290289892967697394675354580790738403220588634330835619611387783164203657266720986970565537882955226801549730119625834452562930245930108148012919987124792281512279942742635945354908342895931814819129462188330088069858735444365654174307890230594920060817532636367556082998430409518318558931820028678224796793554875977470922610899380842937367262981820498034435597811993676002700967654252196700898566791379245217129284926140297921852105683180595724460682887535774649902022897978166816987612942357881333280720148872561195653729612279372135033157780411454323947060515067201480227767338358903378217829807057173485636508934879703702195905113656985005368054001536180142737429777596987276116187033822603927010268831426583548515475788711080213392975964024363985464421175398547384425604108047858015326699115262256348558369181066128833887325409608014728436031274726043093762420787344013883138070778389326153912920360609843691144769591620178972842387769262237028333437622561792420222711855867019128389778612589743010827473523611942023322122782614127549101146557495270971316626029820399936493356591498060396972915947378143625877510048673820234694369945819937700040118869098193114221787080114711386650366236853858947920624769172563795614967857762730794444852136797649174023707638298766702725218340899457389329847429606136301524231588989254389665141298051513944636182803550250450956992404940308789161946369312108055294352702790662921933577890461932543627556570579792476559978652226202200676902289113513121516311055958952308296115153535652408058873365624682997115150494045941953229460062416841381925537353696817804928839667760353092431069480515068832509652924432157693474380581049980848634587331515907311380904709023212562672292299158662079794200612900616662360408061291486497047466968128278372595942658242535194084990286546888620526339537807368343316333794296926634743019395131307060954353099574817453302127947769898856182109423686440884447760791207714665169104329827173984830899602022730619638491630747356439941848422980720660582479608972630863065501780080511170666282348897383379661616126453359267828562258129086739239964793743791258689497776707910911020274547494433277012513431079889713659086428137998343544475777620398966479036015949883977241372118335358302783645799329663141126719873173831616551109477911416150494278929713544095355527962360107779448311365655932137664454555176355194865450688985582734577818796269218286541370164825711964383280849681946254396347120485987216404420228808649476064622825001172680822572633050039232757208752574553997004653307411418194963819713505563413137229228867653240526991766854381619839636770918799909847749684594937367207523305149114107754293660004613564751839808872510637913652905538294810658216575969720086792658439218695733530827841660957671911024199797059798311275022484888468973775317562618786037336259651937676408594426963132088459998951626476119165443533074247378209907196407766624998889220930474956683471934080815533113996134357140034202219495991300455532174413180145822076229305350379990115523405362808535257916246699251163581658887819726836604402304929967870945899153074028252573604042759792216584245051088317578987644710426216047118065189889688458748826469462078063707310539510958289909593385324546384346442280714990603610838950682601784087731266973693216468392496837705500959868799075498577170059380992839880916154282818976139064465938267736447819269077046606509335661939139064658383105412078894010308845668268650314682658497728192022034730500094049855779281680380763339020336446285969230431427768543071771068554026472645925844681218027376114465729965828907677574127942968206937972568422190453068336739202671647008016823395460019991700944436782242323961693541244973841457929512339876663749032882379418306186693211691136506607441307541745024829247754906815254608266810270361123364023639001843029816078525447071014402300585694867945292485856538350344732565812028981914832839320691958484820515571744841299031776807939853867626297