PREME/G/MU570001
01230483776525856846384188970421316714575500999542530530645692636486263445339590801646383075523754387533485357279892855814907224764218424402849255806536698316715911504820122476022467837211185070040988975124998537877903120461121174519209435235201556437783684411506105574593001154919700355062703735442082352618510876280450901334387247218801792708802406972874797733335490151676553016979146038404033076867888552400069886184522476210539770605036050043059055617807302819969997765057455396862941371391827590679750890132853943769786988488726269312020668055376643030748705435600248818257795495332932770530459081914570746947917881834490419111364467451072461984977612046903717287095712457634936247071166608806327442975418047628966592469457571284118882463452022382746419840367936328936988258195334868046096480338880859894788574501320955886406694048065620934705334058816638419825104216986802993445101169882733658036642292923937565561928901955690900164811052325184770687555599313193323301292467332032590394531171548224208689507074196546303096203404922531767112395222397541645141390034522948045660754645666138652114906534509924738619397573484660658007440958489559502892404756639527498096251318774026317832230906988542608723762439958148091240366143273060307640014292484813034495982314346450529625837010670237771961827483005670899219499454055633592904477879333065410101969155821219536312160842715070001822498483673187020554657311984697018451848951491022645595473333968752755138377002186326016542564421879396567452876763619453610750785601242727582278467382810836982232806569326042353494692072487946757725946819061544293865561676562161215430760859609618253427806643680557947420406604098102693016958276066552654462844904660856584660460612616975868344683752408825895240205676660427091362234921527386446797034284664457611247711767854407118361722563382827405455302969638999267481732760314749097893477805285862176005054170389455207311288619667361897970048569468033755716190682343192656586046457884123555973228934372043565590997978668354086200630380815804360525692326871610178986421348522425383406900561208545995384483803684712102370688720454361859517044070086625778579290753488523276290914274272004823624094421014629175014876764349023087682763594985960806851008441982565812904341163625476723488045315715739228707417073670487171571452470327668060061170104068263510651155408258424886847893051745431466984879417341126154246188704431586678385369425436167009684630097968337353763142082663655148464749646686286576006316016189254297292762948262986327416584386591127694439955515138373605446505046702056120492087208372777830688824567444580750465268257276792807081407222351084006329012119193683371959465282543306335238922362676763066523510214320577832760204001979212640880877863388599426996756483960918842320137085236566509118780287288227302573633263957599989688617469523193157595249200162547642691663289457752512794838918240145249263212287441352438793489305966381978921084153979123056174338964212331183053394252765255238398333391705906613699833486486026939801800530881503796917164506720378214377229684618399805126428701857221360639195156061396860208561046996777913909366645130546913305209284858943422366839096692111370024826292792939838412467187927126706036269980166769752451830829770648805879106130484533225772878490133209798270240388244566190526318861947435957457748010569315165538193813810727092385113213236482262691218313216119083478288685654301559968295840468023332532005604457833013661938635444544667098832386577813309971237312036490175646770488876177225822192889308277802899646828283275049416407848665276403637020875159931744914792985674293529874284694874472727208747397340456296405187417135868470084237011987034024251940476962854247354661372517653760588433513869618764291620637794333084212171493600590124025952755490896059791974914003281653687226534128148672401126887080217983241033138563855925360649557374425188696100595803953928688190138514519119255071995999400847120487616942422847243103951366555502224593266029925716059926353995485724869703586657925980684696995100929750916217303824788611138682298221370499565347211334325958597697779438675248685633785391663785695118240880891617785418447975247212505637045620707525418952990158653354610958858532800460678791994159599861593002104914162670782868936257953620872077513834415138957731954003664233507252233982281182478683934161066644975873374130458270583769481758087160398829340393023378586193086456441975609113356418672185877774542088187598720740423230787621620282053897600218161019908905429714915309433341536989847349259486840342198458230767645225219548741968902295664344589702136131706352180938006726631029523788357935488651247500887074632819540303547360413523231981459888087634951038051386685059930585546228218584179699918127087296725849834358465403263475423354335968281264283604190884192636983823748291096203870911267703805634620943061297237378648785106966909197007149235116893415094479300903347577504458564362722774869292756416237458631635583727025820583605191969853716975424672637338241382047992705561745758950191882188847650797989319756315116937528642725097679240143039116688945422163402755647831814884137034675020884728130797076878979849559774898661433175140429212936055100135723858380128392939488960320375210884767457776321783384505348719843182880338240561105237090838626203394259314397209932775804161304224251648614847788134599509949920136292548343151545406704756428822935871586186671536218130089141641257316020402378012781979450152128164525403589451825622940594430664274702705084314661345857295276024145361758154674918074009146032567108285120974834678595395514105336113394051248999929865551610444906140056940131011664025509374601145381266903168821895935390286540192337476390243518319386250762642168944051266676655703463299260011373581099962441273665902212069967542599885532058653287168755504000549778715969828518762474139600917933232114388414771872644219676626324684239759798675056605703547892703772536105837346848228613358315970716065526478683081392285543441519037909026822643798621165787791993311560841831405533515618060504124677677281854660250425028500675765955592863465777241320515538073537821209837064694096788231502820605599441615270570452489533514166397494454036702382043369699410990209087740513036137351485432138245478552373060078742303434795899059611024160753748646610271241075012104351114679815062410608999125663630024177240882408404131460738997414720765555805516755623791815243528048373430953447458147713224677642985714375433848015991934624029104158028362193484444946549305187651340167792370189006654988513787453311599942607453067119032437659246206835798882651457149094510418851460958519642136317349644968101637101843591181123820583876369601243977281735025359213123073980591207587278314207199625365891717712978348122285227111820812352272653154680598978811538608797595886217765315557180164995403839920339143047644066942506301060843920117887733457004202820638730173005349981541788812490473766638173188049465425973271330247577663014213179288085892339415999506909134192893890060108239203089370171850959810739444113107413743074497878467085242734080004004485050119353023206232113118458500581710446265398102997451417460228900224125607107696939548363192128468151068018344873696345885503214711659027504999053235440474842424845837476824584155524100930757588434945358270091275230371685030140173246958509326405478528793498089080974866089339382200875569528788852986136390801029750097432338547464708259439076294237529213165280194542113831335623951374939731342232917438481552128683876220879538070611836678788911446069633546237685456109777881013932048757311248442236847703778016564483106332998645218286147155345705112236696846160951359404078184857494193553020663537883785358906716361160005612167577242667392555567641849697674651091407825399321759220346121869033031460166869574764113498226761875244650800990363498710053594799266004070701432300598791018501512625807239663963948340613291715587645043837787018681737201895157396463040296906874430826869206504612992511528057392852037663655252222838863068159708596661070635155739399471476215635137015447449823224192259756446621358355613559049596003171315401263157538894316204095365979219422183291779765772186427413886530215148153785487884701558425285966246482673328467562491130558249666685751858786707640214345249163188341845559806351593301619837701690821961254201942742780126402712408885422964040161458010394367247669012484339682107081547697248003582653149065866002403032291229243785186359954650178934019046410429251203998916366046808534453444985997406931259605291969328162853543017598454422783636597841353501251959244472308758369457702160250331444857085739002621361679234237922208953267751981372299430395696083293403660694600816934464919352131400004522685709902437593932490353194128189093962372794158249971706349406137090581722430692651331143295804928114697197102073948440294853162748254436582132422071828519198334831176980314259734934713079157882524832975313101936845019453676084866392392261953452114393290425042755594181285018231415347203602757082704741395575315270603647253106820267322103664992358616467245343476291551907495485545236448561534039657553922466687929696916799436102375957109059797671188604220941819252234530637475066303520649768335279328740126149919172669461412270255159039634605798861313351477095970331365349076796853641511005021034183854696900049879470389185800554883713108044785925359131226739979862334673723667575865774506365163316548857234437818313816876111756960049563716160256633006748376861931451103662894478115812541983082592411282915371982018139699779723165923429742243121661657871781744589512673394837326253198107878914526192596350889027691267058612706371451900505338407441973570729992981566427722320404635847639459067427469318359834301197701066843326053965037984175102065760444984779527554327715407734836484374404439040424400993172858279066659085730815721442852367736069190910539957198741724399788102809230304127910698572684707834406364131980067009279770683058632240474008034777631661201708631605042307456181150894462669309049080455351909698708908917454699264178863415989315159439948564162862896209897033211199134163964228889138005639127565334335928430676588026389517858035077377017124267634483567408153520518816673879724492984266203634844520756752474839347344357581854646565501157042711410731534689291581404790029099771634267262742357754597420678330913589278685491069859809869726785886418283194213413380719463453187327105287652995195146481689021246701775723263555636376918592624548643305443643463027825129322429052956283440244314492865580354598134174927576803924067713688022269456651928139832140011303489359441581009136575408522151682429228417853417880235205880136701517258884490862358643939725522586407017424786057041513248469576123274342167180545498015250135640398754627312199906908096153981355839052458887192213368811684011363758680188056204271623543393472225339658332702936992857156405220153970688365241899515076080968219132131479192306333428456206995068838812830200351965627853146363942470974201513443880290438182971836467132047719435592325306154549632532486399465689475235545566361825767038819542819701999460775197601868355249499545390474891655662917853501553955515488913858327066039052916016206482103243039886505877861526854339025545782762895331798591576864489606754466110829599908951774782752816890749216544700844759085791163325841555751548804473504400709636873637625596293891789714596732239187989430426836913788527481318226764797282917906468411878566694654369018560855148094934043038330343082052402493044970469502852168354797981019276924314582225144735685621764581757109548937111648859890665697493083964017931152228959824993522990201334726762403270485300866308076635461758859367120040747681946564822438905628863760857787766191727424275741631055033605016242365500620575982473817571585667573389565642805843777363469483720447776132884217301354361095455738626058480433641395993559754903858637040250288414196696384397911745732735438163605557179022460470539510226523342882963212929729925062123457552068446807827820333663242017210162164432855966968020225180921757280709820172532754288558361593382381789296820168277285579360251348938260478674783734789651739810632308681931884971263526807047389907667338654380172962412304603513737471280884250558328582435770241570552318486996196849178136667128185168405178489152335584985639994683731286174860125580250330405936045650739023837806628804316655356830100231563101243074983033220777245287685014613027215023441689069414461264483192411686449329391726699304827909178403760009255665484933096126005800495285517370256565707458502366725289373838614863705938939967825146239311464201791437221128219173444257760368796101177699528614981743014433554313597342921259633902093560009847223431922554041743964829350909386846631787698663938700405660566652179636311074303811188598406969324861476202166494420490467084025556146174513156929552654953368652739379774666325953817850295073517563247912070169165946151717978309165545323831609329254277907087403470407184532246441662920913679647053153703940521182004067463979903746781009036162945018105761646413865911306449071429292347198583581819425410212812274566410928226474355854888289642701074524108978462965571164756156580452059252372976985092788144311182152249317905686217692876627141667538338755892877514210898902009508764577553676706226727220835474813500071709688065565211364955792752046947026757146440114464946126469416614208698525102710883706176509369105451732950265498911814653446957378901027867190601925614349973679147469145414307088105375822165647819505514545013088519207990103981843621874064952605880285586362184102991170038628754675598812924321429770127734140863410308062476828094658676695198387858387955817018295301886012570683164955712127813637822090313942389808490324562625483163624746114915243216547687191345627764702148033085933399372827722534753829967348291803958652388070239132339842159394880746713567712656534251582716898145790975407612502834111701231184845038698878311830685816694968038994059829973667144452181901682927323554159412309756112226480218773542427167976246113879061724329551726077030909732128261084268235554671881421400756896206290868988321762998760760338212678959780809785345134015034770837785211187372404027807652109657670647245273880754301725874085956186450859785988495503682748332920671170560538398013776919324482209929225152637507351570472638863723337875087753596939721751380383278471896877874305119713926719544435779721154767180416549616792913793743979902094515354319299689164093385277156153138973608744419579818546531727969169308040026431136433063532931987258445629454279057287313371226219486685418970585001381402725741682349033787202865456598669373251052048600811813001533441237216209069171182320003193515996719633473171145924464751273976756014546687527122742820774507738810612662106628666788798804604057591992862110330333973709278115755497962548117111390058145088622750051328478368075840028699470476495104743536359545988464474282316348572294358087879394335573152373765777420666752633486776602642276963144786085673156974201350526700216583422343938089030447010690319378300841982588351284251227342104564431962049768383660655857822131010272915089761758316398535273447290763929131196149568261857961059314108416538678846575847114738353511507164304432025925824551145381313333346111325699540112176066574754973198029416218746432830527494813832670273183170148350837815314608688240149956140788297885220214500949997751704848981761165249323794069984666499819735802850887244243899270635879508643856278825653311716057183786178284610108799000522617858857074388766965416975561252454323599631710064763862129411082839495637190377130135484882482714735917838471412487460453281843418346450084763817823751595269813762923559869715020446288672975554567436260762280452184488584690599213738649243406538117504330668976174023414884571374087087585246560077299568909841352776256793332685015493945322618369135879733490325204437015701632963486671190724888842538288367296905032233596208345540967137799663904809859257660104363911282744649219864134714435802493224090984264155766541606388207301610336676605212594419444671075236633547055581656240092836140863361629142997654412046001740249678251512872751741763458851979605152449112085197148429118511325523110782421491024221682225173779726353106087088503119198469016908121683795321509366531077570964612791738229268571109660158008907521891604691107411647174875334451274008067066069832140875332088198672475881619746759788624388537100608242352312356440974296319769693098585098688234529078582316618487219292350208603645806996734739077210922449918156083428701276439798251734524029102932758181820073171474603172602851044869638474350762384806519669068775819519175287809134971387299520410717870717734850512319250563312616595651206328317794445657425311735753955333635382154673646012034260660106483126217341878755224793059540002756005234616752851246863950746629712118882978036466480874870940199976833070547836872510133799118285638706483135553166203155909295323735527558907676936908680384240692520259270043828221005028762178209666603475734218951682895357162565916689410573390199654949257970205228201482940185680586462869413954413636001376645499235904030682712389216755442145560580089213301236390546240664810911218159791450314947251221399548537829126833965771878894276637008825942159802231330718190582485469377061257576964760659492859285435778266705900227895460177783778887501855085118505194579967010421838870634685623254257138599129613907459768649249609743089703649675906324466387190223111709847083700059338280277533440296392382384031158640794694317014381625183159655679665205756988674944646158565572078570432401700959000891563072244038082811186559590972560762746875877858863761520058159776409982747884113590701482935848555868352764243907219750155461336498156576726578465464098180116464429067031342513393572138862501706472620780835591997527177208955384937380260739158971443057471900819942558475021429544002978022605336445209604172878557857646274597436185844606664922551473283770878681385872211960708423479792869022018852839076580824636484364302485951535615258933885898221774091322213436648539655288074362582372041063130875907525766445104767878323461752405353320513959986750159505658208036897482806499813772385069146704009318904584631684948041252172760515957471722643414322170930919203433185666597063574198974634665194180182606538394735942575889807555642990486670023550131590574816372613804065741975526538716669185056572858465290316920569053790563516862035060022645613023613707640646404950015982083280003336516764565881697256400237767714712862237865726802524818109144937673947475081143470617391267214999096389057783672662888491993715581225751613619506264366387934488732104817936015738296073641727100413447979844576470907480041037263142939601155925832168161863847238741791350491340966298535340952582516826955709855611737710541828873792968988853829684750224108474349266763855812417077511324057562970824018049497872271883162875497680242735054388350297297415313755645616601061881275532785450092803394704994155693642844386419307921197135702791567196070766175520849832583173728044994229551300913579072178676289706086493676656095553817948355983660104786566170658182129580236706677581493481189740169294015914782230215637501371958827776159595433222782998746690789439515408159116596964702097667275594376717592320325024175194590330347996819416153074996306714937190494721527713866950478045046763741414846445513183169659652388169419944614290900815771226979294673327424972828740695815426017971056872145262645006988583698697279049108828682470331222699012551812052859055194506313063185895878985654504322403527592071772967838119722380270273283076820349858800937407211008035569680292875516237854912723084593312722004019696271078764967378105749296138249751579094235003686438042055844583366430762104734069030928307139344998778842583824079944398351266755955105726686073863762558158663331600779607415790732054547274566032089957364949543157621198234471502288709404722982203283168906222051729021317747003028673598436888181804612849109583379843398135463049432622761463779993038693755541879444037165623977223579123384011416985136358945098355897344198587528655492876387735966265912733881683197804895811211797750636744183434625005870591366208479034991323392587867324255419389818253745079554886742979967163750360805941716783768726275532794384916336072676662138522254495950490747295143533336088861256033460959555110169774147670697514652512843484947318303887417872512975996911924765901763233353387637746740678572892858973427717327672536198328745030442923205867463671917094323375007337783878425508585667328540329952287693489187677159989175904426860988642216802977949550096071502347851506240082353941618331942695489753336615269948210476303471147261198586508049678444659256701651033177734654497741414114150983609256049236749711552371776129303515191066599628722645617035557892532332760311708138763422594844178360411437063842705098078859345273433498119330087422857776384622983305624445332839747303094922595240206383158331677219857092509817076815528014252306725575905694913605815075209116365006633997369063278541432112891732866626447237420503690658010041828470734639279577969418694445657260657486451826091955460398329558900731003480259777845100519826044217215702356466878422416259259651834428831851740176985398789740146377828289679995461257545736735238546466707194097646058588300000126059519538825074867044112385189127375471933751908422566727687766567897026881890370174190604783427596973848031262642708309102708036341214009165745677917490220077314917794912160844763162733490699881759458071082814314764843341132057991437847683483679609968476197773189007383214610216790190558813913731527752083790622337430027687944467420495541206492405838200154615840876405671823741276466298349567962724961999430045667404623888816422855620051373677779058386561378626587635585571021049086558802105433559255077891648841151150442554845625853578324049260702537711994118320931009459319778587689492680733471186349919648509829277734422896709321086623408250541535213999068808884510719814609145607701175062042548199351794822818743234343275890907764283481002771069699145684628809305635729853705734464126946686357786211942007873232091733344787589349349737549388946144067524692324733153136504997173315835215543592943652508601412336813770465279057631788666254448924257012295608097935343385721362669851068658653829763547470112177670390957951536579794010896655209545500871919987553616461721917968220983101684248229975435149925101777414224241048616347208757704904890909391680412123865515817022452088256248377930818265906921267345219549596265144723058334992667621546164272521038710296931615870410025996569616772608006610890757518754104081110277568701968633683003154786161293672840865880615218642457208195800942733406077920923047758805483521533158926269253683243134155099852297580120096723741633840555841756262446479719314059304229816725740068573417944123530633487047853262782259044234108478188109494282775289092924363534316229496858640340253285498127493396787057531237995511620790142589485665329505967957429802883374266185586610362016469426355170924611797886826682721380847984095765913131634568447884763235173124014887974922483107965927643806654310469887296760140166092015661313320618953151139535498389384928832638155485512959531721122669410588702939688682588360074347334179549141153784042631833735204197222803788942132297455275256266171540232819161281878131449099581160193369495460872645876394912960428388884204994361790113756693242503417985438735417510757013245831504817796470056228097290553026348745923422279122582329075873698089934898189709971844849415798753806055598561018615617169338603560423310629579773003783613237524004602385930758003312707687949479382965103048343850541472658801896735492169902656283621263608247261685938413052456791531715619546981475572485231878550219965292712556515561267812569111637841500782126204579886241863928775029242793612539910151376772023573688837492588872928935326453689184812411064516994417742914988332069021224270738948838918616668972240773144169122928979698474452336442218977045900046774434697460892317767460476110208781376241536001505379634317791355923606569751776916426075748606216198858229713600263772430043298964292812198262366723015775960564844486037101392254794566826296467149971850253426787960141823360114487600236089581156248471562111729231673476641446027658798615140956443755110751105354437359802501181616250061234231867217226847566061525825341170503936216438968939091196029967300295793331569959080599672592371951099434588819671474904296217242066143824489185198927556351273468687605230936222832098883448733230160780368688286738032505300854382935765310941129447357618394225923335112962877073146756309229308682284580335163013991345779969035924783243644575084101473051352363635397112016628755240373833386952644402110480147845699453172604762488515309862951264101783881007644353056011435185519130298805958856327464164046377320098048011109129459204421342317425295588166096551640951488986656237101214784171316755641224141027539450672761191838097327096343722801947063621822064911302210785104149783685409931861461830902390936961134265373512139840846749392892793859347805762056676522449712280352410938874864885695463989746292656224595548088072016425631668799830306343126092762033145126187527072997118285051295596754710832083721206898471508231835604915187746185115795677191207700930030066084828977683446895693632157753077276472745439757835973671043580286972820500050426343016344330380889895545532434093471478237529628605869834349219675092583640589350810805843158794016709227643054980633799579948215843328831793935791159729882063844809076433814352731271024539351182158934371331092965426025531530991096077577028236831480002312445566970510170827592634590748781051028362035042844698432824600143486409709759754776194035102072378394948004113327893040448304380388797461752823516262214386191732742639483225863642135623220657853763154607775740411880836475357074409359306774368034289091951344824866704060104759079488780586348010762410987410951573022136338806524027049864017115698758524733181549476228282711604870541043956277283463266898584035024207122784432020352029140290611095085695424879134710410040533957175772126025965601533663418605943671965530320125723392180324894901878307105456588650495801689925446597833635062408944964549458553201783180192226276663383234842504352729660140936461136486072075599988702867033263838822114018678907514993238816343678934345276781489031990639320683040888717432150915129061935707442270429324435512422830561930873385969816686533589605849118520428193152951596270034023138182265962968608819432085871133372245019967828538151466687636662436267758653372874310831396399591308681047887586223882694926102562343644939999369672517610458942156919860184489089039951948198849270906351174975190181586594514270707184197430991068954820443125850294667364020637048189306211526169916334010501904469787081987073565713923659580298166770279612279732669145146755310521650412223640850481909522622014469131081558135089442837205195668656091416074745285830654387142258319416308082824048068360258943312771677894626628042370350956153248613347869627779700357824930553141069555224280419699417343887418871497000743726226016001460555822428681485922623041804018380823737240833375723911474503138142942838143323022547762372154923946558278297836711261234074661383871723826267144376482207023422047230943735196391360928755355889857064386896937386527505117449453390019026719057806541991644593182901041751412673889266365925970363915626180800031541273207238155455496764455664236682668991996166975586772222624598005743346818251806202994784636510108787844025971184235552215822430007519992814398702118870865767779865740812495069457126961603271870732480007360641204381891802807833755579047311072882510028699874072770897522855823776594645596733622584053621571939945814183471747772126004027669613837012581885516448086032216549039979997486173079993774183647872900770058617775413451118222758154912898108784784569672420624659359851083050152054861006628009377776094236683848626775961800306657596464397164177519892819704594992904644676447109013584572177225725111141492021041417011249280020602426504635961631794602126568627882038566775716620574252038483187843424277886385548718796775001484970721403676989298169747613916015683556047891389924737328882302548483536032402114267773873520636517472274094185383104765902655107288995168721851253049304337935006171793435613750117196354556503670386250780813210924383282449543716100593890986314693474193713347670241568682131280932948897326863687561926330149039723206120801948912012923411020308919495951658252139074560093456865449181911556166965369872669389133814228252614030014737967901681683999955658374650848825019181959693206738605613242485653057087548655362275849189222350920883658887045801956691841091566044872310573833869634411296763513637468468116119407500636493628027102822544537242447532138516505966914694661591228358311268218902768516523647004245605209445082752300996081044123079231155062870334458857988052721081829166681654586422567424974099179892741881392475480756614431268136603666468110633895512411069157821405851695843058725092477167009656508628241100192020394647449952761605437970891267520990606725012896797995587664555673424838549035339844110096254628801582520008873300093290265847006157312502442741755780145994094455966724536841843549421467117804193026877323515979310081098343587490693284532631485788598922336311635726530436169131287988930042153999647448028295025499731103028688514740364704212486350949484122344948757898733638288676785508256811525196295133631967300833519669205125342948375071110176317896298388849356870163233769692858189028934923387333683746389595331888881588133431396406026828685008077403670441264149791414908417776511788491290086038548884012186367540822101866036438520993875554041858287085826328631222627455192778817701984263338238308732487505853610935199013535386681285032392522064451778538451478550753530100720853884868735266216242001291888312221261259860165922216721181475639056189330721682320602438492503488974081478704696575854164357156334058983213917131525685404356515779051223864163031939842470941427685201739069348727023123566238547886767544591223989468681477348597580813714551778064237112495666675297027451592164273306597832936007599794789549158846844130733189253542033137502754158367548201421419738785485284806147003141930622943284609131514062298758131305989295817678608929432310170576270751613424349978845457190949698858568275001234978646941194985545778894688386785224518531882993896548433450242433493404478994071478445619285614222992845187618653493989686476664103896694324210443243939420214812556799903217066889469834435346657236034177654475609769621266781027696638897263598810465763140938259052365585814668302504366707107422132406080939276067390943728153861053784211505300259709417269969576273406781618767641027697265456575942178187544461949382809913248704476209249670582962891342082109137203599813250421665957772435674946750352961357597702851077680276576020638329053410267586847104629328303828781895885938414312515072538922774847194642463417397982392210435659303341662255843633707951607795923634132426312129933249225222728174812802256801706395648295911588949841797098547148903895892373230789004305008759310300780597779791051602856365563906506302305189547622185941222063889085792204036001313659509106160533313865328769348516300973445584119887474743646407806532880512590576943757319449695352225192339951127939353983814260110024105991597351685135372598743488591331940490322608812085254766944426546353952880188064209412596716853601700906466904180755841239240672391757704207760137556344039616892735313214950964448378074618035801798596247133984053767535510677468569442765181140843074550152404228569002018508886644948890094197432941911766234882034445270045069907812307736530738369212705441690118997885915259776804877109248199579857368203773249810170291279779588046775167047655005911425334572469529832286207600967807047988527420356919513685389830441495952865019399949584134710456808384085788389810878649730843605080745498352968178252082290699739058929021132372053865573312775022126142926781349583783534451023912697377842476719551857413041467920561704601054252564671180529956187434950549737021417461256586730239935703045724444375154636191535283255384303685492070916531325916208717685328944420649546933079724529043212781500544473059044957370971840020233315159186542614005767508947229200459468667191151044966143596569881783267919443806397246521243347266086793492734679930867128072274171736250527193617345843758600922737168772331124844896410746054345971964431418006552228033952902068078760592562456147076779160119527488829328394792063043460231168947388839471592566836899428447214990682817842243855072650888698820820986113505553276912246696879651515724648173161378656689365087373313851396232675406965677909219336159542525508435060465551549175737695346461280828231848847941226674598242441228721325827559152131642444717170759826153198180341045655206690237128248907822785076966996618735100079520963300631058890565764624733752095642394145147622857088048540762172904995790796606410351781313188674369757375877805078178729220249028673520103466121979141927637801260487380923352409318064131821622010888834975035827024102451828958304608205049041157640067714463788108266402235520202186225013908837925334735879549376498527421549773550407872177155965933025212655388710453761523671341999842524281129125824616700471452814433135585277301436700944014843783229228045310768345665768269721894627299087729878457895352465989164111293644391491924498431038399981496246376929727797244387865021308096220641817477375332670433297661081387848160229776466181557854773052956542990400845951067263354634233915448872477496715950606408998012347721495661235135137341598803859049586128171295900046882459817982357444967362268850966692682764347973207848365692456995671934528228838123591891153777176717987498898493434571521477881301116379947238443591679579025925868620570024457073863444922927425181790413233691581001119333214166763438406740842379585735360029346868394776950062948028067049945629990924106928604317468623437671267410822328428835506728417303405622663833164674253766612041363410772185101205441226773635827457548816259967877840611959219943446949053033738468419397863320904333738861888232283136781308122945774038149441297347234244695804156602055026866781026893489087295451170172407092938807698842076419065161290061537570661277567196799310243492516975043336787463887305222505815018375698691668098325422801835549316182813361574644525911931504844249722213015321749275455289307620601743663491968920828170191404264054134701524568104385436937168742915698289199489422239023949404134142251783595712588878314521526716164220634601132583496679388466198089677470792292832717108447057454206266106683853733290022701573524792702085800023102484690999038444381516417606397516966114435954056721958399346115472640123290703120763220397416734455894233659844613661221252821433108467055404071053857746342689304566447320670919404160326422585531095626391548750995234845452961317219699120757517682147636114141697058508121386572895426479887336180783834498688964865571573772488368376278037865036340208859797711746831207872209555174461208720754425643809266011933818620851803110157325762440894397923705252665652218481383306569169803814758211525867979760595321801842497536222098745828831904514103813162648054027522842818294301313936327641416660883477954517974512875254788271829584367265149645493609977647393219331874792971384120711841649645269238896519096890937059907918839935102435596386565695029750452852770342121984845883653393250707736542666048980387888088642538492646532995653501670846716093462000976515212239342948767090239598771159656055571527044005932877223604094978658327093209335813994490813513461941385049417297888778567690796947960827966718475161064787255559807451797343233201976872051511551374852903237944008565804310243712429623155744377492701364518005530426969291382658931497293989634343374223342802760293190959500296235128947439141383628995861625475583201523718860096983562283868974182347874751150089776550495376278898752774486140883342170461656225742894630919497707030872577389742504854686133832789288067607068307244194445350959782333758916908552520744830031398811936907134110433830871521696398286112399410733321896520108288124700098446255875731451232244723153409792007441681815456907494949234771085445115949711070538301906652995940432119670417975342489065317661515600047592292680966403064156408737456527372040886077937155013573340759914475154399287974895490130473762273935916743843303261057550811246209120999746562792556850198135336144123244987215241578368830871271361895617929828898223070012738029513525321837340964699428550004327150038223277009035211395822922532222626160014115583745323105375427326460406505861302343857394585438489186923714894526186046728592937938519845600228472103630133701081172019727935238981716085059919303009977240364637354128346456254376111492532727401223745335810801964454270758859295509646042955611555688881442055793924284888380877848637511340102025748126030450598208186602419677552067543863695013722540338478939665862833055381889433996490225537610406370554275312253235020454305150709524952457806061976341953544498888074373844088449895183780217586154827281496861793245322088784789392208410514522178026327855098770386114627928875721735550390176034246052842694123791203077112169638876948786478821345491982811053652003590513863042428299338555205198508772850729717315798697583683749809142015229588912749145810585010990986375801394616462998069829627172282384158209773648361895572912354542746164596539137941490956370125807477676798211033679163988620292449597891439594595444025306719698141386460143609292797268944853676607008417960490513495275793700702298949393623547760640340430162207936870605782810567870174446064583381162709487716523596392920511587429975979873726459464649520690058673051788822658182057348951973677333790232281347956975049850026850484322265754099050477981371506465475985896426115383711557164949791996725718582852696937547606575053428318365815438741775862649246946916228778288114319357618589964473152288865243022983327763216395062576909456865159331547423252045841394846069943359578851815203226125582206327989698367228952733235037974327734594522254070624534308297528015663347038940950206870373707848537886020903905071117923404852790822114941970737056955409199791178643368696154236433708381969331223030592329826555708459469665191425797194309171317309548044750560098606621012038456041048558758152953223918719835930811228587732183635819519286035881593831265961905676117146239888581834829130465750247714306038334681004206937334151939988644577863049122610678593705816781118709478825785218667055310221828556988807462860628282978345144956550706514310431205348358907180428663151746969551323578976366383851441826659217098871775945207951855305621857228533797855714745189861253906409350442589712045629596084286220850813993774798481341963933351354436376228975133109248798591612954984204240734409912252818867828413110608332460839488380657613429199315608788351548679865896327807582637034575777446808259641568023137632789967673202889002457585758217095139742528699696602438468689774140322745680204152845820405175263810982497729450481803248561909632405998036546116169123767763516383239176512978413964557521703922140701626917789771180639786922907272071451277773912235577287416596187332976049718960237639088931063841815402559034536881722383876969833580313461848862076837417948865715174427431829429304355606849674100352919789288467776988554695942007856914015412004244730780098687789415709258728482073382423159773483020023716041613168588400517051369421919079591988426069287704703807486870435450348572289986534699314503404434403220015444139432969866258691265623542648198605451905856643768102525341843431392083012586371545379713778405973439061096442450679970632740785170241020530634518967188226262917006499220316667843418642368049395607779528049886034769099605780801168031333352359915677221406620085532592698830093848802602880437831121178315255389407957798404027109304250615382785828837609824033052235047298253958788155057629852992314128752918178825952964555710689400214652917073501148945002604878391066197075203839395950419047907874223074855344755760521931707964841083424314964706270014107839104803055283560907685020168994315821503791926398813329760459241100035910606643574887528133505853418438210766719692637004385922459299490759630790140927913051471209579563116265638633261167554430211754871270407351951048449635376463194321246038830888278961214680779830361692760801064847768658510759012004614639982126164644615685745818924293475519879659548220736637030784725622767109842055270740146482857558440870812562253520480628492662685470446234596979883525524688771236401065698862395690756432613040613064297386617178056055362854108496520781150972516594912096274446625189593287706800831979078558710407561657444447754869624816029849008477250888591208701125963239145944759638495316237096228253901185280769001446452028930194820018623369046943173133725989892841832499170412008622155503569761986090461248835889193539419580993328350522243854304098567518860215950382051097562690227199271169961231888456090978791308371340540227134723178738756919965329628377132254113428184835832670590502184559947998916054395240802470477184348954560394770953317104783339249704400768045320107361010699027414394080531545070454863273214115417881030640964168759795682028181026437141769986960370426747319469003154519059710662583360856903277432855696178329277165766650174970662952307251030857643798240349424207322537635177231759622175267240417084983157442558191480468930959687646631672827692461003980425922605046058165960383103070805610607296079077351725894825396563755083624961131761400053882697275755031126581030657935792144774618353411201179940909396499826768711021684914975056287935844141968171664197100657307309284600161421266290573910834171987848588306385253572260622509415132003677481949019271384416032389587425250272889963765301351834376914352886931846919151474079115300469486571158321692292444446781593998012621604050119852596232283904950449463396720884873254356705371687979648658163838672795263539150277579490953443801780758641519682238629660244306576846357716350755205428798618591697286969628597347513253450489643816074430407295991515463509142125489557323649767043786718423561700224369198086888527855438878322784460466635473915376646821143821791388729621914124446622380616621347388184881479083611707355219054979120707049985513757976872046687378608545597239436258140320627824183449280699849386703935291133873418123269373310641436477516983216483684417520045738975871825588823890907967581161063171293561425985662534332533140587169072084783590698446121778394706471869967632327845799241752476767787074354625361100087206176097138258170445880470893409309110014465023499024036068644856636019329260678275683621692398678747676824520715192031989378079834244926017018231218398776158245109699422157635063802722954498795249620054196607696817863153762020690262657434516630474973982520690090556861556299697371397320996138473584269800632284425254948664666463349168988695539138029615516605385335189223462947345528960256337698003173319037602206874734367847324845478785210932887602062881528012292025065617943492508769207301929468477980081363560005198602768620666248326504831617323726471063928719856300027644195206871994032997046028327938309515419504605837423002622661363265463060495240219080257872459899711379342386295239747857455257820250650227854634093132980136974584210061330334999597148822629016549579563556480683611344402348703949431433736607207384768284228675174596205922356335309218045097871136843099625929072866203935294404680051269140909010980906732336844280024809251383706313317886498664693670280692533614267204112035172958943998836030726186231128929955730489219377956083146339538381562117898989109322843809770011505842411906561422779249278015019446005762835840879626117086396725892343297843093129368399875750980311397027325332854070150585442663400360941075317735845464928941186315330411320425933784075025890251469782941990039347879907554531516504015826792232480892733390897978964515028290134911592142310980775657658337526127677952597593383233213368725730264601210856516017081293474328590731332392338734384970435645198746066296101248893147423957226636322420085448038894644579013484310554665055971100988247977442406743195889339170207963778355521812452619945899194537336649147249037588085154395805180843412357458034759365676682340118913871663834520646952144830603315879966299265745242292670201829822180830800824437075766334526966427594314478833947843016198576087720496966057386122590999016079155793148696902906291583882315088636204953843984441519286956093587013029676336981265116419873643826393122686458510114750855597542890862853931758282335344856215379672366554829938413685542676310297713012739539539034972261127465602130983901855238926319361084643148892248228102293154402530502890643527780822840732937790393057478045532921348077074953419285505302432124655722461742252769857525778927898398448604524026500081911646314081241668011641517743983548766102351933173593643949331179043884611735174272678761032530827904965544423189571301187492644862084260580057892499868954257815945384745446731271001432985077128391498662134240051992038379913784857500392781231376937580458298191685594989899299321334672429143405063684792396221223552029033238125490570196530735961064029405062050094844004765740111973896291384755271263059034438033742105238591354657397349568722978003610143508779406905262666096675134736539594790878661660696839311531588520413156030030209873925251657961321557419640671195711170105395076776683349504998378470444905168539573270697431647811063306351813360506860569127784178105185262365288991521841742756670818907731553711497817219375953608091811289876555322928381813152201239613626545777057110105973760013004972077478271837179442278484791790492047915393291071286725664110770431651543871709526794676657080765694988879178353506331130925788737215484095619973108504339171819972922779743809672615259340358086578429656682918530328557011565978842339628457191785019484943218944596222778926672216172887732320578906992376051471450651973913893173025004294901369509855767904148612647435940574337676120801599212847416042269467654504093263715465699964599409203258026673801266333626021771016462281492886673699254539775775350669381755471009862925772155439234467031208096844641399399909749844198705480699863658983787244078624445136636664161566277663563279952638850618199820858195198874570356552557278990908279823493514854363454579994372609022396315762358821681591261292867843952446875541811200188369543732110183396660419700359658806443399987200437635939965921537678506371948469538484641747769000478718010235611411172377832869221566248943136564206200751288295711358811631615748750813805635488858651284977196744973997500791389657662877135057950617005834680315310934499072240150955095827028183062535829576464464229585223651883252824373374594101742031999507816791438262135846874366943459639018782238196763964621338882831310230392173652276690665104591145388385041256378173083221699581127043626117565002504957819328976450149578156080926267772196703391376709837416405716002661966800959362132474980464294924393574358531625238946177012912382112773406843266390636881383636841632573387291642987086389519484722052780026567218619416579308305889272716662004724088547587988235575105578959216104125097846108770038507286112731051785885027629062290105704771104769185019476059163697518537863577297768109132355108188298235743725810166701061492935819521738334130719350876540230790729154113501105368209472112497021928718993824868861897315481933641302032730531513198756469728761312513091503366364596750778594644004918213751682098211684886768056630155028431290217704458679171876801697134615813365250635079782510674235244646280498573864667523366568620643950927469899018722018375104617963968450326070531044487742629423172607158884971341833486301854688483101832368059843035695461300100639842329419115323657529144297677436092906078794870407067849861170875582253292098632504768432405852089496079287790091096465864145942094813844703625870484003468475060420988108764939036466823613282310823164676964630824905705038378888640028011206246514957375133554609319058196911121830224478616776688763502882900890490842529657958011862374277877896805789984144211560175218594236581630482868591070660996268684187482260103427982511574485229397498191116546748860499052835791889248741993891620056841510449557857572653579165314559367454014003742618778470390436474338060779510433857958748624287633936569875384320833073750742826376257351500671099843476033588986146953440488031663114675930824948417812939472548314321822592023083393170394669975485091446624169103733083642599850374682681463753129792800505506981104575687094594098023740858853379153769506228468054423577946640508279888888453530649697797733290642546068627597967902960039921300624863691400494303559245356234663759389636611207492864786131675830873539056234733268252887268695293700705963330013631317738647827607972892521601797216321686877302802913966076187390947127206712048754453176877183795251680554219633328589015139776184844976910231904435332642440231011521135985116499651753406429003108808887305468050771560520598195965928835095163515799397286585974211574289953817705636168578083139308558169397712240858261420906723412447466670380092610295935213612783790897488294929597238061213565663257616164356514713585998302416323868828353459450174329840028331728492910075886837104974149302647070201567948456770926610729521708091619825375576675827213219618525794475445913844670556736831753806116225590753163927821032940271034510014355443254504648725184578651638306748503600281947357515321172767916837673224560452166508010951216225105630150247112475452175975599110711728740857922726245562146846699290489359368188140213893440004636866377895779579507363363711949424892667963265435629722540375211680127532423266968392479906345077862857297740744220729346776690828828569780262740400869539416132161344162849113623793853289562613499035497532941139879591519596140417884098654519451792686425128434195150489541720657289849575015823830322454556018724252854498382361169297406652389155083873443229101444524546481601820579592266804251721347182343978004492188345968029839707154874322797900155541941713817225269881384913668310935694193038443790588347829266574540797333494417199576996510796951199687358053061262107759801483969643845802129120691215758170361452856836634147701809693143722184070515949915224103807134865361928141119603368484571789875538978249649800421566033415923245779017306433971952796908076118432629468934646021402586230310947960078489407986484086457180189285569795508940521978148298610927234085436148759489039084256408420008214825603302615781992728246367059061477309960880435142170108426696207444003690075736320016259656408366350249553139929697114639374603252745371848835384656259405021916927283961027054722050964763467168662367625035506379278685246435880004312679450553992810199625227686956913970185064073198436866817129025758024242803506916294699580152761075482729703013718959421048718092770534437209027357185087964659892728175827890303127166346815231752795737109107284602385377824771143817586608948839080883153407314288862405495674978191579654334082973857509281175671410021943657391486944538229152222145053092908821783736215000426066013088160062962840409759143688564320462862465162363419966917594267745416618634576400114024891940801085279597917468454312260204547793225857028071199460587370245254968028854582102184027269503406929502629564100334549127311583374578657688757948556393564685874786342399850391945546934067344260134315410284297571161625912261528361876308704297766647338462141356101544684993061926380738877234355891739105764347095313843983503746105891352178127016586345290812563901007437656489477211404517924037274295126865330939821563569626124027524641960642080065227302724571267271924165627242498852748482601236953018933110091620521197806904210861584719909758989509521737855402865755598961985731264460783985409386461563135097836577722348065069669497215298401958998623263653683835509650889638026378465745597294598025081927851772599318533805520614045148318956823323247537405648997726712944546184307723234729787235322596276654999933570356710031482139742563485163843952674669305359188989114979188040381478798012191364289815677832616911227469304817826420578833000042135237261853815603526170386520352026756084888726608378555480153509753028354168761357733699219044602418944217835674816699108291281535944506092697207350740899421311669074211240187765506123106002735876219284386992083494920252694533526705533864862177558446305694575653346448555772785640239901278963162373318978018589870871985674322545758895189311977405671995996291133154883563584772023749203065275503617678040997503569497790526907007837981358657235200931356686751138335704654850473828194819524503569905392347722732687865688453797104749276732158313352087753122219506010690654757384739544572282641619789708545751206810222690824896898924829021937424324732969923747308115256297012081173323819857752432254291916596912171980365278554537996374237812459350640097682572461715913292728466463049857107250857615201661692187800281902636992025257945241668329476539263338539603003919897494909381565148855929526203876975779482234978172002511319542736382713750952290171557073365808638807771539073032500167898068197596152195109148022283648348490940562963300728869511838181671565454240505833644571365766597751139492712071536652802599594399433207433527442607096618815586157399593468366770681435259667295762232340622742046678357202715457017237762173452892325167245261060108318294082860540722634930719779783274588389308441286499051392367484704794480512532508889303668864455334667805413281008611900471715606176952745014406466717768694247645066250727314390267734495904888968898099790771209098716398615813811952253605404868596470435187538943372311182803589299593330539022346696894324533439159187950835087882103950659481142876297701200851931234841641588921902362834046457538749424731376405897004496646584006829422090978263291731506410769452881960453420060240622675691448831153409712654160040720352595559611964873968706534997041832903090807605222345471848350522887817963087308520654151685816295253034185405352960411678312591685306274723213576179231515372852356144246192205628050232781062109207522589586567401789580584147429206521689405568051031789432541134216483693055842672049486283985950341285514365089324273184129037184486489005820747756015441042365956097328956829653083734262409403100905386123276333590073136298872616696806902501258274555146492754425296476725264614646531354183905393377736586112189035689034474313626442513021606004406533033320645963545503669496654914558672381131711104892449282564824156985612343587161191503549270575248574795672366335884800212663834914256364054978771026256813308060148810359782156389134573257298919862554301034226125483957544578790174079703961233654845252034181233449649238341510795861112666937160272942335972937837659058769924415975896170563192530517753720281492305072910740213879807005581434404297331072660026049538057412308294523085434988989094064419128600727796800718967513497936716389842924000071198105544537881823367854021821176840627592289498230893598471458347967628698592258753813824784477006889555107953360913175336142914440798251758041487789900170105193384599480189772198899708182420026482791296331956093835656890197824430249010198492048783437303509697118336276643045430359527832312196280618041788663163394497566100647955804403525379282938823910788263126567628219331854302680366444127824549659782723706570721531091521947660648370520352830491677718675018856629904116925434089451032103205978001049180545876057306547693689658226864257647631375362643695455859434331796396976784720398498631372038806701177042483681764168963342169535466257558157865233074526766200150300400519688859636630926741591327681116658248108903171110565757088531983132012543250729081227444548254257913467270040669394681238944709096217825326428077372178490905535848849190855010502124718793219113182236586656572747378668439358456275229115261880582165683780163682982812205559296413244806356466518689236581637589644764100101265965624103342476784452017258314329365046161550392160731057418682897699099630047081262317837437309713937895987015550190645538384514516593414674046172684459175288329543770870417283890505603811069594424252477031044625630617370600577604257674844777379406851106763630268704068263613910546167841878233785944074768397422534178973855029494884013078861518344568862122184150192812224803738004982167459468903174107957580183087407494262674752173248222862084256540883198472812565432035218289155775628738285168241382549982690773523185351433591019686114089238240365710405105080187860800312320451131410681885328345130347641598207718955243772332066750119036686731656560730757795897127265653555320697457457127789308395775797117594867954582525981118595327601691376097854900767431700204602934513462462165819380734751315497609624472680804299190361701347047572064513542927713250340086523428058673464410176400008185300615991482836690377427149264544302304676219509610884153198059026752818019904538176596731675300842266429999406439135047244504894779757737157319946549365506405833016525103479151917228020452795413943746660419303031711739502263914135779653970399314100433125847521881800405175181456097681882469416409822228866600068929481047456829280231163216929658513679860351581785864834348852577408338217953896350777074381964510758339986610623594166904131258800566026377361573800527941838071363596023870262272221692153684708558185021405128910762107317493161226453037670351983380101482935252719869584993574866466439261923697736308189284130566744942930311570986542034817259484109634522421610406835029705591477610208536803501263539867235988016918409722201808515494675588110647772659728817813053709102188598794342647218471561780858441972172870212166326677266494295700296747216062544593324600742157090292921798317646884008414142361876045212423655633799425839678744215545760159359624213434367046075870208412562265416972498739152821464021902848173633522255925488103218614079426794497107424737910264924536394873107949772065320454055944544372637369197777392752827749789155785625524273902891794013645306711483886882336086870877381466383835331046854011647877795453841149180457296184197055387558443756149808681838123422864452935179815967771130159374228984856884380621824455734970751564990093625049710180930286916920087923112982960609054311103928281291052191942069075155700049361493268196315286225883964538650947693506540991553482874826551770954606612680862649976577244521364229083153055848399490638189890097995225864879919377762933350445200643411213039830128421082044401734408545399925170621921388427569868328922918184116497263789709969054026101799106122728344054274522113973430906991097892942423621063593149324952037307433478630133530827590434553783126551143008894245558273267842032304651006890191336206370463932864059191244485026505422635410029658400715316458390517792784126577553749139307881720218000850520452045086351015087167222872236688295611928470247794905332667699601396169375889223452067608511935347019525610591735874143106877824235750333982831645167808028183758017853011427582107215399745975880641582777181407687273192424063977439140000311613375180208733458260741670187155524856422373061004030605245570005606096863614787398813010591342095506030338525065936304693070265419096492922270893096756561542177530393990321853913417505992897880649390326801682188278566427481813882757983201261185006705420897755972855572301015994343974743160202275218773676350788780020360332027732684012995163195409446837909889350533534269912000854623854262158560639929749598939207482301212309465740571912073458634086784697986508844908850595938559329217111789883057033218152264953500070299903261689314796415760644108792204300082228239733036785378204924032607049202120573344945157199789665294578171014931817865287549264741541858900777586290266785628395399795615586421475800674944707277107669949314899091295272080327254787730453811320994506048966633226830654195442304768663643474990287243102761962634517124142444663067350796945946636763516869068105783493055668628062249128245849616404296116612493698098696951615513153518259984061010861273507523275050855671420786109959679665264390518565515569132074236118687151947023042802494164949797815460447865473823772093508257494360800370007996438811433172579374202143132451050417804450773935532257358892349644109913847145476146896850465298280880817881252822361970274770428595555123621459241489165916559148409746829037201906458238757001109787839026368415456573320615746931597505693204712629654740708375968654949637584474564240713577291907047134746823650397168307768232952777287567433168823692244621338848929554248954714045303522793397541393631498445996652475618561109140272084889410162097491667619204095011203317594007955525742535484474975816553959433557111907775471170069990257542000988580977649828946869146383356979482362334367925788053410192563845863682852872089068899476309310094047682109485528118458647861062331833851168662882023590585830671189112535401281158787914500827097840930414998430919086747803420613030305955776469580307453216724063494964291018833762691793889331893625131941255847302695364978246940134095614656646086793598917476140633681209477775125242712442849314074463614282523051142631180356480798713391777839860902842373139035957599451474738957222941062825871627886824465485354537346243434422289907920811120580709752828603241622602502892008690068037593094210864799410614637070410496049356870873673213060102955861779004558162914546024923431426549593982720680323551407232478925864052641522147325514420907355846090323148568528434038396258301318602800567111386601043728596401911637263613063707804327605800660644200784424403311629005341263899787959850761190016626725414324102589329639880066612931075148624618904148912675583663111294223677269139896981492630566834817090880077164291781506515702011702360412947485894237623507838752484583059537270619996125594384858658681224667368528678356940642343665879195580076350852380830473505442060209885692685239335049807201251632236387250457646433943005178315019989337263744998517349636936567168957956251298343039656853454968219614536056888442802704873993669631400926798839858950338454367992278364490078752097082132751746154343108214372516813978010848294869303153611230328948133311214279144083535654875489051401254364881264411565909580322786301812906455249708068652015037186806194662297841220697325656107246357545900621714975939239921829680234857540290986670184959917265007296731175354816774291595388519689606671272933926363555629328960122077206962491622035123083589469258465128416936743218783391897496178388856177829199151833150145036539825338509029953910945399214505695388497327313060133331485918970460678265694736391186483414735896307673746382244983046819309294235037262906107959705254485603113096640239332289559661288778963611854513988507257673180742058192598057801868845911735019945450602746766959425398523921391619169248550502633623247587525173829891537974228523414322776682351310521915473226293510327701518851599798664440942582940026867822381869550775585933108006209869351621649587499998231165724541916220473863664423822253397271824687860407231479319898576252790170542571542643863176085331008001779538475039667689702094715133565953877598641747589555336162150351410319590571489987636990652097892889213440793483045647527250267125656779000973234139276194091457606981548204349949993841042110941854450537598525085534228241371965960422712524157810396907572190192988488214692097154552244615150671758306075623322631437867784544524777627403171539407358099535349477993417083823117473447871105542596080092376189578168748821630361769499116540153369986638066936004614303478942926973356240462793648461774699531958210364997294846498626232540815527437828600911008346914001754373719022995871525943091138024102171159083795504715540261699005702884291337554572213168873247565827729599117561152926708952891207369185226248928246249883620783698643165937637219717609849250265137284634469182213118945778420359648009793456861155082214154240635095166694254156822026328327992439054995848660928697934861729912435216006063023578935772590957246934117693376818070314925010005339838238746035285714994869897185669620286615832911581431095257018559265453702716180736914329410331856224865026744141154571984046563925827855734463267253963882949388855769617998152346259102215754236818576002556431005978501538790543510703769903574808002611471402833711035336715164798327337697005477052463777066456614637431980137612784107378938789600192152189110620267713901590151592390575648155092926217256630464616947047770640484625039518418307245802928618591255501280305314929909692386774936524758405006105840968350370880223706584136641841297400189472430699406380491099876914139111609816686131825006838274423863355446389218167133509709122340253046987601390897695308940488394807317826810251285460742881244251821248183884613331315899691655535295917406712008659300141121471309047234172546026877375182627523579128349727641474097590758038273701190129101253698685411091580885094100517362071765858671809708764930402915788050665341321508602018510257638842470252797280921473228035335043832708856458619992187602410106694959749270080272313682319328428841675935573561152846450538631802465878621996671239562390335932566074335269869169890015353697582008827937808915012997785769770046091980863377729003685933045577082279403759844821472925763119479220995290845906879688311416005970582059392200029280329431953002530422121231189477432779918643028100974056099105644949542280253947574906483498252068119259406241677594999210598934514243745678742747183981669789613525545641678246226442879072522116706466990638265880334186606626814432663023964962070053226203755158829538704132951505933765236023340678372150079237802041649064787229965234856627944373310289685268045286871205721195881649341850494896046030120157994358542929138685634218150144909709962761868240683651935106276317230174303044123071303741945847487273380899081314665177180773042169547059957423434120996264980872769439412705527799073368123098284393729682190816071793235264029290288456378303962713045094528546351112233290069301228589151363279555822989394796811636898579483727134863828428534738554731896457906362878057250638967560155037226461772081727893713350534092332260493057855092529460921081549059734478345848966800182564087307915710895383847896944994808835928567960682508926766508989462942326037405407805758004301663041288623812304185823067460250767623458208602534886443605153897447904116403469449633650131867796726247180219805343133713315570785512956667647621759947969913888683356534318327737498611992470347847319578865886553855363821847453778342426720881440974128727951047137215111357663822423828003684721105143717906716378967816747773790357440992574648728852746913350016847098008178039196911612027273731756781459912882865362695085496546408702291932474387690807978570026602021830000872261756368025026675602967735175829596219439769883979554047918896362142476571681220151488906211639354143827774242005822366129158932581802069965591361723605246882777150595384003413645552919039217980891620182719106674723319062180226047143515509230430335626990220103671919205940186292209699357191656326706344847585491609937757800987630052358589635142041697951369702929523569621497044884096021261510897028046289994760727607138107889898011219486445930354192689107555355611483754093188932020776250346560016489204212656736605100276310768468456669141707276432353427315608329854792289461666167859618303309684368808569664460076530553716180371636661778315962418998577082886897513055179456817951808568529127857162675894571687193270735031885502926220846405239896655282463828958068842227519674187440251047335607056357620052791749720286325417424442976486485144673845057407277685715375041409290545675423910147503811389846206417440164424988423137713758818465363268784049526376482393356301969116456340049590665491923949796563912891614890163565064655857445394202077632054743058558719021923840249754027393507153022509718106850926219446333206018807661994177430487934787449757124036536108406459273673387217279026767744573976910013882170948179974705073337374017394488791232100855720573488583097836128650349915664288574739108620062821949755883577650033236077634407935262088112906791265267516631575809016283838632672734713484321170102295260845966004049823280495833835702507806572756927820489313682351744053326769289277638022771530490611185696016292556379819216514084613455038406156596077956219375221928305749626453213905122859437635063524276479846612980446958835135577462352054187495780632016339246079270008904342099061060519760235652415243334259926769525817589022255578389522326060677846892079408311662647568758216385852572018204327132615063873147126200400137930658995541673700834348462939336650327395675318802035374565621231908042915387146534906438885533598388199126751154225991619585507784886764399808044252624817833033720932364567004328683850449131515582289769159982057240533311108835129274169617757229872338805552131041540335745785414314733651063541371134871444526305272152355004510938791331569282732044662185923253260456211189804841889469636502136847516099665940618813931252979931817032775791908586949288014395729950131624011759584815223933362587755368384302348976404085820410318976418658387642325861292009199698383143973296985079836111282462006704147716066405708906880541952414376162112260039630908403049745561234622491039707340405440404935583432664198991496886215980160037879113887321467733474551899810943075441046305252594095100241781074707055858739892597750218715982215739550603413226323362818162515869618797404721925376418877535994577160462178189957997188376278671138118171575517244755324286743140855810083912277424219090781885049888849329848161055478502296261751735929730934769716648698038145227808925006494772250515982735522498913878080198994753103133646855455551725604976674290967394305442009374300012171496236857366442251114880605377985143354878234472642687919634537892229709177335984632274733072912639296693371203721846038086427624618225800320691222965783971191925377668554171971407822888840394320935765559717587385731778659434786181560916045694281448202482059068169651253333636967917449075869028554738380432577109744558040248330678154000163246381867855136970936956939011556963585382438948059990897760982032274954994455941699252536147634002184903683743671020392935956885407942958154988658225383932560805298448080877091639310399615617868493796587480586771508215931503294287615827459122304966106890091424434624449656907614557577802080581198604048636890700982146230795094169609639394822201885643082152817287291588278336326529872910691767812837170970029083143784885778200219012956214125436275873453527469726630275944088781864794289723793344771012483855035168737137570910700644673116053264118513198207646521246291121759169464159085950329328662092672449848407701672409403260121652873804633035667873405416348404814533880824592771514301877713285371476099687412937529602503094581602255590057981134092856421776031678332385599958192248270656791782741976063889052832636491216013487761165135039379254339673588822482842470127066829361836691760390381635357582743663732386257860700257183751671532145610731682557731147884007321746644097930004992359839440865897153845016715709165275816248031554140558870984632792846496246154291732359927275098777152220798097923963530799582181939176351190020641343955917765775946364790657403502924464884433169520143090125506691706319175537739256085331098558175013407694573222494622218485520361289772206972301027291667247501989365329726268581943448405062755482528510491731262988837638460950028633041587490300501569673176489489472624791253710430234775418223216107228196141513640432364810841432877645484304397508895662870535037856718575733840465347710526240887454877237562989268575831096520068201654867225401748979687937092852661357380182530916439427236459419242832742345889497875107351434132457608658964226892734826469001818121185431216757014879284647377700869827407836518140698625059204539461166509665738521895644960343825341518629563447480507911221671637217488890984193243874946680781574071117817056867898375458181957914447361714049761848478921740692705034038196685700551215323400457086964117257914143259226017184811889946882322578990798640873396177969757567716820793526716879295738283169296805864956760512644457871389546655180575849094484795665291580948290823668392450719259318075025280574757324810945449519326005487421879223231316994797517552816641747279723996963495768081452838095212192318113154718153250616239119784274591220832911580484840886997989374049622144866815977067845223881663894182525893573905447878295439730323429129098404786771868427218789644363724129859017990463068733121608519090722234493531822631117365345926142509830700383834311770471010497686398950328377365868571815569064383234275424472215125915242904083997394215926915640183244927795428401398888025485829804056065465232507355375887084424979487513221366130053856726642600795794361375653605368501267684788509614888491128004140539369443286512563084154439463877500100385953603839397077514244550379679027168615019083236386069428123842815165305110369268775270335429245337428198839870372164803409695589308706340407573217334134868173246020472892647993362927480278796168441177464469498802558651030675708197282032951355914224869857530166098273626598192835158649657264748309587880360489222728888409959332292037874372359458778403351905994718923758091248629078945980884524346366987506827982804126825494948572769883127076570796149337886911694965036039185821194523767107519535144663059575475155993905619768468089148676097863736121881594936849429905108612454666402975389512899339212004124700446898337241705737458517940011068107639999110368639131100520107014125738028428919888997723319645186736468667976704688393105990360872801271750232178449132154631244855875017965316270658506832150341017902166696808267637117646515614095395736653665748120365069359758589117982228846817518412224723301539405311177981295040567536633853269273622912876117732991345346187832747082708329165529379996939475054332322568157598440736542765279623978711278813372442408476813856409139131327392783412084484178950296523536436254338744326583682517989807148499633641302152530288165917697955080567080679030434548264109250519889979295414366839685137135840904848494126175861107620846753922322077523580579044581207402307105761812142988652863682910631093622190535034305243633990894515386272390077621153948762734822737037296419230116040067695082377224377622697783892709878095422507491777254110197941382499914483644222938019732810966715503216978087592422545548857192657482799307041135728269928086315518281900840962606174073614248480495618964012495067289836547379236953818338289921610127168663963289816110815368451073162866326313786130722788773212694607621535263292218886282744838252928823050597870490062052658148787434731478605635432212174255893795154663555652644554026025595262304930465879924265040809726208220275792505276701864673274109366116647410346436319458450285012039050615828407843467301656765187639571835981432440722441491908655762757780779873368923748234900894818178665412673942738214017142265711041901902261300396022009930877035877661604116700878069451619559170302958226045179558026770408026348895006619947977985412060300641222872437612879021409268304687321422241296176945404924711787508314272242411881193889541414699675295311995878445519625053360157317928412725012051986328570711574087440287231479906896240818381471473364758817628884525629635510571502743330108076791931772224943586310256022217144778103270759643177044159196430820215682582005900933797699708687859880954830702531417353510489542499143530817676312927202924073400746602077631769246927096820129921417432997633501217120399346114707994333138984503087316491763498216558221518764211375789459154905968223304030684897943547201495376526756439010796098584878511680179074815382115978878212533988244588785044837484535684341834005646397539031019967414886953238027179722932553918416915912391079720094408585980225385074111278478610152356685416425780686573296262898155520940146611133995492659491310660642186380550209385437931319335279246935401571916630880034094922396571677563736900505020688889400818746189829799392764832515845536687455034312784167188794535523492266952447627708479002965605277402386995476420810447095864600394763981389928190592766336737956508774213586101121969678912926141951808456380989028796535538909787485825682597733795800211307451406463592926922023784366443732411777724316646924173638011764751767621836262965722994962902463289723119241922610082624237628906935220553931644986430953045798307378425516743278836716994377711171780997971849708605096919355261216751001428080802744754131522186744071713821019237980088018152821752475929563201688164547358820271960134353344514858187536532400940013308849646508136278243352546089166357177263255227999253681376923855860130345184539969864456965893609845256228038410114833734436972265746954419725980121504072200207821317640166860185608125565955594159130129792416404453974602850580643845090832510956114384177146831150062847794353213089487058178035995782820097094423930443111308019416013434989098953175881188555816859903028276053598654193586230331038576182214004133769941884382335327351513956460905551757349368930257707667290831886695545318993048804534672599702780818481071393074428469089535573707929744738508114543388820268403691117303582501599888428912199838061255236619114250101812332311195669897958133539857780945908564292558881188861459472083674787903384518541172582119504981742165518907395374686231454631047270858722593791757871145955332842897416059577134871089033196433573534581773516457150749924852196775150338490993442058695019143471618994520325960976467521528565434252333809820772350973139957622398967212678196035075701916407539696424137765854922618281914735642638133952697253142700298457236768753735674401271434934404354641118613877088690101839364493081138363522682778237527042413862317558368486285493951062216119855767380057721647997728916488582871740096520000988955054841015127162015354750349315987945874195113156280059823809704687555556625133023923184134763774274378194463036740883063004439213400218546901805475768501304397199739482747747031661728899312715442050348056175742397034859227443809507031950559046306811853517538867453985130805810724171069027983492601316942360250545086007598384032375559128552509028541319758381100427130781318224244630624149853551979883052002399488090864066900622946737004927756250665849645867636990200816080949761325291365697551827577718080822504919561785555305349075831324305415738569586441097843073941960928076573251300517558628504012159627318502653548290491247604843420295731417802094616438634436362489035344728797855128589983707310203356349092008226584141523588978361763835537660986460616882584139779681746050806114990544016114923627303887952381861748762506370971051233979472196100829330091646370681081781492460919868810326885290451297057707200714494045895526304179426289607619295525027035112241812438925597905846611898557475654267651711117703987580553055994959110617302611006835990352870485060263437405820299506485933144050175248126099050832096829723386823905390532377635926167025164504681796955728330409095535054711458736795695541634065133419205669759290093233897260593106689387590451592480639084549335153740306041552944453400531834534922415687259855254480805630794640528174157321375149080231339742919591143484177817516850556909438121922582071776127317902115685970649289851020938629871941055779218246973725909327590475399975155101618921280283586952026963649836078382110344779540105571833725159284540371061173567606355657263273022734516857557436060388687651857218347652216253763845301379849938901767347458989221268342836082572764318501211551185924536274530438926492814777172644647770043473658441333934435370568613642445342306256759052756839161256399128298714817701512759075631030148407988377294836084029558694724876484774574397359103189386488425184038365504034202026887515682544138804425683285998731417070063622417405655419447814348447891782972687012060580168708145009949713203313898776476180722845472389748594922602212986239759794679466093161482134290447852876349034577078414101192686479224739912846115864054517964131349011028515631461621428603562081973583756933753499263207219975447417121794727848068992777232126984379193732189753947855871078315229600499234497682848100658324677806155491999545543139570407025656413075328114147413135373242918344311913351190161377593186257459962722762381868061976418270690193219673856508704350755697181842734576771719013521283375013207706068952977594218893483442574972074777023403241458076368239752342671824020719541550925126090831006411783920693660682693511430161646882599734881522640802303678692272099518203227979355792789501960666192040216849171710982662676618827876342329019750400680650373081300294192393074529677614615936658509493664194180345242919766464526789778433902406563370606933088899529123705708380225437512098352510549123987898205596667178418676281168254661214634890958314294131403976365814962310708940210414676235227277538096446433296967797370265010407866432010057857193404112044958271587283825627708934897097172239737003477564148410575346442108949022065751649960482253560000747135867324347916802303855628286299207679752386650568475321127950096416789560227464290750379748438523341533079326527634938070500583000463936794874632592180407154201340044170536632287347453906307054062676935822771707210816188234358791281309685703393309757249013168665217538636919016635412235602995046128823879676527693528947611964298701071662547736580120987666567519781304077950537160770249789697361127738662513744289955065149586316547500027119124369253149778037347817029027840393113054542606942041474146505573732129702967809567436760127619488969425406905151422688195155916088759404524331497582034251914468985990766972935047390640465242161642913943243876761660518910425153459016724877717165552583356427491741574056481366196695760128618727958686644052404572038408113720650939134945260515631323204680109350184993522451258972786308520379042279909028280441462681538849882999858558620693301533217895133012300277215465299209127164017866726652233208433507798536151655898318893338533824128387681724395460212125274008841484975487128676424309441292442131735319218324614515630843418073139312532820811023245327599151190174164302804394433833706460537861331254501791970557611329542927882785555452630373104062261989476881164616565678770918571155646364426712958043994058982087077129967480405134281478726237659786251209716940376424599244055409779557527930787258271317903602794417462936461586394950350810092027951054951636477603243959659609058404659407981971744241856851184184827138702736564596200952776599921361847463578701601999234164939737142571517199667567049510757514623316475970818570812377629258063699259956435291136765977196195674039394833519293007037238331740284096780143964587754280630257000544512523994843751399499839963696187401591496892169234319491870962723926099598462366799093129799241115127116469314827957333025261030312816161105693344408825448511013866346636736451983082802783483728267591979410907349124594280888180401892245288609684486648491191465021353633472650678722303554177124488415081582994025973359275143614662976469033540205873679674139283300337590319002466006885692425830446591068757683444253848334987159978826925624430319537444962519506442956868635671589047087261473361651977135309402960074916880099271882001256372268492598980333787328687143815841800058256401051469684161564695004731907112891199710900103228117072023557693804195260119892647948589125088876366980702364393602492215073645619773746635864652336649880930758712227671499578863308984136034735035471675922360160000657377886644061751477572850715695438233516635631141125706637076028509119176271836002442681336921120203554142988285784943544106103290419121559560630142318991655435687721299127540487097219757665419050946878482152796971438908197625521096121814770708968473718964503559611416327307305492319051397091223110607889833414196855645496931150582174970792667201307881028369035387454728760152183770493592218993604153593323347380279941017061676511469125053804090678412141204293106197265168150788244228334244901381951177542981365913765267867151074087306320468517488302401430369660549145897407599825762084899909080135335871356145096842493331191866517706290166408875032401433263752709889138875613084730810495185013016959856529431894160027848061306990885974716814025361631915924340079659674875834987790145514403845559289590329069911834267058128715689337405480504688385314753998961320885524183424976943066495578321760350253953939346081527580828825801909317547043965615859785877360530640108788515911675366213416601838081899593674460463658247531669227355094783074745540869313461182260243253917359266760740942655718797237389397056277513637131011008686589148989262651554185187657410809421136086051354474998182683232382561481746304234232237453871645565510640977000892648854208128120672492620102679631984668057333596498015997014243301139852376920913407942846263708074579944151544591608798830863075734852943304501225476616498446611975334349062788005960349275752529829640649890193177203399916087277343542910718895548733670690248944439706622767087092732355225127170277142159607749541016703783442110530978177118735830687775949873953069295274865622623691736444688878524513656189007227446709566793910115364270349077682962833398111129139908711684871892035369865723191458393728433241587174270732873861456961324414560851546689504467667572002534751719400703571486691766927739137054516323973909314410747716783709095385438071954326837692931885412943540087472947770857964493641947512949401947692475824340719575174791046298891099169541829584164160088999157942973833081115451490332779622899476193468157486226930403397804183451864391213499121128695613839073909608731647388578122455942527671353523697802210247808408160677022821441738225433141351002546319817960283039716091507888564012848117444294082102529263515740136120025544577758373686766156589625269863464712456689521116840502696326909848447842611144401125037956976836805267905894033841593989982252715337708735592476696652765385207535915377662884337994736710820476329091353879944154748200469559941608712662726086593024880325468400251788931804613665601705006976540956633268785038363976683033201937964820987086182154939428387427628598551735072634117599630503869595665175725776641908920205248750971938358888613365079705183265881592104896188215734330510719243712563345723395096434409326237747306099670000604910802267729239540305448843599057477089003219517205513724268083062282830589549815417077112618800862156290907086615420038871185608035735503645931670822097710975092297303567869860341245394420499024988892371003270968387442940271448492821488370621594144918974843189474851250365698344735321860996223197144376197978782242514483664902453556183002021526868639231832769489215353565784030509388910147386911085660512429799095068185635992436522388353884538183711914130777489045153298784540471742793766325194114617240067667286927441071580978601577728845401024112275167720282779124265532190595813206844711476014020744253701581102059657818734403061738525553556896943430998977004878005055342415945808485977151436649203780473143990358478455860245624509884721212733492232561416569278070491035188104001915242215441288327468132202707730444836643846441638639926913161237031979042738854129268160783219316572212451721438225130276630219491037393189751965580239526489864808843853687847377698771015815298222086380647784222963071641229970692801907058551704594142524250690412810882275690574617789043567326265274482322537551506445670527843861625620509978990338574770487193121512331077622191214141433107234984865182556025646316184906152775296806649600067470148660350963840534085335106381072619290500838556911473879721476226052262012862355197572536774202961930015820953418841929797758056907292133418211803312222152008086126985040320452122039968220349274540384952600066403763030882685140103195439020485396303358363329890141739455725408764394277473502398711835358404377830316966993866883079438918221575567341462287570359884809550388137870905621085073579163423843338400450076294705662695226235706588572575638246504863326803183700003130615753260182723112054786597408277819903610545607283785318282902400981043255194350133182271034891323857022552903391313316586052207729601027321476243395705079139725040973878437877838351932703496046096547841962769747497751170257999457881410569463233593667268299954592485319164861034460424365214608414077110286925995634987382966944224083537874400146447168592819066900860547486902969607338436505466168611365540351839851481728786615204362412469993601571281524609323518168509264921790305504595618870521805655301628111847169310034848717607353552842332724780410941001040845000894685525673605822705958621291775299422232322938647555634698158512518217481021205427995081731831474719832582715074924620370468818344053595960523984472458472612875644084838205332232249939326222168324233866094856486203954932125509988683692172638996596456939473341645221926685007194250031936243694564298772578255343231930151156287278083107757444659908540015728863056785775228144184827259822109496594723320927025482886958101782665241148152280812514719067094385306894524311147121705287372798765502402959551489619808526595266984557770768058201796858794195931992392033044569658249273059400469122485994184613167203501943252027777552262584427632922718109319790665327543805814293050602143110200743894827041441105093737027806345600460609101715303234393013027537754656923879741221739274711195048986960327949108288747338988079124838442397982790246286269478517143261909628966003513919500301159064254078117402139769953473859667042082557662053254975318152908784688270472518595014550830698312793725527518010126173051908927494833700146086444306920627050209626405848450045423699511676452189234796741289933288369617960212888619646449494849081390145188041181994581899642724104869150749978589793434494565060531465314624050628924716784770470043511634084303184339695137890460526629585723168678549506336722875992168837802229374274309715765601860313820564427576990668943459217314926044180850842478179566004303430166271274470359331235880309353192285905813955863576671140166909104338256713461407493364708050084942883159785578980480827937022477208926177519422169408605790011740073793871264010142858153877172385602182356414885210892692952279831076855036387321974650572422895890327633993318774731595406528661189264892484034891271440853919432939484487922814859855781159666736197679975488353062096724695385804189023157124720865282407759700970045402548763335519553864967889890439314638488356457866871960481204715577449750441298214328686326482512847510790074706588905610524948713840870097949897510648988688181117540165507635590114474692769155974078235132324074978503351839187084907692528568574349555637794694572051353184454684748467622307653236816400273257011660521229676770883106226054370342766120800058092641966463126342575145309912746464643938999539560854520133628512970933725973509245045558349259839028888759161896407816683392354539071512193702001179147761309811990053442228709611168027107312751051577916412438703736846800278765491234484279136563207559156059363290204697211230430689157289634929180502211052769953773394860563931197729820593816790669937124471013244940759977975462919918154918576938345083826013883803450932531166577771062210665618446370631395236332119878744886826788097632738592300178303976954846892537936773275015423391966261909028061207190751616385083358765222094412510641268050711279096391218699585786424300042071076915226744502415095120842338524669949565018476830434781007296654501277664627848817173997262238581986655642539748312731548628669948398156253815484623959341485416291549256663705733499501455432280960508986527802618851828113756100402247010631037835604725141474559487608620039886251084047361137963138943976409859325518321775893942623276970616472419106591392017617765610721903540243706093054050157002549212046822929452413528950797425629162579895893044642750618857639189476038252513478200998345553300499247981517251340703976646406895317132530523332216448751534266615189941869638323321526962466246092392342768893484222761515446754594391440135585398484610363736487943622663857958035580780546950805700161688171254579024508926992676108759368364155615982706768366130799637037222213875751131140382451802439477264497766665403438027101669307710790301055390388084515943091643504020909016765721699202153849166599724895722957963831048369368007514689133382418690062131275011167467146424816504232339857280408948058327198393777767505518982001372386592658757243873716989402166272570726926967254746360300110979951682472675425351978313815661314298906501479476162891165021542758393692057273993904268641655081870435650877421119933937381141883537658827940058019842862845518904630109819681604625412605040305884947941680766592759203086963409219088001141364641310240268369592284444882676372058372761891727707844428417415864049976766185021203828187661725206807110531734415539849571741808682335294080619336144315059013731868546508496149831998137753724833980921593919001009000900365093880358718438048712181006469326967759243308640134373131693723764767966586004908032702754381083766965690216751015603009520099991476782507345358387187117974519667004347500092152069461114552565698368214846164258480089164598299876822753254490646251823288075355100039052353312850234403726842609451239056579488568951434958552006431986626891143259322208914008296613771524833571576355723104681648261759347310206085350143311980108131763698404596622044414305934851137546446565881147510296749913723569881829274753256370433362573264533142135707766114349754071706044330753797642521762146486797694197196556514627589385124353792401956241773751870849941597021374039924066104752152025531754514556483181660268695476072879128119655815677764550979010000754706520693941136625200559671797243995098878168053234140797620399604629004845559082340094126905867815747829227293364270314453403049901313945767116034672330009265882732960862738883595406123892855189831415863611450751128552561971380183364246268927325126879097764427844010443730392535049913653923600288221285108510022591061308290494607347538757798248591120738200540623307129483185854044795808813546577513087686812132580810596983341752812385130642866433494253566666918133977184534193719221948329847393613479245662880426597161789059485911616740548571040168283269667773801480484877991329615016286819127663770013228197748296547110341842854421921097754401470517726676043676697466991571411569322651353204199185131168798267373864895366193679583362866146043069497519860078290162978247059139529735082547955872691431710132195360840834140095410464993091152475276538618852109657370793955447477704186399997982028188949247438685693984593715298851915419268297475606532325140609884263958192152111164220996115166100977771327257134610845988875036317930710624347417681893517299236691099821343974165804153767183107381994943031519172632143061369521468461957711241667943661128559587450433802830895036743326694425070150810510794410006783871492750332343510665518728442112615431070047693975948793933675464725549629231165316480888503932807114227250387687948711655128195521867676346335346177638680132925669463127254828327317295862866557121383608499216924655787953316849410473103905810846691740017703348027779690527175420103879080887977021535928676565124928082007184835453003985756484498858155002146809762381224056499950639074496101561577323622319562597045953114457660407729050101579273614238373688931734908599532983805813038703077746067730666023946906831806870823251771476058857065846777224404573328177531985852553551742573756104244319224787211818324349355886422585633242548641604771732912198316773512122644596503073850873206478010914812066227530054023916615499090115636510878187116723308586881535351258900571306219925265583126426910629321549562005257803530405038819855032893663115877855055101343125589179846359571408028145943682354065298958540362388218766098883346066425105490659654982191964523892721049953769456663145153257059879623730558535474773043038978823470198150645839355180479143628977086671159591446186925715045962199529385841228938000925127825933442567052077065569870119388810713855688391759231019141510379411733383548487974854232242495905046605655293777048853288718423897531115740348703504843165913884151175721663979183450848799766060618746447835077339771395694746855263732868904773270215408467298591158741398248868897931761059667276167096014865420176703773002580517254340147633378852806174450097173758050259781467246068381142362103701060161381205336749698023835124402600751113304712446101144912961280079261204499005272302719131263750955044382147304483587530800174417353372742875144332255720092804595321112440410386130539315855945964974531064217366520512381770054178696690750207423900502094455965580743118718142042567432301596339146151135090234493239476159616932890929348057153886926476224067204750087741715060555174924905046024348006841392572553029098970258322327660383525466157523433489351292904589791359073534883012609196059933819829581458016089241735286345460150133947206023359069794115040831955960487821014400255851293751482188220271281046995291184564443135461031143101153982128140653439168162423277870868984900055745355064495204762105874899720729215495602585450606652033216997639539440978822824409661433432532191444861654075464506960790272187455884454288399060763840774928049521175684623341258997205046067301118570334705429956204340856707648709007991102071637057679351314165833032659374559944729455883942710002950538884788503157965810497601070664185711467509596947782950189306824892757869983787414463865218431989672129934082009641907080367823358085653641440217749822220304898890338382273225755806499010414642879100038931362734531672787047541726113251518620844671978964634049308959442714304046260248329025177929366035395040418667678823811576079096601057543198933419370062012112574497232107593297354136966380534884347989232965099491867991513414218690107183853884912356366309889295800113412231596526066133107267026519276799132161477979162004881743034151733509979084818644834853542041828492034469626097721348903183407567759709180162975808391191760332228837453916584768631499788135383252406324506889705031112443695850742943050949075488566188104920112525033486308694361115100878625492533103970753899834988250033251747052776911745582292715897104991205530473477048269746389829969506541009819804713448831803151283310863532527489196814241853581595340585248232250555075300344336069118557756131595358151271916362029411255248346097967577689859002029378191189021923586385477403456553747276520249081413072779060904444817155836804257923157052141667925842582205453887356176695903313258102553243608541036837736717851002861529698831419789827824271540720476638259465479137923438787147362059349649753271071466447737652399968281204440172251394491798938098916412868835680554957137930477212260399590720915503139926313361590300839180259896674570683838904629997030311809966624725133023996694139071216613275186423434995190500171927904778903188708292231883140628585153483790846257493318583131531140951108949987536062470141712119542158376229686280965128345730986722947405005579710049980512795924027269550359951249381226340591860005629875156903052425866107615465067394989045980088889964851258126333674403994587794196363886938695933787551159131901466246064813744650157362057852746074990635530212310921083346904324009997014859109426186553182738825852720086133409766069381084723421190689425911647242640181672234935635414411308444000749384380407407866190520103673410481121502528159107859983014552736615017379089867207517598719975373337990551589920475041173451862651583590412680403489531605871980477511236652421661530624683921712091846915092254102512282881475803600107623622685590428981082254851318811174592619225971211661489776624982311724278365175264538496959323801465928782759389249162204923006027690894571838197516472830419926677894676362292683667319331988160805083166494185570326008083534391235112210608530240969636315569000220516554881551280720515233643616494400907196479825424384273129416630894500333046331986243055042748796647466615129824264342442590020142423906542574581397316638464521022742723430997752782661022998083484893563329620228176432333279409335484562107770181249157631837311699353607672950975070856657076161011395089168543077709272758449403249263835144993391799220848415679565607848290462878379962524292141755004153151754161005147829384890398149737931493063621644243919740344162092655290081122336267121641353845199110885543940506600853622304381419781159383755344349965042435176714088783740690960734942627780324133492576612637078082812079820062168723315656536054012355382375188898682633475484846634666794701228619633989169038353683247753145168148898134258414668687744318151483750136663871433066971811375413357175923745533938372021861169023516606284870366190292583678030827282292946701369637254831585053711844770041507460860528519121836116862145353544724031834413193295384020534087032962320071746503131678724828847824315811817483418876565316726074972438402436663962402554096683026447235389003398487498330452235897904126182962777761808018221136710961320679026987805400925253051470169327322866056284621124060121749432036144569316351848959236341038557433349355729701925676241857583398050922335481631896386823389907583595183455593018942307907474566110886104676563937474812786810097768246762492172860382456676024428717629726817116932780802177946596238778448619985016761565009232469368550116196089408708389390943705937582008433475869222002723124180933010526153208103099823138235369711142058514380051852629734144489416585609149173559890434210071739887654478153860759770583930381550100027819959689765925103935313994327040029440669192650165640383745185534190320350196182457028457551985201505374927164275477421876791999617629191785350091577728788090949357215090787473661066217131263573414448662165532977558498033004165621152080523264151341470319887098812333601167153346314665532624836256770947853717364683952474498742840328471771703667415461221627209887997693167476498954108650368936265655704378740236957091438770902851343161295040176852391828772313155004218210423499867045238914154506802021825615361953626801247599043337701932430428470603907526334696480731741056014595051538605964369208581608762033351265045386246523918888286641163627333560271591504151437348101449967732151354851360566224829882256989525090915056114767384045521471816284805331158503580692935658735681074828870941722535211576194968447403925021075818361666711911771289869769274701146514480562484592290933426208621235384344308093558227380653457162706059989831016980719404898173139804425414082257020433504894827216474057186229393115620810435293339613777258538062366279084076038170740375819979599333764516675166732616102120314257277830529532961579870017886085059716230939878475277812791393544631614519891591483716544401421528150801941611080533017236707625884217319621231024252314512522449903194306069718540651957922930433907588092469989056862676762359134541382514883205679664380183296347602794248813953452734584866840363471585333069965437303199792827702853063348005098128929324089554875086441585485043732714008791691887484807313957835527541579308003239478614546648522151278821031789692875759805109536583874586778854711994054017647711220013114438584707430234993646783579399443027998515179938823694574517403620274027000292125813182225150116310254881180108158015479715871468659406265905128636867241181704364073857355888833677133964361009135040294680888009989658761841027417948438592688428581434009537985482536127343950850546769104410757577080497336064822837594716612008558944277807147221814093200126662383968904237049114657812587009497633254149800113685566311486961138477532870510197943663032390138170366197306950575654391374827461747868733783378120464241881159547968556251886744808324951616101579738413198377732907386171355041893371721553564176962077714108964029813992532308424340867889662743094462979984647364709846261029561345331420541094552012811095189027876701115888279599864702205933798615971677101288562382042639278801061293220144723540889617995035080869391929882376754337258509809444221833534990462948037177014530845467643398123657391551060296482217177373211494516131254956963569669167796882730330022917265821260195056366376078097900344052136431237875601760513676476777364033956428897727625300205653167031866446671645253052889324334199515160913450580941067081093457633686955801270130891451498215959931033790078139880181399547760590269757981555245102560867360327869778558846202322712440004646770759978916832855828508734725402217031418998647744038244234356663481727252010282971001668891482096985069635430642512225564970687651775547157039540366956965381390721407598482990960909374025528447148782801849915255212723581840494119700893117175585042581774966735843740076682609645057358396508883621540079573225173961813938017763740583224446261991077496149649270457921718637982505730738969757687054971950410130163315288957246507115046713683500243634089381770276326772179770739113816904658246971171659244344544902109295036257492007354679503565823229727159962992461079848569759923964053472704091035598920285790621567010299225742654549196809483340252290020931081816717000100569042919496914831053808283014108512839801419519379972743176230546623258585378612601559937602702361535718624280325017274989305893290571770486869394383571649627954504469032473844398872913064719865624450835069859497395062790267364462168046270416069086077332324423874059625461904401964537251544222910323001005611997656623029570336478292332945140778337353717937757874364965241533665527243706738415505774286804660367846095280833377668004401108087192933364581649945836256863144446033947775184987577238860751390951058742483719067167888608463473936255286712654068862042593547975737675997735046225194888483853449329656652196782324789280241965705658785531886760830107696378490793041911953244587696499451642404904263664529961810098153122487753656744456226304167709142659613661984036683417882402115682231442404065566568527530409360750383583230429002844469209890824708773788793015766939549507776779658600466906328003368478587838803333691875045922974403592475848711253833439399130689514126484157437550648120663638089424902981601579973009225305343816838972731684390712314607887648473245961540224298000248933905366955881803035250436575029489312314927021271226617911279080444186647266759885913352836057787601431837769327728124694909637709693930071819933096665244785337585502167272413709216616777322822788255868785773047542506723297939723037767128119428974007910444346622734471444132882752495995768147039561556031157499316051117581058655303400959249673071940595828254542900735114882254849916187441797721473065513083482069990741095787453710270207829863717089176647060876022113115525077512014375318595949377845407588309353395896811947311312289919911382458248109673283516811495083790024306782823999399008595123000077445718059275726666993320322591282177938823255528602490483135731071048049451711774305375442365844201374550813838414797095277855994637524113707954300594102713764066540769373302715697993330223493186634575420837113987170705670227570333668059193521833642344113251379946212371148830755874108615868926589990086636509224986792618088655100911755953634612399449070386425101586208181647312376511651926461351405521616420360480234159250360955651256751236641840605067753472420839688999837494534736151229666959257951502230882111873526550749265391150289008442742633402115951245206074256559371277713141689351410129648834048829956488424579978347851462746321341192595936832138123260135136207276863903123839813814806215143178435928869794751470341461767493395485924310345369626860406070751867072470392227760022310098318906216588321847168601883437370550916742696599453597167363620326766172532139378376559995827136554620341828681220242898994456315116703374135255473523244006868590938755073405520873697576980258888359380985075461118941541543600276656393320797049968470856005907021198910493148182854733822467817106948913788694428624680322656590699907745284026719269505262307303501741680834581496342874228428112530305037298625155363970470258692171300746503357384555862463995620836347188118388820744804951139740732592418243870202210236479155077255125368336030046575069671944849723387907645769139490296742491920849996938393746730882493111448687850392689639137223464469525174143729130097280560988309814516421545232518568141581793106263543650442144881661735287298173369790821228701365137773909394129062473719219300204713861245716559598471113878121446433236143263333981658028114600449803958302644539116307498415092617846797535129309088031040218854589411052885940744245255948738576100767254344023163471922788615287639145896168115414402779895539330546153567500802090917683402795181635395243544659116724503471288449511868803095088454706606759313133003011731930991684260174575107442443118264340813028995248833028037021004785994114961945548145527756314533186885625979959111158761846501367420027599338028665585808109578744444277468148879887820797625081733098834629319104426679350034286691430897646802809352555170779809537282785785075606047747419512426395248653443070839404011531331252064822979221954332544140544384766747065234001874579692414375445837968712666392863015781159691408695541104189345272971197109711785505324390306252632273359113694251357199047095717473169717187235353218667011142568436943272025122722572931184719916405136405394537356427454927465125958602607365018465808559587893971428258504256956287466290355760833923759141490119986521323002699249915306894931372696066816303556727106432419960179121055921462322735832181490190875200493439869967461341224806906493014642746933315143990961335468449407561254491339166765905515059552355931797339762226673274739006358249547003860002779826713652255425948127550655081520634650018606283770601679203520509611261647987291920334226690668038865925654106473289399052524477563299221850792852419668048230501303812451863815564560553105268021614530489993314535109810119589944901412644707565681604818745191179374497625010189176649966711335286116489088164284587418529502961795636195816691049728496809306364850974858361430702415356948616076649918518263894959245725404678709683007063868559146631701467510971189747847823929422757106432030235243731947283381876911227552273244228570431020305303024878666780063469614054503030489993440086370815625709400034593774075601387159296595534737644224305818920210244517417594039316569147936378875961349753860892447155928634354159921411359594878368697897383928698506775429657359988890668645030002123979941458238568751686262988210218296823774081922763922148719048839791100410451472615668150332637949217558964119445232640383225281926802404218583066254869001473482811399596858148067985337488525303092097080976777161599759386552466824584177197582468833729744954958675457273371333139417930912105154558550136614662003388289640343489259484367315037208608362900143807328480022407088317153334942616457333351779258678477744606863956155054958342164159661075042468764794510527344229187341439482683805801866685957359967513200677714375961766550455441778473335245288161914407441898054239942752655765057420318064965324049665004746227969320669538172277206938286966263129061386783466139410604859516326307451428209660477331383362715989574313862876531350178806642141653124704976800464085702681997346755707108614090273495638872701471180811390624586494333180197521927790560232517856684632262374963239744811814960134514984979589102801340127424117021696723927527815060056955026741011865538078680684910568153977987135322257613791719866322355155035814868470002682783739083868119376958658003808409090789581971517313216777998695048697541080008184707931645934794417371204288282301845051458715042098891933604151701237644708527552153584141059115310725405206485943700001468947475749032076925770083999458877831511790927738566760449988589502575009242211889952942097418967554173097710156876346428605151217869814816578346213952585850691761789086787274012253351689409978138187592939911833086625866488951412802232365804561225355740577716791607819821281315566700412391882162005161604762252936290776348142980350162528631495698046104353326003451069492335256095751410437277019107138013465363078706995767476222662312721503455316308613419097005778563986582031142090804866490603253616244156703936960476938271624411036252478548246831019686844555819158733412047810558164547962285131995855745157420813598414666587522465998767301844624739616404616240715947801364447739312506252140158239851760960371336212928323443160819577075541323950323735686100029944425799870121487750925216367458338020436523096489939835141411856487187015629200548685835407362757607085368005798320499063494350257300448681077934080379329896021974120503434347416948132235806814581123847443856559484166058433236959737682899109012743358775910102039859781356823540598546756753947037916368507826114828032248595013449681984637376192287415948879943842981613145272603133940114552245389822667994678280662434420088219302828740641440221499888641051683293661064573322292439005750183607726881169740454887109384714561515090334046314213598227814588451359275253361316053631512338387443914695032928721960066049439133183873966380177900426147578342293630801739685943871484440558787143049403016636867739532099444221219160841861803944216806664404051059543182909743635988529232199796654956758277988336124092253685766534385891079074016281452835161722608418818623727902376185965751109050999269487141310699028331217795916378444175824784742900207747685603402710160283038606083365720261553779084042968656462041029221205591401533683157105004645170213760739143254593878336813698943879172059454754279920217425084665746520119721663189406738205893952799472323287107189064988848008726116733228180290593730039590508983921189028061174307745451397509025953484088975333734180114423710224021217026968897204775002266605534219126550135641828628071391035986118588664799355610713092398444416461461836614734738079716122667580225686672906355624576281135809158239892809587624794888696670683986650933192020120662684473692822599788167549158664826280727837221984664343906715113635227408025041217697781489487891571324325528998256912350507938953191173210467282216586313334558903005269230103276961991970554732533594016381003333073089818105895099778635894857060362008371559949539415239360505570464474910443506060382050190642258821329908243826224777605236682167174466288257585000403793238111409811126810691343633797393155428506847680289983559402811937558905596408543311219258001993266798161345743223116497097855407597155215034323466370582254467160417037247107161128038864001532140386607052371950559142906662111559803922880016425585537329813352541414609573350555714118249620119116507063568098999410208807071387636115815554522283591157145489993294798685229354872270386394784164479089477361902068867919457323702258538679779506557993259203951851610122167346996725957085282539897918676012257026263350111704287816011849070682429589525873507897436952976581097943916483765118274533754641924659356137564972719512605166623733489291436964708582407267990918556749544783410710574572501883675653723981528112474324359761679791271155996957717749625644952560369759893011028260411959345065239581406035416896697415591204502508216489546569559870384322926502819315099667928954171017266617731881279084999628484273087229404579526926558506101565626181018480798156090796684135287723488681761306019380123385182698421705105597524387691309762505116664549107305175894175032700236256985026325375440708131190481037756024620961978429834036788857237905025164396413072477459240240121864624269443908518259208893663049619188407729385415839079214073284813313614933844038732404896781611560569267501466573285765526472088452993708412521453436206793861066156378591475824284530108133137760658527866865254896449626629860558598131566381507519680368184609934487455213930410858112946775811461518735822297745501265563165127180752466105780895899929960972625903538774540236883284200009071105754432641663757204401023989468525187134196666639480637490653021999839108253436676674307745285429457090477373995186280333439713101713060738605227636683142430183273924655728221611764823943674204532982184570139357056096471645951782986752453163387640034413225287460016759313003123426816771178724350077527448276429125667169530106555284042394115997825366853468355033482228633221476146913598712899005841553380051759926674314643217789469818967651337240333422868673427277763831325242554763654152219013239355604446721769518745493101558370009179015057427604775621448984198418523876541280638345116181360404538791814676507567045086101039167461081981648515537369340759115752215630068906882983654161240676161914012798018372974897591201730123735886834638110539549795672497022358913662654983099746059172453312304537070203757673523400843551342400412577920481282412521466879172484945285172404907751296839771143705738372877501360471808951423480864134828054880538923835617777913833655431151992577647964869935967515828705490412809636749394497938545189185130449356716329302759294397725697848450655244673310734324812527450203518410285009227175205747736177464986560125996251887001505472275591142774504022822989985604017626188177696670700472315513973343391597354642316228574608392041421767172762984662279155702465676365377044798883554685009874989584699299213617864008929516763588010800612997602478185756645815167480397869835991300713879616841720532480484872501609727451272083339100090745729873312389111603334613822491261597280966336914987586406067394470418986019436686888487747685605595469786720821727568429339316575222095677918243363592976937503507257716849517642490761418426834858425732525925174755692215053284444913348843063435988039194231132554417376753511777140818423215940724657854299423508727633487822405246140163471428190396492947487463536881841536810210374444844049484368215455298122602709578550717627026115520693360341196954282435811897540575635265110724186803328492510492099455627136206005426873973368251304343854851142646244859404988291965485456507415888648162148267143134739527708421146383031551639808604749981799220317816563982189415385648263206520241701314966742887871440789440689064877437295792931240966194765317370503573290983955969412785901864960641389245470172982055533460963470108405201973312412776838083365291055280178308760886917384519849041953541682436776307270806821632949332750586087020268590595001517803877226443896982631442795160573918551560876539494707304225260190712407369376587313868024618937830625281859975741158093835585407010235672067839333980091660147196035074544927407585552929145765357059586589732980039835256063595887992187241171939922758133149690612973441474617002824857012610425592671572098885564041007132499901017042431801991471635679950682719434119090910622621291090919606374175028035695719588345528391983671014402587667054308933069827324869001737749386556938624171431956048748680395329952974282966356432936939797856091571037015421252021579190266830005206725033940139854413563415759601651011270755834587124786857921116275884578354775599082469989449222815039910598424569551762142860670433009341508421402044447188154354997905391757659755548103554238133493570833793203751212905645701709343613627172860642846883738674959391869162205574673144946272333479744786089391764773959031382215030233078518022524855949422337069406606983803768939085254765391123041048204576520065215534839266074217176728349584516936471811248646687997255895296032828917330169803327016013751234070457733837490614052244787722563649367756238214456515593649142295683102114801551211067285654238713870753495881407426652758209361371392244162847427937897991283193558979940624136039615204205412774467667359717558997408203487228154041468482942803105131640683399986307620746467333830917885208441748308987633076873491666215867292350690715331720400629480232438653994089036966744164253729680697817321205447254406204215087924541879875160340078994548996394035730494603984982464870041375342808680889785979126830415193689555246497955519327225371042285376832214389517724352076329510848385865287932422069680217583626752505395661074384103178714953974506561060754728608644084292611913859989639972464115250115160180638192071918099263542678826474337786509681755936896491966968088682474104552184263547939205961139216496715133967078874187932063242713665023627712970104151780576230401241469318348376905148592137296076380038394503254253952895675832109665102694406511001010718715456651340144995251881028910720467680030103205479882706105069049413726368737886615222294365216609020751029681153202017485090516241529708582840028127958591140298302727782604356340737795943082846046589190391417039523553289962661256113475856868477951529801205252744141180980234743795843200504902311832081202684878064167961525895880973331944241402737071779345613152678846784128984061545361828497286769167061910290165671615199604964953878123828444190032077923543291964360026603357332395222166593796057742099511502210552898071493413896556652164820007144427495178923439753154027795605661800218889340629095960967694135484848046206398494540099315033985683035604825834895199713741373936662580098539661776077266912586380017382832825469875979666675610550456340282172127222632295610544496562584013695308165929356955501484607201673518594834211575436406114973575251316861536155112444432906564302462269251448213367091742240596465040821691669855523783416751454510571384945097658805166567437092842388698952306025195985294495625497965037990921636365241392240776171014287595022123989940226749409706993489268643194771103654619713781126549015475228599620188153326464916750863196232012512961525125474319779014758554121502704068066581910135789573555182062892010111827555034586859700636626297611877488807885293015655616251663634742742975952078313216038589392874277135297308564117438459501450855215492641269098679584174340863720950986764848628520702916477327478861887046896605354869382162484213276742779517853006485053150786070290038266308598651896710506735841134512953139566522717987953846589182655413594473395072114675813249809464237535153278980927054318575742027021396429313902622304710766595947335265096918103880405487815861210076932354994206185805840217085204942661392822178745246734240964878677362531794536397685627981846679865810124214548784993800155425060864074087148607709501149494819455333659587486048333520997570216264218219876403821000875915662579842798790788360365969415446352595343656679868310830233224839039314030632267215562121901891141387487482711313127241294468085368537910559367767564354231616729121489052615154168001145871245387318336982659128315832027369440437795654421787143390093692817218811299224274697221227999072651143502582593825159230942506509990014810483200529428864488876233094536613690468171174301381813193946340598645806463630685500184395353941939034747492914156811822732701191440692448050646606194464344015399390034539281794274890924313687247543969321139481896702198806359619098461018555490514955071859476026363809048910273377419955546203994944495034316520713268764994990184647873372199418207498838650596019070009082310603902789191804462039247633176078116932577521634938150978861065161515898822274472588851938855686244780277488415044549136077413918281544659438330895130128986581615580379397117916690928211315567565728568723199858403691176535124934271949541284540316917530238544168945953325240707711152958435285800878196124846950438690273378259428981330258513540400330556407470289511516921176802645462360724315093775576406802920579121075730784842014264901406384285848171974494247177260312213607966783249871958003119148310905362921133759931758626988798994050355473784823175713100277076151704636259320826137720623751410244768903567247724689261683133528480521130720775048028282532048319934151640024840359533702196524728863319710671893181449561666888855002830772564285172729913301447453084029148350478103373178882653143596533408978377539846059083508784709046745115214834059329256563110806466638184990349830457945023170432224094755083243221922000252854713548870722048598682924583325776048619109346856534178581434752258054318910711257626063696419159671532874508349134372020065742698664979535000591427148344449102135626163546388156694299228749643128154095604248011380653509637316540019933006475961999859718419559966053033337708440866835411843061192076351183199436259116333401621728324532797870457924169953821517932528158971851407760084514765140274355771170357906125926318349118518611379477196066349963029385513445675470907648412633631628265878314302457041973349722837117994056763897336120268279808778416226422702808064613043658385363418528642848488705968875353509084439601323610216074923357412400790179236359808886299548627169094169207473063327657389731990786383305454543198144695209010662402555368584577673599769732182875521321847195296161684888998173203168443677466051767884557193387145715712618353403659051815033449474218051974594245781893457729190258558854667869293783182812800669420288745198442618789664033732218603677102499822083964469234275334128351200776157689491216029913781727857246723043008508893849447719646496838146490136725532223195174438790903296819918305409524122908447078192393243444642299240304692278392316614573106417554787244943466609528663683939084598194150026875331698544542300051964169738857621063368814323185410185898191352785307739298501295498168083629730399600007972872784259465266410683528030284799293369390090471747608864550277800710960242597220585385130973269800007446889407564477993837242772721768464590123456190720988694366984431976859974525004099654880421868484355475872436346533541342016133599119963529415117110379931543239900201779121466270343843951408359281159516378172702637100613817169687048317067754699450024980484061002609003041398188801493394937052744036505857685717350411788720273980804598840562866032258709745689857420694011784791257486160382055626625061613183210312245683801859757583508715176625418739834743178005976216238187689019274673374300745196198134981420358289136724348170983287782424479565844279447394622395677942734258764347031286252359573585662296314022307602011593182145191358575780576968480941912037795509601131799091176161527938671911478241602127799565641795136499834897213525676727482139833321259679789909458730708896122945412114139863652127719603717500727404934796147239997722460056055493079222127946938093006208304396034032119627699279905257075256062357087022768443026093953806088728073047445896679816929437099085076057939261995304913107156809374057326045602290269559649326894956316154204611098158296061046425238689010559148683555406864391612525429872724086637523556888333608712415005307218635948570753317118891792781232599670927737434400747573232885436176591557082206883409897261473745321585073067115488467466829726799023019696092838919418917763338533427055000499726117074646838069118901265859281563438498597351368193553911721685874560939852333792209283411415792427141765831897564792790836323242181400934321946677123702103581590607457495282679015713858738822969689088206056701166360617832459816844577494160032617066560165509297247873848727474668874532012863406211969444431005545316207766999599198122443698668890681027580064840535068447954767577080047257603981174731068256934743375487459217364672581984397808563642000574362165334599444706926440749294722614683720400075022752966735943908402828357978557185432044884322498639140011450617715094753651916493762012190443783176547078328103569644239433348796376053539214562727666467212188832753717526284934526425014224183763182319260772161350699668541426720537625365019800175769608225177336182839680798975316602924937630827009346622139492012140886859550759339733130123849931919714843717338817422862589580909782692326693599617878665190417315544083088238082808252754881760599997620483946376874987441163750867451697663380630876689607264563448451995836060104584804250089665566336936145606822356836968790858644733125335122887861121671391230287871030382179086180844165943297360694746535862294079759746732108705264213557781804675588892295850105456485458628684678738979986552124480308970706575972126871708770988521343915073964425533422365631533454214225960391949538661032187917192294787132883981586239643895513010163796340166420223788137970886486290981629615902140748948444458783563985317225729692208169970810680496030097205341983520284548399075398127384975555500797082485143659694638681975438392837342055661902865435758302544700263709800216893543986046130242809067596960170679859911727869625546575056371496643216993675096698123637946713875608599295608721538562072954085576673397189974008515763722047447419530571353077752599224031314009598835359555299575215304868009357459042832858315026661761812345855797246276199242583780272882373119864765095968668296472266375317400414128114038912242999137154213198125543072396402172075082254123715256957211617271152149303472081663319796749658915681266507267638825360533063484907144319182821383870955559724591275333269718820516318699923683297831119301057594368471420578864713827640096931397673253044723299635223288868829549021032463882354698723386223691370790046662527976032794138199310692072920298476625460090752986517252178763651824952611373682783382744880525918228008988521193605483060230086459923818384302902054287215562336184310616893917546191581589800833425894355161814067586322296934324536609970118838473490598327841407617098650305315831589724260482957466126211879728963175307308402718052618882426991140056305763755910149803322229446194988970066550464856778971536804288696318257831359169884359049685268594789597671857243557397236761299323632157165472282293130092968467771087032045439798873125090565893694009499438619621914964880634455153348339724577664629496362854412604263608711730496188430653906058244797201149244647404657172723204828311446248537853633954690122690186897853585594571435750322248596207393973114410918199528703956753539017900239934847823005824543556136322365087712945756091855343741908141236591791642489825968148433536581278212521890772102957284560894885508102869610434427382396334633451104456470841651940436628346711277839601295288617810681692896384573252212920561998929881689753231718593482652146819228900098353984656801733205882653116992000264915052168824647666476641381615714655414233446713739303450372126502227154855858928685205920206017279900882158722641393799412891747358318016229379869250805988619156100267012487787107126719248647383657390838519703682687812968114986697183571677413629092029942140261572818249969864382894359302425606389377451417810217515171736593346581640670760699537659393158305747943867679819724324334172695258863872382764346311555656196535333695356521215546272111014058067254233376382522142207239022916059711515759746069009899129860939254176169490759149166606969943267509523415205209637548954778315948960381504550066729576229609832999713372312154849894729924370939524518882944168719468053105019786328818211588223872187097544467586122059120766162877889595082837993602449649184480338475656721662054048573379131047942121263030605989618719374380265538435036120888032363622377490459405743474795861453963685370631103102635827578282097005560969228369964322205282061518950188470426150495556171853350709566767493938771762544813840505608114879713801848575507539375568616614115667828611362018284080305425902689060209356365502826549042077619750529168059193390096520595175389260397504254136559166661959159302676608211447426366416495885819974196739145192360102557048258666233687304240822986945466553127843740953077009109265928931027656391158939000633331276162570096535205090710136794085353788848712929294849729182075567954546839518804475005749104934040473240889042938733551058497684724280966795662714162317389477747770226288861359141322125097632518577763021666246615690608215138355844422924838161204648733291329697486042596804722498150799955443972665395277886488679569342538153138510204558405052786052210436222691608091551322839527476072199719722312993589239248241906274498709235810241650712481849508659364933937960645270522708845616162755902864933240552603888731995561023927238456091871725160036283763434079117529186250442077418002704317236612577546791421540265933976301287210024535231565557718561438383492408660004629827641321363664231445833226947244520141279945302220133240213175965885248916256114237791397277565347483730866274101539718161299571019612292846824166815333871850055387433424520165209374294420890478822519900160707299032982968365302556515674260039251133494211881581540864275507026407246280586601408987083201595207935163966313095688919843798654343069095031400394556279897029870439588616701631798774834906356959779846795200762714142431291811168277192822376714440562557786634114732983673456766277631939160890689017166612452063065265885506995455938736082417893698170487239223383401981638126800961639036275431129340463376923872866539833050362861637072431952645123195653283310428095738099666066072527528597654659480842484224886415298084967921885104411639537559314666635112034677033271163019872151075171182611422984394471855584526632707507688498597718738091470863673652477244816950876726026020140571364047537546869396063355919569538334673527508126613571419574078505277818166590854910597460378587785250189383157120387793410829649861445181677204720170488713284310335527196794429904189974471975874040928139606691663939980076511812102645686474622248253426542197746744390138184523953104462602055494532687134967135042843294428470708096180338188854815676947404458995972057317717432402116672882675031441194498957341078880591009125144220705811548804791757273742273437763554131913067820825100779538093657230031341919829029174361482921704626447912443653062513370442247588709980844486461875027452142855458097951160779023335990305031034207279736063651204024213103295577153672668771658975801205175124805639838197813336118084802143080000873738225850439948846719203540736377016328003605019182100486448720571489067243672698043992341183649210140122362336590060519086066354088209759844999763296707018942692101719732891368424127180519459698665861026090645558904454110855228595534693027700727198234206428437158599278200788864595135961860737833772813509311270490696207836296485759195670279019419489813663099060705401159471597207299067148900241381104840113109648427349442747410253186674295032834345968202765517834622306107399654779293331228379372701352505423757539078833709759620675135417827886078505152679365662129988154801289557896408314289750349850482121983837729757144557781181871302978177066571407790975514593722517566562284329116381304368138249416276844184560579939047964476943877232166444000506199675165766245320613514814689348909866842676682479493752639806967528846633067369163908933852611917153600140736793655953039640695318957388203221553381559463991632442153697075761187689635510833003231760332582984920826953560998754236298316764350116020905902558100329164372324594268836044033768941781190568805109381536780032560804864440340279861773702792900659923233061164599619541078678156414893688064630585800259908768655692221315955674398134455031037754111493413895247374480092445318329398785917350722931097330258701807771026669324342321177319409683782872971906657775637175625121137123081897632351886812375705863295200489798598929845118317427391012711541510467113055353950070872352727446796010545238534078245394432645185574795017341780511646813130761521097194254908375299432318584340537633420883895130002350381872860335744502969048242684592450521523109289469108644106161182722018522197899941570648729769696488877134949022291020447648803987745352189817906677574418109241268517398585959622281429041503559318949953879189008912713026007082351723226122438884981840920005987384022583561523366049938602647368496931099986995087163797042223382643152074375848489560365368483956731184120930775099493802743994190121499384786205980026565063819076027921264445986285017608497625747549253418778311335537266681776820182220348788497549341923257931495067284122149868688163215404408106360148738062288486963511300280675244284049198717183322474176736586480914965925063924501056149978288877144654360843160348888271383569313990632124251172581965384842598324118463697728535041685656105859624940395039587063392886008318431965562404713497608904698564312650852108074048039349132525923946487695719447071126598082436299458897551553482765840543048231939550873461944811330456127688336079481568146210136660756004558784145755923097240086702401612479245832093477865128328810812616942509653668265260038058523211475963105116788648727005103017516386885769034798922851985721404434204803017224595437665552404921853313518522205445563436408289855543901964872174267203300386314918092175682988316506071435613941848448403094293016563286471494419093943034577898074815610854421244495991794221820089319137453900823739512109795113625086785011248544453280422533407625367562051297416080741206211487788676587175088727560876233767535231750482667186634654516323766634639278591808051589029890835583419716263806235360008502742382750298276201603234874900378318320210705280335556425578866497842528005391930838500116532734553128890165926534305271675128425546632107659458471912257450443954852438130650640741243033746525882288560752341508935764539628204314291185531361469740583860748392361484199790610074847500883394870996546139452470846364110216447309817466409715936240481542318769023405751690075221714703120270637555060202440565144350981826288596604397685478815395359647328163174440139267468813851320335616060373821643396210057566826109379605022767393919845973165995752057442321169135563218343789744689095642276603050611375547326984012165699432761230207529688835081673692272468042801229128705394020556014474029124386863007091203617853158150615824966677009508398281380797927539785286740346029807633494360601478878029773915746916396675496983093363527290884420795222616075109041036607750230950217904895840831398766338304935127650155902511555528643954579395262382722211002530763734516323356948675261805054562236715868659801373145552515276113672479174219681727123847175837997852572106561835427414125363472419354668669617953218376690477984511019473154352330693856422876338219618093034076364725826612589668795753177237743230605899092786973031336312556068448783296467225191799061064691456414396672855850345466035798189708162568099361606625674163018886067607640074993917379715261692549851557626225526540847469724829194869157779351749835483890745162651876256447812120716861708083287767365866603161568404263769946343018963545947236010868401032893707887057864610551481455491808165775226862734681597463062829382349458153530521150265027403458332955357511033416745025277235850536731320340847458994039113380660598188552563779610782171972424350413105908265742269463441830292176839331226394814431651791941288574548993996128538978425447319050422060036344390258807768660626474769615724645107232757454105295014719506011774721261313137839824121025478212178391142162359932087572153966204328957257521108846287231033301101182374225094442578643257790142230149479382628196570418007141352529817023801651153126449523670435904577804926341415993709970112479719904737389954908154988413716179293048968272273147740609401086330455362395966231390696412293278950343801008739159629422528628212504440476264289286998702463684295743475347102397096107432949563571086060882454997452270436545808298121447186776723688069681072609307827841163106372101227225433425705787337659148753543920818901161303383814090009381357920766785485339552682246446280065874537029336845570889964022803187483769889885873586761759318904543123888497057533608206857148987436779051328588897910473398483699031183079703705637979419695348763080974454572840934175851728523329041330198422002079226780866987758337857026462135647020330886924653149386204835934264803752820719340743816702882823119727122154076904056483213159729193085871547054926791204115333226230110850313564642160388848272981043684409263660499331524395156820103950737691972426471002464186858915354449608070712836012217052491841970095555497770977066734507144851214152541721905857492173555261441826100564400884473884391438074760665589431192370188534023824207527749077034153222020188708846973289842633596117421736993518154254330210998373707181379449193614834734850174889772565756763904683690674768338344816271119637358772494754696455072415054424661699408774801170644145670528755105665405413471608372917268573389574908394005190295721770962632192744974811213761049618705314067249029598621014422426741827179928150894609219076579044842168441632953588906820976421816930358194133886249359168232483113075197096492503508046623949705364237137643989220780992575459138677874207505986611635248172757318706613818189228091555891521268664321073894561707625024965040559933090749072644699031073820923567935752652693129585327713031515844386081586016136000526793023514336128727929475382790432368974806417630313698945812270770075734770294928001138656017796941869346189865064380914932036014522837718840190594792563062535546208929811191638456297384416130418008228061435489839334706682966328944371770544317619229366722350510817212133392058922611843192239803322304057558875979884478049718794260704710112821203580061980190876875373372896210060097066180793190686890606434452215590251489791707215698487575848165653939392140494354660624311848882575250205834837449467498950839551668392419353930957370532197251595593061164256572926868275290828531708890253667904599452200042936013001731307413433018680630014197738585102311857921533253697706989172417907633413786821617061189044743334206942774292664477955038464519080226696952605983084324835967033236576952198933259488787831327692973185889655908465010062178641229248696469916100902187956789571734841974871889430574091180224500996493251750112243281658297424803863281643743188790134475201818388737831996735793878025663965669446494995428925477606789120799596889685459733852900508908784952777152454365823991486199916231811934856522683116814789874067496870749876941220037926764172262720285215815332481752388396699863461998539882689207130572917037984787286403682286772816943063977952764570386572445369525593937567991567971760121307549816622030876386965601800674895023956798399361651309990403142862854401803826299231880205528013845980523080720612177646166294248259293786058136219564784764602400677065879418076852388342496243230442053517994060436147859906009016520580429345852999738514702745706341523291399464407365450166149203957363062895972866572046706294579999619063234475200522904078222737883880917021743506990603146577197028361935201267886003819369421725544584600242969260785367397332242446842946105404460115832612908548601063927570547277225275499831205590865773132734222735073505838322205621014772037239812896287608361426471117293296068056768579544141602128373968925579826423272093427544204485818663674955306406911095372033083772244872906200490505086046814902160688170625489881556855545187719705154835105804762141501013978392359072687288600507923799569955585387049545446759302797773303917133765167251668082188408657663913547679329851774898108252462224257241903708917318642034660304389769776170689739769207952813226971715584671743846745591370081321869461162477460085147734437539176818569554641483142864009299752586377964491033497788756699346267276128212462496182978221013062024775437035653048879122460568606331354365127075081410041153274213009984966328366227892599499813558085750784332564740172564224018740324581584169406674373268833845498657167176474695818223651717094996358702687789382134309435162352018989922270660021087642269332967465316726725045815851986177334378234274195431194549248714020998998126748016696947822222348741712117009762823009177024758121608980327726259879191731056669413980083069616004584994579744517323970603954565016629396727149013932294213404070636191998823610770925767886402136541689649629902527463350668918929458916493670355771933759102211904576156755148782778300067845231604965275250243969880943574273821028451916328689569677472574960314222227965371190820415085340779632280906279015550603285832907808506074073344572186887111935052998132713206527190792958005007283970519095213363450704095142065852381075356646164308823766461861127958768361309101936238981112945190737269716450425231571500951762505024362917217213020299486585256674334049740890333398072135228926726048156742254198518315426487509014198414234010519924855494027114677263038558270712111620544806403902915256755301214805952634574329824628410553495217231907131581666302693931838557332516990527695189103561176563463559035647352939789640036252734968065527612186563795706386800308340157630159426881715598903152557441729899661834670980014126011037908597462320458087232712160335158870465827051102556991973355702626950034239256861348791657632337758118988667774546594932243955890961718993616229108412228324960718140010748669232142538702971567737508112603788446969696720837165607213351749983864609776834774890550302625752752429578042369686985818082944677304381789228654412743520343508141222821814298974177455561238196632177792140428768596603814935787411895163787079351930529448561532858954111992973616799525937663041128547204974283942079314333192631277231659748476711387907892019234874940749877865692353192551033557528327775443860906841265593964472301353882992952397616715399902894687970126218344770710960702412371566032471676302492450270325479655383580920437365398359068298985086761678275430949568657130877456079535088796503337854066173099538253136498046475784205666300663701727706486783020724903418706438556552600497085280301155568528108893281486836890184919286815266311644133319242603660612143322354193869108899910868166219174794828395113307307620594175853916672336672646353339681697206231667038203857691230741487886645811140481653812397630396814578758689902520461845843859099748801999041943659595964926639203171570723268823293637302824595249845232826712031074075429876613260202376171296636083380064773895181772413505375867395767685506706626766300464242127428564345009201848602541419429929176104239535724991054715183001511335984870584889027665837601599978845548640105637795020319995840603258491669197287916435407236870716221720451462832704598138969928022745066877012120744817152617225965424134227199565337204084347533921277713471836911847371787689730048877473202574845220810880831506831225890225061821430986419229959834500579960527132833872491237551528762435635516894920977963914979886917902260820851841646512899787869281701646531755765140756919230005134009566783088223348480856867712761163331067670588907504887430820186983731356722560794344561590402451504224488408383788156243460599403590749018298952813948038398788057099436814557224239960913942442354865884607486700375016725850031838025355248491053001814857337959294034845312885433565947122625285103471555101130037419218227040331780099934901079617437400272045048573049487939639925106871589489960027945858079223904134526085650258742693651504634446681090175618658352469011802932695197838958612077483135117256108626460573410489342469138313398909734517341595661870813432156518823724819246641849684597922676690682290398295220453138569991658486271078035388940512769627081732480442644240040712996403140438516312479753425891065834853818389769891515622046408429662419009635673194845891742567675690459614251082454215569386992264825390433089758484074447675617539703063402218502744289415598559957359758171713993071341844198570645632698370891380563025155042015444611907328968490849229136442568862375983371683406318131608960227510381167407687649855153428197080651439290745613953251205268501177455251701931233784643346215080302450484133416275839189435501883247095015101448639846583118557588410632328476046394340630306951292472976066473149440856976822782284508096379079498387868430449670473342009740539799428163166081028656786070083929855563082789309589851842732911758599573180190249035950169586999973191092725905758492691891089407337634517108689516910810559357493496991876075692501286139383332215398978915058134258787978598823307728453857607448935223666054744661552852235421301244145259529993312529994759858769318758545290895948537394599901688900468594013689908127843452168451063545791335418943960082267195509867393153789598864533031057015218633856651072124077564771891562160688828660588746405894638450740867443296670018712229369124198194348245697561476201913243674600497641924521457770915340153040909798808436350221455473537199969134705454092544949686820337201271504186730293358808936526366538235532305299376470419377941103020304473676602941119593889398441320992329067510665213139151082850642392160764627555394601301220025947539342257909611458150320496144086498377269346331475889162230975658282848695795167062337704911620330826921967475132767468403977781685500912483642511499308969662192245212137036703094923751910704527888527598207508039008387543442250486794519843950428758585680634985286218292929515279519880210338272480121263584272144106451262928393163941292473491708562927918744841687059231099427701417233157325681220016022332209798283180389595920097699597009522223442446379631211817874310983916989794764052455118658147576941629579791025147104055353959404544797565028960941527157790204664239896659365804457686045391669445057666506289206320726634404905732280067058377413281466673752730830576049465049268872367579407707827490098984254498061449026834020731234725499995212228977619279157836104920556718458977384922007420456083028525665085838725642933287518584023470891076876558465994853848899262957090935611041673065643915256840101057635398432512499937464975259525819015617816488660832729055166589981309888085325627206542065026335989043992284422299354310962523952404683208823666248301681420945530563587703567600386776417852079930809681972656394635892708435959608102993969937555930820613972315689153597824377163288182880754212225023875621441763543544342493005398528881118302295054108057921292214390944817833432098003969459581473690813005397155876239444052871964733099030322940605334630262395802737553362565173649835934178604062059449422936081407979618714890082608230936675759119095527135918912441137799222277369869294572280034632185091244215264289951084593497689774471050103108199750443530159498201640549401867518553507892944547533985239265152682397432129409700591914103165891188988638113972700867947741391265734553083880839209685288148924163414463478432638145373312495417823300548103295235851272735416868504557689092424823461453988252686821618328061186373933569102095256336874750278653598625344665594870824875369061133423733229239800211527600232639668330562158849648813289593308539591035857614368217508828903002130702100820478792985156209960842353577604945086259888114585397487232391439425994772525252202867638721737405501028664111115458018071073919610636508519135368313780757214731400265570373509344488722399418108157801582251126151498334220023928812073890163779535590304822095800175167331032106754145684619578618515114847165299380444082859961385706307924441293388200108088027284108252389011791976588657432818238367463149458615317271771152998743119004030744200535367887665414857427428834542156878857488187331538833713775719601496182895196055669296621243663362042678085383447151197354722670889472436467308613940872557552975175239505388973320761812636793409695038646789976322385932385720709457582395789171937863984264783351338202083451399034176882126950702736157122155246423555034868311555200877135862722089308954127368523653373485559239793770397703683477902532436886533369323860840492674217266527731394467582311073381432720823203717981542764609561055589518670264845457711326211656629714440725047772942541765424639479390192137137556786841197372854714268266166513659915103986831591875881993574309641007509989303067789630701516386192328567270002427550767795797688516070880330832884434436833777332784082127990394118355727321742965871587219100189863924620694130897419168574042141003381198718540219420225947887709761922533824499889153088734475897147602313828473221178792536640178402864416250485470779270837565378217745200454183703191262434921462850014645003985626943780715235722013746110433753007586214738041695753968331844413378611593487850961557600705542351279947284225772679027499065739728406007351900748407709925991122676175042053103304452932766322140942128377590702507996342828808923679002125435892077278184595122016697705085474251855785268166633073632316509179220711973030933401606228189509788076553061928235528227801696824805203996898081026298934555389909746094655754973849529547800048450738779477977285351110046952290571349517818186607593846695478526809319557138561165651572072703339612007033756459009166259985854297769811392217192854105324906390906119774471163074555214720039845527301136470503894410541556569928012194326115830615719627523767631917673290809367814593322718982968697846323044607481308317162730828595007759559666707135439170061021085971331295066246527514078914361187972594064942099746847786421709167437481613633075607044669405565311136559396643921124979930110543062187985127263228882311241137544510865376720185859435840577917235190251647842359762436790513732442559125191664672492817640491865147247200828657501199795438441590479131779234382027772935002408029334811587586098409695764022318873055818370755056806210811987127423430465240772416323488514750451879909901947369736790585256270900207453256275970495550541011292914623005248691240665977051357760377541589777938757784650162654702547273906425447907711753200928057091518426202555601152677582133929503202143628678989430719551943289188340622895907068750538191299999099973494989830869014783267503417731351273518457125205646480723852339888361398297881825853847239606919003184220806083495261291975793417468441924540431213649243235094905138724553136591810137480579548756823914162593762206324600148180834603107870938960694969674043939752646215098351414206169202150529066281439146527860091968834301242226699211607629953814586149550269110799598841658190473139577346209904585303422414698615236179431199133093750008450078885312466914849042187816576457826476850661306544743512523674708994655278180495933527135888396899090404646042987253131831028951646005189857942283698744845404031634337768932306040935834350071234160166927511861895196683877898533561746218357015076641419754437680734313278354561224109311552378640460594104129187015678969868060889455781644663712191371594896520281201702169529545766660159417864833541164021690445017578999021469928248239680909403063226689822225402206544422456713053089727483364979797888814261876020262433976971820070829447150439854270727271872861441287883885255192915654161452590730763486930591175890574754903689571318040047046715561984618636461194352627329367788387024362503679098700793692346832756778379943251741894611930405164371143174115362942243128150457439127004306418714208605765541920991397110019560896191890101271318084999460810943319808615323084832180465695016879734398626544404245499574692688017648993657327152545058593383232742865947352775017514554963722876209786673888812092324154852611855154653195759359657139422170248617083752120687798942532736877625940001865918115585659475921736293494449615264699883646638052581937957192573787617609636565749019343710736590651944108277043287009352692987037858460636893337350675523737690623956670365368997618178586219898220436265778062387038556463512537032115831579505954400844759494703579349507694299624677730811924984866344849854891189188750256779340761109634656708823111802769013022161749405374347489282426006421163639600023701612529690540829537016497269964583569858886615876194947933688740746169911458852286230459404646773570803846734611891128935305826373595328167497380244661386293840049841627402852034072328182240824632657301265110896003731158544497519520608316438046023872630838064354155071277858657009634861766004066808577305209726447784379575717802842123060003471546646416565855180571601800006218662515129919418995213909397130472287176109983491680405830530014231912573709854315000003097051906219370944909356917330611192319565051417047747642263879135063658093255360953369643339207816494885744502379404671507473533267409695491061480198803571286374377839425912306156423543673006904272611755174617745015951168460747219979719762306111776146362104394267071490840162331111713437045035464590775786331488819310900276126853165853715642915502006178537537874052541099828624233619405702901304032710985323792264790219412908346919344635102316017077852717858948375505296648164930637176384107818776995610262606855758986815946725549248391001886631025211651291352549401943082313726626476636771745403158814959440989044209460041125006943324592569700988751839485026842076906238043580446693996031113606027877434797992136885747086490436930786701855828436419294621805495113656121901739611377210974563334736843733059188227700403730767046619876012494757348365342182150569579957095802201458984202671109940556723319886775939779480228829605708339267263434266170138040839005542074795387684384165993020780563197661858587189983303072094105169070484339609924341044154225952526222516287374137554507236254260077873501423183920157328609403206026570529189687758053502567871966682046255398094485037694455848079237544331188262677548949625274669272970598778427440879828281182971059434011705370132874973991607567431359735092393867303201997007079223700896655294692858686269388918389051597491255835390031085903245351340428384404697571736285461398859629289033852173653222566782694256808390676676654923563280802808634134987337229614091040170801236202951878832086720907377254233821800120926333500026812463575808444199836111556472518334999957082364383016007304361071015922452588421534029804020049636486542503106841506861699629408549648099491285744847052817778420776038076732593169592146354142211079138965414038635136008038041544414354732713713130672726389963940904766133613727129368864055251723968703850004061953599810369792884432314927180009787330495976729820037991221187697047622743557214021034888727517788772620518945208471780971782624549468281472178837106372910275312376309417558265406794564186352546863130971617015765624766503127602271972212357397396099933867622441723928321741121005771927611680698455526927673261930858095091791828629284847229451866759241511642980185834440726765126207817356851180530911201416311468583961559244207237077016875683133075324223095573682756230293255203629577230202113749613810224769893260165339467474123692495482836942032577053950409659216877126695064341030194174226508936700654650587473475773724334018862891954004599984571720098709277402507693888604651634579785391127386846601452313215227587175396872307446691579180839038648520490622241564524285157157366421658905050704260106780672245200501847347574341835909844052261607681564482750092889254565097067662234378871765170887282763577597169332796180796319078277617000421698847634924668144689803978487009840036362353274151954497986158097639481796125544072417247003253629121124823547717307267177688947849809563716611826981989818365701501774262930523382421538173561045555634999222621040419760965476142877278078742126308001158427096848821933607229675728217682378589754840494158754283800070405050763925896347832995890172154192308056814889726753200074510708370667576616111166307569753447394103170444381856331692158637762871290013301691203495057051833060474908001421892341679400812486840638967906736091219079885049873427660008055547952812110808536868992045820647489357494302745671781256853338574498405889015246468233088528618219047426937166720072228228379032025658220417726534116510974782613524792842929425617157752406689990216707812522998745591340854389448725662452996443634583738548030974720517596540609556989107485438432258261750412930576545221929732888857385322133059076481884083915066311261486903925845093888823498970891515496960483812602429712802841197247395900901819227847373993908767194028486990414493476428740449154870081725821454217418837723764289783550742383169358558347626916614008137253253064123789171339601166574177320782827261214013416646603130342049337506051949044126189466226867980142015315876963984991130702329271513660314716051099825589014361712317583584835853276566724170818839913583158283262705633417985007501045352028293293182344054651942868155040067201609439268359018394886992659956671358679810520089867277004764422735589456746800062571568443352588531849762592782537962475892282138320592624423737872671626191415834503345559751696863841943154934432517406616308020888723775147000412201810498082963841612594424854587285309627651961226588334606329496575728683657229795774537189882252470366157383306717051668069285738640687845979078169080166604853553580127902747636096661004068436505627037871757678340260648567983342683459682366689520501076714077138425193805438416601662213938547138853118791808683051374275083222070077718430346338046099064766077065039608621850440862026290631036971024489836328031125839158673167617982471722613207399907078186419864706233609152578739754465010405940347663923097605127417790318949635290503841099825543612964618401941547160654344781113405533032792003022752116092492783105211130992369373571475958334976983418181483174644487799315551264835967465637970047859017741050783018379751498942655616489876536851950973357673834157690121439245828603281577090388953351535940816688640531742457503173620522811187937211077806062280093393111657623916775164872520395967579767062865862342957212208083630281504677199063080014840700545685277396082788297498489143866977717904844205471370830547415229736651206230815454709486558427335092283027392389777135538835856828848116294143544786495677333418930716001914495001078398412808134840308462498213378935873959070770701329273298782290726174394670567023323655459558458486393351586444238134373799525703046814387523208988828977001191695196785959933142814860701880669941844242015733736317547555048513648678757973287908606368944724758143594209700867515193316029583249024184474921556976377115256193476794248256031006048946971405303871821352401032331085562634846231758864624363597175262379853543275428390584111878281687357925512501223187840040517423924426324471161298150259863991103103986563244599340513519324968279453390956031716616962899735198037350573123035503880646778901232111274629097367728000383632151144051772484744068961105097174732017967995626038617794436120701307714279121860537832897739828154145566239046995010539178367923970142998014857064786587551685803033527919867638284334204370095349675259285896250596827130185760836225457699066552374713903864602131055499968603156980818152641272072215312616638318352956976189162809286979894003592764031647225940305249847176420043935898040053469986867230876529457567227796205973857724154298473216314458296255509665484851721050684941835040898039670538914128266468956996478447194984456445890455532744051295470011005079920730060876355264613788422559597548819764994174647427239041537175222885550616953041505434352857065537928034140313982137206255688424643281529100375791529283827578259604581832294563038532365630073896638230440308139970345221012985271863303793620974835067194860549280148345875209845091565580101925958148168453249971211917211767268198605347045771334941437835616425403127947523667753044044174853681016167778205065315433952678806429168978307442610274627779451423979991929532927900078072381013878054737571596821781415729481120711522776495074448764055483468006106990259652755011216086202821463316028342950464744770217803038258655837775105104668542949038589099291980290886714097937878299185740301013731423432269666883936867589033330919532177895279886587486497068387251783503202960547749313126895944872670072690910061708917743862758853653146623489427346155841973063347135893933266485775827752950390550406538879708966975023725334518571006472441387811810304671851317681330782939826286257790974004675907192645279288807785497693201895584389944532327013943906804206218768822620898603979538017133783413221448295937021480403979962482285054940665988462208899097270897237501768331960651777333548603157452339898488743959306660634912132655149895318818222599366265027917388707174245015355161135634409813768971516879298160200471332311590810821983726518565310871662138848191727415893071219384295714143864670983050433388781254088898744913308275761437141035663792273903852693539265582222509036402921194100798047703444121958166663163030320694091815921869517896937163631361497747712211767795022355541623434197310141001289089907283779860086493508510812668872155002750494836313142121400315568794176913551292129794109598742067588648601556174252659198969749429734843834968724882940664278175611501152608922569616529388737106578110509949283425603691088902237650126375759529861995620580744639970023448911276941116943430724338701023948677566682655119492371840037123569411682548396196790812658133663658844842169993999264962632594778563209761782336800312188453858838880560935067185621756241958204495318383733517003544983278823569985475295822747458868595292978251437896886895930727374442266636849402617282175939714060122333323237734799644145868592366641019415245274663842729844050193827101190596323960185789118717096527992569826501578645359435436053035502312921647314097428652673829486227139866101659839528966241010067223528764784104413541534722263630441511105789929800665472017929668212916746651667603257212535898639618699164645532938185813686565342764628901660791508893411007142753968310960074368171300428126009212717054973395740148625650543205830349235360434529660082484468074494996856321816792525459098353366457860809796182577547031004252790325862071727229184923885047942639867420965253310254102826114503822549814847324026270230942039918489609439872936069717081115496447279628822592986139314380530903014275239305349075334517557899170104755192285388271541769306015341507514748902477530227103689143672023338113532458588786979223774193345109213039598034676801921460479760694123291376049425883465955335684340528745980673179475967510682722989304020481113881095347598414815720214129776625698086718565183446057016753881602626411378629184253175314179221545628223231691253091744945971929532168565121844293210124822208101069524141902465584010904110764467854349542021421281280401790813580885232246931614549058249032198510063737939458687778882695646344586459403120370448712714052953331066055936608303970666706727902089332924598177719409667908089756292123154799938187015896277449288026357360394387684512297551552315351996909124003394171103563524321480214857493667280058135291428592857340422091411844749531297166368937438873352906018669860849227846938250243189491988070400078914685312844812584259724044059424726141825419060582557876896660138206146094411691247048821081310877944799546109544869287889596252093337272044893599948368448210319809050085906947407915899573268012705031621969390763618119474335310248988339398384463683618457055737022178068539555479070811234946184962607647705680944028082094439384130065572471596644686050745737274043236289965278112567541613624221542819862141089278586120834192531152873459012672704819797093689244753080920935502974105761087176888434361396184152295054053087930399720133501311871926249222700841506936933658169499317592074739697928565870026519849003143105128698243216478841771742806998861060500833882208687609525670044474522737762097353304333810584524766600991723187838423231598474524930788364637930940359082671547265421384221913411612658139011544992136214415086266934575475218367500558565147125787291603997169108147960817041279622468894353226914603315961016674849814682883425791262100558643890288335641321117051522836871180602107403591028588919012717161397215888244796381329836149463559565954664843922970242952077381072257587470217050132710284016263980261932349972619600402418782837992078075778273208496871970422761303938959933312232261686000026539176175821680932737209391352751983434806568793922494397003407427689515585626536655682849093133824834883669680633044950203940388766802987915159475663018284708992364788595615277753399552280026785684483184565014219479675867750867070277257344004421554608805230237639855371623638880366327793031121510767486035573518221926048891121473814458924965809278832717813188143933674226024304443885699489388204610085178958303439782316365052665825215054159132061418276673245851480871537052370851461995380776516656566503143613822108845692227108503083368569820523933197010866262826990995101410920404224301639880614652245828551859888024093199410460433429294591431724440371604040237514051981183147294406665257707254674921598482360046441876266655522316294999086571558685293866308456334821437504523063810056812263266223934654596129006318792307836361324594185672465888691581769372412081044625851403283484297652965872266891819600114640140566697260012754816764180844312087347010333351817548057238945469993088988917134673352307990940845805526070738464438415621806512622791629644562494440096851416013933351108650538021275975035964144614562697289477087913042736803452887863733395592702472001603772225515164125100789988277575175771397081279067331667930258562079003508746603475953882453785649824208497604229578132554727197709386066959758163891319896557110745775758955099641700972580933780113768648640652346565791944875214935418347095990765468491424192448025639845164532691430159402239477306328126198596430096607465597399799343699579223370015404853078102234042076473225579020291601759315084563487881577854247655691974268217173044651634666389497569544111700082151856125163575249041554470098943724224148583134937143652721491889753935601084628797527100591981647656220771930430007127181942234624512113834301312052129290753330165682953357780969299647952714182217812077585396553934785666422866396924412599014895706345630340991223826430797338061529718437256680705935927518746437665041728788114580745003309821249225381524480445358983277288145073917911766871741104822533380888051091852925596048061682471267273928418348531776599901434697354060281857937663760518513048887003212456547967188545725225319826876261377781770657998717127511369215378390888050376168201711324454784935128096177328084948018215731719366234178777645456770747764902058930299152609970285356576947265044193328491342487207233483277196432256561610750716992334866636080667845943972946764633745397971934248713765518600461045125518849982720968119308353343340205467703317380568895046679597656428942996025648760453839929815651279739765571498063960112778545947862363369056375372337428385946026217453309841980875344328439183416858293026560998617164572447097457990885199617715712398696113166265054224971908852210062293245870460296384988281966160068864276034974337347209371655023188079000658141444697260349148153504013806342963578638538929839601588403726811454660867970528793562950605382712495929140364174837497178946704589890614710147247871212610107657391181410306738572710446095390069967042026506283745358101421702722115279581490545472753379055474373176398138665103747480069162309151149977323479835814868445010320350953032917818355154852119152920239839978052463153166481623337706057086892106724100361539626498632988939565422920786394902335699958360595162623194451747735629859867497834810848325305862210526794928813700067200133267648921168666334501114657038422390270067526346594849907403328431119497381157680312029157631498880239044281898601961525368380394538616952506392790638487682862632009307677721650011070191491332713745076515048161686024655607205700535066158891492077301480942258572025988100008607147215733811049922607822892095864050221326996568592437261921579988484788858028592229348176153863018115320004766764167304459221564406022422747569244236107752333617066674006417786589699116339176096523586623855108184798212152683094026636462535118889950904660567337200918318578360455365409275516628477398349683899012697429637237459053882369860077220653440409210369890493162205211441902563040425967263893697069010166201435057337007070885095960554239144747045371204958604386230480610889193540330287886453551195435809805038301118256296919351904609414742061010679145436984827265800069138535312975198382658380874124622048863995798178290643404270087712296786554659916677677205131195629233667955584136390369526771338804973146867861917037774658884261153212588717573360153870909196064076220082342436466249544450705746722290704503813432520668599227240649358802838066415204308025806941785303550078833589329579543621124962896066625975350991218865830726170596604971896172814603096798939550440543892722970791927693940232372610887602284715880071381460130434078212476054315347804854177610227797931211386661133190016671541718402701699023705709293380690020534393691551343067413892830997973912355464665017341176850201997361538102685935515142421449014932000765511929593441741147240379835948981996240944788738015033409577767325037974110946767279176135170849758148840739619407271856788560771686406968464376212680382071284752818101827095999423358863730497005088441668691160415355114646987041997029654654178055504844680953075621450751033547014892976411895272783586956337170551551851825729527231248626180414985315725493637137823600799725063475301301201894666556830038509812079311700631215472559433745092774474417055630892423064862748491787941496071058261948688344611065784638946312223243919571031871121291026219871305278690690240220538449254735961981961297599148081296376491507705598534209158092415609874395992090038440866871751115433146037172766892569964254386214237129870387939693748800500818914140163581401751877990989823228678232028575583449487850364328208663055338713101060374910100186580549115947525291326550054386871323567413118521943479263381594224980999687247374961165980539946083752878342670771050664410184680021418420761710116580566891096886446282304072091691425208460619494892375287539240219794968142670680439643582860298091345758544548150862894171551560527848253395470241968178424993459257935417719197203646358393847474850603537727181734087113334628948932605257670170961270206278737131881888301865381512808473900565953218173986470380097532031319698560682998158384267678884182697335409854142816692888300341378412111117123193934122629826852960401425224700422409784216756058154697605791203053715804162958131024294936403621398228794662156300774718660321913496558765369141457075884733490005962146517784083026935773694217694044231858852879097000378071099833378137461441112483166382835722488967709415528347613640605819751914138260452867101811549774082908711251948292668907397551731964716205906875131498474129516474810911944780068603387974270448221922437051191585476700920200675577588669309461272869569416209824035333318317446696434265081219735530347384074634361627515124317534152814348317691940936083803119958317910872192787379435058482783468563528327496523321117225505611086169873835268665813817072335320082756942480133677768463039170676118008616661300308104991153131990734724071125111819833069662173798646993695825072566483698389563396222657262316044114105256160473570857917702302218804102523699996004787418344753077396246893084979761680030250443852053357800966526441717366168622544659774187701295961378980253699151977760136103830798856235124396066937649575321371643488352343989703980633566367597898762131057398780132789031922909110394493496628912446556472820305990154484613334537063696259701081085994463272622033535882949248909301006424141062587347827723056774586538905881175240001414339797583282527819888870325861468107733831127580502054033262676292029578752222906929029975023573886687618612639210857392229851068693954956706436612614297434555375479976817267943364778465973958583088702332222921113438616086224956094468185701937621618744708372562132523401488248387850215728076426355763455020589985973730853522361208110521382310720325333993780736432422596414976844477006993628502094796835182338816955774365638426969004921635785476289204813991562585124456481222034828022760816956536710025046466934926843896898078599603199701782817319696946130817958402757519193480333480600104891142450729036385609110578328541420684130666799712526813796328779589058928992697284736441753130123175899905552401725550506340703743915818538720014263224171831957357000168161089899486147178130471882043016413116361425489505177170016368077018816192412449347950645341317990600573130196854231804082078173492652822288942392953158225752893121175431516454337126466260932585604537216738061097089710384451750378166671438758014834235144475390432565414002547989651712705425861041615349842861590003008297357582038625081218931523474985690936201093367005770136272533645258420721836492656311955615658049793854815080022842080774672982461226757943627937374102539491437431580183024786450013075917580465625150635809789664750576358271327090424737146994928658359872878811417593388924772916393324165005346180032137066804610059710317891666665751001343538664552356540238865316469278573309597399996832797909372045094884361287028358575086160077640079242689514311502151898720440806572526107171170672170554191877126787297542441085338223837379723705934153203079587240430590540718439608492430559221344215464608547052312607942478120495557427268907223968110410066038088368758927800261373010658617451111506314743157386960926488566078644329765761100185344316694641599756036599262245210812279746981339227316662543053221466116297037640670886662398000627097819394299244621969422057381939175121617005939989491223890731334622674331708513396515426918396469703068244081216578500827316616083877057352793877718067126168920748313556633370899117685624306457338863896373476738491753444252803625431095694747955834100891798898459604634622472847036358332183996272610778148745735918729587710260222700943144627730183258753174930355329108628117873546400407647431420194775488729540979633530537297790041413890277598205390802890385470041521344875894765342348846850527858527093495115590283592902394532406403985427981233900700154918638065930099727600848959167148702994829971357625559427575432888139224788469414455182521523936993984943527640828674191205646567855717560362090156630966368381046697569869617850253296643140603663170597474032603964682383326988019757351577670113396767720535105691757591640104865493735672718519017557439058064373783876193199756540579421815851185704150704471149652352188461183248894824322770674601426057898871741093006535362998947685182361676485420603114189311532747200861116227280724345241292165535714988440083028235675416974496872564266484309257350499194961449639930994036048580463555052559682553664337729934627105782186113872757548022385237052933931559401020234530116316212571135371036716617865428304216378732508004158688878779878809972305292865175342728243646479889543912913869210674030867264805664464636741159953799638681931987388619170283139781940893819726126848456782471020651703764420044992121216120749685349521219503871880045069778627715669845821314172088417981963097732948924430766406399894727509794428941045932672222576676161685047643639600747967633273355461639630400549113539312088860646181952479911022164895155099769628280955495436954065467157330858892395589131321229241027124929717511531207537904078901291899609309098319224772904832840023559474324075419430530297403750032591629874703852751007999069462426141128716370386040749182594218319691012540298238716669200365848856058994024720681012836724925861026388542201491505326566785923426012967129591450127216543518537120155135506796820451436489011791856338300645822203201569339175890731062298350459845336133629179933596810569385597436448097321644084836208686233562576601868158674739880846207057289439491401630419459537676008504799940923955845889148757734256284802517189646045396736516801742617129411218617243458552531545013280697387906959475961188683945972750571123580817305972394138017410397843015737945328494899075255143080100042156174408903903923573912057347176381991947891171180434016794660460923970095451900630798506599978811664930692315899452822903031679762112991120543988976250318327204016865684863369855698486707270024149939655014293684197043839511760400089915000030976686428693477961674369586162548932777937023478528179471674954625685511461849695872024285693075740200987561937458071522697625897833047260558268349441051610889910139150022285718316797709038939975915040087858546297212001394638082764525261510043201425114968644968554180749353902698461007787012958974794647087532319663348591712225314193063044593014415245225704693544382293879908755975177492247952308848988209818821660918769033812014318695362895730800127305291540559401804872534432980778648927225187984975268655864675445565367359956793316021480151626815245118835038660512134195126995852200890383137194785970346500913359335417346090300448474294626870448180411586350422019084372126926696410807385916345648874600476913811983087611704927703785557614237671338442465040465104733057380437031330268590960462610074268261954074554201890275475142613095544821548803224515221809192287942831996807852600017438348731767811085999672149692202188905773875905192247099718727213658764537297873792444734599697084655513357159400100320306221078152498207848093348583837676680300120433670074210148971751241716485216373874254895533188657454914902244723436524056631189926318167390087783452444995874884513788061414321487812310514842983444950019339453397199666811235449008577631111449087581962552180340958989309056639854993225657730769129699262385546785248074226728682525508867375953436492720944501081197540539578312954584844857394706061433487599366523881546442464987689210554295747483351354856854434214022456601239470573577734186463207110770800864120416114647344371253925589202879242545773096966193690686066611252603139628462816859479316809586479580402459379752110337786788581976480464245301224374626986177652660592733130580704404233176780721562701487298066011445999288907600375978954129092551190807594824486098760955354144914830812743700015942495919660693382451132178184703132337147059374856610062900459625832585335949583792289718283479307786897745298746405306598398619042492963270128322539784064308496369162197430780476332921394103167546013718281744217372247740831226023490020868488576001370491645744710915058322637626785524696904484934265316379179650566192586719768176904578214964748784100332408839404148444820008619265484156592717527967129707976087021747803674333931097098450523274288143458582198082232921747227393667834536250505189103523877028045500676162681165067419684787930011580678394251814399366043217329779596975132269004124332204226950004307215450723857871413933788326103213913829484426439363822226259094524071570458121173154949481538281568742170662420386254420524081274822055150346091595975339830635549126755188975869291402123451604596533892951801672590819710978695729250565804101017694649695203139469645645401504374269612485921401164377077073156293061347766870829904084961077622322261387791487383454880799056850216668404789841342436147261530242013227777611286179861850677221903740239602938023327128529402541295731080254643930150003021069098674463780571366313613416461113354118249100480978761368662718418129947109633711233390745933964674335010981949146001881332498551051752130960856173775660310849001338825086925400349775960605207165619047457161270798484573608549794789654138570963857319516532010942895109752575639005689858851742023623994456238065447499761001384431494618808372230179766730590086162620707658690700936393141310880125182396390212277938933476335594582674315777160351161846202753391973226841172427996235506459370893376939107988885955217093604758905040730634833945288548547199646019694257776440962623488377958882214429404938278239801726551429353215103025832360851909273126187947047093075608847520267717081475588678460056667202909192831166378495466023730368717633813436792715912358480165551657062903606041897157799279637856499659780790653579854399791059971186281105839714884326899429756047265713109239888312194570312509005294224655495506166447843671273728834429422482356179446299586303065371579850872171616529123322919295748985681528541873501012652447341833351265854327092710222183433821175723374488240431857685175778717973400761799424328398317799740020222775262922452728766373488179178303438806084901897518230859698041698050834570604722248626613289712147164912426041573671334008730584511400042522867871450774090076878189824270244123422922615357438312692726797591204569890067479751063697358878431695703492309708707328145620954434696463334442078398151424618894866115835445004992342091742406735073697073465239673872214065084184883350711877849647354686357225736452725380739563133222153277052317997321204062249190895507123983408189533965663411046127261108642922885624606407447878338344150903051945788154277252651380699550759467273959991395736640846819074783603944035821264539378357408997020529145502856880409377164844916725072806415098953736343706062636672905818286263066507178618511650133382338972433284964670269925501415778351348819470815840464471492941123332539171404144344345518090260451723697353947758944835407790423913901812046346281297664621667151765373824360175816233120573275997710535587495036289412880393251231708209272407472806841211694996377193909853925826694626426096802784852103225218654998981615709141594250667654282384679021345657621551720731899513060984318715627404666413167516888944243016592768407431134886323894883770671491048817151329620477870269995353184984486599763521852734030158679142038488216156732701277773334869925625445003291709923300193041271044706213697271353536816281346009866491935462756391747214975236309699197176019448158627650630858367582991292539862306068884739464218056433436707411448212514549229066814859386312897392941992602652071155758592606826053121784567891529447624263193065531136235793656039116208323931623702331751247655476240180543571048239720361298065928572767727479874547738285631026881022401891318935312666747861989661109232313681164903895290824596473992760470137222515017241708254987721056456261161684485098176588061209594421636437409484216664321383198003177495012265692071243910773433016632892708456368426367442968860367144892216337753407303640796905702953169007557326189167764638403322866270400197732910722264358265333026047133834292794192079685912208170055598581400210707759219896173221251177981909273354512265998901850492796615402298639471537953849335866995466143865815219214646862698304335385534506726258366407075803932556643475883518322642230092172815229219658551913394357398571774371171220315262876379551245705754990500987558824770716414308545625615141337736917575486763774797109937752014330384188245274855910353500224340688327601344335730778831947422705497044264219047876317627217442932200939452861696473637812331784190422464099411490056315967384068419217809224530337393688556805854496669425785567337384370642606972099970662606217378443019091923170756610939137606360924993554074784212770260014178096728562395866559922268404829769314860246807167131429471750311186888766088002312454295897921451938601766585495143359145487032482729222978950937127104512037402190271043959201390964030200027114300240171595059663005080360959035122188502751217530489387059540641663662796726435023230814415439229861005782102131364226560340613984669025652261923824721694316386780648823233403148450788838989480847782430111329426779860037025075818981468975945249042232855699874518132301074619834676685323625523249046224967943411194451632277484414388493416754515260340506143478704197964272290667147570647970181925004751447469640052085351399577007291883409720969919614529369115752974575647220797651482308437269862122767739859862070350036237325087835999657710003731716557759869900596728599351699843699693558449785633963636306538748038896276420208378445974833357527141190485446241228360592090610376843887362517779229150527338956800875923169658040348582348438191182815129957562464610588157545470625889291867057341865883590544555195071708442724858286249591475075444120004656775880152461517978123763911603272636685607613639502433655691005211444164411501280537489033158945143995866465153375425198338221872865969442015184624264689841896337386384163337070000164291485303230127471984042674711448115943258467106116202593322034976958241232424022582891046701849549903161392437446787632874703078416959825741522790706637013443923627210792344062687539188814945304728417376328754795762099355350449295137692514316836473624211351627193663143729710660430045836757025813915175367252725908285089881505484634198424071083554540296150027464218274075925761238509549677399738519543914574361840082000903935562199086729738777227617819900763885671670414617701876209610345445328115043610126207040824523363302338976135356797289142795399048564881327294800639345666402967033131855337025669744425124117162598446005646388459274749315723088387207034717635631892280452618809091501604939168018847581990481074058476861214419559103979613156902612790376983838497271715334336445060578487357786867049373831208164117945523478419170462120786776305861764500404818974394431999731572017098107111808213000150961618211439149302393669308512974237255491537273881155766991948641016124517348744101525893165909771350859549769802623384960623008453186563478803647245002853448841001854145419383825169687090682764565102501823194995315124963124939116620920215410757579603977386599663002891609452287007791742680434133748321984702377074606458174412676631851534022175936140954256829063374473444908411133867812749339657473174345057279774303700636479626500792309492167327979497815950667982009796166253917002306012274369325785232743622197104251083335791481050799763238309239264957040109077807227015764098253893023425066609232297552277756235449998040522891737416675086398115729723775462531715271714286143111579036621813886238611240367814666710611958041963703266153954291329836487639314106868132951395521845524447427202367996793062936225971838002502678668425652199976180521003326888461592161842144682278446467978114356058601708855656653014754072376078101298308793719109318116022211188899363610557071861239498253514972507280407480072600412829148803412746791219662105299733375086860855056194593985461361807101067978413795001397721601307499276056157250953802733669451416934407302839267081692618580869515684219392820300135471896617901748504749348702934758244014330950400854610598886755749827065655298655056550033125147419753331599894921865247783093140685189946385886990859030001617527458211261999338835786312066755987623284044643580973147232032468575582359908607281499689667748582557045171706568086619109175188945072159218713128627709882337308332604569180963410872773468220097750683897900817177807571659058599626941591164711475835892804498210644787466979857150720179270266107544695064383345745086866444482654145237325914881159232559070228404199676103900428624272316324665443300410254143127460911639446979653064387709042970860452837861622219773104807350678559699868765800979368273713298494035487561327796604019811555368309799741174959218020433693150663996056317471996646288998355394377120364352326426780465480589225010839961477080689671510898617551237389137411651495425987695320954110843277979052446278180496806859775297623399008190907743089188542504425557952662847314579735343943486574398426690829393131018807023437689682426908010807210332191895374523387233005559312616472734711643609277127859703958055715991096095653323679032828469734407193842540606060561414950633028753046340977376318072815536483959650670603101853337579325795457212510386137700005546105194912591877858397208020593029605250969109268404982954241606165521255584774307289904753685159872244510162907435151967271816760585974285147924105290266967067332942544068578761680490273345953962566876904747944782124054091665019608270126597895976837609818818984338292266220138175939225138605272530782087777103094231597916730812780812139678954551905514852063750990111007854761228462341082166430153698182156597022330070632175455007737226855476954030904329579031439707424793973996433418683181576711036471109120111527683406961314053821796208940736289539790001800475265277562326407842683236614591209788883860936654572700531014223233809692381922938231841013613230813715750689940566389769582155760529178576406377606157335565432063751773791966912416600887325180024206107463882109242136603076343202265559807686687853365908342309696246748126229689133933661071669529853302898899704696346175640501114318493598650515604557273373096955132940040881665135776695349165319741648270917991891770207380425751134404540813940591257335677126035756771043356372915381119187465542457666509610211028686446575848504505660172460290291275297288370876281523887547802947936505796047672019184865138035374548513880729920709590363733289489289413761590299680575023004365817209846595701361331070018329181866956740273125519471522002875441987436760895837239686631647302272701739665984681315302847721456234826146638807852076263388254511397605421812750854860642331996606405478615865849978368586110355850378344678703502657478918578235396517799926907943588662131714807677187094288776263513729199410850016839659184894935219464316985897823607346575774701100082230965452445099168969266929498893883200855575915839160986799200195491246150421597572791920956044438133003324259874506660689208654467534113980429847274655367608715092055262955392104329616123114597622736984230714044225366551994992331924621898470229431061164745595362432942979510458386176542239805968474165137712614911460556448853382327816506558929025609856102408293175172033155125123250918694411123381450296903034239410145944284263693630337997804715687351176604527551715173261386647920020366605269729542904484125841544185034239587559928704778123516508421064153299554214145082079615269783624551303586890521821396259034521029863783954338382794713666236170827514502615489148905810558436481362766010540181277826485958411824945715295594534724441351869349716144502635704979800221526052048193534503834853856128675689615406536104692834615361483827502681475329679261895249793188047882942855893021445626454176691285372717659525960045142467798978989554184794603577487512910350227631262726479339661751090924697548298607275999014934062109541143095217179409246589379132363235044032632613020910190164246903199308727813345163104664165513723460880880680968015359937183354878411817962090941964733945586100730754612360081316034883255407129276128309938122809354005649631367360736556001440637687727656342402727457660098562492884698053592586445989864353286989177215057240657832982307673418354645118752589719054392347369474654555925054860168745897547860763210371281069563061680238880730854401455293968401319372234479403318145411288527493083319503192394332097457335373167430173394492385937567299126425740373623643340659926293878225101643875568206684790603066575796497188181958338657090576132864958737474459062764282410569103283661805292214781129006201231547574581382660085570041554379360320598296307531029857646196078328451467664571104847244449506146615365140620405705347502504761338378497431663405634200777264524262450626857950761678222148591365756517998741899443330748673686252582777149444432090671641992940115256201364896249753071825715303812738992191238897860498706231396979422266571079360574434604057220839225343975852448345062016889246767082122583576211038613787637232577063151831948962744189074890964810261630742164017646388799214611623294643475970951113018258182057584515465346060508854634928094860916172398002771999510026719493420015901497402099538508682042040838842437194868421612018614487031877470437049696386028929946455393337809148629884582567740460140953353940741719128913162662469590578180410362712913548459495601772891264102566219483573473286418412365898742291917525407713309228427206290382070606579696846969086009329700062051755595617442820772822123507676697718305927867910556477602330071307343563368768223667599844344120880893002672145736382755852357369168881441088271811254170065557366256837258842168378203810085617305278707745846138271594716296119821404714161576291113390005496006443642272948543900381138242092367988201650227496386733573831154751313052000416831209595252039394745131503698421719216445163886080375383767138162203945699457777614401627245099035179839906552300920209531367476078929483730659492187754766845480363379726176688788180978705964504503162680534476198427477262100210179531026605313636632446950416964492484302710650132505521309408511686668510153404992835790362009444469313671993749899555310361065775599676189388247363733847923227825329127648626346584206179011529415628791741147578808135904728135621767445352862441484090056262735524174553889785209627415281147895427876943611265764104104925931374740723011405297008910568389087594990099061125492083473631405027542947249139024490087909862652395323430319040376141512435473667734547124533170427568369823662536472007716507020524824450422434263006937179232241152474800995157582318350263631922439026169684615701516949131052789394347947337167135998882528269202726307306366396380767249699661935022147932292937892523435001942927435194778068709727506270112076972504984683103513672378226647019455943099554860788374460690999353731804037259126212348272856092727451418525792253175191622760629480960581659290022511232892672050896835490178482114117875065391914999741797624425923245738812167494274571183390816287213294937596118136800733894110801426436618487758668498910809772872666658645961212003210494289021441950040902893344322346913537318791854272216573486754398019009484269291629434640126745432638593480006236160085325469873590488408468539096910689917900521653866725829530934211071839497014995496527772070738328098649502850193198763995798885143279270460694754968610971074824898164239901555436096300846786774560408434685463617505591796664568152371577751929519595678521648562246440887734500579252480356822546889425133089364080435676943212892265400623964095262411925754709069851165181328327899777899887039396955360831604731938772196701103426034386649567318451017537874060263023077265910982786127229077835328461510923269429940000483404882496827235189146603904338666112041940370979297724457621574736123313115896106267274613762586466617486840776423954719048123988006830786990233296107657828017425761785774020573906801019629987840736252225162616165080806579142695791703533223250702211975178612060731500704133921392476887689382054322432387557424425928162792454908392554688729509901220739378652029392024794060759026683099742802900407714092215939210020770200738460020286982456804851660947225467961572262438157454864482682923538232655930509750175684958021191574391149179583566942094435742360559152392712407439601809335236628949910346721731363005792447062830692605815303769994635618392947519241099324564679102707624000287556077969150487974958705976289056151125800214129781038022608464554420786079143015999682232827478229951769668438908989586797086409793646792726825680830961613899759207574835473074608175468655951193804654183476164750350207034603599316158635944479647361425652209737777027181447668205543731758821432669316819262259735547557281256757712060826528881098764194760628613011382349827391672495591261878303118434208604094747095534431721714515956098381589327651688799960808637099188718986002400545709366083298623792866489445514833164467521127792673136105068932014092571310046844570112253533377905282328222515433130440329783304891301320187806229623104873383998592889318351705283333690683513136404665271600353178383581956274065101915738716402564043367484724057139193094992739948998892363042808042697707895205309089414191581216550430206533605593943833717142361732343662635961861244064116476035393904389834537447830065262701383973883176684253454536127105925639559681133390540993943409470480372353523547811289062028432934559125479479441951565046947589299056918705469375864267269500343856096316532094948990683461405267503806619695203180185465987598926030576026689173666063125401351730237186149343062342019662227194673864386797967797369385490683886059341714325300821600457553180515429527473859595037964995385573494756988455047060432225574404779074597514660812699725500935777675431569727009898127019510456166521519334735310958157465939107522209402026905319159022476928901850054126681050824282774781361741575868122670873072295414074061937348758903736149778365933235601149294731586182142148317250455497937457739644941217276437271715192078646636167637053948539578970667480663867287782937597370789275624837067304220909263962960937063570760478375216446209814362519530739863205802819126308651708686359103091009383566355575683631691418933566480552103316245307242817182536187805816116863769851350269982046089947349676623371922977992855965899643719239711164435179769711077875607188359739421799350168616099919085462105867599577630723544575126127038048895632862277476676508644770317455944235002483860856634342214453307974387599987164511076221640060630773302597650384494415750418376682819303679304540352549286356366387421420276202240666326267608585366477931799018511089051594132676357902228804403482373149622521405430946075183236786501623539788322327208306913930279971727592853131280295810621486683918535228158263184357414107464236855359815585750613045745617272077023289657316196111950561231122777546922751048177552610457164555176120709720682918704772004648172517277460946610458896574127336095328636874199913535005021798805162221377305084334485515308211185347197440468208344013738265880430004602485624600640552649084586434766322489836893053201938780992668484036540510449721856567638959680601506591043957701133653191677646343992234260339051380549588798081756136517410160281530500199761782687318786962702330154606661752336698295105645463993831713769205500147745844864486612514591005704584689744073477666997973998150255599754823869089452766625526783251709335291351287575716084081623774745726022026230662790529561328165374821135383526304472453195704042988502133643029379417473391888242283438273676236105572799792260700456337184651997318376081009539815810813680366233883506776832066797388222306381189500500182511975309780296769752574951844282774416363717633744285876358856471540806721531521351600298111553898614920823205095757934160018760690358637367328293490257630168709290973327214413106681789432774326561611839649962168689011267483979793646120878415291510400358488071358780250718917187276248808887772818417890044510334279840075276259518145936974653228959053985301469455535204544793086267069484962019794674175818641889550815783490194204851921657953160777472687130205324963882136280931958315708565491058489683956198915795888408451940028253253782420469913353767252605887341384972901595725375554919180434520457494730711373828908007841356450765526934700739556678164939219975337935895370792643196535468591205581919733121631964810263128902285665044783229974115037578260474853174693799468136307814324819987340091636046805362498399676814725489116374867649057277256046116632452734808632226915330507810555570287677111546904122461460288597996643416709401167773028375500095958131871608665685082660007524389523169526673332253141896371746365096056383081370815958000147905704460529863003512112608086827679202533031079430932190694867835584113773584385889675054517843453387224730555653655093589621717958243189546207672495902864228798100965547888158377068905789145157944757815276724727560982617719595567605506197703817086208549760190980006362587901769964037049414557809307167157499032808399444527111976611160613673661902863891912378854527696592091244045384546343588861932425460992187982756698977714846957649817541014225912840292446862944060256267035348760667074619463075114098740339569744036341893515676518265614902836990432675370408972954702697199717945377840467817193597116939722410385684457970201128563485942068809201647032159521582362322661496424369986275408068244737758782350998670810672990309886640405763974372368451904722007329350526984495420774790587874810551427280909050560646832313155714718233324734139960215743567502691233422266791452780090740107074576441983896976065571188437023266614945438445207673178761299197295196465392201011375505013852488547004806681417312464510820266584533930611372703181100240458951296784716115516999462455435577910544409722000035714481855736719667124219851748883235518984812978968190743467298315725033746298179127116466220753133475879202170814388051006997189145586907239433059132453418351239392064671328207100615710943335603231190899010576813227550649278852120633599499210972946942276088229630592815453853306620956976719781000551589210186074669801186658149710970598220532023978087499456857213431058006824367588344640837092519650145882231546591959612666604952974265749635707493701524496834075518441978955397698280411293032673368351427058379643244496997964234122160929902743249181175089906727500259344626597975059770798084712309294226871605410030265453491800500275379757055231363132284808574993557896158741436140298402185512076733165230592338453819861131062295832385120145970039410213626110827108438587863844175556905319424248490543281421219029457901101104482751079762179653134539636741627375954642625494969951575893028798888963155603878120606005601826715198724338138491616500659857721203381601906956821553483343566070671077495700252435017609712525800533804377340005391491047907328945408618299338122254591273117696686326542998648649186973158171022485994494949555541497383045746658168966877715321148382080239873616205260130863359623974900451022698177901375305674369456326517511629774340344890801286104123932861838451198032268903496490095594531420103790356256582327969396762771545738674632960504771697444956787971781099465928816992679127027283340883366616429801797736634107676712404978622479845945209875683303719267153433059499067793318038869721480556441140229514219441870965869149747157915655607642217664269255982987240376093092913846276360212739370584770471148419485345940518837899311757832059796900270265404141322489801035544402891905570437765545905611853319944460965554489360660383742537057999047438296857159854208712261309822506622310256964698540955186663158133637717727709424801424904290970643727859288919236019762293717039326671362187215139332708760548115037144175665341861854564953965418043138602877304330555438714532330334431156224144843212869549407486001651588917526246703310933911576110761559057794183771016722081899772715204057700307302946877929902816819150468208276912046573644244698309440559890246633641711836611097918892788066023453806770972536420315318316308322426966501628375461146464240214282373203647312572406049350820325927142923950173693600250179351962720645673844145872472004504494437705315707211514781369125607367430133136901594825941013737951455011346392045898827173521173075941120139724772644378727100953898634256165300336985396719615457687626682510247735408731143152909008151496807309223151771558251268542771811031203190132607796735594412440430258913476327235262611435395566891544169342566110637190269889551935663069729185485461872079071217565602442008470342240728403792531984268207384944077995589910742415556261940880570800788603779684203739859742412288143633976301240906236865802320073843231002350683301876341951553282553558008412431231827375284397358383607573026377857295111387606406998811292985200180199328686704914291845781808422877090589355493746049127676389874832539222634897638415759288292520267708568568883012302063939404821616917725474449586264019046538446367168481655034292831492935274791093376046876084284877775256417006246348655153601111201459063307047940753798610991796789956938907340583230084900697440602978749107461278766797742908489976261529917212237215202651032869324468343822126260004136031232513290860996914846203379464988474954763068772214442182470079561299482373779645277543476983342448921041836654508990396446851959049686445515983725545679936003014714596623645540559567221979593515668151182641772376289284221799733491824676053278020459370637203902578273364358362740922718057137714996241513513065060833083645624606142239257449390476685100689358146425933024072662486808712285807607010808123500784894117334184270953247625175004989563802958355425024476422345731051400866410754937098135606154668702382583873833589157905681906169615755918029026853672919726361937095955815534716997819232003004130530377472279249351905567100671014086820415359489622660922098132340029902071639666759804611345261702906802207070629138117777594887380233853355943189537672149253522551200155604789947863652124362193437943961205430338051938687967777522971625547313029441667575736519677339501033742109921428469080791604063508263581167468163870473830954842695165883697659625922521076856845651116395288036612747549785940618981560615472147612656304665828286805849366291908413021792962427281559358309364479428080322133731198958136642559040071644194736105804225422878606564047265674034919238176682182085488166987514566789934751920840139169125261162042746254485546889366511441642919406134430764063599980746088934816928898577917087248424982501074190537901144547952805695284397745807423722060909092957836148337426671596704431661288462223413494106293483349039138345473913570266027805211694364091049782736804712980786878981676969020867466925474866730202067479210016903553443076405195126852037041576686892956259966943779235702503402392219611956519699437195377219661867168128585866598032405565491574753501990448748957034362428839496173008952891580113712596114235311781365978115133121471166664774419818839858770421670243226191251016063138812704064795891608430623970083819437080424718012974608952765060279881393875258001327313532038603072078147450943647956960190525862333890265532103161458431531752624650023285497250589441983200470876443734913486663290237980812929408659020752363944375781655123978290108721080132449057978844680943314800732351496218349331027698148913759109738793217151656773301936299301698977933258900222936823475113017487928592629260107114462805902793658629823415663901876470170614010042500723949548608545689088221916343068837631175857943556032793243284515263715718599092939611512057803448348591758297385761232619687493448819123535668008926844879283118683795518847397727411341379934342373465910167064062128558056257437690509315041629569262404287673201130095035034268627795634796943363896532654276339232081934078271634432452227095501181137921656615285884246903229201170552818350732619655725636994341660331604177077041251618921297936884295519564012625551387650242415545015448311166769751026738767844128453502311077462609847540955011899654825844402570809301316470940696077170803680002044630176262281379736387294603659117110277209270398080418764663110473883738109953556885837637599183959039052277497519956930114459230277869309730960569671718609872158275422883624207958941249749429752410610100656356750576266713128260512365433758873722683306141376124455520111733187150602521233924960615635345996784877507661535716713908766771293284328080121877668268471065408339035930214976649567327424384045880633243751659791906006222004292763426106273973849522183950438204417779531957248980174849083735195141351491574899460611434874097627349762591308352124814062128681133289655439836062298611019922331389534489471008350806345961969540396912957502007099316193104832619738854338072502949795341279450885184545326660882779815266577053517102326852202381734148010355851081796048512494803337027914196578935962335518294960508852236512776999196130553120584344631480991419834988030970805326043026969592219902935798651415768911820192703354713864363150986659517859073864764450813736776015442145006966354254479967963316429349593802870293254238623282889260373291123076837966954176612520617046218329669184631590874524567285413621249417450796019365813747357872361721760351383528636583735179174789220773435651351770805267964534420776940673772513540942601483630951717647522828511850027111067569189549855019832201783785163621387292537483426746098446359237956483189251170015680279667939229622910831291734719750470811968420191407609400133420858492189383296587031643504250932617136259738119788862598488078458296173021534063191187758306179480015131418511984000657271784994835167082022839859414812767828525695600063246938555533555189517420816078674244419902414581152515407282925532942446558426978496937278067087321351654048596342916382840135866005554084055064161764054159473313250753928271373473792862087370696933877746270272487926665833717720744994526478947270849424564922479155143807598583751934559171151646991435977420332894283803430137510921797556057902244876933000853099636700254469090048631751946357671298959548396915928898716847949484697669724859948359078328331725263885621611080831744601353534769725581030628412113462829330333030163415171711971923645655977623071760680975384310962509338575131705769186893374986045677238114314847968488363544110058277865345469531849362097099730399012036564055754877159157524866314523036418580455957362231885353804866389092095343880374853539345070154363884647578580533343597438373155905807237713615846763340422219548985542809431198149777637221809591277233175644478292892190437532171149431153111613413994215989823956070580237005580551315652472197347806732971160496940179724727100163150840777514331194609275325258856317977076976053305504506420061892143268084153218566253993777805437453071568661886504469032672300053090816061206427271658681240843594668654010400722460197908794959353356548065447177416250898503921430275995662584251153005471395019903674766815978870772440763847236334358253878413974146153169414983493723756864165413177201804212744767527822780833738730054509653225298537560073845137782435947779085145883500962252660085365415791419068183203159602043276517096818832318040161223037829276362814551230789452083253392883007304469507220562104314157101169496115843572645375194082476833971285805824115204404964011267230829368893905369214045603114767310069021226348360723667319171080143414628759356705580187046211907539213570746417319532427778230497533908158623686448140871689541688929898891127231863366774092978133071023404897576752633937989012063321736283721378380837359112414304290117304781892100104388735907327536871939078651568255092887507600712130653455999839087623425564368062595062813613035640903607318602808968333914996248985807127847124017557360270816117211240652555847960417599624082581851405576759186363638817660578431900777265751069540448600975982459887400048490516565609197777482438068972434254828241129264510885401244409461224443054083983932655705764590953888465563291858544458880422026489145372663749643467856286962076365207592334860276679975062681621681190399140406152473470992507905572136219709991358946839739914847435687714740482386764052457862237747180336811001275925215428590435381416645726946983758152369376745100416589767227019138934200214569503800105657980942941881373264711738159000741431937225640955154427392824645736621086341129811030686167531395084126529016169662862645779280594161919912803921350490744854698117661055231812456777547177075293117942398610339662551345931660566498698945285442020810155566993612310489983022374995105290672433893259505811256243053516898657758264150963833515545036760177240367168755412696012253765476552800251746649075734903831880940348916823175295586640251693569422362023210853435471652779910802586578355520999487226975924045462002184890265656589505473682556569324619538072152859836524682025499502876413261599956267459288817012263068362337656351793019333772086817166892823242505190730285151510987971775578433873983448864111620181129217584915103931199798349599455035308144202606545353250780523913466820019076596052111256441430244773272336181843955190713082139114344836928042495666884590092704595625772625695479633500705151935722519280285810735030193083407858790162793669419132282033228837958688319647981213381563773539591198732248910596702351652940519338242576445701300208834821061816880073737101765437867953142789152926919892124818921784438080960559175887185948923172503924766543389650346890087896443929336139665218023228103610996642248156131297877081889127788967524211589709440780723241971400409705667799459365457976373963411797867597086096073723848816671350394057579924313787410346523259793133435469530359177212635631147359351504726425434939775134143283690376618971664253401977750957724000690754807771183806903506735148815507048632254128651864582244813572224197620297902445452122868405238655381071668964357069079071394667600881929318100549243140830512325740897333478690218904121681083136418248165133600900170664126271566081266878240352861783770507442688203756385358118434796046805000328621140729955094240067141598243859431919705289680379237907825659603214080414569847482729255600824491771180880501447500086172381444478189260145610317896252977707886949901598717308095238613386675721418115519982340516914169119342461905970697945913289465216171143479116631653755732149042276494318414863272392554262169050241749860848020287134176994970662586781699516320233913326441340011930784584786887193492117092322157419385061955098889530026871297249744840285665763672041359419530896875380579154177545235248097448862053115113665510733809300338315943494580095318133012521117348239313650337862327141762159296173896080261157565599476140040720278846475345832462676622973939572054386067390418421641514426653373107225074027130423741971204581508124295693522901590619259757925214209765537359592991959240172037480204510808327317520746029889377669125261875354854430652804491933137225044874686524179259718649332275587389564763069181559841989510479230655020706183223790457659776466280661257792125878606569702831863942371885497227236072965698288276329081666808880859728181913907073549627210034361515283253584240236315240802131837512606066514915702608306941888169352681746526351534158940203516951633759170478773046626716928516377087842216277627469460378491240906352198061561190063794417829413144800070518185866545947874581333733481475373268311461168291824559790398001573659685643671258804003384880688831947470397923046606412835279502337552073184542464406454470654750911297916377107249246265614784867659406615490010075068157530683609035705133459586573037242714849404954212415910636229190615569247419711883976659985546787285991717452853456022655144902031971175201860440452195549798743457184581472089164897164003602679312290811058229397438449219110359478698488860562707143290255650339589115712784873171298938475320941912887070508326517597275941898824759651212810973455753785714505257221734925711400128786499458854832997992920056984440917107026813274791690550883304255421962535280070949977277548234588444083467172615257871840217762515343969891053455937957510063626413707789493945723451220751207091336184071992925459493077871977392921822907258329596561819287638061147486516888013585139745888064757429026515920027004815166974645442410074525345041512345712328134335298799017909433638078893837787182927568506929500797281903674074012353959573296004157917342392343451727864578051319578436827861952385277268452676781787415749971202395696048546762059453452596861111667795769067480258779660777557289385922998690050996848620793393065198167103252145791584195483907521995070352412222926128484102806612525769960184312262717188099382090116006348058116028306438457219810245685152086169844929913732305738573062784845594288515760540802179684541742382034807396704412804853520992169394417081491295082081460932051521389443618410112871754378951902150521614171920691500656338235814756504438590888740713119712511425920658271852405163612626170224624976013413504202075956555991812355541752579957298170977354008171449683688831022024991279115714203705854456081792586958749917830947381218195879623354702761765194840144205625377171429181515096822956987149269207220839283810786776001516298183618060416045376957801799310034856365835576519301667055265186439282456102221558345791569180377142496504131093074006009814029541812406001798708289713627397121295530436159856725372883420937013693152845783032251756642284162045430739319586040201692110889774038953276481033436939017595361272408409539627251020342180011631596302233839649544996136152442667501015032057634465353260808396513858964951832517574971661472528347610725930790559489810285927550114204295658456154335725113230353459117607283088800914904015323062554414928491902260319559856175498724068692585632574088929664827924357961829718183679151640007107345405400898912136939952785075851153071195797693004342839897527375484427058925136424804475195450042942309029349885268600068138827897400250272727108325889052742522383191412057152472277544232117449665530104695869748342363505908010005287699330457513911336668114964297307250671050975518613073172434127893677819433472886670916288164532006325767465712838852926850962519534980587029327509355809638067994698323907036941720783569101780211420347898339850205197370347829330044905601986191425426201287978385373271476522935450604593730493654088506841014012980767131032053743828515951935072976567193848372383701357784823260689826344088038828403165817936773239419963976147190373587437067488318881073373064195130239890180394431107578922012200623658657467083412682187995764132617526384194689477807980634411077226781768450332540892608514896210592638286226351533538441393994972399623616851366402108922204437229569959958095946135260805210863103898657815740885958896243338159726633136434784758737267205739347393695390947245428814329422063607898850636197441041618988232444484906132276864434067150916195204865585605252639099590598558483088454272051025322071486871459902270511043105705407932562435873159017144335072091987474601970972320095369664276261166022612767595253690547952003398168257849470993029361282591118509273937758381832286271848096925492721171593695622904577199194946868032657255070482753569692215894568738796591711809295835027166632085115139353006508882870615160136913236738408361627100182360847546124755683249855747746263377110021031489957029840454398150659296722785653447606485949192418343933261113506651387221703109301808833385384223701440101252223316687404943276598032648356322851008714454619295484647521369486825239923653828563223008787580443508398258593607885424214530783576904114563062812736356222370510673636345121314108734404302069746790210878058716875596939012304112460448901458088792596984740764268367996592551261951094168465271987431031220540447124968800215249098521408170551986418670017725915438944916228219510174185179287074805847280261161783994098460306800771537588896425138710985342548608010645434711456239183513922711227926138639589669279872132255958406770508328607580399555976736578264586536553654266479518972239479374157807260926986660123679776331511114924165598474629575748734834668539019786491795323501660560113661654909921989199594321288756437421821385466758679727918692544544005898669679200988900951440835583950227598688589413564885694067775882427456966927751659281684050827792003336810671472214405261550121130011972342285281680712424990182500227310079196271430860922555144253881401839944941663470211173320330022677807925896115838933325473917275118173330668856226427715872619179713509220809432178088861292755465949624789116200330772233229018262596624539829176114445138850150622593892590223745097359980359821406553638775188592634806458505533593827903867466788804173797406841078641315434242748292334896299197371206651083843075795370873147453838919768392980113634906886821486063626754590217002229983628480122281458383556568700209173706931092653463791440611866597161785525846563607652818752761300898503358416141552508648558473669861157239917460078945192600405010727451113744841666905192390429475032616713530581779921297031968235700629223537672404135156732743577339394812821713865123880742121655082961375274847032696943816515277077826534254486290842148385972145426436842757660780587894252820174123064045580828235007457086584428594904208570906731594624184944135294167489524736381963724854625821747035805448075651321475261714431738819630160793507423070284474568570198813015962241119208916664634120873654872792869851184323362760187731573760442360414748867930493088907111077344471057869929905799322414714048838234201378358281940541308199782638602668291972850294464871431150737536256727722824671470708110778255872454831473781179391910386442155618844104942757418352681109913377113562790488015884835427247528479116215826705807344564325838911647611901250387718329595662885548909846183072730823376854401099599013114566316420734400771847442589811063901224605649268783339518432069886414534164949023877378625072678266644629281262669189142657202944429926610465471224416829868127751690849882580911589974095182594075409015812798049474559652014789640321331264269775527192856257092646381432277395045907805810176675621685340910229614420519955395136912392487143187378095908094851537591043455735141323500955852797088196277104953012893472778514629351124085138589704008353016477474314860580017272896191716861148156706638452396923826249029163554592316955545786950969242888731989168395207721073356748016137704111525557223364032908751523981292699211612212084044794443177141821525145225987337469769422216629273735816888441608679876675058805744925135063873490695181977499929954190090508423115655989151280298022624636446944064749521629652254740440726086467875883154513815456477090730881126273088762747076160077396025054656529187309489455530808355446205425571133214300208682954927097949982476134680146499766174595396248243688401203345093902090877579083443910290178142136251976327934104645343318873700137569867491583532632857209225943645941310676160325279462054422760781796188075592047425857380362768842395101753452515807903142381636929787366554222425499767416596265775408786759206924909553224500083145361155375180325131133910860229811907112646690702290082284298574467906006368087642291105704680931178173222533274301778876656390663584651695727207033996215993347531257296101276713960602467235805311766690521246458350031850264703457078666251256223879794783727313073258674065344440414442527647248564149333959661566779212611530127945748206007140664871099884198025522589061196295521027793609953649970612234769506795213001419870263253944906203141943253189287282329234769477085908758244750756113103539968297211998236464578550577298811600043911475642761069298139791633221751080595869671283977942266627817342682106746180493985354291092210038350756383175793714107021404166179325844219980658872541742789742618075816899645397858121891247742516299115118194877989432983550823009577446514283796790017712320139943772634007317590277498657580844486845692318207910630397418880389044166595391736294954314727317617407411956870113694826994515583490470350023111837101263498925571105789844302825742803019385942432594535463767637063709982736287959155969854477801959852875928097820853993847091393338649879766771362412237122348894819341377375649598347936865102054795593024570972481996679090866872181540821251133967086646596892877783151449098416431043991412043028889101570624572277360178380925653272324085186491015572857204506794092704925482550365476796571094832233126888315239404547840878923003667948393000108937062472232050761840029459649327921756006986534402461231208405312858082502218993912085710552343696320928767091445093685082148010410327552341203311450461474279867711614197416917425170047252651606534372775988634791968357947579052490268521087048631751921333759134145277974689599411930234645044470936311073211670114070251446916582533342472139310275985714266628288339124199669812849614246139447400815719082754025131641537378948303299334899786652373470397324082680267002630988099000736963541382343413313992176707283802905971176856691212610890465708665953557575405580542774899921533672885472325465757423322853816304979025571080596564332704259032083801856908350757439832017556893657583122388441808593782614412495989272343541114565701731646053392087374484255399725691869744593935249041160648292094450457330883977658959477500069303042143304924211692542911782693284584585428111216351840651840052465890768603222953504091102828837882108453950620918256824543186071468286246344808055566573487441160379622530963187891882515148715440836875012223343902789639123961078809565061801613525957808481986434080923700419351937204025688362510806055352621540940831951656821183970970499956057317145054090377627985650886263555105029524061095856873955855479617654359073238571269314334775450418402328336162777323294239789376748783828830470302176336691006466000998462577138289967354068637351491828376619467675414905001825327988617989613108638699413126514984933446845776014085338717645141415945894367391264161678702860277713990740569625529765537333165883595883694046809878106131198441709702499791236637945212612361912972783497036223408578918367715763258682501729267905017071299145793074057003889911066528856936461718723044212244347716959763686540783996622997448294274798268180895481908675715031840161298443614522229258405626586732429522601094843772629858334622978791891217228845752143587841576811227552676859018389036974258274768007623790030878333409099214331795534919328964508931020877958895685183578944186553733005817861780536133808254250010477950484641747203761673058829062651466721633741286863508821794909468858066613013198409659051306983413001254491152394650462318742177684835573806821313547111158712124877938207083158433240050604170853002300067987789484227568866539911720713347475192322753323892800928730800805749101710182861339729393177888143747653251145129994819513167401597286259104521442134037485879020736547841193075403092146166552061369271287941387206811875830166771968070490787584120444273921709625887063728164389261535097301906341109780983315148196352728701212296169558693461679330665036599999532038161103771522669611429158321002569412444620832324575705016440876924701188386819902872272377031467000511766234907354298178718236446193605197113016373065095490880766204654033146708185319069207215776128344945016434211130148019556530948901652914842722413834432504848913000032434930739409862407532056959400681613966846955481664649926119112971653541170219960627579406714152699118157269504659992713017382126766166969041737919916129971661294470021353361846642256363655537981599204184115331118074234638812462497463913616684130650848858996979451770669225212979819918009945163446046719974834838492703738063385402481661178836257810433141606913626917090302625847402368450464112309753668738093297828424760017073089390287438570285416488354644101330298916530070209946247681915576525387566685054325937974480785396863216225415207110390836343894981121087973518935308565803329161028088901527316951643240508781739776759889786343508953229975909926509584079412673376531275222402164280069719097526611579886368304216176204139969449319331394215828012294036378515235291226009607303400579550898975219991096462062550379043452787746045381703187214937550242778083178754163036701535752821624464910288438995100174396376791767125177139736286038452718288688967886124050330723305430405093676409372371236860972664040345409231899242080144292956795279097483266056650216441874880477739196858845431268079868761209242112393604571569689657280043984557109778173432070264947911283914781296324858941971534470723484665042610487097645978919195217508709865416514928231362224626773429974166331023413618827118906061326332789852913656307263537676606681028854202893401911066167560715715834755613667418571432486181998752354374830468771494062343149278777967281723620093010101360671445066002655161949694967721384018223142098174850448667896815912941657626301341541621102492561860927159794231562915077107633315309113096599805251471686853458519717910932447832656010283481728108761977990686297077536161500355931329842890106292333191171906414072320088565976725155560763379847366874410083165728599450353178445341032638095565920992962798980235140473467516684533503637100988032454268753686767550082950471270593508092717188607663628902491620171597786859600470034196440474443923214182700495065893849500419980094458630094124733983486412088504636581451754185181104023767565114375609904819501250420337796733283810351667315221505933479071868503952262096288642798218098476876258530250846338994709824285345281739726732063408091809550722582960736577035712384965442083600291051420147017288269280864979431742837272364429698745530428848851594807022818020007493259769729493353825843084574453096077823990982011977504393062053836691938369885289352170004590352906397315387363665496875716902929629240530298109617060104402274120998852271730343069438279214739158110694055010515222874990351471836780191544133966841902037448141770517682812445528317330530923332669958559295921429572437272648527216195027562452132117705868975867568286922767413358930942894755540335010265894017956659216436460147832037503101081854148056268986601279011065884489983722898573166627696930378396258064987823312103570166940313791500004164371135145469730331038562180487117482983583355157378716999829884476802079950273519281573667067694778019484097026819445982782367101862264120632188807844907460311182132588961617696991784433941841248759639131552725318096174527661661622354000788593595044758726482581557667000482072930120018051109183230722602459849936731044895118049602084243408285263567474761570256926228172621237965880277511218044963690841206878241781092926450888272813148055200491698334669145540419444300072924116825043054716790607824100716647728449440586027112516414484817689955758002952259136257771601657930934050845780957809348695669547404612827447375408409362366979419286081066470852052602821534488721994420531164459615018073924346729585442067674867188370381438780796656020086394558545903369477009561573608020154323797093851214789239967934799429578916731950553581384330436844662195622979596081249346512703269602256870005539344215994584706774754959004316103722223815882660236467242924562373387366986537295984825748435428899879557394633411283134381656678108697477061204068497695918034429994794324285004531905479139428844243926760441247253667904242552143296765222359167319850863182990555441980279284533300053820750690274993494935573251369474677093716317433932492515255007796436680522776343138575601798692017891037451103442608791441788780176635345919155254052179024810808968277139743462020899360044090272658932796857082196033822919850761661866296512027995193671215301023849033596608418503556207179224214020111913001580428880752384667890044501874398808843854457841759648430948502829310319921781270630249797666526095297480051691388853719548754941057048841069842506810480278634394306975683148069952614714700200487802097393572687829730725978788513125178420324935368477151926095629427968836475966270007087613784655387817301036770755927988118122375594410530351841210890895751346778355477055818908443433103694752029447007814806551334194583633328870962252919431897198533958617979795947827121988447538745890988059946202497147091545604260021244393100604701278896052617429994661924815993886013955304191435332138858124620307498585862177462494089628085836358382646755395137714860288532607142049339162689590978847505142599698744775101270053591003527764167196171098277470858838406981799987865140458699643137586935278157821517797693894379171035052735589718496216796552749401428928559376099318048661632501779653364694539646856583355543897555317615159016451198694685140175267957139377728121728617431225352024494289245380471771912892199723424717046709594183098550424577156544505529947773308288116579959335807583819216966242692610253374548400324087894993660488828672563249763360354280635165860146509338864048485079112683470366620127747733705510427727765860913613765941225199530521959003715958891583297015980684279474507870571373836782004181148978442908262649997723901710703344061230305913679702471350992625171644606386534617199127995095462756803799855257681764532144750515519216170016617381006005777455268707643408261606186778108426759550991520672908585254370707713953939272142179447958909775800220740756951153278824059164543174400083016701994964102404704498763985990199658604849740610810692871032999418316826014348409426740409475688289734379407413159671492527920789415450006122475313688048828546450377352081157742305990896266663805702502255287387463472283749398767524707872591953905309348468580082448597215268521017829875043004387632741138141743730124883658815516586506693423136501607118283448651883161835135719906316975164059952793773470645489807711604105804877243275086744862658896247702256330485932410630512199900872846253601197907498784998186323183235334393433411126376860782465641708650081202017294128897520075739136428420020607226871659251556048563444293757982809749884353098223696790123109798015268151512704802200468558650033179603910340714094080937404013150055588191749855708532260800436909287456462181830945883352775351822720280272945696889298028694066137186032473641475135511019573146613379152308592510877920291572227239704386331619519467925779211160238618685849974794962364129831426843650757772079393080255352402817336510437116148460753708902559089183496579527655331744958250039708659959039978172272125594431398098297187476006942585743023399288716642465370211150719897278198422961380548415344223702810772226813587472977623494833599616891881077533751880246961380224360031307597312746551896032273215434410463725656966724898087456676340625655072606973069146369302739966075240979199523035402942600370083467855856461491431975090494717919713657626384053052900650435112235292621593970684480184242295221303306672967880670804672930600007217233071162355323361556427171428147445448227129596614477940178493570754721771616239864862841687303697379037103139393845871859110935206549168054812211472547751961421588143874851897009336615323948471557676845779803317929685941025410363937951565560561407589596113006523828929579259371685918332289502374836229736943285871569553545041417979110428696792605148235898782191610079322835407811879781515426766609574801262132251629705783550571006015733969226923628721001188146428585282088407900152778802888186424122240097006186201752224235964477084760530192027231977515795818124274460444105170893033247918176427726519855120281731911626221487526614269731803202644337373689318474590638050795724087501501152512144468744673732285308788035820428602074250452433617792418033746703479095779664065888434720020290454691305985511014471340214569872475228417648940335834433266321049480645300701009033887616171963747852861680540412077101152506218954097555815909838391676866488150446297701945605543171547927025849566592730186493442029898232128940098914826728033910475783744238083531816092951890945089942780830078830270530835401104579064485138570331942382471130704541662174157580681136502878722116921501495106903641842327291587643763746255631853740371838402149071759378248883086348843313026944753984324692051583509308451631305534330915873633850947062733157297137740196796021353899293530325658089403506207368109027891038779511316776443184543346535854141444697990221672381790569208762467567685600848869254264429629374450849649684563013461440298678194142836387294428510409267953267483755239147298575058074261685115719794148501255649245158666998192290523292213536453449809729729460103897760370382881157831582426305746778438380377667410077632683013068736766085093437066358665319313977194650130478452909756562306003485573816347498773522075348429506289701581737630154822569305620279413101920204418234916373757341990134218948779643363474835553309667552991503924123250135476332734728901332410186799732906722950396635948948649037012958453716612178350456150643267136720311627546014142264693975032229769734861218690400185116485605344867306513259596517491742719421453396549643707165797558648270856113475822151007875005150336193428064667336116235526594845466244740430269841044652162049426060987670021031453697356696534919638913516648778247596959233683725906233088440719687787756956870410599112218081920520696388504707290839173785153455911566590974629235821061316153818609052139461956609013672236127978402288331837687433331665316784300292210100918679996950258737783001730726952722794481295102650664395882056031571177121284406582375231377719447612495035901288099260973317460114577131841463002227261877299329049200161021122272663242443764972515382651631054562288238019934981927146663448570064053987411129433950568982511412853393033556464547295196720482797690348362905425938805406678379645068316968956563154018975520248723512676530534496903557287700776271862756529061460894057726282888724566412969902114331693844035418487248210972558250623978917581398648816669490814857962428708491366178940274145418043816413662815087851323257542388798835236394336530059898872648127556701028265311095261439227713522668809316611304956497621005737434213719803209084906239816279110664800898029480834223569923777278526126250786170544140358000573739524617681271025122183204296655743290409163311347247722036226109394812525681979390069650216735189431479074089880311358438125601935134749183595572907527940995721361145156540922283715772853114511030361724550876602280681964783977902883551496481542132241062047900959350660252325303394863418057479364295154257318157415640509494175079285969328266365430373666943476211037467098822811946920018546187039762391952508178340652790100484065981357106939704631915314174847605620283320322494281061733487959954110402547008055794900231431249276586626155926077398243316495634720250839675750090662394381018113028903582191589807952138802549058562559979055262242705035975931659854900596649154142437422376000677176654738782983860633366559782488548677168353080121551188096267460891421585102632961386123394317749948811127654058447026834339319492255764398734796941287321994428117297707789477627615316886218977284266453579047171672851551191171047556764453223661182736189102450701895278915417326429024395631872902558578881335926028284189097658225593505781118050092923415358553826477831684370481768247532293932858323100692931900301865132268886672348679465595444757342846016240137794064650245340697828201741674290153807696022198794129821577395201812972605243374128625887795530231787990920063049533058084673064213727527385655350695803189772744690459058921895093246900454507346062206210239692012046236619487261265769707977537457241638336749169240057698631047260513938923035311782292133968729138116082223930057127843054135776000477449215833061677603482788327655529442634748339464713116130841005842361500762413071632903334909682946778968191362065816330014786686209759298302066273434367205472223767716435079649747840335998841842374132734194425382876115185996781075614147578462521458149378504057449241506758662302186498314167227445603756267135775180092055861532735976577573199149754453935300172177649668765354898498574826274387907757359960078249091673639044743498960495946763327649102146379904387810293064809780885345777963966085274629817483702834022727510300955849940887322554191209309658554204581337666406966933232998740410408293977305208351904043358114690940633669028700942112453175979634523567887020414338009483008716540630670871722555647827650680763567403937118161509932716264527777945397111310892850145654508527113156683620596879420662760326266925297517254017097857244842691734133813763082792590099438409946263447800555770310076936520764186493566752113418307305095093194281134962369766507716860966319770200015687315105735682781766499223513586730505450505346722159654305445899177435781002301505207281982821514663176120058074443410941500490614004416636365320400054237324278511011289879150402737804829906884582938678947794329395521668002396409086729236746310071211761216892574372658337330096807730002379482361910940357762019219585929507935031223678164851043845416860350202219630821748166158562815213859801260073705022509429767173055072624924779410317435471108994680318601205549715179603330600703908435634001886834546019356672891801303367854487838676689749763516159182754363774134081476882548172079901764465821152334861856529818713564662409626123280717622098135366046842653682643517031100799478504693895236891213734123876456130684285291043056406961557209708442581794926423998229483595857223349233831512865057171342545287209836336696732254871390255061916621027315404496755458564514041899081439885563990111638879085144023391986352062686210751852024136070122268974207289804929211229803141376179398795581342250651450816198857832149896942384423948730691144057652683282976179026309520138024242082539173249507442798097386240487714750606246154947735189803418297662883410716597064996726310951499739868901564682974095573158633813631695983192026882154197119650338919090177542431554652806881828074631784619492062907383667894196257049281396744626639580485984463293007407788058407946699052561014132757537299376418562016717677656645179070518423335266235404183468888429565207052591099132827787207502431199471638581830082284207189619690013318095403072202219558296733549937459116825074661999428981872324261317479931264163927211005167154023490831132538530337082609606336382182173283679898904086175703854882309870451583215047957044741536504457449921794019822937491479752613586124805630578595549013953044978238863210636066626134609781313687583356599532360720955101603224783344366645933193011442896730816231785126316505081705945354853101740344448700763464880883792937196870281253958820395611188620267326003944372671206914280420578849280016674862568763976443880203701875612406344602073595720555429550855801898583328383597182633968141057963909413488669852579345732785083019813505915204054273350010238363385535469729893492428677943301912733816722775985155708966300540527415484535126800389411383315210182102870816205815702958027359093689965293238031529321347188271698626504928919061280264158891121799108262174774063044898704278868399803307082616505106893595029949726337326337370556547057430246520669337432831429609817567569657681017887486797992186862313552522942134754530939924916269934410371294325943712775780665374337610004620155334929302264291260562847396747759192239224890614777355754109646500628974457524308810255180698367136156960840796796485426967086368517550129191020729742252474856283314800808549944903194590206341397686363617716593900706080456819224889750361264755205142335261730588947350132469967610689270112081295731961791663962504511556554138008871420335389408406859983650469774919336469392031063157430623247664218823699021153636219419487429875420312558443782160651491276688964782299127897097275336635170160836604348005133967229800642456532335196936677220964969924230091235476630155861797704885290150105672198743967448805510176994400811029885030496289159132334770813016047783459872917171830205749125944394602465045141965894373238909715435807350550549268557550439436165520712554788794002516467109608452087758597325886382750354226266119940752827555133243801322006795303237556960534898205747558198631178196515570721606163735583037238100557241039241212450927032570949812840860224008608684765949614584750184666136910854698958023106213719764244602848614623113915712636862300644139859769804891822486364360017423096929185819859389266682358105455704569076404017965793455723574538144885501629117683611972830097664332705649808705527926287709173077098078242856928138787571622147830210856389287556635255824641763403417599025615834462352568745462241402158653138148655247737496983406801789400235724966641494899800792922542184262002260662863620577992802657872133280792214200665873398799346340955492527680527276837570900165280929236634685712035619412602972404689442076855415793291721430617597764740204235125958263975026018002003002700289814679207723884828268025327698296626365847958326683494419731497836581172361658372194992242302630251373086700626341491509355431359837855239163662667864876566887693068795218020292443294514870273543619617179827811613857263954728548662451142953894647372433331397758802968830904685584308889866741582951599729772727399640088693458492828835622324187509730945210240415611922382240506327009221499547552937970878671614755159094389344362938554950031246963662671662037276645633524770305410027643336404788883979898581058633046641991614446171331299528965721889528269517984307543793211993233617888359922023421003617848522325443137836586613248077093763339481294742058111810712484912668012459845395667849254440865756880235505733645356577123390176247114953386134924711424079454191790235328589883287069750199366036191666772339054753144889169170522540396807188383420668405972922708855014944470166877223050062508115648321060990370074144917482998458812184634753494865753251712107408170017746783652079429817396522881538615935545079102855162115648180216403105725855455487067990981809948178759274005927430388933434629979621670043179945673782330297306113222331416250005977838588489272356149960348256169825854024662591095628734713955891641355007217929090534801116180303742995298468272801525492079131512906691664679647902431542806175005030082551816004887173677234539590056419630807176461306520815018461202715015510997699096780138583867893616378510286648664912000778645608677769982167809027317725410719311907186012559493989573380987405875958899396584076145286124868088971811438945519073217895975981301477500731888121862499433017016746350876945611713830110418363463549889820921569767812712420077925982889052328458159664948056317358131861277135480510605282305236832547199069794586588245776919562535075072939050201012040100492132973527024727378014366250001002248363392335978458477028135958287986719779245638342448664023058233268755306089075431082849285014397285805815594351797764847159807198729389507493654633506702229536357295404584486828381694507740953082950019307459036192416324354138204478072331223147569604306262518987976690077068719420356555440307254193672224021037603906911132268855525585148108508505753769641363769891352896795033646956381475832032622794590732583256058255476065733134001723160090189856289149869802247856940870804690406536989443719455244211478822422943352961710880542913269978184162489629793647231298867343064922398800397357426208687578679613616783360585342476719689479878824036918627187729326819836840728344716928906133929991281222756234924606964413033852236287771874477069470758391276865533935311718580653370823642799122797959506160408412324674726790840543071650334346843113677644635393234455482356993877954904053172055723431500707551129415134147180591826411626046933615902828602436460267457815647422951635048004950382398688490579522857855813361659749627717966116600280628108069191484955590765851488594223523740326996310665078896353297245056618027984076131647656695878517938449328795013894441770249552823634639842080058590603494377558942531726039306381605276888690486227385629939384094769117645165844266013533700438610183161483502474957745446178775427565656973466183537308332689327070003262938805611459437899058720063127938705992030511512090955253057340880281569076433233030127351557410547428792867108706141247594757343606362929055753626053667123881279634974243558460950229829868549392956041335380889597431232146185924657096167972180444762772153713256938626666891063312848677868678033125340408496322848956051248913873696675655671742981597513650306387270045283054340159636865752665282892790659406704788403208271680555799912174263032395010344038156146881114662201392669929255124993129438995317894263503276424914329516460087846544037590897426051985342487932974442144787513812963312860285663653514186293677116318439165159455380151459993413076172110885664874147335884209964915280466989748474615397554418397515470831232667621455329153312076372935163540809680788976303589289590236780880983483295703207628619489227990460454900709225563733667210251800604155711907397319645242925315814214886418630023832111805096237072436162014027635100016382350803113854607150169022387075881802012197094449031820690425637185460571262440012487766512486609692819444363102770343188890650934530273971014268451791037500195692090954443084314291856299775098299834508298467205081765093502401619255917232864954135492604721707070058005074304245905915578617133237098847305706126287656215683577783545204238861289992300804123315796725350017825117835262623168894326547911186644987099496625558574817736164760184607410862880868094954628625565843558482223531006302425206063892904656798586644869981200253606842181690060236370091567694396880023633070768757673329260662138256514999211590022659991900247849042146012043922386460432021909533312494587863177647841318855326155584609104073740312793482995906680552701844670876803937952554371524037680410785856361159200117410805235667202627830128412495330061417902216294974065944616071263170023538634852310589928680647295427733096415138696091130566982428053968830161294190389687926690143853630481721097870382115613649093431503842700316040779982167002266810164913671975457691546751231675719044922141790277148573409699615720623077977273024980403885749775588719843794802004518086563868286848369033867373370621529745732397255155818418285968682134112783276316400504915869707105526537664607925899688037150784342261865509037882052984280330551289478788923299607764071980811110124026057033300010144334494755410893274437567009454455676357329383532375646283689568054007092676863708748892501476958021237257915404551216649031593379405743262484982323010891077660895916218146980822905354867375287069529017966094710993651809789461803391894468499871520299333510545597622465936508198948589171283712790439140605407943266734416147661026054682000055865374752871051971901451505732736313539571592611699111612747145253497582351371631731252144513031411448612498151535615648454737422333912143790606612580319731667591837195636653288332627091297801223338496512415273069195429338007225751877466700875057506250697811252209237577295577107403945995415918633988981340506764865942454453788845063454721411928882312648382805756523000555234490025288023994743507672702933776449275330528140076303692001366068515488920510445820543035376144034683446428812523202180636616573045273390836903656044840330141901496503018017160817127110579554480196576966084238569868774888041528205494215116332573977320692478991604939941663948290855980885050470292036338733131974202232154517396901966314538495793549269827429172167152751979993559550549804091916877388375385563423813923417222364534471511528184086195489815330768922174175524260538708382896188939545731227079034921087928230731526702777548140052506124617727941034334499003418956473693650413139036465748610636728271325516424592909010317463269325006349082503538372378795192700134208336533301786511763623747815824948962581070884099901449822804417562130315871521531377471560674418546450776885490305837473702060429146895936836923922132758265248485488686295765489152256604186936150483263440206392268811288749445000610124501785870149920523570404498788864376665964073194184519061932873577166601553910082976964087367383239889553510866186497452312097495928790393174820667730254132677333835522316064499563784153389828444316494710763806657462701292061244144647170470814596603875878470967435117125646846359245708278410820051347273242024422666848778910757995648583049682262509719283433410916112542044486573640647673273517907643195058646360478787151971884644085926168761796267746891927634076404595327821485043442721948208077525086646460250786382626503169209362340142532032095623861857239354520608585575394798502935260810813934680446065591847055323436122272183588988854239761005712881229760878540838823984529301050130323996555670957009544254069810354580419488354648601498063841999674139150579257484818232787022155439953039378336783062084554402134530878107535930695381406785534772589003868076222423858273591036598958353838673145233090776244362492799081395526749109141455334538575299878600490365845282874114720418058970713532518874973274281736261295903626142437292760633885855729436020834091373490018597371748976195768797979036865891438056384510716998004568257799164389883652766835986505833596994045613230129764974456524172703908948292061122015870476454741288706576389448744665454527739503664480793368303100067867781699211443952693297987876290374187853962236218157857984327311115942712237587182134900338211653208164630554122038215442571190600022368000589425307812170900067279355053365401280437177561274499868447830715227668421110548726509927139000307329209157192610367700028127727787373079915029553630588882828958954835525430468944644948779791591726237164690065727902273985517461184508158827475391303625267806681023224710225810913969916586726189453775002972410797650134742294312495444481136271711670491237167835481311264622161522816545064596883029001877308204724404282602674849706867727826801448298858481655258309377403728331847991262470766839090060384420598936571142004526960440588825226050841474347762996483392207350660353369258459432925273250971148223424715865577928315675512357432575960933936072574947487533485182986676767405185734555420380723343926847287665497566038308381708831904321524271616701812195887750683795722852194291783171310087482300839369685019435040511667850061957758101472116710767215930756541479207806744121461299431816503981191163505556342172025025922827565656254586326546764508434436394610896566646803255838701376723148864103466775080702416335301844350059668511873780674106795122529120542409621365584594875790866741399887547738461449872415953561809720055367249709521418923949197006874888207831819179146290915095950974852937738023486873309546489126721593622346072950065030244031962921450579595430057965369172572376954977926326689298521109356850558985862290682728123237377679278732945132351865658642788256338942984274815922157140853566784673877137603595252490591344556150744343174388986693075513652487564862597286649708707710386854358825899559131921308460006798722384384170840358323436184588045897020628625512370338947644304668401882043025759299925889310459143567219350451546979324483733509345809020935526200405589472424709099886514255468801482158507660545992644953459727839843623033733325652451239711862875814238272666418481962132810439766971713163275090596591827366628123914123028295402039185896723850126619340722998910908831830283364005782485520857577091305866158652027067094222608904161496780495946802525000136929257640220672680837854965889141818037100143360550658430442741579876954484128559221274310838242484842547557374545734201081639725046087054443579779875277506219379866887247992542367686323988577070705564991336599601076348223978551781916719744166065729097203926383069985477561853230332737269524338283540135103657056944209453312668515692390057259803158495217629788734010885473358255561250721166572408609770345200216310329924102558798628456662151896014776012194595353616921224441883713393276927363418669284862678200958920777196867838355000379917749130504571408766632195791188741329497944031361686377237726231861100966613479404528857600670071428043736351239564440318788579540584758306066121213652181316605997314404551138277502774862529909163897067449025967284146787162595355702339078738258199463410814920796149314083820566590955165390965293338426758617798581990826266346135864594538172424421331836490400996287603791262874390205028021545228346235254592076382215232327452070535860860883245043653576902720841315652399640984387289148667965910732743597847144966334341307445266737727576220713199908632628249392095855443527418576845831612669312112607091595700200369552474850177868355729383506219165413227071505756282867737971810747661158703734914704031807732260199691612910901014900524478794217003239044226794942964287899312475838931033448819160329995470466052810332421785125636185703431389546633409544252109051335457591139894367226491156738949936213311194189250050723860921869885406470845914346764496394925068693394594464281175102842489783721929729402756145303802701346605756939675469394543270481766709212772883602183908513405014306669352368829779580253244808468211897940860901211659414820455744668078481808369289373124890053982973182164074872967774031589397820230493959813419958158497744101539343552198531876651471622612759666873762381014203327767948672597436850985229949297018584589288738149710530895633812836324148812511447918601264624207078153315381626939559247140841833054769237936857053879161264257695988043101416134488165243883733867007852844063829362953904392745642566151842819623698962868415819102055768166754538008304492853587821982605550651833266815185534860837810278198194111546162856034570612961339533942429098246671654602688278077049981712116732879149533540086496918545212179715368970456514325800169103882279774536256440043151378351335131300867565705680246208750638887446841067991479050525082266786614337949883148554530729125927196688359089785464371693672281620418537700874710283852726768196487312417596002497640733053976403832627554462925349243830493322077509704898435299265631096553691352259157532767311017633196113688394685663677712317957332025763013569532863549626217771194670471799456516941666803300539439710433746804364694820018801753274745551018798826473407311708274738113052173044507420607314779392617812915168393788512257701560434204457774429335396035131547881021427740435064519236971475626875104764014030498585677522497045873418101157002598228026281586895583403110011033501870667071329489240254855091636390705012641807485157492651042600123517416441190543439430921567011144123325183886581916898318282792714830241745870402580513013444211874663526514270845187305416448067112124173433027836960086888019515444381560921409967561970039752743487902468430364947733966773668981673147756451782838089552910768030627249043345511561999038113153468725807802167716690585664316063325426372930923112193549301867385237639262423758455204600615643872448223925045240296686762907802952454109046796706816541378973481324878960020965261318230979690181194012967251679513936381574822112638749897282378748451411736235196036791474552314699230019129451258724334180902203788879432408170648647685891703972068078065980827429778341864402455120664909813366963890983248565443285230001281908465640884988489169305349709430178679820328608600460628060675629694810045206447983588864601826958687658050152756514859967457258956564550867314622527389535070023996019863346303852209431558762976132972659381351599978582592940880979689306015374234087940878592697785812905625946274457580020774346866496934478727216321489979480614635908173915622686118148835296102429459414362243118933560521562908647715184525570393932913067896040733901961167243744672180803926083292651996957041415181725132781212929458342316182469830667355920236753756819994469409738271352224505852916145982837665117114403746783806557881436724577065272949299104619976154245995495268597338673588783761709318887859350978466277634622942500973745950499580463505268146279483631385451504992598581024099896622258753844820944139539193735217252404349067636291620770723659414056430993748326417895566270067816606966436537330090560853143635930297091434663839487716172161688101029065174002018255990175333206409205357377607347988242863325855929187211113189114713666391793553003588371696765168398101854040025290109497013059076761726685909883626741837296025070626218998230417218707811688888044529930939760569633011825420766275791123541439481287755304992482110619573818351173394241672044620104280888058515995716930354905115456686052932640084126177518297185349142259622435508840291562398428033525916757951445663498938794553901866944664815200392571419120210602054776313026188492153282807784187793121777564092057928137509973520194939616157215036765625177839864725743780998522677244765110027625152604798229407333549054193672999163331478176451526582384149928683604427340920530892934008891076291624260305161588772715898158481459667348229281609932624448846543098026266930644667583698496457543545797037863894480116693122461598216327571835750633248407055842765152113627128947224445084407706883502524415965036928646223821530983773905947185456828610699603875995734705743485853195157221866150559197770769795612100998306247119358459161069253094967267543115356590730557010880024459495232233586704308146166596130172085565738606759774584557437527581314122172953358348882368116945790271062468975174849636452186939123997622461351367956694851237991858096183828913295426681877680640653744004223686895702343254425947073851198239564249192799396454858413835477904273743438683199172159691974844969426451676406401627399235365655504760327144275431309466116818727704729515769780576023216560131622623936096586526615039240071363936166555963308668441806639620352834315650956300908095206434755088460575373811228530594027003975670106320757163030321864418111183047841408539581077793795810399176741913785225599550877078935064864656001532406233248152849181007749144201145745840602338530453908080823053237734233455157775746938276092945493252622022655617614813023955449000343610284622318263124098542433476611333830901379381581089802238280706749318020545842715991566966729306746092033755408281122299328340799759732515351567461644240170313013367800148843690167672766757449819573817182026099638777575629140405882455522523416475889333416353312763535574806280181171671046860722527759280886227180393471961520478827999411919652482560469735956109914605544195910194333624090778019003153690015497790439953167038998286791013445051370092160879536500927215758621710433993191582636453044076322635422623000535416065733336239698251572407881762544524618820400035198234155909331982667423982486307887022055157384174991475099830539518581850015547995388541518360296741925547208720083881131443221876333206247446408383792505396617750770311894987963244463246691458143198464562081424361641010057625074298588176841486648634740062282006697637950098910901693538913308240881914653194126637285918944198414897386389239333778060554266876744781960723598817468238919783480028743855109627975465348124678446717042971611815833674456683219352648052340387575459068728839650564680258733997048441413250947022920005807015254962199335252414363384152212850318116102651813096439616118806162698978770202947315342853097922840487967548389226233586434295184184459258907701759105077335283021184632544586142672634086756964500531843115742283047012023678766222323600354788156615270922896277898559525913241967447556397762783593662970339622853962626419777324927669433496004973083414119043838299173060161763364122390742925426825672341557454802202463493929323718640250903299356903868403677233999967979486586799980721572212222417037605511166152955659730745328970582373699298167156744004777445986477125763301227722727076177939619162586485009719545207984158845401609457012470543541834867979782914915044726382092093922088414980641005157742210608762482689995227484100353575942833422642340770418817994899147204654853605262082358349691452569543698358377850627431919430565685342147807747756978627072991867363300099339780878065124322182160910759097640464301933112450637114997010857196462919472520231370863513594871312212667432862642149499163405527612688316096794244584018896939610465614857003639064466179744910810425457093569008358657566649023978227360363765348890431192700655889228761822463235245738222032839174724165730223758215266680699835258974333295489368929865767679052103265177235398126705691670610528346246729902695922036999594567987285393726463827960671765975889271048756299642539973511776136905264034106894679930524779403236274193716451867346764595333062580717043780486207658124525442903298849876944788275051194682613944256146402643124375407196433270416951281323264998307560567827377797233997354603833550320913942844094651694526281622944944220286080972511001952505404614800113538084402271171955651591754805001730013822162166834823953501857086408145227414095670924346819806050012418937100862917822103733839347340437747393413063369651967019219085358596319495843385840015344764114087100792095644505913760894215275635501542553843334059584585277122351778694074961037346820275970915624472516096492926639597222537876877911428445779528882654628092898587844199918452302530410322013609239793480728856194902702250859662349902352012481883731261414033449020424311195428978227224335467715487967365554077270059168286864010589664193535092352878953269319495291998924874423069102721597390617984230321141657716895970755084293642190176995049095647900246411239088715778899739923710528887984942130449360179294082165956831943655402785236184597656243777437101456770775933380066593551997522412082521236121670930148689325161242577038490488838460988302159615095640309456851993846009565421547406362530628246937049288539074088111122599661668466986250922774786779712059835968197723882146115225008710123542155963590855149072624956923052337733264103162699775848240921939137509815642842290790588284885673461940602968479701628770873264136583020995100248057919970882520463075172673471682664003965544372577416428582225724949908718210694862076743089635156989996837424870442749457846144859934330828036869894874810062767323438439262612181448450707917441968172625703258128081738909788675532419887214662185034936670495055461802540129680164799084117721446140569980354403045754441440240394897176176477071925820263803349061589504727050947185227277804562381309460919365727193144265681524474889927252828329949853150366282894976300417168073477160987137765485401607221092995764602511968729667187495797957666215572367706338586559030835150013785294392852043295370336768918278358146785388849876616068674687806995812150434115148935808887713484778854909225887558600777504055052761724669549622142157723025165983974623640523292746192023516250898582407586144161683669101331560929105856218113362676644844112954497800974657840469280248406493733026839260772495471163056268615672735353027506520968323243422487470733634766662685121191508326825513652247072865524822360632752741077571715400160041340401102581560157787329872336954162812296423569748607571141082562686077796658429526153735915462100002166002545402581313109647546018987438753919278961008281072106154805725512179538987444443606135288756361755440095589881744936314750848795368395299880230089349961600703879647345011092409126122786341151239423124204339355071644461648100500948087314151923282889844053842602665326618210690769868613859576181698824478038433384932410226579951727647807074300616741797014603565372170654611090789737371930440436675955840170083947847370469183942793012670606891795593039149280712634808511031906535622485258355475209212497476243848024913295012363669286978388786561131919578344413012074803178009485997234988995527215704575351148611032756589170262418219643781164631501922590068208523730687571472410986056104665588070943384602666496333642067817301381357633587448899396192937699850396571085855210835722069757010272653798793309993392144597917346963879996930861585401519265270157743309427772118709601431575961024719849873837181188778344306887855424408733430215532829223774639989110637095556987081922665885177021998683363612133946025495749252121949491258926018046496109312555452022212463397808212699704298837620730404223920525044662306230340485547206487002552252547432757318572941107596356571745698096828209607560588454564523292812444358489864608984426856072568924429318858935679768928240258707640688954580474028320104659398959891574743746040306046071921618142849579223029748475491231305889901775154503202330068040216213793597196539597309210404641668029266360495720875955872367361980005616041528319050325037691573886255826354163550655901464636507351020535652410075921644660791013246780056128686016514791796998959594080769373220782305832488722641178541431587669337440534173616799245333377997665495964476259679005042577306583931184412839323464704364081573408665422451042212104618057550216730854039507303903224524628980638823899703039575743919013434776249562634246217365356776299455678606944994123380994453032029221781759558224845949025363262961380992209730003173276929037600411793197278038480841246376495599244547077408034253965672140674858244072812439143318520921246484118697177574538032529484159479365408301802560249511834114831886820612448504067943236613651684877661709686030629327802759453151680451760076994612358875745146598014378935401041148296144698620556656600818869874955764746179002150637298672206551489096934836992519769166413286578292568434651876625273345389872345363785930736635983570595210946200878902563436892365091873360236038538732943034936209465292777698429726157108912379978045412824099754588534396499785520449324669583093776240844886694698296767347632941172179024789809598374304519894802794360260434353660744088963167779687838165917893482509397664781474699494950730726884385751739976839269595143698416060542889245542273765629571452647178833855603875235436421218125038028930751426937158080370014518245985383804217537963984063962688804912371236278856899201164036075867757500659465763841705212472465870017043662902495303206878210136732856800324276543467565668681512643204084123416187505271340045774946698654571717078367478423127781263306151079623912271699469669191152904140637724775625505196220606698993133375645073772570614980899784413161990870191490471109881970968390411552191809411406942495170727681948542235288586617120785820136084014313535532609576555925634876318398601553396987016715739958117650226768497597642618459084968412741570305808394062680754505980611129061596165335080352985141586457678394689454161803416646762825893663968622401818796415959836482960949086316574636307903716541030873950158727761086352301278369356540443407580916486150021985483899566505427629684748959820530375049276743211012924490233256912249712030087979037716559990504143176619908408942350024263412929270016746764623580257652290809066227157262112633849226346712214388765316834926261853241229152764270529124512362624757752350659873760812165199834469188422435066226742244636812150146899551268285401718331726608196862054503771468466360640888969699842757421440878608432439651909906058496708329000490537400518393812887114492201934256122411932500562410719794839917082637375850610146848901119292787397883176848848138803359722198959349294478556506246012969283505916551987868549299505086131832106099710726434974419274993326085130710957439763460896546440222877477033351064034027390879114063635704280254178701874917686498580837565879687739425110340572672919949556289772774896454311877072428597770314349759310484580496960979510561789182849356251786918757049122673176770213276717613488324105181009081922835278093382493714293913435053936715541470932184144111806492141983552910447911420675134756884811459583624706551055058473231786082271679849199444763050915226530600338549139593066958174525314968687123273243525730038874753501892341812997209731583894050115583779214471463613114515936030459418035242493911677997879317957381481137695137986671269178395545661985773339981125752314508449349728064607744458507767847175783790897881396359736316632421290396152792866027421008743395811617243377898163112741769649591784108143303352658472200551579710681933348099202452298410592410238797381742720750004213805924872057192059426624995898590516381544555081634804591654000819581661653215910432113526729877470510322678560527385248466726540021874625065488330772164081512897446498130231416721389235021376338834040204421717331087261740557418688683754384520825414349794395545503135335355633972016205248648976742502491969106003543054829981718017896885880200551039976729335465856457386436296948073394658131580861884510793349606737573924040638451611550489452965486144770320138330490155389038957940674276710763376801618003331831368167609404383434968845096998827276466743997633605018861025570381914832674852841950950495020662580449586354927734128669580924659651216948481586956485725632849067339540469686867771131907807036432347487070539167508023063997970013983101940073561489563076680624767323257973828786447727679041963190873452742252075093961391230596112900691074910437359152713423931438756000565727778480318835595348346207135238733167479026120365620740530509934351613504128309063890902511676030189732965539138653706101476280786918901947055521514737888540528787737462461687703497278521223465909936615221568429082158496928961665392425788410523624462724410535550241404813254311393561912611425970730806390430295938038455794955762325029105768445913929586717794950277068034754355694097558436604738048698020897045315347545528556904777730160617583518615661276334820019271710920292581443091819553146044608670897192577309425479790410284501526325120912438764436498939039336323872197804074096221301881491363088430451655816404287930198863823933611114396713933827091804938464568337038707366242582482300808959367978958940002761931394104814788048903570408188385206922333221165338979109373043848271303567982452475304625039484370503638832799944850598228835239862919793620140403817717191579419164998896318243933458218763727373528618073703254494200154167939222261207338218654629075607972668658186888316335093865284759559626661219139238437520518864312846906464723470917407544455559291602188894035879602031705153428634859358560024374839459797669866983343728219767557210505693330263591936146655290660474338593007417577895905789729174959704119023967333852397570094717989573723307868529934986090121670032462851183208018050240004998765059839207678192775385516605078551551815900276540708741218615908482077757860072777082436389088167551416001278922349007976650260289900259431603760606303011072984296373504706589500307563815430836960378296290209459913613249070193759262338745323920316931724430280935968664333281914141484050380479635267188579066238472865283722777815526646723971305968141460126035032843872626644381521134325212119501477309000571345346277560318006430590419219617301245574204450220535269484818772015452700717223630737884330537408249974744484987620992890197690896045486037097312251705980449804278438803289573853077037115327664328235312887959490643892532084365197597943656805560608321686633688531064807930256012253258051537173197194339226217227144450120554360808578024657031310023570478124866653268509782388217350636079837166059642471610181671389563060020601235612248225891426447296261535569690976645501804526913536413925326910062174633384931343189613614447258989603634237739432236034862021141851072285135885757555095387113229360043073010044936128700357954415339126563811082572650460287307125983648042733966223886585211463974085107706243459994942380877208822310701713614455375259172480638704351146719357945502938088911615859566814719266120353295117715486877660497953945743059626880589768443524180105640141812734160983169493208529859722618337784607254421155081121776172696605617395584778849530758451055676580448542224118252344247659742491568201973637057278761821449153522992902466462116276126773107494476540890211251058180658415816763405352484660765200697015749582120857873438372041114197898036809974587920527244180867541074957063426330425507210200172549996422436936351170708990298824348346878655816268143929024309576510427607751638068586196094289140037343130229595757307463390657104811091465969041288393869645168385635689840339659813771813871906103683366350222908984337903570934460929578208049524048088563454177728220437000174308877870854766736485852829884919037777954313846472534206164617331623520101326869387803612633239079193327233773219527522515333196090858859324567058462760259975693491001533290901845584601525951251238965890833177814123867364407765389156274317077080425839305771249293985276790585460170552625872534941787718885297021061834327220041490687686931004923703356876808829605032969948265440258119235315329227989004646050669514911628499731985467183599697987960962962977885805022383183253110464630879782241059454768113719163147636268881667778940118370728468126651448011401406978316193615507687293608717354957930789557084909818421908763691577115800167096798091839605574225662458593090528198641766322156279838257212476850445459841875940601367726330337716685372544131269460097539748154883212045667404475131418252176309134054647470657249188644743491381379200818021715718276204973667890221867430681929845190423130648090016994959702660599737077694219581125700832010352674828215164702749303558151926244884315868176105539012974170136250138035591775836457186834922952693191514285425539814461729364145140692687214831272506724233522597362815858396841700624253035037836066076073008890275975136096852327966883044580956085004911909308754166308550928312481543742099854626429774390633867250641659286354793864674115383544843633064313465312939494190437528775833889261370082810680726062540248218534017746186288429628543681474877567692047869587522921512368369023814623379999304028132712920069228829365581657892204952442301013812277611251269640178938792636797419068941295195700968614951619236434089494930249881376719540964674775724403897693243518501064916042879784625167174605790749347718618835934654727810656997016156497451262667305891661798997718086895803201812939970283405911526495413371211732043829406889303989522861421592660683184669186974539859215920542276426430475962640287621184140429568593720078525410570024160819796834395536851045761505688827033194496026572063939959359873966492610336158383540676296127853007907514716428034706183950237601578514392358747526161509495445727559162372328718962251968726635138745569316031081201202763050585088224229630301582149383434666158557731603767268205440388638438282180234548511027904906464490095821846217839141057414227752962315205024850228931733014283352289429466308251682910238161930150474157167382760967222595496066955189355536220844833243414855858074420604022057393641304196443859127673284115669204898289879062369849959089939539691607416177862764800453042448491062203993662327284988602703263419974474081683899877030648957635375594207710570927501774880670482474990555964836171831337917668369495297149930619823422126454714212279370199402470337555216450611616473872890075319701100359566290551949894611048270809443951571433089457218925105494002305306837317305203375516814726390010179554537945927095198464160347408532338254676397390004131600336177256565299800648804003367363112070739534494919864782745354337967828868849616647607347241377387262835319179826073815679090165220893017378920052206021720740311876941936958035654432761893520311464418143659341131580936616733855881367237527221736036936313604380818739415927919110555528706461523162798079452642321183608147133835108322793020551180608005800548733431086525193826186313079546581828705305935541434436088185806007155988577811279143429304752567252544962537437730192737126610471775497464814093827654518105607162271052592801308208842323649422961407153571767865169025678973321199910178740531653240068413414816481645491234291268200685811599730490039487786478495026236907974591930159091883699416054118900803970379851186112692624787158565363896122666190874642097613191185382303569801612612490386050439458427631682066084911886226594660333995139661302568655857557855649039873471564238492292742935943763241793627297143698891294561283701099546936406320833544497554934994033401271875221652321288800731805683715920171006882379193919628770191779821258781874203427273434560065224726860562810007545738212592024155811211992926907252651791349711044347363078448378161337313598465581279144880976687066713731092346061258260025605175280814931943361713887864192164017022971944725118800117938516806532524516236979875218694202107528237895056269866078340214647228853801603526001468172455857761327191078929817185981759853503218991801653273993613174464763875346793747613064487024710205811631167822499550572470075194028008757234830195824873347302741032357819014138636618757958794711730373077352479077282543797626095500720559203753170017269103672575611638688552908976127953285507928520053368345996053747373899803180907302127449824894595653651679373942851552925839707325427834139982563680834118408486598498228578737270168155591433665550401813247357438283335536422044660062299938638291389862820507427906320017234844585228814667739476311118498930056568932260797514953882192384424310730387411770480354865339111283968729266325251805316601157114460864740030885666136978330342778197567197693828471760752930608735499027541030998667462137593570352853079036222214914041026243868525618047367594175224504196045569542321141852746009446010531752532785638346399260354663340178382144843949158723452048545278187199217783812539980426426784955575408205269294273620171709432429987181798358709155408570354361140366370875229871477224093361777366968330276767470909698161781330566140281356188389067562086810924671416139847510844289922566411942022298368653222072278890116484274900687015860314771622562951876498306200037935029593096738886482353300007317178692371038357656131324028475425207899339419309978700452709436413638362578899858506538517109977884428001631848981570248533961895676914996877796726094730266444346407282271705072946620215018912537134989354079062308690842784893330393434563328042964640377352345906017364557582139530172680654196871570274338561034059016850742768755389695417998536149920077573275704101147260561153909490951259719719962601872976667714882391316108483064281353206967606214247133418695860120115990912480508586737953987892951224278881899221858627165822531779440737316009810186196133844761799450449700941069020787163031352917247817292105400901494969651338668021009574586099117203741088631046730005421456710819132054856309658005821496608614657040234525203078000412149433562797836690383978884805461549323675840843491488086291506366022574644661407312294567444929838807096873305057593973005973802476107100446335863677892217239541314457625735643204516006759478898086412806216552911068002495671648123862627750155380705057974927950181861371544890225068737616570045330817350785430256690340632174547926306290304052719119971264381005689699748748877745097850772841309299348232336617196663596190907442631997990940121960347706119809367051973923353984694431577576003381484765665240518864699794688567915727873295851310966445527669865638208583141151109000453846037931904217448141386515045480927789311434337414732829025214921806922242248904600205477579204456477747279356359092455880153239881019854437760529112569883335810801086214721186389318175026847277431029781670013468369781523137727062284236938734272460177282379990539283041333292226610148432113089517111382465614091680113493942247464225042190873130643571230285247707000680813639822225139052661772280527906171143030214258565112809073738284549874518338331590827113960308390728098432331675320421648740827139315258949207694862730915270304817411221192636079153073191855131172019995320976370542579669697092904388542944474989572273941218522295278665710316607274089650735160570819860896971418762816724161746181607692416769827488199188530390173557758400420717901608170439643776142841585470972701314021355869531820137094177924826105484663188075485524578595255490033175817972150833624992745852529307537801413402071272262851064827864059790397651514191289995424483512812782622581634511041310226772434751340477251622634256337974352799993058077859964867182663801063782796956754543092918679790142526620743806182283199381267789651045340900641536925043424927379696628033193333176789159337129459641196624943519562731804779825982267974361966329176994600179121556935700300457748899792489699231171379392874601245090554785772061535398767997757654519749981204751711914220396714581057968409441177955798335904771883247670125603620850137105083365365148532334204767589332415534523330343255035484976989714595907274876401424158024548604878447928221950530170041723120029301972825562666991466145082833239499973384442534447255103935785038655819119548018908737763068541041467181212544377848743665437108466641913072990867800348190628568018248790483160905872449122759170864697652365139713289053091899838101270519734348038622015834126789329358316098483566744985580524042008215344105278439993234039989427048583939866427662508002437821493389575679918050562721480965378078970132933855484764195866024601208225632929848905832367812123397125808063323567885939957559812263007616831615371187466233548922586433010151517465610297049400204831498561352749652036648128858907363102954034426330857582876185783857493659109560498033365884818323935533058438161072388682417449096035072272138527220652073974493200455787942269532816984767771623553939132786843624229324766544740872450150794705390513507597130845746279641852452299684559962142122720042157710620712222304444013306663749942487356776409988902697239183596946015862648008674762275835121505177612726285629528413406641299990048743709781375226393212561210038344087942174510010319683957642852215796615428563482533130032079932349600940702519953123968474479570760352306034893156050879762130542556290664968575849731414032534643159214992689895392615381095751234658762181564181477405516799015505689478786539565957117204135942820290624007545703340078479946755716970790067067468723799482181074269168595774241479827230030369444388416555824052156985438301449197782476590043223803051654703361892311650304939723831355104986717513672873003924084594645460956736829939944859826344000462044487207567851982484030059770251739918148520289965972590035780113970519536781307390818212308119648366937914249135583697601827027890280130580681149953636467820310513186398314294369119368822525210377952755192625790352906328099303251335224736241614884733146058212206397781620954796807190297911459503105206728522303865101835661778660980217069309023154237773833363016297547444494153846750875731262185657605337690413308336452290268571598673532902281801467619818301783167164522029954401559442158940746069008413642492691427516765244989111237914143722341565995324819986803590713806709639066105118924675560067330351408645595159006404669734605032611272083204847451070412893946749980446513386287160050341841394666550633722664781275935743489920851215953849256170724415107182480938786426642886144225197433748824332219482789431882917165731289521135304026743694977250084614220568390397967680445089161078127331669030624839805144148147699317879425971246110656250392264514704078273781558317079238620256824813752071078538725539041142779760514724227304987236401184622795437391728929558942331630306681528123255806060772773851329737688486013609055440433847741039014465489095805622590242084637925141862822296799282484500819821428536360828965733691480847609598161044978657940180454818364433699881554211508019113316305184268486769423493369571151454394431936695008879936804873936186661031129232524850308500088703208795284715175658866750086692583926830190316547143129142342288511324649720516800684851660189950613420971355297605028911010060099889705433235009264054162197726162484108884967057334818871762038740687431347376760058804310119980208843407645234376210153174462518114928575005337887843929675097329897163579257476378120802272103243008816583468683134311001845717638598139889526555683256684900121390761839500324773610901492111334850832541036768891807356796212581150399627754387573410145811037899217743801773527468377345772270445637069504000279467777459397783987243627508064885329142484141466638213256502468231659573485146346588289183323668218694278105273086232976556767146851355702175852618580103449565938033932872965337127503197287954776774530483777616095868736142817022874343020844522667263382986809214623563043249667851059666588615366172147958337253884675484440192709989845324520044587903851523240206996238688871998857335728517698567096000285964386667809495949896591642709655434051460890007149171085702666209562251274916530219883010593818915536996634683250278421128969920480094044205653065685535532961211666224124964835065999886646840199576916566941973594530321777629190458772692727623092215229740240694342468336439759261127631733062813633052891736372909783324734475968169299917049421835695599951095985530686017839867626479352727785028266346980793487002366078555322620340780250021532545892072669948047707347916751961812843796253497919591755856540692093680553777401714376055796879059810738905450237264852323020624293677381467910731733000180153610215554969957902517709231885105223636622158127302613870133379053404246947259611856346983596319112699583861562743490890409083663450810849503341845992895939966399598934483349291288538397178873773421403415428333936254906001724119084323362191005895059232398472663531107874896635293035192520201002765928187645328243222562867297308593291546124638861390728908256397263676522945290066158867343511496220059715193520947731749984694755360616054975341337637178375102782753372996515422296525395351960873748738398589726263017851871950502530872702381111889187303620422075703381347641835336816882239200247648992435497318017576310518424690460187389415868357026994524361584433333237853046713853734763014680832868363300391484188575368978236470475707376637935009244073854533183377451019704941648580600416063715044392113135689330095812095243216245447721529391343711058266821699146845596218692139270077933747684155759952693843429195720024947487061876796393455467877934219678235924029921409949970438644135472767557270240034835061406546821633895491779128124358674094109777189762138353715221931196360205841096880831106326222731935163382054059275992437835469747729303296893137952546448804138766774619410198971153267881319113183871519730698919761208285845805589036339292368020112758010268325872756331892224226093392713872799964514936812826625164761867642389872973767123814117814036954194582952956713550233341925799382220488427908935874626429994378061791891592976207960640990951371097275399404014279466751433465544037277314744273827251031007223334911116512558936071506057327891901594405951202721711417369192129608558904051454948395671485873165653303877613927915764362790741871333909188475276000464052426908950798375184432789770119466593971648813236032119667779669002805148958981712166626950239737998235256731256861123663000006618635442770580952706737255042000201383856051413625924450892811926508593759398663050945755100245085331188650927300813218499923601147486662343478663470157550524919601717878642611046449930585971032720001432994232395878841905542866100722897161779189571822065572177520461858188284096467069547970133045812698521228217801951908695087245749138460287160481257558605827523035984200567437741160565189624699557168094297342543747240336728665295247957622545878064416301834231555599530685793116578234964012842653235755728829909632147823068139226304986623935311242101412551057260337532931811907937703415867446978119670559700945373118799073167282054600433486315861271018228174191570818215073333139861400164410613908748494100595418203985794559501535185115015686374460946908431667694922009060026632380602891560555654859212399938548631504734360730545441935677916523003880985768947735744941989841121301065570642961803073556853530876894402283927695072161978461397074404932904576242268484003075794081654327488436405426671385573378287791313121549792973409709305362640260866089187610377839694457060845722926311491174815381849198069920164825324001876366802441359612994356124530905325725463013779969872320825190175992292484739811717204579239992407531648667978243757674129259254682591118639375490225674085825368323624169362946602253573317305818784359958371588593157762397046152712695985835329056887866388052931936468191796951304689670607143627631534904823426590867952160871369929717268542652083124066404137698921716134924698760141279330780026763656728876261454836251042379847109654649123160797868858487819828116552084861782587867506482068461476826937441017588285749190985672685642840788901669532516514841496125542443050629361354636893982134834655309337857981491689888496307896874701845843394642492954903080526597502872191992706845498145416970494522575911288385851999071970232099960969603386366015577688139855419945322781666416669210180572063366606749698732092658181877717256175584200032430615744617089949837837829017969647536761845561434254785768413587072170172422243217611114985294863036773583950017967518979672067981016193306188368746406634067744879822708225253534950411140803104071012986621052092180045981093095223806565804932749012036259981917970610663124464117536307528392429669563070960468286143766416731392493852535460377906727036544914673910613030834162015460298599775565978489419366199479429859054084376357993898926314123761350265005282894630528700871242612727321355669317917051405302042357651643122221368816783522993160914409541519724850026245675412639844781153536916806493368676854869056835919319832220222820110876344852299064739759030431735361423655880925090397502094894194175292967386689128492726725541490441238692067204172784656807792635430019366942525257937636140718405461463417171369616665971362792708452070052625289747628850129340920425859352507808871421572503925315087770549320356835254556605002373152263291844123857617335770288088627622069206018973378078321785352483117804653741982393196493408102355758291937736168015822887052243364358635379550482558387636486453285955262873222903739458471117095621830315477602288319210811024609573209416957806478634916853452722140097970855837624500593993472190937185093068198824949603358619335466958704149050417566696931744368122313010052935648645917831989562579003009444533981166372155561178118405241414406621566362987470031747889232448272081999486593616533321081007255318522055026689381692927049452241274590790920164509572835772877393360919521326343951173769513896989901321132671803555958642697539298159459141823559164645684783208214913493426096580830836088991019903173017662014399364713174003298255502766515517688640390460735674783418169356080588716747264627959142378326765659731430042663945013033827385748772256748448524336089050464417348481457886944872503172827003412726390906035924643358262850888172285477870019358617605706044859231828618299183603278306205242369148326327143447281621084459856241097545481300184934840629347918806142703290803036521321424395036662093387476761301562241185252908117720461109961806562563168109410650277423884275484101061183176742941017199610519464912445322872202443798347330740638401594471962266227325718758740790719766196664626500118738603196160452889937403637615711662873622251392201257798423730856455194599848314900138084772946687839961769491071493250897526244381462211507871267892700480035312466774453929649246101280526250529550625183688742274035551926055333149689231597848773764044855375166679387928156517117725405990853524629053791659400331137485976936888114600140898807425366445568906873821222249732179109831605605734391570209791007040927482470991448099430703765346106865969740594793766030627968971256945348850105483436224415005967675635609671938219412233721566110272846035508852553399708086578463901102900900506404631049355945724351638152495490647109358584735841039245496678531660419831537803272547184451250428006094296082285106570726069006642778810683632971556649898764376824525699007762306227420853131883846613291327278570328912353892795436838795609694296798850807597975268240697970978543964583081345672939139410549981504266031157792740579162384866486719938756637554902803531729421944775578379757036803226559919002173483793052902333207231112294014876262023756672026975778641542647491178834731031073596901050224796482276033880118974167445486802921470369627013856704212374817987607203558935697648353842922919627885588680646318774909147737431560619690144647206357479599829033556397091128035834749493906469766978167824435962503391997146175173441944730867578579837716726022139458536140179207157468114875184362265911867580254613088714988461859440344257057268033585715909085469730510254960859265758645407106398541324561497356050645753723624784140723637845371979590788821338381340621506702090960383188446133819977814566422217214223907210161909259969994769837200859994189182595269890810867254633156592347422592149003360832648024140036911371680754470488651635958198985213191852731638747729541939028630566280560869347086685790244944678272090894646085622859958221973413899121571580513846571063678720927937518893171686294129295228843942114742047662951237389037654744955761923560616596693667245908877672303030719076365796195110695939901013238232476640442332663159562484153516854746838881899843402411698214638077217522471291621942845520021105634294875137844577388105971766781589407546350180521951697049509053021805097224646606383457844205677935366958624250657387485506459908980118936170169423562447426224049822801260347006618695894917333756686009577130296836284715563572354996688881106134623571996667072245361258161071959168912995705877599589619267152981745508931587961683180667647286401125384024023840446944909042364007124162400619667428640068544498809304144836119656822566219069130451560892614850111981346769094358703870701191895564163476472716737032917837543833026383700316926801307984067891389879990360462503824132862140940890932878526642388002765081434670925331710165083605285543811090596975775838021904091198716079411247021987037254635929101314691793632694845850106227135680268012378697296585728288075337644974150887572156280042876022206112336200010716092326448043761411863410551097868470155173334571005458360151322869652424165905262582129725188760567490278702381513332364774974698371107632849436279513897847397490590880225561419244560633709085727710557475737120867555475943364849914533933626360828053196327006336600093585872499956793218895880953965654834282658543943376496356541189081177431333676926187555834026825942757960369178798999698620802857019496417905567214384765522234380219572191352655662689878234899104335553022483683117680295319146844160704464819752213851238822536406383412747937470669941000534659752516350362277297020075219050471034225833439987664480510968628420732620858105753534758351178914352204900902476419976394476526333303685267731903927446981620695386763497996340134548165726162389989205810783106861305236894399497052088978341012073177862408572424702469209572589911466116976780298513425691900544231476606401345546123294648639445892168044133101052004543441365247682000129121521035272280166427550708961667803265123582143798722242867689650768371914363585303046140104273796130229758132342195805935933580423449429080911887892256334573280999410334583045586807515481476569370323532634056022327708004657752701371132645658907351689119603751357291129663182176562665755175636520293616098387345502645273008325004855071876415071997124317617993937370140234747669592466165418652884866223914176082137894510728730988527825686148410188064798423745049561332252291903603458312228062810313352832341186567979427649261836431660177080240618709045855142944971379531766424252201755402820566137856363436984151652390048148824227437614257096449439370765068226949655609369367081461682025787813471467649638672121882444274554840905370855561173347414509581978547117200439613962052695140017153628932172071217312863024978259883944265171236187814033706200078993633637444213388459479659711060663527094393831117656419590476503746743325403478205491185594498947106710149083094473268158188460531441226450147745700288362537946914058827762002289044510766504861244317821208239083113808382959988115837945416856950125489226842801897719920242414849156600484259755287123071864713106551165828097293944865384716280539844684642553310967414607980638472578578637941957309051244872198694787847872056950792948895472706831391519400527887933380339019674018160199385465617105123487236890255513751025139691861800145182360410628434077866640433764050650599426494791196704038439373414997571604519076393493865475975745967972010488583979965737001225783938286312160871125317869069554264152658058857982883549267927198783989990433422852198382619437854905150238858718835492671470127205269628411936424752977316245388202553328887255384418954595155191542424198166668545474745428727840459742224678377478986149635844054555707513982587549460614643352170945253644766308331931345796559883442412519705737230382343304484887994998318015414349588628090343007323990271935414666388218992931912617969362940040476106610974220970143160362737450937118073012117696432425090077308435990944286693515699337364217677479721891168715632691271682652301115327027138669632917063781786485628180937745377415910930276678210947447454953044444069432961407562908964059849961868670840123926397501406989744867864026426535484338637120982365534173296723337737721993944214258316895118920760805326710578001860345200170595435827211353742573680943757676980606497461903194629378828753118910810002981627678109727017246194090816033512527647408084151494322406186383272257996732742740264872589588795484625869800951778252442011093649212764828654435398297893120698699673407370216867491177106623610377659945387757998893434554462528442986143651009496269988530435716721504166962716870002956577199316938202321372246954421875759441598744123188082667791009665174669512045570751720836623823607835197968967937391761913695715805260994225179790330160249553638279743845897971813993848483956236925489984001874657549323441976425801221688002964629546018227309501208989164633149620599181381211405179668392018017806627516606316743147641579702057821576001059353503722099083309684196665884103623544972398751278002884867129334721409057168667198101672876879941675590828411857133898769431124797514944984352720061928180614897916941220161888640766701585319705935427082691726497596667511479113022890821966076182293545676032678230476074259421622036024795366753662217133408627362634582763683658999754055416837919195900130544952116406391552903916630126555338776676806668397299164956870635344607645533764675648413229445111935532675955880228128247987779195866125945418667272435447311331192116005336101119651697913013880426669910194073240853468863956109144255747630098496016115588235364750161937368644231541798553177330053451054150116476986583293040035476942049879621493488450202117645926159247535393814540455439559308348837705439963842012673238417720754624910955690734121138877823180890996572694007773709934987455773877343885386853834821647840406333762357991087462158482956055933185747809639547542023875426599544966161762206400089630746882286202017764667716564436363344125072194238130671164460593345225513217530380285012131025474422261444541699161461042027189069680846497696253460835316868145988195071977683153643864627918422203902963672253367248323996550486524695790347898774206841586361961345513042454036530708463708310575105173934699226442775722799574542842338687852844695520752330238013978764809780519270687708486361875682680829765723950731693765156143401334566685908878117420259565355042576495580399791502303652373189301992871253237907037680009614583949392655000914350049594186976802219113510686885459555854922254988746673246171349097154416977001705823771956808416112854470313287849180316113429444635643513390011523796375806129963067858911129628170217064031225788323745911086636911170116533592843947027096463068508412253723644976351886764429133591456941617945873950510052112300945257929892153242667978662608875590675656512856035916417117055013938507183159123850010124986823095772649332108138880501819744496286938906676805092781935290418678555296023128924740627789145848214381488303836681613277992880403963701476431280404532144722850903003679091711863097106587936164960650928874623841327820953149827924052245955437206291579543816899996743176858606726392190830983162114869797806382006806022934024602737742519674231954144746412851471644160383984841642030654003096337155010741117431506972937902074729294633252211530561183439259490556070097175137563994969705566519327208022694257742253491911981028026605155424276451069413640816194686245160998660252844468644628931988770680562932440309992508587841589140887826475404773597466802262308638359951984624121665237314958091013806924773758327625235238590630116441583381221204227260350753417065573810736861542149899572285619238802385973612630231104601506072957264671709092161213681814390951566753583584322282639055075829475856060720990818303261764362193643543098604434938049095231125648268970416605248280323120324808813362483343636405033611871668504094663566550291287608477134744865484563412777450762795745575344228504118675387860745342905258955481383042539512120267442488594251747777666366406399296619555879124657374838322372632128977317887769857627102659731057673972146730699427721235011881443685908261468829212833516416382920684506786091376606831924434865937279537182968643952192804056709283521585265874971025906579837309310217877647847647791791932560289083142915953750237882455499320004155820125022310071802380995850147822511540739907748706426657795471015611586151842295402282343873950860235727994694357661948739606494894305548311049052645580362049684011201059830089253093059038290444116698739294272145455845455370493763847590901151204146734790464922390190592976929490549644118039018645839228487971528144614674491475064206007656009890075581500271715768009114192183197054986091501893948814876054521880459211052561536731631200537894402473420858841774021168844407769259801859492941986465459942696982896828917194483258792650531246656708482882211956314768228326468992708951211539793630836802024437472280848549851541784479346198346216037933730826377150727210942390219678589284186609050617886281923197374385009444239784753932852889304860080248565909532391576239766730518219008118923928065805375758389567160326928570174538349347493623551605359334407479711587007496947306780493995055108821107615719711749100157538204525958355767800579967454507674962742703713091241842385748419740587221232967328967625419928128880237867390815396566665681301176896593559695790527330738623554591020669553473755694545973215509824510600696291185884404032780874931493862703062030293602684589520703387634260327674713943198998227558502533730967218900211247187029071522873440129106809727162329571261300728710109694791174943965156675507993567336422433321264996937604619898679522140508089310374317791097274042061206402965669837969032442310635796247722415453341761598210417429344131907393846000401283214706194061655007666287684115955614727935996336087683764015248093833054401422251527218697910317523669105316800973206682784673433657358325532897126878167659531789138732722362432132741041655971916004180569646093835907929963831567169464896367195871014270525648373027336445278818757471282702388096200467899933868337056677840891245335425053816474839955436477067598183552215375016367972089657757359720486421872366492484642370064631098886000282238297771348015634440600059162807674731347409312377565791989620300501657305300609211571458893425950516604433598470654748364429056254302185785655383111128206588185634542674283138410010255605034533082511219651760083551546762298419743725423338774500618404750308914004315018974565534455434539126028598844671802013986584595001723085772809169606259101154788896250692640274622365840388256243430501582737189600826419293638259449248616158659218241524606059066587953569177059567942046749861774543448619831411088170941798557154308276493940547262139580865146125780234382837548067309768981913276345774748096004714105982730900248315642465748805843079534411830666500562270709069421509126557115217441821799423451019990974860024550827368865898775774132119464966605458985225698317204254522918326986357976173069527058662883238291319663484279058901452041847824897576667249314271612226934063051615771662004951682691919060510046960357905175147631161504403717764018624954580764724823745972236109746600283553249783698182923310642878997330575940388058431312237536110186975820114680933778052797518449737393128412216339758579384170865828974556018830666270498792930971266655846454891497121113881091867308467646206128709284901952942741259412496861745290948661909295712197045229048232770233476566006775508024504456813208526082065767386925882157456591657140574812904358385227762080304431768948452025208335347679610118878837616860035405673068561008708501884655677903409895191895044969962554054817918954812853626908204747917319509819674034883059780863434336100011905481693720621627580998264804017816772316533890087323181026632082935346870048045706852313046253704791416259697341635435439187414908196124771829595208611650210016833781882168282970410758338437487546960966077392814279114459133816206731322978226070399716587833097011294724878552959528542695984402226662089458228568530137883771744587845676852370871911679055383608950346930412044029480209181009481219722451066285226348944677706032448759438167285000410617858513352629691180471845349970254301145518419289455983845230095132845449861407697540261616826626221876228309736127857238666049204483427047072005484547605962405909542563945945792781851270652464087632820223327204459957509007517903499309987488766141238659934877305422998028983820222409326177677502599374909321555441856052549434198457597326457355448417646187693088504521596661550395891260863094025185620787129564520938749999258955761158426264873013614848669473722608057925474918245969457455971430584196048253045475895837514103994733070859018544754243462444350295311746015513904221063919904318207170741486041929278390201603448106935301701021682209371360165290215542849124702350985834344369293672926935757216298210854613762530700838489524569004659933690911457394890963174968731120276084554587187856861446858718410935117916313044418217821865287568429928646532750009490262870444350211065641998829273906958141370397734737637119429609378697354027327704327198316965708010690686347575141830573039622911863113423452513690792054540508657728173145401310788398250474927355388039041372935659635844988249403208275488890900294138214308055038803031756292956213541035173704863360810076496443825147881278614877683004672132694972037373784848797704786630759045032953140453973596341334549302391710688476394991321067072979776414924576585294031328392453443992215683202376373985320484048297386791802896869161574929585144005658412296962702846494081568449176130460149190812924476351419031094832121567602066469955435058340515929028254638052439237564528874812359109908138844498414947380960241899133508876875402099232094390344402266470648957633733424056057315839640944984180613783030251019017579306862756468524573444764195105956087229276941171490913709712622973582501311827771211018925587074204833272804690219120201509087947764970863176871728168985936264486966325096273565983134230331339710347979403856314234592478788713339811600159838793813730719805873599196798393673145418227095956658626410545866279087632303900562326984277972887664315824882032688091068844284205510752793032150044537514846160061560028083821284005908563429813978097969583676557758771118617625385771739760078579041627942154906723845561318709525573902622893368601227299458233378143977001970239135502501839843422250439560690623233524433359822025223235811759039783433149777424270119453233124601459194830329208910607457283645334622274706487321982638724766691039570798338925116854491180628361640961595409617580506237091902691725013644395849506976808428742804962573258443942467448771592593972417940960312064102076842540136935908679086076234988332024083778563221430488272312074344501100166732812554761747139849588676036287651426545801938430478383850313347842671129489244506159058694017033900229630419421126144514644989396075196148811909094558000586625736943516732926148388586738869006973834754821597046925627015490175831422547353893634461265867084626362368961462196039195985678779273410777342225115023012356548159583371908881433973765501318974575876681294517329762761192854935425276514682583842564291204306403544116363538331332990601115524229679667068565189492439743434597412959582217833459019944408371573778836321014622913970803663613289553171527548298071107200939410004195291945825269017598297825156870240363685793881145278184958558317506761327058996142806549083974729236066941529950167217132056586372067112650825753065329889192325064741064880249621649747313219502046377261862282138523727777796003815537354644048332652119303282786289147217265774803888461690023092954269927528652581146292454148796022346045291349362293868359680497895088888345305900733859739780806228237755521661312944369606942640032171456547030039128968515293784901828816489563016609381707236473571835654175872931483924254732827397929462865147785781839287902949790102375704185887791573031765884668609885245993256249075202675381160526177846558705704294787303456878495642294013296573117616679336303227988033034162011776121156135187839137855718594835900233893482394895673690938708643269857474258772441788428205812131687177172097057865794065769366165096714754236948744249913858437471381146218064749030629287913302872235675935073586472812208614904150649409917870443978439873486010361898750028640521171203737198125654608029495843008810592458751305208375905687035854285502285502734223792622838938335445732121992002157593907786525410972511758843742022765116453149370178168512633052159929454894534827706521918725416630724150611928221933389378868814636446789192411211090276684862707178470695422785630433321905853551898832259990501406712656713258531800475756599994896717826282204528953218690078716659376630433012996965360404597091170347783403204237053033384286845865033092688229523693278067836205091468073020787526794331071826455619253816045609450742478062018567419017618196275402693888270666036606473169449250317756755765515995935301200260427991906279038296237157403897497607176701938466666617336760581572224543689528714617805530347408173989348095960532996698293540125975579490584162432990011533876710723852227494422971739351581707959121469391430682627151982411674490340483589696325781343083840618330874724613090434372749099028373532000108685254266494397058762831256808257994241129343287301624891334657852420316733330053896551851652523902285785640455920212870053070491242323747626889103520865007758241484983905625156965567197056382668017304195837143476987731029667970523128835623964399516423468230255740908547455066834697465597883467819025412576057220818139730528807921905252638683484193423073449360919851677437704589580436935628870773300308943894999881356717924879262734590994917847761479834367104587230705628922615112335524426003239212099250586407429725292723953110557681751180456187364806996989835186328285726502578894713574515753149267288728548199558342471823413882842457249148334058910393579390136922027202225088473010751191535094169841463201600931584628307282995067267521696004388651674884079276857741128503389502076616364257567611206864600987408509820166027709813827579631594700050863628271938280586160335088741895520817969161852513237788962595080570332430795162240250413147883958769795467065768136018107960168864550830272483312110985522294666736770840711452625273687500828305048661829149485497340414894912335794248288072060519048088960712150068682130073531344775103420629008445262032414469651751358813304211111076685234007866267181522651534796101496909476745238818556382051298750695531034096778335165354966148336001564788367003437478414253872506303316070155107382689949947278517467207735184932569089900381285184210926829507724914128440667863319005078289553162573131609249660370677440625990883409148518614207822090027631160937209988401437261576861208523511050476175126423117202095328439975928650180333230929053877481692437762678858519266925287221101464631643333668096609274437784185574546164348056066696029422113660059916755411445565300989189664459662769884107284202581488065352343012635018508331152343859731631983781381719316051273682080858115110397366954170685319379430968146661373439155662003104860494475537877563478989059847507350354226754046664280407489482503598540020482391678155013156398392368552971517604772421131982600853157368524476519229396778571760574611377124606560331336680511937293975785989827789605894514535881399282905257833818972554967579680650350245678523498953548000669385246104775595832737511017342064347497078688677382544525098933877343279962210323967655817433566349227021501615905972715177049127853034948651099471014736876687422836348244461352084590282229396385210125961206389018082778003090598537648945222473804959161434702750294761561077608079552578776542890118068228624360544835744793802307438563265417933946688346980929622327300786995340250946852857633048223469247034779709603985609904523353992028488380529013496728372480378877228791930965312080433401990192930874687718610894808868363783294127018831083390876082167524919518604514812892545013800434553933676681611547036455982300994605930720197349342923826405746181506469642164203442703323981600806890344909942245172874043416582638623839567987260395773592181376330937925626672506142509169478058142097254082363261490031411758285609896653073634178974907318586201194245551958656887136630529622387520561004769435056644765928541235429028495727118084092918563475276383372725399305321084808401612418195443838339070668981429134586209783440515109203644460895109510875564514482272184415009419730624446130293390141657154598562214973246754167241370854824757927101460972324687863001266302927648263955566342420820517380924895599544253938220653990807395013448493697511126048181691531584284637582765685957487884487899322897599786736317233329426675612740246048462211178708341690972909388942209914325371103996139145038717303159992417418890598486515102834464486904331985668567623607912527531679244083730868669281697535308453576010803131593400108003941179580148206880462479354860206680742562339447309657911930199981959418600115365862173887717488417386079605315786755344330488553847089360512412895820436625277626600552428016214988259374236406869871683829421073142108601786542858412871752642831120053199529868944000768544945913613510056461964631228520905439505903169725794078220162527297964318097490281670477292097500775846138009379724014071234184410381009943684768117536152789556863520585933357719585879172683084115205593765603457511086884465955002296576873403709054877149007172256000254041967711384230592375149196585330380806882531278940636552540138072440421954575059515652942153302320643622460847145542266290175120996583599583916111598692830368306885756933012754696124942187691621100286375843625715361155681684979980876505601147210295798138680059838855998790644770310384332250984356591743994034795142411578240477590679582290802213368420975314315379558678897459496130032313637272932083835249182817402490592852603728116483942741138710904349124619465906930120126742161578028865801695961179679836810287054739616518825992648930176471862204821330073917293449234713430149077209096501263261539949993996236812410778022958868143785112129700141726390502202059886552057862281976279903354841866464613225121835993405387896541709692919334494007622181938837138239952280108135554578498983448529526943104805644862759916421804599848706924363214846185701041627403407773376969679806513799584024274670746232715584517507673164946420609171511887218000256906165266614289979197885250229357970907341346183228445919639520100233568019498317959436281101163416864469338753524869675590283998717179698794804762238631957443235930959312844885677172562535051356929692622734805076106242782915486977699821625680433463016842501590130043867322241852820124951800688597321830471114815327246010424453690351595276594101893838217356809805912943625673151708602246643199725162249559708709627244505816254579336135307557941106460071091398651951348707226299894724955261688114773500168451425120197826919070113513955765780548352332572342750536430583319564920451515203980107060082890930460184115471093644332117709044049575385384499007713390563384912196761982597047133162034089595999970800035197277456954942953013269179391767740614220331832580659217700405639806815125808595143179768561895544686711564588968148995850434068942978808925758052930503228894153302027012923587996508970418987189787774730785703783603213085565846203771129725172680246697466218866626583879598389419768439733981474011681196085187580251895451564179667445785878884552703775656671326228489648653712752256242646207638745123976773225386636119560087804606932585597578362767394864456490859302424470399644399211744537043714413887274563860607923798338829512213692470131010774222394422068784609011517833179387507877878265472983116768207867796420956684577083067126480179647800137157195589063144990419601562022633984011128122219690734537967202043138713573024806530075429445624763724628331113374716164383873446172220112255282904107874123576098290642402034772458419147532422875476894162232653169169215003725394631348579439266320930280393808089504546531022828201724795272169948774462317342588750711198997099929925083339567796997770544752952154299136565705073202373240331188234286787802893994082613475764312352665190247709870291788109776953437884629806292791458256802918719601968249285011728572163903707821491864509925665388476941595435214179474238326867721218202902281911450532772373431471544714742928198648594189142908173954351283735172712830974605133408787902137867585996168849833280192744906509642736164773579324338457651028401634479204038837679007003131420672987306220544876179083696930137753770462078045231182973503495125005770151806598100392291023508654437287670185412478604226915967729877096722755066867375243847929822640501290672982537501853743204016188363752800892930857410075010396558969949196645841018583694132952912225725039098994038404748146273413940027835138396265686632247801553999603457947327113590151328328092197391377389216708931141894240050341978306282752254307682075019741603957100184597821699273789005084099054781994501613776390993602225659053077032977887686592704828745019642946072730685333319704849552802738693043910879209603702809394023651186135790548865390623168389769373879253327542778443903998502329031949941242329255731358256599564930926523437546382989694924689918844139144656074485142082473370635968587282989011892477745864132895086641394003475605896596583965566992998173043882399188089775354244296536676899936719775455746117414937493972008267575805456285736306309540418961585645560584039830285000125677385244554777435831725837077730879371214107967349707800627496969203979156019275336364423437938525864832769754988197221273188460836607403166983271726231232019986600920839196225144003899161907997782435686052360220789816269924621503079338304466652394439604189291616567851784222081485122256076083808923488823488532098316589477735230405955501773852321422761325449113325584662055814474421560467873255913903432647071138701033029532048683637245855435507244282833998693598955966792619759915066994604244532788856138695283692271468925860675349649814242510994485363627341978612580285869264136062194340393271020825007657396682636110004614774098335802348230367767090863081574604161828700431720568951513791627382374758281936073374169389216093443664627669664778201323405180707669334974869770663698233153460972747949492698881979034729734564767607988484250977647127295821761184377355424235124947766663451240095859148053415251573458470661395221069847653798122818871788440508984852198971944709891381787858020098554550911328298874503624825956955886115758613382981553295705617965255775218519692137742043907264406318833237147733334681651035953025683165024536502497544830287839667826959401665413478770131462122767980680154808261048149106203728506632659046246147908449781600600594929877972786413520820131983431122725006789432856298791073890763505284336009068196596077151116620675624627924568877942848403931870338561343703851554047548050485830959677034978220601427615321142928981599526250349517244097610686095406002668868993055712393692401784566058347862714159417744972146119608648853577172459901874303593392327600330563212363821249176357983008279873119858683132119089477789044034033706498214842468207256013832429607047525958491812018167629760940795661555069198409397322896042607146302276437208601005085713571192345078696187067503512346506755586612319772036451845478143033276416346353568592080101744544699901407066381557005058834299309082036508037401745100611287888789335563662951880629649274557403233407584030607723876478741627393729352034204289666763621406500320183911885393794930950880236107243084113656854992161023925563472054689202039262475044913603770445137288026300880990829515910239978280239243933512613832089578799132631678802427913819586368714458105231245515031907764835395079281347079572553106236181410275785255451112018029792785303243819278435305097677531569987869392420129050911313538668361035149770643774940094494147001763386978621091828509046387789686255249312489480137361467608793613308608036346084770569772085585265532337115196445859170807598197576752272518401418303844285841304307102535477597602789435744250612112873780770001640754579661742418042112631763485929813159862890023808300101169262007739649618262853906819784239659707000524376333537420762613345443351459137407445148446443484410490543930186607302009971183004789421827878032225488109944046197590101108058916460162086745363526826209947128546056860395445772899502170048842299230533284487766392203378653524062183860547112340717518523591588500083654032917865572605839389011025567726741118292505896679187247619949997000198196542048305376425955670276997124419285577641540762043449694624692453366522865855253031410446592482827434640775683828849765038266561632372736110703460187324921294359078872697251902322005597638523901951076101571769770988474806127370762724581383157934893675520138666160019002974493500731902756090104213094396779702611389005032669197884065310855367078957860176964697601825253774447755934562116974715085271117885233337868092195662021177449251061301569142942480667081568578159647812461166793058951907583384930153549847852352653252442178844199916648562281967088368563563537870522663943213449965852434706646594644791497207991669492480526347885010411737200640229566845003935519432832375415996129649588778958864250811234864723586756700891192387224127146009172217889555618366850233190017072458514730727628407003620419706191945798450305487385583495242251132697097272455374029228583895383940109250497974767022175280352049213774062677480302355567233990317996956871748241628854397685201628947266056109072051137047986456494996823550558655225555991420939392321789122749737382686012902461264494626917637001426358340534640087485773956596340962755289290615382691675634034828424302127020684786551353147999011576827779455053149312130685869267409528682375389567343283358090088076402389986866376463575173446160112396033756955916695666939036223397786733566890481514835329070283938110721480338941435113947535832986538278850491565951939230801773223552195506550919744171962868114913205255909031621377329959513510624181595266827468421279678371252468411978049185482754381285463603359780469933826476713451538902279357952493544446147527094868885036697012991016121540103335769441897003341432006066061758312776496645370764127934831854894004129713105587991239178782161905097654683870971912290796599597810071604031269401240753538051195719842346629702623829242800643331180140553674687736954943967376583419347920651483545891947811259925277207176316641835428535972080186636559986413051458739250148110058746388031981032901934282196221301729141231257305498280934689410857800272004752947879905957904268790913138687763859146440225910487254171934306383074607038473225409734442178004745451133710662788592730037412983924082189713750483609405054873980530477455690079238099266258396241580149410286541516313825672118575903991670703589417648514812737341984945841086023065948749721363245256234123096773711192543626927982406103482026063029528012263380294089461320166843715396154033734008759013694164077774125406970515807578091133288660300574255116556227509448019565617390736649638013745902334835616843879909910485345197163424507679655124503310752030916899224473681365879922149346508057377410129565016108153229779208819787786948035428030687287719572347468540500553661051792162677646512927732270379300758296585302381894088840607460190794975670241259818246729535815758462240294942783194393681394929813505734051283506951980699559105277173899459937101854847630526881204065862154307985844384123416263230339941988476650895184922257226003641020490321540790134099403079143029368557221788384046342928300142423284675340105476956828426747860891047569751723880147935346643313585181772987898214504129274844811852518662035989933471520421740486036727086855811455416328588706191151894949713528464293795382179192385885939018656855877068942183019152425620875288716461423276327722388149651833847495012131792185964100040434018996207772587108401156002671512502868820210443829888287629904068134479803911381747371597527314811250855671568393856373127695687859986178133079622042623998148442751028650593107075272387583028875898672284830775337746380772870812219128610372014634981793895354448578635798912427737926989752553629923484024189212353759837601457417467426691044476825299530427304937442331923081711096775325329027650040417224647079591946425634654825979774366238509243794239525524684403446144709243625786876151461065454193378539600286063408077314284156319736405528640588524612070929250312189799072126236019341565618795312734328517346646762190165080514321225878614536325677495556817622287655361569250272767350469303290765313450855744909459233317647719503910238275329254143486400099141621953275139772502866711684374776030210206166642137436414444315716504401683667444966283113892144257876545510959968142438026995009250732327046531665238812009514398747890106320676631830938782315402316923517400198212088109457794962842216612837903379053183315585074962523120687146658478249093954460815704085660003298413318060238081863888305226252076661088233352696568299240497451425594036223889601067343996389541863737222700582556567110867452104819663070864852629031372837588478267565641378441138087679476481074767361562348508175378020657960763707359684873891545137217025120949825638317184936090659107352382173095555074778141617090629365924931471307406211949179515272426659539054438503883158046045836517805764424238945941574443117086770877564698984333228008770115162070040423718101500015908844941230277719767093253827947503343903711328625675736481415653940229463215539148570539125770252071186804102090372065084828513162698223175837722830431791921421153992963595341128419385754757843036722925214654877346267602270162096825882896996749136515463271279534911908028501472755955479011857150092561557574692244599175788055924354720983293912070039226459832306613755388790940186797097233785858214136311523402520686181890909407553717248194436765471090436848786880861345809030986081356098325965526068947438322218954782945512278169425577637585255172439370582160353104603233556305317886730753066786867217031080397618106697956296089022259414573919582450413280770384877752231103159805749322389686852335947662698734292836227390203280346297864931798765454307006101302386397272700483772306672821643728034981955663535162420149804696168857419253018675363801528047813600517916066632885955522596316640809405598520056646879343264834292690765680280240334743993854854340077610331848087008176168360343423474067480902024566735224488035346374840567408990358312571168401663854765434457361067064194064715662435510013625083257316818174356103452079801627159049369348898853436333472909545413115318869307838329482725582700540155978117066008861240416862206866513434483156003296766611632680402302808202692378440205354068830847505887165635572493695173012211476759566711462057272499906164721535306164997402442553573368967282826572441921835849853737917577854516951083587677993981238623387870671038259701899391681131212666779480175304016694641951786212612940376854230997152030037357320277877312748316201574318894381389609090334297928055120205356752263462388256107530762066389347620792323410928690867456474178164535029403090608698896629251696708135711624767168015489962808884288743019394332883911366221521356188875457481492207321426264243323426275526797740326414980196329103229146594896821364882614794103810118212630501268092999429179775013740651081439027515064415297195400017776371742390323402897854347739022552024329388554856247281150550921442854639173166384571898301622700052060341261306111450643883184117963896087715433959906381242683952358633365960851734215242080054692120276789540063415614594880108259797201019070572801149963658280439848260947811259879600790621367370392047858096650968305597874689346787302933083552322289246345387660554010988869350269446948506580744882006160895774860848815632463452141701356635515666366557531628113423420906869882997160242111158202403498266634525277087902505661556155021709241089938261439111180730118064199245209665216411583557373310616010215097352864604659171498351539142125155192354968017313008989160953960168007712004567124960150213593631646140243428817046416420659211403824568029233461039666212609163466751181100888477212160041852477713206664597255376707834436824414808128854301241711167500107302996381491451222495672313118278828085996079033443708890619311813875290823247155824000018077642925216572937950211288532493790489001168905161983162419597013871328099858992597934137619635016258127469415882755475018723367635168517225342577365169093634308624663265160730388105958089281662076363408481529569937875318454723235794842230554207409544413197137889715744188111122444749877386905311919362081297348157663756747041499039861807538946481847611452146083034487724517826516606382191399975860466460759630199775991247510640257344007218650580320995127536270723169520673554950656714818847923309906276722801553241049305951036721875801071252013429631575237557205277962481018817125133363636062435298519426089512033525528461124463953461757134644084489241265516088128943392606323867097428578052308715626439007668623650485417272630005764029921877617598193533702935772165756463280931548362508658941920702721525607155412526600627464353016382247380240560416290233916705644793425279878589816137772849944687466715815003941000394163480114145333383723433831149784172600926687041964021691491286335905327992851909835043921095948982746115226686528421986027281725264575387192175066835270861617853825583432774513559219186763989397808872987700224594008607234882383059338660058865031249575252931429696802443206829856685710965432742450844674498143609987947426394131615367972375470020488423846779678590075077196230269881377714455245788444177146935682041032350683208338323653787510093494585665064697078268493604121400428290234945862324622161587479845223582838684204877653523708955969793123582811415127945734807079973777402600207830843891304146566425188061202012266941090468365619970263460143605864565899142874875798163573888820737853845825610879557313448708880779604948212042029305174168639045980309655301162737290299644351371212726327327800029458515791892368570126450384005111032117072823487402253596826578649606178304056119158301913594543997136989106354294950556448900733461438303365029955631604215606070156781517695635942594988379717075060448578637777570759827495617911267025840332545183974514744890598306255921592051083253147392319629631925394972642437838470271466856761024264095046995750995248029535483573502496722772666151653079315518636656912271955339457047266390410722933837183478805613885378388623557317770360938474658596084709762557696589090922287833161700189409472229568552442786275086923478342447137130620834435680535292240270611237793326679074728976238900468381949850440830029817872854299536307015408379086274975072706638534265034876188581155590369131745251157522170686737150700587689984436040733718844115722643484396343239533393822771922183219047908922716624354767285330306096185308506381197305093966470764215414071109987843899090601234150357768939347846929232236704226294281226334653401418464529880545175611716272561052556054025713853302409950015644149071547755862964361734191355231130264513868400612992527274132736465606267059439402670041278166659180020139801008703115913595598299278597856394242885989124117302005451728902082377755568473754719626842648145797173872109494260548139202841225687333952929619318466809135689625092511451907354791505813421597211168413434253598799963534422288591130345968601847619598378901282508582712447235205408606192820107745513996699958923943104409566593032792970207219016443634741669412379923092144829982059446289501443909535415536694572546167999378709851921433817201093461506687819577610320510565123674881280339687712021845886595274007084657209388227030661601981792995467859443475616212565489101786087129332103708646533922244282829073752200969118574351811742057801138146983796868348186182389702521114668304711793983700696779790191552746433051995383142984095762274665054787311860852464784378941495575388853604308091032028573834280374024053652893651536748033972677092062867838964478646842455700818480332216020175817641701704651970879224922715409289503555695792232051049422869453283858134615250876153397647198178669746254300162218992636169577527885381445411828562372233205085230672824317555330181375157976079756366769293019357949459409615175485965799759822581543943850141354338768626993914687105550834188906623091086342892975594233660933741907407576406053606607261577295661602482673435202868756123445257753763600530262486434307206030059739770618654151168566332238231866641518622757996019307791686895183939958227796737522229000778601195744580988909434711113120463484389587948301082146036821211002565803847971048150493519743958488568686782334070893491781275500892397803819142501853876413682773506673156605301187704628874494081414253909388154151299079462908084520723839142963674539706471724283085399443451161592884320072872982652898019456123177529367393279580845168991879762049249959833060609270972714229869666562956913732488643835357021166645756854891151065786077315751307642579014663796542080015609313603579344819245143392972627111687271191094673056082837880095158200711190742431128481407463886192924159146081930279813546483578868677011392058131759210138234593326575298026398124940521131239953681870968456754487031287832634986991001840576410366329724220113451009810707353811563458570905349452266601365122679968932665066224142806774858068129150688464748843263097445021973837025206420407302865951086211062410450603947650759786588470640855345364462321029339289087403604954679892489633867815940383337754233945799325133997292450605819900170726492549405741194880944646590373223622331970086532997816047464458138033839942275747513546214671565447955210541901853780060371941710642621399014259038549428964706155563331143592802979303958736379908023398165468561655610379117445303980252005435667843094052758793095743261161096257963138522862797479893409390125684608370286602094404010931314244187238421020508455848827869511985519523571117395828917668439589031909471971476409802867494291741255585242649640967924542191541042171004697095130139754363271255154547016224633941062638405901490732580353120603957170194835263662030898381731182750367612385431676884267226829198978608591973822963144297118391199322629930200936575886424037928093154728859409954774774223965055897622338089390784475672851308589720875335954593569574453224023567511325659498602852987041574707098900451127467442403275859020385141466608132443314714975733524449841345091326605388566361648746048026888549800456946207536906414733638258505449097195105825827082684825728082688232959275012711796717191455183979362502573524333565374456363708127238374328785975260004865515543709867239187675134249562791343282186244506764540080270517102066457015483721660634738392034323185094004948050168536598932071218095716178291005229383912375162077440032470059409915925974904821294285629208120913478922796578519116942016497110522681644238138350610470711338245378991835106255355133253375273879971764692069313814992622016400608596606963064834839666202001696900127897065489702642187353327663357257185744434943571403718679316273926832502845460037521990505247868734799556551037910643263970320805627535772762044435990849804037291306548561871269315896457986168424704943628379532849809637125350073934951107066704322745837900934123846240790206901441062061981708513726613414829492897120128004114788977450030210370048868958417828007207638140156167718742432298406120099855537643231279949776908322191224803300657482587424726270531600994081812333379228544091733460674883439181685221565560857509785390057717289179032234394256014295673322957098073709550617273504174014537769667971390077150560747891039896774050710342556776251993799385002607572879645247363976523441220940056770498572915660851062643353107051018163927938567606998512000976132099622923451945823941891695652947003080412023176325420012224733049215750706583186589682890855714601169428937476459607349875355355558247750369135348543466889566429548299564313852455292864099170975109008437392060638403378164182100051305028916815002624326011525053023979202724285125629900788553326011768732443943425547439018599774465444033883653136620962495346249068100489359172365941712996790996239659998255709916211986626774457554269991125091926869337037078058734438681112935997583898422998353546496176258062599305686043976745193336335864726620277235099738953154631357844939732612218200668133392742553045396374889939180289442336571420973392951195083200360579048518914198498942262724414356663607751099369993674055062955450034467899609262056131874108441480830569014397349792395187714387811951006846375124232252709547982439920503690526815111437893505663882422105963335408635454290905531772846258142452255425408797084854453048344811380339170256465735278634124862888690201426331784305872347240925893651451983083836502394211872657373633160601856474026385422469012742066603490940872274390491318732350470307009601007067780037874749684183802588288985677771702015003153504833838669906649787026111145828698699046323769995624547366830794119512209390512848357064211175762189604254616457600176054905673299163466369545443321597470635947141470392294790832067096155893026169565321422726138994401700340006067682500249664136281448486189519873993931527063274797517347760680003213612651080108053915912262040237782964517435916639755416025381165165061288606438511963348086297897845404907625053930989714941357287887011789757823101233850774675357894348156637539648821265051768642887798700631008803575059252658723513027062692026475329625233295833431299175290134151040660627656764429435585125095961953485519333685091698458130040233227442748505978933064380246748106699195880392297134701660708627626751828524851110418187298703907622470410063495545130132707429221697456744896545304967919093496764617978349042488387515546765618350435881966595085455768852827198300283753887718565036805012967613654386057627622432135636141457005074861300160870772573818802080343970113743922694223383794724917922481003225764404450692980303670384686908266236910095523921052171914981498031282872590681804961325116894305171749903693016129672586698880961655727640849305365193196373507412682206347662718819818874029754081976807755594413231768229004558533389264116140107754097126004369416508788222916423862783032772468860235940181098397592476699822220313074587323623097604530812009253264514896737436926524859980379492099591550678771603557355408411088375952909999176539585119947644312944735373821752384903219134091511278189037350754569506382738702688830015188956087623094201321663116170743375466001445177914151037894314285702659897257451839113816200618774190246756580625736468307883964862860306724824105172305273654028348710234077990572513146200435562761236452589708511236152286007652449835893691293318649783980992036522153571306832275796793144120284832037685455071049974572428803646690251390772115229966560711679511253274190789132348372034771366295325561050369242789074232905688105883224634115756879444453459248860339021198484716378802925500371850041178256727205205601598129514314018701261221159555747234379316540325935916506569416189312591074231387995682280463690988209567913885762344423589170555462640125994089847679911979747881509046683010325872776104007482652251427717739696840875034395294084612796392049569980840334236659027914578890397156874355517077514038868511017678816118591335993801466948978507175362042908865561356189975405284252720298101004865090992693793014839470364193594336847398090726337456528906010724174039096464350756452580648200324523612139280535021531542994734775224347977095392062433768549713496057964880695534894976620358660692344199769691160215801240114430302911369457433638691549458705318733804059653949362928269490156413405718048015471914680167499552842399710223766326590979117733756276082405416162270231139192723339297733714563582496281830458425250367693727030535018789562733150761972301825428553900660289574452371108161874572032229579003401239925839180680339589464983258595063639638180748608971102204664175647590771391050710375395350109066426463902692444791053651954937666123863461770765798513162542260821761162960492300345155042119439164481864548042006038452569713373267483006926675122153183434965819336618904954362680333287640208344597514814060377786714472664214048838891449290667610654711248615726112069390586987191957674671874907576537054085264026797443473927766527908444236937312540545164244742330218775463456118051613940380604407729719331427750993429077773200841761906428116047687021605981309148099732786836998958476679312922727021999119003097894287077624722010483738406452426875857956136494421245952999152812760775029638683855809574067030601146674339891074642965156039013641368549417441862507813742305202739530256068951556868475702990422449043287806454854188342152220208841976175240418287417772549723993562138160392986534855227514123273979261899078107213683397669704452072484930740138239778343489545955726785075554866818522348497373416660217435980325114619771701300874917710009885447385493595206340524365457957416038333304321527225834200736901054973711031176570482926348323899879439915369494534118632981403444440674187471384608340707132120040119730539748612664250158765989303502417123415565565857074701902159954274631292899053621897557680781411002098175726603721240052375930930395143725702537938147346640463598097913699460040880155621507271238131766039020651498523330671229953404084138204891291933408628323406473486271878928277347110856277658109578227899701656191444727024116141532352585791603357080623584529866638799805932718046990895874732226754235557991526426157779672356613537615841765191487926286700324304783359614303982000940301340227115502380291909550585599060477976284326374739297488545890751911743260288751620471911216409596617269165659256229344073038460473284590331353980758724550317292735004899071257880349507351864270850094145275237649394377932472575828454292536585215372266539484351677551990668293996944252348555808009549658757575891546102163044559889226055516030363619470152693596930891805017533315894938099612611580475938826126510157911379490521565935548537688679502347540551258756716016686204708585005940146236382473303281867212537068131403498450587238474634105224065447030166146584524397507382048994740852272382191763593805095355335744203809839544726384076878127593559673538435795792702342806681848953276148924042419251138295938353260894629479086004669128066703234981005498625915232846847495312326156732621563345558368381176932461631875113616216270072423076883313887326712091663278749402878191791515187728518477478016962338886960770946678318040289050608504832534534297004173039320092900693327549743811823232176226858916530300169245081992021659597273299064524101330890953534721325255439833514541090515100019261236797058635243234180488848505043534465864830561514751480163396064779946322237126405286034483301419692217176444229193342424717555314703876653916858217230664358457746325089035776272358510633907796299745502061492275843723319565693279035477301406782185637452742053711479695146653274947464429142284884494243586693733313559962694155943298161324845731770547048919479192282154824594706897434198610857027764539142590001310996133467511937773592905989759999786732474362333731983971423621328401972924569372540104114260029650732577882878302341005281380745130244052045021661202202522017112882221740629342225169977390308953188844853797828426657145807174552364779585214003160805358129137845113935581861200974119065149117089811139677333872178278766756878187763811512644926571473954633781809769974958492579116557594200207604335455687647127821888431268801812511187374577692887162615678022933206983622140790783151880519526337347959712494372151751114315573539378664336652687730708130942773463357833502966828584341820855663332715821985723068663674933873983738860630723781932139639865627418622644569396284474875962590142113665397732960894103233208013653142368767247445482020516389469234172249815772489399724031504439827338686372139210340638675314484419299191369324452333192179106827321986585378447065895852252292343807400081364463800378766163506675514716964705590375715595370371405735243150154505881218639167949929373147292941617197729722928314825800552442952916260538005511385097814696673195877921730859696870100812794472335478735385548406879974193431626902029717857882271857826483293238383253631642808311084340854236693669342047575952600334966992637165859123264380289772054292056108961836938335103285969185004166728459917730291194812800966495504729403852765450259048304083314782572387335960201300832508649104876126557259740724079493838937086136175787282945270360784489735942776978172471375344885184484725440542564361523690288677861857194999586332722861782619375092529869812631271927441535081139381364668269387831996622087401359902607962136362259605446890996174524035164413856795377862814159650060001359926024717156487256273916647768200702584264163946884928353891218728584094778747060488919306784502467820966179383549889680581384054197656708383524266707694222295271168570535848399354262510118903856598869926047794887334384760179013935116879446836886148882677685009603050991210886632636968153760706896286984681325187684206842468698227812396102321935294617469243438702913102269952242237692553661574703842948274721101688876079597325294367624005689326627186699867616966535641129324387379972807709458584494908953361628932277202005592789326797214236332388884698827297700059195488604693788233297969526248200233753654393932674195622027271593149634868465406659663237309757521164126678566290280901734444477505031392177718660568790723562539425045789873976070328905254949405618549322256482583504415012484202404674072808779928967428146839919189725681173362028901273226461581376960715125734049284327303420043568420344925552867297807815527647013268482193775123910349449108886743503040370960869718936263871534563432271608141616534269602850994377386530782036365840160918772030978454233348082893604607809768288998204328473378463488963272217491719497465318535224358176330007589059979796836727892869101691950327418858915308034731123385587636098035320961452561245163143376861451413594241039799206015526367067342139745127630395446320623911024068324520060531622639215069867327382764115295249527543286402870138849146395642286062736140368027323723673068953203586206079770301073290974713561592972615021362795619483368612963032838137999798067221053942136373753431116012518697329704478949489908995487499849751682418592779770438388822854110504494435917490109065309269144852987371952817914109901297541173535798861086435183909615090827036827645989396181108539104367117999260482786998677465282574366706202099484534133327079957122617139585172254320607489342903689831753930616117198699769097102883326586495040381701404288113350271130740686824332670168253155432332417371363095521380921877840957113994033718840218848849024521716131798016790220656327943808648684448784751489691300402650477034769780957412757759296418606936772506121354312122834868985713601608785873421652275456617482069588175512142112490421700671918275023413544331366422958473098795285095653764648789618751122179371086861846528704664869340188453139332977238908142467520665152114188339292111874256801650163603161939629296302807901451326317114691548010094051079871481147073665454550949642160441726904737574793104508761349956365338110743668417273444826913542695692459971982028077067652171090728474786956536953129717097509379446732059707745319230569919004185995860376801268511443199382420124256999999856319822234384095368258140859484401828471686871548382352855032320449897700980716962663407662763024290486570892046649097158926703361433643174728059424912466128531112285434099783624109083415265915538357529311317398009045372687720475511425522328290964016349311737199750099470418777395730563198112919039527431131788863030052181130076548351081888476897957262069147426520117287551272451096309529927149588817862221180771975684642144976366482622035542783284423844205504044828016522605895230631186951706341386457333424493121171705403905521658296622561000229528504094672938636296526920000639747806642308471695381665723221383217591827478715307888528983931852735070083633998529156092110798603551881049995676723462022120379637857137792469202197647257897810358715917939227189549732656796958703737731177657609066416093597686913071099353690285056389829290126812490398793871605078904896649828154858254477906450475972184678009495221525658526421244247550875478189177490549131137753114951709340147225012528746751374899393462992130374658516950034903861676785175882205813478686503726942575424284404764771366940488770324132283752805863218983918825761824521823200849910383369647751769729724040243331170923830495831123940200626718377797266466468986560355063097539343442062388482794319303906594882596622688475824197380827263187667679120060448001018838788499053365913684436815108558651244752403433766222057876318749201554945442434037457834390164918353670123450800171012635799156150962518099569198471444107370182218202896093311756373178717680696998855720247648663076886752983388809756097285195229216117206091130518208349791035102582975141065064117099825485810151503050241204244498809871741920325043947828549813294090601802653528367195749197068996388184491824089181856576944837742929493006608132116229388628851992793838604719806124037582851239834457993568901055885263086128752185924374993332092080687155102076140703592780604047630070447867539715873679022167313982582746601754378055234150219731190359477257258112441662336601240374234071515837650513569718430489594073976156782719400173204629730564713968627750986085883450453845568006011925889457255303692559750276712325022046350324202949281059172477194117766593241349270132269429875069899286984659253933145928097269939542483895926488281206573319505998973738214993884360675356039853240908278991250358201228939134496965575457748986401935469418497643499481353562655610334636892019697744209025500101880298677896318832567496015099467885215334835977520985378130107490885423134660671306657272150354877988489880899234347216868902036391532310485442356619003739382460222007328043407615216982218395239708801694291110800040730421416865407033228571870941686175510295773291718086310012934131816397745119676189482573457318195696742011751151538968532710306447536893165081667114897627758708933363519220837494894099258628353973103324742777527306841816075287248056849312108288085146612947479781033573691609890204219737047204520042541840801675467295066687278328447197753395808916685887549703917725647093212441737585602034752863785185022848945162909657697716848227192268917643415028680130439712034009208992656281514523175589576663092337461427693584041495336727329562502609468929101408328230313156919095794613453638210874281067525177849612583968899278931165702425989655747612732118656175516992813144803852621578090115617302102423770913214255797027965235858650843540674565197802789191058244107632106384920216332050934269180407454614860478604401368110151927796516207029228354287428316127826047686391537226162822807036033535500661731373221446167522446061205380097952078901271851216437630718648965320956931111411726173843624686653440898943448339345128291057012692844158320064431447811066507100670899109594747313975888099387739094037757996163827191147930322880316424322703381196791668007197515782498567211923868676906911532582040146039346644133716111593660954500452061657775701209194101168379782618347133567091590799475872844416077062573562201760211712908250193850830507755721344827482841498381418221002565883460923902359605513060336484844060775993605542577896810481058065834051092408540570222337545551514319407975376229810257078816232747168169429763517282027621563661680630408463517743309652686768325530408308780636761465443874941471480447312822165477795013145107699451476421334622693845042767404222981420788497246511507844717716701576929520385973276420259563622346331318926139834414870141229072207804400047228503068929874066845985418035696512419463195230106263713668678106479322977713405261205472523284782252551732639613790928898771711970603650055961154490930248852741557642566014872570998944101488571560045623754523026957122786125216867375564467969010569045582256316951031183889328837089895953259358899610838025223018070998744027217299419198886403111365453547059587841741914841200963777892620822320386422961256680812040430493447216937734514929559982571344955256172488968551422222855857457457739900796636272465606746176144516810552822534931983987932428319665983089647300200918408623982142135964401295339943742913485881842022712225455428435135773431853683162039816792538408536449281100465175107077896661274177722008293501745017935275997363348943002567987664250807895176432984705015830644142035221551291582730000253387969004317161085882969727790055753929474392828479875499498095379116808933124186206430107864226345529188077014980636155665352526613279483471425525599491633748095521654666293977988671781938558435632285220062919840215823853292887124544749128655743855298317248306609363251554847840251469495421522961874298124946833051220263583518279115546545317595224983689476862923515352402113904008810786783677522269003189446960316966394985424526534001004419263112082297158812049581409115595775625578363862533347613304538767945433835613261842190209370450379633333514102248684854735496717777988396488984773332156309967628999749505931098475978787402359263435167937565179816402315992262824850691614847584067398311703926537009150799563140923717850501707251403015010879525590142991372558195254612246543056458315504248283508412982990046748944879117348803422967218236467760925773905293502307523453795201091920497629731556426990056450740772753983438342990613436032762675522340147579626187059114988188367749805997172387883457676362386864262487241302052111822537190423599647255768105472245685057815701444002153500515587879582493619871751674286387491059707626148033322213344344715322122830230548157229578184558415091722515277536798538140652426406722319712913228592153847768022759107004819519455895415053576096440490697918695418342817191481448844811983465075644260933835642104440545257435601466261263349418745586421726666355655534206186252497020768860119423957932338964985619203426876979491979502138881084844823408634195140612095655751402921251751281628487091694093310903308590775477497115819089222712671491633365312812568163789988275634632122268465284325274389048190431450606756415532943890184571143963211390291582357136340515175113751601548418354474308281155895519685284596656458516871094663836823310333016767168057558661458715226634341999002958239874759552494287134634490004870938432529999794749544058280366846771772091250783053021647055785263283099695240045818087199581781278886973790459497413127850914444228310281536375968298328833656903207882249814067754456416206875317362442352205746084252003202017328305745536244220632199168209824731502892785550251250454304561163969353325108500449380354961337372601899778876849180880460938703536285819777930902713416210162898444559565301782626706718600703996297799343323117872017898406134671791101274632584506562089829195553849025926382994915426382696159323100643185088297554269243355074369114878544769618855848991719342006840243475792521582850579057929930444912326826446805981908492393024696369627313935545490352410973618626485147332586228851263934559893291242024927313341420671311165099536098712378396448911550515122734747054335276164557366568203023985421548237628691188403737146544156675039760506249778448435960787348874595982743668913513819340634988726236188855600485608335333001641648400410732679673986620048375509255843347523993531911463380282300452995992596335517266894483634245082167098516204248674338372694729942686216480859727403702974648834866687486326099003284780454506488475204660146348251925606728621600798761154052674264450421750856386058830036953251105357914482663874928884333834723071755294554926365842464438625855814442356996570866527541596699808589464241173082585991471181928759826633158149555418879907379299489257408849576681935142788994319844824344903941156961962718893840247812314385773409846075308016689217914082810002965936583052787083018010387958792233615390088504894826491341431255669950442648620248749540697536289332326711436540539312954658231838033616389002082698458993615051688857041217071203314201790147072230307227857520288882986871631173597627419765379615806322072015568027159667300954799116178339122291497572671466888776352755680232070387422623759544222696329534018419540337939709361563137820908602184963077402765544246801038167768196638485444760525996269802338248582454016582803400642684663996188894993033487126494700896645878009556039099278238404231219324498151132962067620274778739670201636230200664488889125320812001166694881210732205520894375251300137174114760421452557134596243849265960538482455609200010189709627761469915716409807005918707924066648269681528970702281596348777796732810470932365224745306604006497709338653780472903529625313235505244351204019338703964092870691018415401333082301973298273407797814406860488318099523247652862274280452266537917508354589605526834503883288096486704495969890868744222937101272385606345343926253178589691591096271837238295541549296408165337005516305879906934523587822057649614019109234100683170869080178640743045096773236750775246893055839995529039038439139359954613691864007564499835329581159946051480757265490677035577719737036407075475834635655848423854839340337208266962316500673897589293925450182043900004530130945369335480399274501163310051572874703327892007339028089299308149028402502973147539217412404364921243312075313658809794825035255514385005590593488819673134066399724960657540187430313957605606237285373140747692944167548354895703901949285982236466312359161086961182039723294031051609198503408464195851486740741068344469602476680977904390682125666091722433962374306048817346542342294187613250616791202548742059268594502474234651748875089397342709629700527837050743047858405310727591462066514259509771706820055376272676162712875167584798322044758712404064610403089444380579432005782422714540475695187158283298095033624668393214464856108194331449631027534205368672076402933341975097907238825731396979656352224569305483635783239445692849789053844794298800865142357112113574036760083100068863361091749985514264188918330041123728261189346587924110866520989165870715476071716335470258550243669040644558668035778660069011171303379422690674413184632137660010149388190487379268111224647889882060504833382541750848547733633687729104294293752666829297477276400132317578231855487377461796752173561331338455608549788954336251475722301667047811783674590659218938249623360068186973268181517470681922406814525642384781985445100570776823115071948535984090414154591257491888155662207943061640429174594450810125972453810696934875165895522787060757451871236526632058760181057660797332811588896670402054618844263714104398809386110293112910745164582804396150748694188757889771929601975730947145424033358981148375539740961841971941960244315642110182004957360634967210172378697690326463633166264351083173993191162447392118845696139665759092486833904964780222020499369437748947707059910669488857431853924537429644065522718479631640029634521964194884483102605106902058520837632651654951232792000173130148803474292597375251165972302900026507678408243069356559503451888282645494488325481689666619555180619487908438910580451267443719829796613650049119877934590272970214768415013150781855340938715773015819200993119616510705283599805462984046846220019435226672271136789358884353587113918339970295136325325434686102723290743396044041169936393979681578058603714831277272051399920855419661058410392665318542509670222175037957395608156238460045359974111213957359958265190933603029264620366157076170736140258516971126572675097844040418221232382016567217411856939573144471906744287777933868715549549809694110287114596413960748932191628418175619807128740842563624579508781539965105184165905339172895134647825209397156179971346243005122313812778788143812793895612172878199301076475541290565511256702337903675270677174037597757771273370725578962645075150930248535019931782996149880086553732244309568524375142704402495801237664179004476931201759956339168410128526557811723430729715155459274376813048286528335972511023456254014890228545792828052072424184140879695879912368697355606125192130123075408345116336682537450320437937956052801287250171200875798286711230185161292024431555736220278189219800645719988611954306022458486301896091596142297825869207430792855221178123207614345348835597718448418494825808813183994246294807680847624569148498841791245285621972351706352811514140356635852891215452703476197152183316827683592836446958379079560082611144540953615446850559607591286179506561368930079364765235249573917256166404446885986802145753567067326738541441982263515383764182155812848529914026125558846133998650679169807379138467819452799523031077434407306326630244102831507910095674207342478813263617792895480167694656075964016004385120759160983006177892118132764856147388735562424991950978376021228246559520167725351135006249658374569848597443017221870444840169543887780037300967255202885674544519798006676879362091935985242594749707298993208568298183557154213754207360651087502671591793128027470780919254113954931661634113999967712882319274691347990035375919035181772804276800797509908625828735244772051158205943683687174963388695957478228148006654362812410953301623226937848082830441013024564852743930347952813722495648239644374705330251677906066460430528560881544017102727794400734103629764455736161462323074347266659909331739376496132762139536343185567947401704939870540885332826804936781121384664424171813040490115895414336342234484320633671732739013217149370781755745850196664054836187098317268807779920739701679236314704197691003420535021190833608623116790587477829778755958831630203857786618516793450328196360919129546632104107931926819731445844778758472474494081683703690301311399993586831154922779217744745441516957429507905911663263393660560578927172293436121749016983312997123838034069895162708940462000324477060461858220351131921072991601490938760630413858296094893678575316782532599895672678077324790516520803663108036147906138860777929659429663016664338988674496331170553142386055143505105390572422874522575632397377789767642980930844551227784995750766860271595658487997315635309872307362068787190610047388422632493364256254721694623348344976920855234714449299436899373446878558510005961749106187058913822959705785628036687076394246120782250666366072199377198568229015595969617821902472703709730722062751944735676974901795265149307542606715225101662843690679725863322855072988821398753586122586222191946920819032198160920470787632508669291106852015563036560123190755778747971251395274044150474155184651673799963270364384098371162791915243134970419114005934466911546080560898307200236831346561361565333642233678504275041683140254006269936464051121369785842615496101344237845491080101329063039850736954863269483524496890034449315577239589938633880150179443523553234540990568205562859079842330863072713682551100902330221252150304214114279547227441484782057814572427388910373246831517897871875873846564128589971787342879358876042122587645041384317220267655625271800195055312459632763920315698250499356345229696437881708631182298126014011124813201783859342856902229499971884508029647477952696569290114707611506106525077966252314453311754086189593791357165437411150223610739920738679391623526363880389643892242164701678735988156020489167677680548653117937960041763433563395086915454349764750870832519687831220178157857331435283817376683389561873257841857307842299687302253384089290654184352335923888153176312693643986766258524407181807853764062517806040601393790246430007223036187550346085022288888228513583063852111223416338159554628253793989058101733453479250159774088930995014419751316958956114346579140653099895475145976279783300161866887610822723765948673319043352051325355735991610955618735509382818039212307075677117536958786227854745964624708646640478093800937646866636543747069210209254051931406418625687869027706271148309820121808302985595186658164385218748499823503788357431903041694518502777047032228079822542237456776519197577165096154307936327924002484686516893141609782274668933877335503329309652827044051994951591999152261693913454821277839002755138678970047199921430793602602043185800408750660847102322489049513329463735310029983595713791364744563926586305908069435937050047341284173628903373578370797405389305860476631950020734879589175851822295168789385072482864777508753971566105383560661360583859646223103344196356888562107913974290573848846054060959588681966609048311154873148058010220595671661271377429750390281144104425949335775937966888458388015466108499008081272860268533161423319307086562567617774403749582721225639426283531544694836913882007294626389629726786562872662493022956857175295752196394408516272102142649348123446721671233036045455641837122779797039555512842040497596567111981812841244954267761395909375544153821288862707703736927091177467566329040891482904675275685591413387163428965817351914097748925729503780758085443875497465727306391231053319824391039370836943904443931696270857247199491163636684350755701050186993256475053218777496677207112065277059293833763027163656404648249527584390778556660475087241241284323975761964153245736047979540531207292594476163619314806840567213479952004119156015676206632927474737346768564422517051035468710134970700699333447522508425792228712413336371020449070171130790557829924813253516139778293867642189108942296528599473210947123054607358950478712424862624944111760057893088330735743402195516744475781530349872606462432048725015162443938514289025379367573043832057739892125612288772512926923789263917347469159321474610681761207479328960632483019211436239693424209658393678916575793564391937315720951493308054226203133653364361710377011061455823063215322544056432075742341732730265860071291787488426573261820197036979866005935329320819516698019071459408574119541915279269833874376082197835667634636331576043778484001065075773614770943930431207514106369743364184617766383023963782868020806354462896360466376441818662646338204944490857657777932680709495027198746893079701729030772298223662979041336034521012624601685407367351499338544182774248293211878605230322520528171169143003521245430194557627865506027207587198834064547164525158333335304176908919876099416373154666538222460345700729423434181627258510388482070311104511029099839070222989374796849998347138123453086912411863798194455530367743161371576935823663921696460764978222094069147626736353042727498305904874728252022179635773090563911024005772136727281869269196688675782063589319062661548728378709015668256564282785978063872070894836997823027267465881758125016679520573316149929972527687989936577257322667904376522845409987584630804782903911903625556671501635276895480942710643779231778120399340969589148339165012508563282949942957280556435135316207558319819123730421783786467687431010633429594608442725577623982712246807229002220737172776269076229832180599889713723214091234801163903978825800788068049957441000844721871677521357307696753516506579154240320544197551256502649542260247742488023460260133663150941692878566386653196578678152638282519049922988012411139238974688553277781760409518197094458565705999509289382995203326915447650996153985647400888120604783806562193486949595450287632906146902315279794951853174859277025991832704409783218176283544966624125396611143519443675512504904960249012705464761012379106222150633093468453561389668024550281586476010805350085884586256520569461285319947652308077070045968315509077977839976741064254393989615488894972769758625397279193418337575464498757250290871629238173603516082704427921116024214803624866779826644367195771799395837428917619119903887979727070494101906017467761714158129430983989703527129111729738879574593037139857605598557498564449064152408065846707948847502513027857377482893707997194908511232390545872661232607125991196608671799401638819657470544328836189312090441318452248423397487779118528310640183402056740251673160685579193129086143329284903619427559771317347270073091962552146470489517628519707358026273996589463363246205239768487177228074313392891374835423659776043687647927357749514276778971257479261486989356581589259462878987865865402848947270682600053880272038425026585555670119189856636072305650644180902450067746275185693052701617782945622058314891883911342000831453808239110742883640191568263679463175299975182838812941068739314980676755813526266597752639308216423699218211920226322111947849848652789942820821513218888022734134311537604572473478963488599559383819030891983953827720495242480643122893558888746395530175527197874335032674728556834232909589458335057034936550525155891380187912215412200296518760481636206658596285240469348235546561560658119667407216286694553266210035668419930869932052726568869935513282542129989572349293400494992974348930850784985672372773394678032556515999836930297390296863915083528872077973791491883197225888422237584372409653764511422866440966020981070084105948597841484912651029769657257152224683349069197351324874544116507931881813492105828422484578833045372608762018018305875537130875571485026974715960369568639343310616260961113875395004184456489956280929842872501464249367871496071873710647927862474317965975235968201297579124823018220895510199219181905441112881944329467216910616157293309470344014506743207640810073261947124043566082648000221204571240922400158852095738466117251939117479090438368232582107573859977346254393665824505899321618516809835289543706436520809745393868134541232674986059836786480009224157513566918318803516433134971786461854695267118557302903613639213327236976377122728344082808885732963408681072399273578851375790164319200264819307576743051687265883622402064055794707144494042300709381632857178866386294531155892353257249408177311247746183244063441316910737132974414259261405016160791398747930833710264132808336126392518730313939452884304494227040244215732961674903519835123931817897869845229394717090021617136641874001312483756547018363219970257491140463000878289965589743721065445252888449939073398134711352775317644223838747508538030250015150371841306367524200117307380640246574053560641011420937472362378638369727411266632875918035966283989319300615739816319032088592972342720001023929906030124913533313219763331847932154412218444671880423434193810224816931169238001413200711175545869699548915955084806929241158616599163978835284687391321847896268410570249758998336611062162605777072070115536972595858699031338412010698189420157765188652422190818751308937231769708843656403963571828075446910965722299650806359003069151969290612599979779310850892228271794367331177414230339253394622510411674981375272992918474232745169161367812317496535076830398613097538233906903007470194402543573548144598671265742504909024392320946327339090184382800401570412351548327144529778156658503819905599066914127995366918685990560462585299361884772018170946151760634005576840422243197773239184595947445693052870643969856345844698505197219869043086921464187066730998849135745192483506068189881481183721828637872757106864036735907287505200118311344036695702283779080957653908902345751403368032643479785740192216944005435230142954541352310560759069808179606159315832483689461020531012067491863965722469033589786155373364633943924363596345599069779448694283199526526662523604285177618438340488988016868038061304157312819100777122347351242407562145131947105823301930822445417907964974064509321172947419074101198559647501598774055218909336749723030281543455124419684232619464431830967466838012294850036534179855882117664515014316426911759868678753841850602066456390895773317317960462857904780095156978019401443797658742575734305182145164707741266001091635890847634341572528251278486378587379420784912633463809873712368144698531117786430241443909353612434810836592120163327404779844177217981163357869278900486917394005120860939199208629024793853385686903490517339827441175388592130136993534371758381283436451059960709430870402420443548099815399911550201373727396528100642767218223642160774768585835475542793497998563135939964936564306715878900102450076500122150039734207688546811339400070161941838133025851036335656007678485551167115169531289310874181861448719329227615418272198017667516806188063911966050120317083040616915250272212178422888474715486099919112914000497816266219759866480739182078314518428333084957916644417539008384024482745847629108756687468527274314253128992721840437713949962101322285574422903607399365931101112347706231976377350406979105836960451212083081726413781044998891147945931739539399646685055749862923826156047389227701061200307815231117645756643627443946698825159691094042943321192472807954146245747151562948485506024544704052193892439198427435294501121349269793932375525009070985205558917654966874584081764727091314843414813379015874204654948777696322725983953814382004947005209108331163524754326078511203013183822938560630664103013063100347227915276880234308612491721371351155744015845044754826764695931352237142151876537307867950518136359388255481352663512289534869560060596379128177964588192567319136614455680580156095301104208999184118110380839697481631231127716881922383797302875896136100409649415843211361779284706703068449704701515925638028508454867758247140495783792234038373236825374025780236122963032663583784814579472608956750049142643893851844254047264797036635075360433934800206122533586957394852742993440125512254060647276099764983671429870002583933449369380006403493600724014118601314400574909951981424044236625786922807513333606465025686897905833044761445332178446057246609229724198629029299269328099104190162613455099212053644796010724564774594631857323950449803315380708672621037564289971706619155140655973985495195502802356364389357764599803638708050350638425592324033037585784852550365266581071811616578908772967759819122307361059061664862983443122335499472495463136957808169564179312463203887556926733640942108597837155725126533737732869594555674817561817018118930875856927787956961071912080438439725019718077100368365869186996462828803664440814351256241924066705898634786910270669994177555706327251256876089597512891813281659550157684930263072548204443155055252829136224522791312527230630651828042460965347656644023398567363031556729645847443295666758124268366595922109271916482376663513427920722516084521661636447513912722134939461436299678381222078303554176337253220544148851897578876539793747507452881263137341537888891945203499871426892929966554785210378142733558484696385371744552119281924656444477434536292021605734186591309593355578286834704155325631150935588724241527732783736595564523841819212764349619533587488616592631498691986145284819025653534063002690978574234401172996394285519720977032557358464660890318010931157610261812790866439369830834744686295715047073770998805619175196445732977843848312118162807384957246350710248955820418188754402133233214693680082407298252408663474848724014879649527277950112863051954331856200383537190140230432222840297725392549273357117945145899727891786612218602671350701891227417017042933117937819256471263954983025829109177773402494634896432137328726486682951523356526445324803126711379493502184921111575431469944218919028034309186939618496076873777924504125784172226953872659411766575344456245983106453937729925734893688236982657718013248264300069364726522508942028308239469387541036818384234816902839356848454664560732896332670586508188089410292582389218663733264585015605064304814272160625993282540825727713302133330548677962830702987373857132795978516337721973815836363789927996012324099774798609395718021362271094075070572050495467298313042802085366572355857089531879244760583309297545468028417252825344681083459643226819636722102558895386524904079201767595989765361641390170351683377131333159631589318192595783182961858662972295556710944488104608212406713777970184123203409801426178489669119121841490081636311063742137591976262607372890154311467564189353238218629526636452167735433137011567270907454824474663496085988226622550195952132451678028614307687968949351908043190317905745986922897543369196398193971652379704678624558473144426472141204374029966332232196444475360866584124264907239965082747479766122995082609549754968763263248830762432179168644693738897634108336653907947562151003196508836023836901939034970306360220229269642543371983242717334805643178374329504045738976451172668259792898747151306576934038259378950212385845135366865903817146321593896366849363585229468641040614072910856646505041469857561877340027437921699368679996656702897850342433865808695132025763858199047622607970186940028332107023858920412475224577638666392739223008125244019849519004844966345299018889612163516232563882539810854745128040506641073076753687758184979792972675829279488144925974633336255336602917304555504724442606537112890220246265596837621983608786203605916615395095631960664050971176812679854632795085877145070975476082395156309240731121748497667769354488263153822888125736119893595653774196212938188166460476755499511178636029586134863295414093606329609822203526070860326392198376553080458479078852022781036844135453089410635101330431459192417602536879042955126226558445588265336946513622226385330160367007182912663882582106768308702512568876266749090097635927820124608070883031659355965605524395868889503341606701431116496686146345388833194029853796523512779435374008296984262339745927384281195720282850367240385075785976975051917508541421481187772347501737703237079576940637348254415018717759401450211464982445297615621769588881749353893243041027548523015383522158118771257402454374588669241053980560803971127961194362352887329989928243431538461679014935138789174386777491649013433327676561657749186872001162883716769122439792932121957966652191550505607186759105461630745821320941000273838752353574953775651416821301400060939103845653811204306628746845842510556500708730864904148548704157401043568210717035644550193698349359621477523725516733734317720177190585183330896975172764572962600642845248078851352907094344139370330466294538114060651437588668749538799416363375215919482267696280994428418370421725266993276724279698916687956495654196772326306768570004724567707420446042198340540949543605534583569956274264441698121710704854417532667012278016575173097356504562210186488681728934477884110029718733523454611653536640672727106712098748588505984806532454810938902064816672064402153233258189368963108867356704379949965462423343861727721996560518873211750035967635435090568023675613173934343752622561709132169292145758229538458141218830062289715218403060894928864086432894857988445903714573182396097503248671805597887780116040022980843825299836724343035701854108578772999925243498806952643326795861810228502642042086914686399446365366511084929212803349608982228743242002064848584491306837314787127630746689761994803419493913116334856918127590110120421789070188341920930934772161606737913809081268213637044562923515126601443223046607028012008074166143734972142226254220134975329939193886792148913781062844082060978889011933112841938692332819022215351884493764831421097679072819145468755984358891662743997447306077249509449084968492645936831175052563829979456640811413276566804464374573571484710401712804202911101561859641343175863152948163198336783198518023653726747888924516470768921303103105303413638005312644654877804784000107250746414100712190771572749768785246143900255481016608289326313257960998504136747531541264723188146066481009098181531365943081040523869535757764542896106883787265329047880926263549033241527286754956411359175318624092956689024399821406751787505613349977039801535934947077117198646394660302724321560708047247416140221667999835417076058546914556304037215058453182203554229358914765749678957431310064358665175888871286932824633108576147778933328285807672269146882559456629055305074336759571883332629687715566979745251760675209607796409765915061228368202286357956669865864805793675754962612900716365872862328033861049256296147299145541757370718390343993710826192588529927098403127353123990757510833449773894435396915861825724488074582529164371540971178979258977424870873598059470921353141928620823310703311259323095208853537565959204172123896349158170552245738237001746610108557661854383468462927308501645304038233486011255647839857001453627591398369072686913064378486560528714355395236506021798322896031813506846708690315559256834337495020231495015732089467466870205185046927236314171883701255951185768839336753684913818416989630841063423324530976814006777489671751011618497424303762067895486184038101550170061135381809431739284512641966662180597174940794287811683813624647450329789754030191643582223993627159256710068776110890208785066254728067364277212828932154998862121961116976781166722737497063713497589414853121660391193372505717396032361542211543400443114394562565627868607965054173579507046684964968905391065385149185751263730477276198009074678647629334278227412445558294609994984812543075394025183469182101140507759389403169985027201191288607220931576052354438857735552179060610907640267042294237951477167343933016973093072485702340159466231173562385814652333835773935494969195194336214551320825804790094744857336061369977404499496464390961664614298095849161750994612435290876442791501025145190412568461918609413859943091188418492146794720591492130528757677127563949937708559391370469031365098140256009279260181148207570125400620048119391949656276149187568200629979981147258915390361513938983721563434771178933991375236938704542061694839100668404489849518657236389011471719862254634284603068537425486276090430973321257111912650371406348835033196323549374981841838666479437127539758623122362868346963343889975465664001591454803333828728701014208864865408545540082171494441747472410321105918511227391550278642012135604035513095888683708960141008222241821510859322982794182207481897992884244056145655317441618157384759210904977079334747083179938707444663180765928150951661128177619569198804080663220223553323650551648413325342339445299871950825946073300939266283114670180973599733546923778369312361415987385230632659162394469904395135843852031299761130487652423080486978511547578564770298300518675763704022646598542142782360027942511431917252521696469175705875088718225249000164963760022798115161331881085616605863104581547365774018371746753481741769392233448733890514716894544558772989593958103775258877047564945183336548092261798953352932723511909033593117264743096962485732460301485250383325696463479161245662615560063982103547854876346963622584327290227514599086549856997838063886226677287512215282438369095146499372604197808979784040709039587990402265261984680603292454994814104889618214416116677822370252806316900695126154240522274600968930702083387545937940172864162547047818336505200807409836334786699846586148110900204813988479680009510920345345675143251586660048725420794791437683952932729677998292729017628904483225989084326450515324687499355677202791067839023163954183296414219408977365794336853739972198246953829571879630036110431289853800711413176552174788606047246525181468134047516630507709072957127349545172626862662506198256753957678083519487765047473902089941355521870150228472345649349288476950950993995560208242064701872464101017447615853003942090859264055428680062367817908854787851406740893598709484977158664673135561256374144012591048565958834533916302209090602246904802236113780412990718430551684436203249172215627443365305978708726044178693341325284447580714562836683836170430386714050741234801121219480175847750165572289688703896404329798836931290439531350326238599984555663412384373538217644308513107051003726555892397305784354532671685811435789741362121792316257767192141948930087667878385362963752114097893079229442318853130757056736200587570462195151891816378925673975833119633580908508853232752562685055959774557341811813261954226966668965083990588332074220328924138259934886363742285810566907949698010145685344088796577310211606686121534182343387501315942593863115255747952682971138177660763269103895616296190755481959666401929114340149206345257719404695917314504250963284848016822270401292620457790049865433359233090871448251883368062545909737370713802943381037656465995376836279557589088563923218558150799586262872782771582364524406693160457343280108181397177501593804934225954262325405932093085547811838668246799024374869208702429240603078383956173104282031466966984117648038458135984582456865805837530223023270395736934172457775899804192163072856448394465606757791697712685099381298556945272461106330120643820656545151161479936221537342577849400763843839089542042006086383652677259759491876447557362651382898432632579557134264298162975099193941504790937962991854196857730271629515862532336991298941758011651808980598780710004543278130166519729293946797189758581057028401507205261451323048163673364122406392952006775082640020577037975022826320158024566372868142241191996036916523591889859903383136259063780803152019214739163551461497223673562822835892102262400363246476524072872595876977715860982664737748280138748195336552800231749741021773141515733292730459825793468148866351992554358066409261943439905716530555282755755513406034402635246670604858608431642979675659817512900169268328774363799924745602478653739993548464995668825616654474834865234961128373512169122078291104901675162637271362141583818798389488398698166198691756810881491566508991921807120975708112651137299774270103471328669611327346149602124407857322505883511023726553583525297567881883206078561683914209230954298201628771540764355570473297712822824391796723058749530194731321907749364424735237686933525554315859221000678255583424076102444506847727192262969659425225009960808547440803311471638458525475916997029528669238817358786720483004377403830864734847247055620874975646523449192220624488186961471156537324131056558262944441428499361218941409001215478489005921600541726757073272384450441908706726524296003247181974841644345292964987397565686942305006053458566611038853590590452668857585268392966170378538656190804344474760763646925421980759182932943214368056683611199332152251267805894461884123192897029882187218288690784541740458541632430918858928567041653327924925853607157547580278889158683594658600220673578643205260431260997526984599338550260213399384537824195094846506427038527026327277458369586999665357664589954474098906858481501496515840650053386369607717149945358850652852470945261045544119575877251469225859864497781170127863308705437780004267916449963308077223376000762935945757081904769503729054551544969982299857242002968448811903426423478178578935885152692233804022060275159945773353710157236145834976356680014837074827605116335848445469567727136328365175263880790162633330262619919641990905794220396035193466099487876569456995625620044551850320201045974613946970591084363901653096506910469021851261940991048203295958195851394756797431223698774287118579358777626029665627981454070583662459680792646684529912264285064029889842397298665933770172521222559878855357145054612264162945442084052320561741402433493559978360866985155999930904802186871183457521804831838946164577077203565477718120674621524058469511598623116534300778537470399116495426170395919456929117233948324108697122401789087300188925305831283503399439009525077085863521996337199313658495517526106564052607920059006793590121096348793793729135236126962692535885350765261078962743043977921274911740050479219651264518113947010866678971832379697499564814878697064754444155351979049639902710154316330614405988556852711301242718433745801071140852673431217246794148781338161011232293375634816883466511778501773867697825354514092646949214495048034349029166436172732669554788154158535710230241331465922032383241554893900371972230266048042817848128104800383192237240292717837674932103804789747500071448665263229170108059134641699509883568602616907918427897718940825017536914170416522579785490531871973596789288705901639934355350133214650755224067377051257019338127102799111104839573971561578255000560478891127003436470412000699910975541490573103346604047404497086591831555898399051128930331200809855972882923777605782696510525865050630058185335693637090677114617932247649238817234731642653546906164132700121990862341383967593143595204916211379823855807753125391421137929060498317789419350875004473193021622951783879524724635114638864088176816566533982200071348584272952749721602571272567688939812435668213595991062210913817887809808158559786577261036748475103896182366881994444080872415504673779025930257211376583035329894882490138406647458825597646784786272333845138814300503918360781292676544026448525658135365782501354786244562924913041385220117169051286866364689186571355055633337309009430383061551298008884338704540408343903936969184809970774614210375238987172446565206332648723891314589855241794667659169514634180287771633954505330366354525249749902974652718887403353002726207411580419456733399575660440160604522845166199496270076449738641018377961384218030429623898564013030613374573798870274605165720858434001254912018331023959434091526009422535884716379581011635989550175643286458646169416251300249070644856448474791713568383913064814914618714127951764965438156154190275346254199689766492751200183393354314476210105044294306001065423293050066573435476826496226551364611890536528249591033259064364474013607789717348618667832062161403054319594323316241424157302878157015911792211486070087504930265809182318398058067192897989764181475887586184272402650060742555853451700690968642068271037669134547629282550488851127011882789265198907664785389605397287017634213513575784895909183552372748792303788094430345984272189046375836806334017882692015741554979931709483154802550440263528639164066677679134354382331211823485321413894361429526298990490394575900805713187990699688728595738195117440063860195643585962766676561774787764011977967745774967536076003340432503080092743387321891712854038372389843919706403681675237795482268850289114834258391413515100465155041356833709439050390404913409636086972094710565886345222006357951509006784299180635320178992495769795930004234036301997556347596344007790708377293881671984350203984359719630382875650903332534590447907881838042027919431862112620913519588909252317894581900658593748002945617258191569487572605770255472567735853443081696742208482404347215177376374718004953715590759147506203548575568898981493994271591574716155637453538701569016868084044112639874721236154259353540353837795155080737120485612487114752490141483907979653965582802920593344556744398297318432478944396667467858173310246827014352770457033343848542442961850408439421581825415628929584810275056249374274835040323772706723415033695263640993643610572652937787042011962462167946686877957729116062062094892351329263248687051403151764702629868209253199491184051232529786714967654310687803992683512246295735891431531145177317394697500172418846435031260801129786987802432503426446751124511424936790574759630272313520144679889660537453295508238956079723673300111819049334986584987986419183174616079298647755884726550274034774932625960740713915831109354078742245940841505779443145940798739901787339818650957602702935659013348167935046363529908386671894196866342262411361467227954434664041182031639817679254356988764231462602250709372527273721285668599111071454099906736470485991382537727279103536665094680007659447420432662495533249460917166012406527894695560880899042183543988326833312164716343112723208957110975056153827081019339783698634286678027226777986249358697947386300725277152133523657987602564682475683283776448785229285243013069588885720731176814422480970526504080719853323841063386183668084705207717723768538533714959263709365516039493705429937246625556630157085549877738354857409113065651117784107432533048987469028957322657256613234911152768734413763793441869757325345966988815327958661549580143166422572849593399605950678550252514221534604851957137054593117836486311672762366579100024325598758574120447091818029786940594583106637355972245454159893198522541457669066973976041096653524139282258678509677106026616802035397036104827061272490698695757390486657695347242145808134665804079298513461817408120541346780227128104543147387867939690266795228452617802406527101189337509502478460321828724473543458322837501657923838928066510652125565944361930813566626900867244820306903619939348054578957596186734550410703137695620348131767604461281664475297492809383652849156742401797715793175902445042902831818770940373911399001269295862052046125669678133895869348002548379558031995896415089949482500260779794310760006189847926634507217571725503603017790633958783433514031742105454331689163462170730787983123082323469047765009926771133555003329579612399494971339572855672461874860538710552462102502944903477152606405383809434832873641609966442068363961901765344980736769999136799842899816290418252569698141695235497162871250360092674407544827800956424789003157320923713870801313858071773750206208331989022650267569096214962773596928064547161323072763080829980192820381996034587426067871707349647474738199409340613214622771680781588343876016715234457882439846162719105492222465576017382234305616267147097960806082348688832084220064961474681582314617927418658662215253342801454013939357466612746478826744568882812777328966058949937425528651178888594580768550404049448918590054082134918599169267006230903481645765787449299017734545556418394456133941521213244018884294534520629564851938836832691439927395373156289220107698772660056696832063945903253803182690667482918153249115179728975485800035270025086078113633331971174977240306840718235925766809458007613299449629022845501052675090277618396458936857765553030568454642299627266624534223721219347380497870034523044425184811380641159923852250128999475289173265527625953653672865617016477661586307829113477333280035250003064262912185287120969938233684196864566841539516828970977070333756773766555303948357736867167198194204624850408522986529889255458625618873988733323279490358982915427027864291717934298931036274593845343679749737482888464053822105165247424391038754371819115294866884662989949579263427452603703652287912873259416249627034787427087903498900496965179369599869156862260753706912135225991570230175361873622121233354284077051159217113783456302453013451013422405551116952963441353738045262539741754345216747689349617290073013150139193142264610413549273152203000464189383505537809901001043969596889535866164950793776465865200597744270065745176048305467158882899990761869379362407441862561122355257361055783046442058879271138076109839881135530358168385666182427216883961419500933306858336295534117449298027245157961399895585181553664971506089820235897624311172473279767633322221212854379304832662280098919038037564645632408237386699779588242718428751679389784141042887044253877308995514298542559725680819936599824348785880372082181234161935611043406433734793171397800659396497077221339378938625125097039179229078431643898232766278877655767102201498893336590195336749318863614397511920106797831748598995379787820580014684653959776434391247589851691840396499397454177577277359697626919856148766870888984391330077399075346153491079044533209892981749654853811957722758887588201726023427579551857392148045387875158188936148561258280484474124179484534226174654655869804841483700620740292092141986012792883508312444581789248795712333758638314082739846257521011533608268403468216028711610601139628016360900694571135282910931043693038983724675897810280013527006072954911345728557382642586570253117202830153533359268952016425132874569907410630976558243649936838085624825287544187124737480471353367033168340593418877370611308314381024527327043937732875432882958586617111292658243892213833383546256117280843212243390345313824084413397316786797235770032363924545870315716717004670717648715696210508144482352839470376939538183081059581474209175475604931502463069520784611904173904019770279949809536093259961945671494075554346372325755892969441919789722943273304567293608182101075852323957119378759067744912847166397042887398517279880741447499630853354033158157685601396086736294883222743045955769240995784155611404993446196912309486265545446187223117361336006740439269838093507562472523625099273871102485800206825845039556189304842246300880868640910565846426866553380619803786572987318227841568261599940802683951088174398543141159931974710375195520587992968536670260273321985808728475850111426886817643123489177479328748299892049073746519611496056537842776898214999642932612558820168220445528463938145267880498672296861379630798623988098136967807546460669268450146205220573592091647652583986808685719302204685399423376412532961383046546191328039371549802670206660779507709902588238687395996433456661736240617498889502942826009057342651769696217242102776957168141238626362535283938065206720873100228855987019893173002084434966831413080090316555485443758710512057976898834515191106125649934289771342521285590606639966087257032218819166280803307819665146664982551942302626815365832934918175227674627677093061734845421705961153612718253089651792497780215998770206793688355485557489921778672117000435569746372041611625168103023089269424198611095870523610926742273731221065409955206347230977608304349420252713107455916723429431775670579166131508944313587281094889002717100323444799412056390708163640470099716488950143068599797439166625034468190940621967996964299742894614366700263206236146330511903626000650923061708156553522326181489158003100114962775976712496353879008808683958805096986659101123697347773410782739285017463467548937906355530016770818889405332846933105143675239584215138356992227692304164552316876149941824313112009973360375311838683687972818534858241895778060235347841231009411326088333896201669193577298731918235657578610128671206899234336634924063052951102899747206430691302240187328321932591886077703588646509133295682507791403152436738072723594655125916160101211250091880898392745363801176895080354153203935156372469202289502151634250902597613026208590988753410277422871958680259962971263104465522934626382123888850916878082021837027213157332382318909627691132508639076509010037356219488122570341262750678764807297759958380024634572902635574476990646961916892862915667280180237822270524754929554742502222706155227871669127056829927981844163811131967111908775981816699268024166258757412375031108419057463471155297610244869017170577230410831673764344179100038460852316693944688255265182038685450301739082406932583600212392558431572749477598147240089045234784542075412551045129652142251013631129611985249566584971752560069648337860860996182215962355225087140073407490064208032416717722535800575595233915333665995509096631024315111021481568967341001319350464290472956781474600930822832411951032092155962467896769023386108367288235790071814172986227940676717619664803838176386161301969703241633474680925039102483927014140226958268950930138374265398294395321167888885997228157980249038968780276357808003905068364264648748232150282902385250498495223215651078445124189140315914216734795009188216084270443622660421941593331134413276556280948218388843168948837517825064790228979548483002904020946553415976442605717966115107305910355064756788050644342371362342774076834644712664922463231284135072141931310034183474532519199684388461303483566749956578070579263410635578266738280164502790982252147164506364577348113441384502058150332541059183002564280782102036329221321766622216179262839775436645975008730659847640131292240560209380760640228333896122316379420599076426548114414064319811543404371574153241388471172010570491000961675070711656018647561416198355545899564851474039848885436914109378968379386245713286902769958633490440881264881425041727421310878829817625582741734417458741245824494619435377074472189407619626550348913616352461548445860771022561901300723042085633694417012364923781239496381765617679612191444288457322593834899084920431359091876887428415886190557567765815995743977599338519649082703736972888004932088434058021603076850234628595476734982666454423923831397929467852419554494838107084047237491802806633378020500074759204487547421382448823813423706121554353375714344543351326428491926173863913459311003152384510274830297872187097907781635201225876699264827931823748653014109541230618235678483304149858260531448960113568672821654988141212048182136525078333900604060337395614370867225830778685242714996989968812540111480148982612607659195684865746076859879716155063697165987818731998177906180838286736880833880531789532293470040233032031153985198580995034921451513443950820489233498413088399544515741206402721532479268204132482726803748856133397876348218498231602397046053238957718778862211537605149920330657041883184916806159285434834069871281160237477047184013016574552469049521832178973024796542224722699367096440405157182896079467562982556483511903804234140206111544393411446027287195274449830477718298541283538862947792569238796030548982444312023064010067900521022038303693557542613852086155107400253392830533469766302031991114106495541466801799278321927342574240462744258679495043514317982189228092928690738128624887710601918131237682352430126392945074664194295409652487165344998658105031042453468875182219337681100421703334968908513559159511884258329519813880037271897601899794899472073329984178838550688309552709056381366208941924781215521707666137768679984585833127848511219695071754772430804682054993928004464993486132052847705921355715857716904047691619891229849442268994791645265153533362573929965758788090502902248931235909320387396393776802432771880347364421821464038309292409326215620185755573398772286435284401408699033837505675543923920117411567553574862664058561322978051394681449049963364196789578301387551520568265846607417312466318274241699702582422317587749378965765786655649546147246528450186828220875598922056345980208029701366370404500730274280920934314932232181953935992249933227364677809274767631374777982978975933364164051598509059383281502309561087309413441328322999120871921899475106122572130997494225345336350306419188609571997074209933834184436640901354341953083039574090875287769211896289010884100771843327443464642667760513519894097211906824038966259573190465187352645671067357556052226256157774094500618742748404368080400743461442519162737177694085633270381077619855658450063115533165143020528913750034654609092470042551725882807539843776598252059732735940578359825734279785122916010087407004642315427141941692089469521211602829628434426608847899770538142622947257501994804889990932156528087869209516756093456279359057560692180017316406574303436001663618633994658188823564490945351898564562230199782050818794893686351234497948938538386552702709665362492802854961018693590493953078302329807453778030319827504984791452450373282792451042585576077625309260060498107919545668002803030005187118991499648161334087793879689521568277536170323094785953808645804556909325427521633977902770257509614997415809784105549970507648398269727171624590286281414148493213701421264938776365788261849217285022823793601425218154941682518985026950037259429181446172747276552205720206640478102816306159666225993365632205098289508389221307297350541012801018279647509421633196404152419808549125184978366576957279073088000824506420946574045792699522476515131662950956186162900430583249377342622971821415093320636864595834042324116141750952969220506268389118443791517440659907110301711241177075891380905175569107719911885155974827754242743741614581066198135393853956657600242013577590914292784617204475665327031638933411475691044475992637895834987447861569619356595625691203474059466644038796093081294300073666165244715604097865738477341675034068241754957600747531009082911930985388469536603137695129078675712173829642192006955344438605988196360716234713510340020528131685516217887248309807942800253809154253542976198035204282282783064054996160632749330543453062910299829135873692866427502514622981506389177360299882161791177234572315193387641224631621481486990803492143195744982778712472171716170968954958103142853216689061474473919774036998141116554299767322705722139189052695067087612571379391489449693194740391918120348336916826727733397960073195231823213227737311409344704301505950746934434928470507504012764227499613921813680503024497329002280898325291531340434230116649726804361661144872327691346829089362626058082723848063120167594002133680751926457770821650218950965657145079932519710418548122300673570423644637439246134922762251264100357439973071847255903801977979725682040988857129205015473988126876567659644589759866243457042291974854155774934049971636819711869899984537163659804754538586123029857395566438349501977170615430616425863248206006796349973919923558160559039391907852408175490752830558138095936631582068177903343307840547561204476092920004131066601348943791475888854231220677121432552264434528959166487005660116382798876209020886290076427243333762078284487743915483872258742034912521580546158206628498384775281143127000305658316327608173155013869778398743403211664419454098596578032831082363580946350157672319058715286284594703640134143888883265883661957229470027403798949985774262073253047748877108740763924383348578294960703140596194924082170501423796437177496882304915437871505101390480195780365833302898796170393722657104951844731374383557195687650374318679425985886168523316807448356853509048801103133143295757532159498021365992702552881620298881034023726581467503103367776850675439850341450227250279102232186927058453919718129824693887231369433658428592339044538517539588724843222668190549095981515739957932668376018965111284113214914491427949429454476581510827868435975325888799919726068397419070219763645172332990415864652805241049810506658855925325643409792682992401104245963831082545466028670411561682345239094758027212824588540663097360682394169932312398029529056608180615971215735783571360067951525333003507717671304137197465498084201362172976844967398413944310068643879476700793864042954666843466279941782472191000573670257353663160887238029622064244241585443820233988459126288189795099061216720047810389690817986833137476771337013513162416392215839179157709945540911850365849977953912719036919848714546668317055837120680984381321852479865820140156137669518102330660011422249497693591732592215606290110762466218213310828129661737786327413184991346385799521669165412943748407632114871420003637590972745558313582594228690607772992960453304755635110039316913413673295754175695395301056172218739343591410080604261636459764933337296663486304201703926734318068350781794704969274809346776171781903209841565529745263388636037335613272590019066259088970343754399311991317793904172034644861420707303570705359462952097143320569041958123193070491722573429720588867510712205666609919189342871966672774119517238873688298607344424366149889765976084409289728264825314838759475471977368259324531781611738651030947373135932428490020162032153497102711612055479867881945121754671294553203109170968387913689809131587765660925832796195219986248641524158338594802091279422286552938192588887934088971833071486986384178496835231245360384370634741965433374932922120123234937075902055585368738576532563855991765149379697277407481973290206496914663375735956859610143232721535025851607091165712964919232354443079745587604696512617850410094008565666867548531265312821836910709906286983213633070937886259931259691223677640135028082961290255044565521155231262674838353549544830674616655372940008466047279863176540381616347748986233834722799140947266666020227456249275211027859577334648297361230810281951774677804443793019786374908392699463835695112314554082441824063283696915563812066705413151813029631416034109532590036391903648547164695013558875478569366020874872137188547466188428713543158729022229822053321597998284564779789744089690267921370055692419567962282480763104535798488402226488286089388416002794385552561609607956309919840071045496174925389472116163291386507219312586839693485578982451586056560815706632250189009318407072057938276814124788173367661620132308400277554791692030796471034654110367283383845079063140608943751653372621456663389198640747781801847211626846938494593850063329463825092646483078851444594459486037609459960209292827183455130480817157036629631809553713414776829662947359317380130689093090143868206347867575307509986002293182202616579800088413082592518324236848404414779498242168774876054281306175782874094216599928903511643028420619270139470019438837326320692773145008672799655789530186945445563714050427753793863308550081424704955286279201719033141988891872639707191810513965359040707558397437729045439440860245354356406045745975409546242863116658401089154314991305631309726604982713571475123335958547167541866330612093787958073679184063957491533466978553756951494516755013908855632352337849149652156654862823570878808903853524341030084673149330350144737177956427385395610930836472483026023807776681815838206420690546195533455785253441010340704208501774815252962561727373342143413619704114234049686695766570510899552736986992481359004299728400898247982253633220793175942111699053144562039789848692712439310504927767636576594927376691872078641241146728949091603479403670450417120099426038097388647840152144557298783085479319011730980207690719157984410535940495162672047470018459667603836524706707470184535536755465137297414865087515362373953981197920902563906233772577784740252868522970705234983041079081598349773353562685770169447284437057257726222144439684549444092937363810770099763119113485306641866110817679019680864919451241922117409589235459144864660661813920661142478117533212889715821472486440586131156248409624622086813316238196824306937693776531325570020837913214978889857524772186878962605873393801895251664566626717503440233382217832049113034434246763384381645229052579450601881968615977180758371232019267004668902360561052495475819427618815586539837512439106688864494635027873044016182876845581273994836334283767395699369112205509696031452576370075657190122051997206159295430879004845148184236097935455245736648020950301920588730636281443906412654731576840212549110092177397885250677483746228014739152695186784655337366120614348890130033312411028281809511329788562275537107035194425843475700465579362808429278232228895997120228959074321316565756179510945193644237568453777397267564442111083231675983716524266953178812108834771363438241463478571455818461557400932257326934263806301508744231473298064327865068370849220867785912916922537203170144035746512217104552169073262698996776520127319452785890601476931656593080982063523400971960032718482287245619911745307601807278187604190467423818425802956651111241939923296501784544705807483927578204475957568496353340226360385505689381180010536063490623246198705189662079172794311763649726241904596363394713565095323608965450913035701822668095092978492781846688198615058323583234712528943556948606574624761492012815825060897337789624899847728727409319173296422875964090983101542590517057040434023088751984555637522862954135214473565344748696997119484062676889492949129403532895369114504463621285430408946418772387095430672268527321183613164820386902675295794527819523256827773044208634786497519491301538718430201021887694422830803183285640490007379943814233235443305717474664282218047087221095744628438535846909310333360218350489793496876301702351919051922869428028898586396711484995770660242399454375029526907811325332536157263315326779812957310541451047728028542093338899715742844569440814919218091777402382041235799799852153896265994309774405983793391075368116147421664247368808141885286816195976640452786282820666320052918378916201745714056700496212122717989109116255880187631970375600319277463295685576724572864779559988050194505354349542654805514387293330812222160229058123143200129210925393963981950955038792221348521919097166778478456694969869619837268780925143829896195591362114212589062644726030973956685551307765277450228002554542108026797637936116842958564663965801744502484282979626396474633311775268643830054325767418697995163484956225489257021120115944913266888313703093901587410989008287197464930166845093375993998815846404322914920746813083278184611040720148541486436147666119984970042807969696380844817557824373028899357497372174473811618013355213970580732890770630490684966371833970639872563456415873038723319040847308256106844637135624180104104402009415406692965172019577557774027448817472277450739325429903447476052911996126692559513342838801312498557876174317507519663502589239959483907042932392971455726244943058518017461627789606272118614171149804178511798940895380375015370142734911500534366442769476042588032351957450978150753471051639903080509370668137499797264808272926687662459127694975385282362555534711783462118884434603956402447268669684731809397019794374182231453929970198276571927857058719808157789408697280589629092935511698931927291215936015341024196074508274382640502985863368885838546237855135823654287164341252334031715809950157027536882835807927420317536062085562586601787349616885560885740085848887842214170412198007225123429136361206715112012299128381191896093035359200595482678406455947324487284690687865004350817962472012439185334134361533025295428717329055997658046895683826246514356621743630408672688872137872595783074396573427678601617581734499091322541939619917438369720782568118632375946527577642919550033241296044808459648795989485429055013994224801561994122772679008921290873723768187051508344639035655818011937983454331569210596701255480292907756467983142133636515476885361092582454329987444392003993051578799849246210705127341386465499681138121179121557944109389417369373275075871670090004757627961656811058405460643105563106508886536885867234715914576354285905065658093201662683416701081367598168484493858459340865741998695496886417795544547818016548067605534508866659433521582220779253074432986078619867201800768165505072864535370844318001892651629822733766657724718773883956017867540253937451025574263194809802552937133561350300731402307782283651951868669190021915971110774043782779699184448203969205996598981662901429678732577979517592725021743264207857054124193990424647334385522350425680405155924272804227642504768731888710315999120708984914088448981014471430627691311359111991254851897904605818116685283002196826453290695221222802207254625636296099535044333927951098405574037059890338959375157185934867943365366903992942354279289021083005909165810413062623263003066125724758109910043273145344801566972107795864464152361642141769348158414723714871309407344321888135873813627496507732985087514565319820091965959604537668322768731566181980943435350372250860123335923152911736877051642010530621758869910106832690162845689643380698059175223651376527862315498330158395863862726446365970678436991912476160877156714260253467944891780597304070368996320248689213795093368102907546433417920688524539518447489560816949482549476674116117978320525737342022134124854763723970543522914474200465040681059673756337032922748406203797205507445789280670917761904070159984969064537518825135890597324949901982044022998627518429003840124498451525633641207687940113001869286733349998445413045406461378180192529720197607416257456728468869572074737418781875244793399280064958685022460888031783113107797406626430273058157856190980949934058464308996803660974477327515512124605799661032644552142396051779048586205839802551217944063383761168425581781771061687597301442042359001616660385182346741003704321665373245799185732069924897358404224308032937883836253563952456558475594107151963761303066548477079790308833111951248011893792529682704862044301085615267492671052408278422203135318969244462403784684854379631351061285162973426435140069799567576464481199789071244407894267290391900568514750666589982332483676338391323170627903225658920587771636655055477344323010051580875654464906595488941581973958987123615925078373270377432186396995423437596280224825681857215658326552961789467245889208182098799912443641512126452764899784869555910251338041708973350201031119630659136118786044143470495241396983688376163260813339375260764459506333731772460158954703272236477659630131857552508175271825642739687180800739035177306193752553763772289953479719486357486962883584031389286139078861016021544822590700257133116062201791498479222864098382070420744739891119499636207975204839309626458019280622556799048649907106127806574149249141147730088056446594052313766136016856867390801175902000912755020992193804315674868262051920683821943083364153875424640953415681580799393441495083666561805517753064380140347348986732404221587729082712766745127713556345309320172124148185745292338125556351779865664841954322329744640640594578999186137909721653968268643970733978453802548341519419549231417697261419070238270731030477266321178246261507146123129512760954652810373716097679039413887835105662444271700956845182250759749390647719949782904083788712615937995936910815309916556411995273565363059792335138247434170473112692301777398473657263348724980410352876514884796504688480386309610200511096950847341069932626339032654397116739543890138723331751611908878228752982477806948372781444153280528076065521873999165370062296817146597479941835269251925651618360872574665473589445232756223173699203727013998127700978093083384904512404873348835295533470345787856075477146677758604890162219382308955698071193648337436330297350601799798326489885247019830964605038393422772641348293876655628512062593269732506677748190599099091608695650701211370599965428334939652050896119382915687677540057852508136134715409865720563639558573062564471967749419361545231959248959510938182704589575315027873962802870155956592402018621142673974383351810729557774572660904691532609529156263442000009712366976909608428830367810148022812247066585931542163194665462962154051545626889007419097356815878796185365124598351866926197467575158589994995864101377421185331715009295002305526327588275186195002162565640266436369370477733954786767713972685885667743482633271060098155753443981508307052555068613046380512962245706659925323117895097007376100846195954931381979765404123447275981017754283195328805113183610506721796345498843288395543972314843342402544149525402562438091493924268486387611845375378301928625200119987010081652003352342506647257539274141935521053431571277146261145561518366641216128663861277525771364537286836810413509759771963540576791154970443873326835745159340411422522378298434850962930186249724975802138417323783286037258734732119415664252305972206793977483029422351473975955394637276471077404077952008576185956610180124790784330706847043202365812532721627850367005853957531764269914885906547503248284427858305338963196502884280885937747970828171385595755828345706242741882794875776415728529944704850278302316110328606251358213832180250063905933397061531297992023084245768525543819333522434783973227478268215219339729168687493990865693665290275173723455409423533574028109019485816594051735963443913040756136041538424395069775309028340341975438718311401973049243937602840119186080313055150675818538272264911391422903339170800316277065922997561192929915817344916082919846581408984583835443621086277096427142238286904412849725072505200931790932963785003221141463642072655317794346963317359048503462522846128159431976417893933038928669065382307986492987448190733655518077223506296323237209285283503815694998971323771037440152445679340575481598232152825925480898776702712675245963732138044985670446015599556518414128640905725260305348234565223622728396809453197198807127928212597127031257684029318623627591336393658303546612463077781692842191807383051056495602292115209504953686846910749815836254749606668642371910825651439884580572010972890683723353855063676280901700081974861376011445541925589099151179092078616689909398262980244411408986623252974787242222427493867672237368877654155297015996303112201468245905661221838180723825579814153403964752411785705132811731950592951318139331067386583636128945682260588378089787171546352552364414294734546162181350797871709541566595581852969795595077867085462510097439716782643584061890956905330964335045303718443460063098248244399099275548895561105484654797124656636589614724019050226421903110751942005376315528233843280217180468181120127040760926364435149500836412927617654351575947127771628113660706717777593781803890374171959968651771168811198841437855927997809026315468327134309612819322891212253604784495669068941966120055791600649526684596120919267348620754494781547914574456522856762346046128973801230849967291451855669866316415587350649598995109792242881588228465382932499652487911570920378766195089219223135265338843321364214274258198142260424542001073559671960918285759862793747986654347123121311837612584107315639389335206349362510782090825310931329756816314609625927833141734356350067968893547403510352266713324654216212848785077696900384657888447537954294784803733021668400557454180814117308192386740601316180643144989737266389344757706718392313749307230443315033235679696909364844771992062736924494086631779259943111535705320005525920486102136492397549421162708158731979412445526714944307254477522884263300995367111366655631324851409853955192473169976728846195568514245601012887464078333620803317952557463022755970429689355379681569000724881401967317876760353531993933672499051487064957288721716308237143082134598935858014621960686648714946939687338334954140109165733654878447152675585325841794839275805903921698267464816901131926819620565598939897502872511908547275815207292269384127653094153584508296488056076795730845026795959575475246394970055085028567808000276145112847126070909302549710960377357656974370165491059915831956063467822606323869247982116531376315901670644039288769661005202724446971701878306744648167140217310844230335042973955638080166646882642270890872296419210461704022463292622207842737191944253694247408878226558784392297469491305462646391941242253668527802968971536687244094383831350302022620807301677968653624509304574690767290521111086164167237797689748957013292244244915658189696386654123070932806056775148324375575961253452520270897228721573195829349390134092556265141652227902716396385562251982445927449621591770647779368726330971936688251113868188726023193656795284224436797212882994290734577307880577074168087362431870422106898193105119346732449034237138712297258120677579753533399391737479753501986632846734157625897227178893671928485270936044246501640333257200820960600825539154264851954187992225121260558683400330804413275662471222836032583610904616769622606875255524860809835206950569010097388469882366847778340094520436712324786049935215930756379353359169337230137998841349977746205050218570920283783959703773150031806013042191469237021441916164296582364112138510107571303063108952597561100928345887559019838392112945319264659164304339975909670050700056574790818062169433200032189244430858159569894328401210886581986704732820944847063913356601143915951815885764401176030292794671833057910554010011423412308540515741689067202618283131394582629635450943138149343418582179847544802429341044474093511877462559384051217012159100021598698110153940289571457053461079128378717431641953319771527786571123940847606188951213363535263209121730285118787837144620695462145694677596491058088803237818430810347171125748028386040732592215267686053263672403110728278317925776101892880714724971437947748080622428745358466308666834242152388459753609412007341906300979950327107505453103327271078299157456848518396259921486729892543785287375536659924458090493186003824159706847132128058325445775817955503240635223842830091537339373405174606796415875872097498964466883154496776098342417441592022770075675124084879362092371169001465977485371608708113511224913049074566490825499146707811252027074805635573482597074836451297137226392275116486713970352431570586327106945579895171564635264705744569009664798723194390862633668841405599166481855612392779571807778971969069592636601658809089991293211896410292355375462237477220699749466838737958133203124994277849067785524895321990451070071406336422019853286072744468372800770535749830767710512183641347501202055423536424006125391902150082059156689255753934336170493556660507526754638000909167484707638775242537232785726481592314769015838689859411085013620942463091272111957107281201665179272349303653823544513334025507043848719342164647964671791965166632760474897300781239246101299154661769106152533010470399049155582329229935875918263848198373002737165435448708434289186252442818020998088582291674877758412246982443163414491339056864413036687887136363791168166230096257637604302339962904356647740070586406437018310834993363343474107832042268382244202661112769603802954204393946005896113451958509886828076522697130153519556359878269100665588960212639973120744142291173918588598452498529987668175031476037943385673600875330946010364438719720157497167131997835098157685336650220564004181676177419914442645625883164410376258849209012836155420930304322968215975738514095350200352659315398240030268485488997935920213105129225145661436426009229391356565279393256587448306700663421965765770626248070709060038564536165677409543311179898763094407907075440587648658230155748427875853613596816084051978444646856375091612710051207952245226962529714605532407764986139160967949847849743290017830108834701944904312110936669181471511422154842155739066247868646486011218066322007443652481050906883025191910872556361460876765490915108496045572536388422356689311615681032161475263511823225713001165148317286577429979891304007796655782261627329258848351689500086806250878801684677593432892264908586487612188677371327236171267038932291283776631844408018561695156875828804819972723548364705460614410359240461275369978427918251966630510179147246655721346558102361511203239553458030121041895686404915670576752883923667434289408480041953512494374038277294785340178389003529120599138692285602491409842976648297174290799646022829053335473508631377464228597961029563635695555422969176571501051154521370663110866099922034427477324397322215146411556329302938203076245896435482876097507577834386205290323356598096203584404431599691877048905592265208594727847992101501822039005076184447838130283701580104403340052101499333879673772213043784459209749169392459303138641560916047941972146063428363796565409638143110083004822235114466804036242789014632739471451742895679652668960819119158203234818681341787934148026299069872610862855453981252654549486753954916756185891311838996930054239304890518550348999778993415433158039285033494918700564457420957860607571768164333004541097555373802679275026567209648163360838410663083697302154163357786604955164401524712331863417856600210684857494556047809085951271898893720290285140571169390728614078282940849141416369681823012911549567457894485295574936915537885108134091765070032393453904486660931759058759902108280064998014083112412612848484808929006918603100453042679146085000697280825540732462778990106527453348314206623030042045862630879421043266171126144661780608623026757942673632537879900058825424650869279127769906449875829144157546909340859154286259393015311095655419928017698209606404173650760563677020242376566563719996674996272435820649992787878803342327091838506366600777908854813684436638088007661417811223159783253506704682610506321056655012266294904263822799920277626643952678944071343116024585485136614505028249127426059579540471350206383271012858550211923203779501097487594624216311253409468839552266248105914661625526232585991144037537394550274177665188270076215839959313477265590360904255280803055174179817667348912332492865708381301435404898200959047954226058475683327834117873604483626529624441920371396298182673552633963759019153473736291679253872502977091527753083946914788978102611928970158842562415709981305579970256135878965992102801133457575198643016388803864170850336698913450278759610465763119690154205163384575280892910066615259137706016070999989872337856005550813622909119335647760698780467395927527314265900423858967648092303402803653266063606587575339659100445224637396645147852144647536939825791382206454245354721468580571215814149362474385592258095179975739169269950780652155938120430575461014852717138360014635369045839083986671476563820532980922462596891703379144319809930829899593424599232450227372952950731293157425853673179420282444507580519346589203928027830051723523008922236849528575680216025246015141024869915432054793739455110265728657161203262515569145928579860683501049932058421577595786075281090479221576391339508901508075857208033971389156730803076417297752793476897591997172416029983837429831613773210353855944915602100574776095027109131808863546545320085739345617746541575370883513596659764227825368222565114793513530652389232540125351539358257846404882648480317673081822685014776703436684205029179572821888737345941672653227340387092221839904296037454131234595074904420421749876562128188994178219336814842252669703523786058191430839594085080308751176811990221770169759615577401719395253866905100738456970422675316279681516069228062054573189598594399210217651369889826611080741594435678495708124991732067290118426369064768310128065642240960449712398673783621695752055136432506563455403937519617288084690902742166485545218594218511867420670057424143553113205426895078335211464892866220463013749082072770664621457092510349217572788925535381268468732318923455661325927167298167887430555618895952166024653427967171224028022372273805248576918979904500720583699805676210631986646205408814754284514790591440617305718299365607130224604473583516364106676530467349862688842091273790079112200447285081513184810630113999357128892270918386995785663813006378839851063993309155583798764958086204817876208000281257279668668088372875392525773242314392931260698546687901194558563098196825502216529876513995788331678869547437373781141402634775260794738229182621339428741635274770569897599903373580167333118457079559109036744108136164377763486695271918783236351453067220892604775868235163774317251477716816153227930339590114291197435706500072052359509898766562511017634905069492430303267187893070192014789916090869712678556003048926314315990896427886853915077309201304510056106843215441699573564774444333775505666123264076759989505837160710078699550859355447778402802285019538060623261572651725150960655072745002905295631464994813607006718078943500898282987253085055237689202159009905720038467511298170737582526132666122886116332764081163979179751217099587759905508573349112320386747885147745877629587203795275006120482014623847265823796845475583785059391766203827466545814625979074933791520668323423050796088585569423575251538737318492003871176915037094955392148688041634943279207076029376307535321066614759005451734552666010175209394830815936901881831769790725465178515318021075083292647822937163065406962681277736602016824471428364429318521189574058090130817695304181687037897029853689723502410644869397447379476771632113052959904091172647188947827248443528187966799864395935790148725056470408906408647026161059784691830568748175115575028911447028181901754253710195749390076712409733885555173016898899476820631976613091149746310440567858793533666196345067680883759801736900565909103057329003274962318466941840989748152702517399698119041177543341720027040197544684283112823754941793179180555613947951606723949350564701647492239074494007830479984279036758980246787060518864173419516276170785384367121762203065814882626710036536709299413608259464830568612711339120391285850604300026517871718195265119125699604865891006264539197237279328005801265599027844163007823722335323182486640232746568156050765001645380690693325496311591539392799262744346181374616627062530303655607078066821128420903882887550164641022586679392633836756209712218257070414075217272624482128617826779727663696051249131861055742214810496620295204798646986132598052182166249820502885049174623411387828176641813325987302008777572653192444208355711926791278220086799480815063245298927039575637792931907917947559424886260173863554229852795476592341090788800958692732807972825096059030059175131986772359923391232321683640044034049633523563359036238220033198635588033978683882112824617089121522671147729247235069740688291667900306952443938032267051050615749508774505934932183830618154653247321275156946171520481237852982743420530309791630467664365868728857682795637296880773944890398621908919842476204622965676097446543475477943380321401217079639278868593770383078072635649850887078042655862071332547183364155721737702433504211874586646360396312895622293668508964970195301925319224981726276459347842786138092798602122723808187443525756292970544574704218189304776590791176522870633537681438031118272717348832226675085459841716556815354840374655914671009937273343141548258454073295919136795602161575926841669873188959252080048768271674736568474664101737511354484156326073005696061305552469343527819775503035236582890223397726780467256042958929352346171475606108683647964444322837196319949398721123841694397382296367497623715586446772546762248040356340653315941307319599790107386306298522625812615141617538658820134516208240189159736942001622274661965856258727493831618774547788841896222473547260317692132588572576877832318252643798236221843141980312255499420346845497644832009849417138837771278482947159295370880264656254631422964474563084769026861306259922789214584900708175289232804935402679761109385753735608187498959210428659282412990121945111197575152820747075165952839206623459232715087893951239837369409671048011632765456855759621744908935569342496655174187788545777350443775157585334340926623641637523871506890841574241564408583013356974151065297994362047454698591349585066425448072398294512883610182821362082921882992472556429521729830589187100842445470028380764094850625032639525071105222351624110925398697326540618707016386190323340899613283106993680312692927292459327392294899514925724742412827607052977204670594526580451709332655523966920173348523231878015364883016059277623141262619302643009081853240757797508636218893834396437431208946901215072061066811224141917211126454259110972214154897806975608273967835055762987135015487081951302726195169942214788792921240479671411752568347348227942536753912293224865537995913208011947613622181224104718188412702147001005721538323730184882054969200139745801463144636868658033852321896472185968866614270766570594570186537462661982222252398432221430622447602318558974685390394555272380111977886945264680713839067303486765241941231313477085595968902777787297437154587493930188620632140980080152140268811260092917993600255615160450154127143743861287435424057489371623007692139284392153477681304403496665343434106400867983596102982610215674253158281127890155556854269693562820276954676215798814961728881266240993354782933774469222020020408660088036039305229550877552701297616861478369355382118554953609263264487195928769980013167919420424701178120040717166373757263126075472045455913895688973369397075512131516047269654034966782284516386719724213622142123164037520251196946719430121882971756229358104236919955385739606800959141485795980634767622410353666302690861728648460025385480063972974787594835576887153742731036914503914038246573791902952327546493719514910898649769913744797963994044293914093067936951987742750949560868833334759277260531420251071926498616692558197801353674204950385469637986433648704179196244861672078743752972183270286266685007106789076395250969866529477583331542700222551075471562395131433003207700693132764466220909247274950829440281857181506215823265117583539414851320310640691674958535804099863928252850455809224935393367341523988079767522368504674268453788056631906820237779785146278961363096919601123786054548771170116225326180268011281363320551818491412370033009134766581422298701919562979728925024055860364143048152758435439523257660655599448486777944792517632905182625018703193111068854838287864665555476210591268625413598597794028535417186489638873801051086566044324561147865921030483044179641777960372053353007700888613380177028868798606913402144950444468294234676347981218630423531067710886392002727916534610190957420404485208077325369508778804414518215312453282409875066346005911269180790554825095658766436745922859910995159527992391376012602783421305827352322643212709024024172238221246242962680841385039861452550356722960390687780402905066815825692088397945876022950354562248184384623507416214493529774828688672716916197998484092575935620162719862302359626474772977905255230306818099742223340765642944504322917332864142550016618006914690194296289619872303175204630757172680928200478636884640112412873977437016272647753289449135136543899051679198946122981802291557711121758646686985435519006088526982703729243268510969300116899391660013887987520839508820707750957672712475337170294032942571221092445330524572414126069238513280513681812946308142129061671491333378292155926775112478174259547642404901608395357821603623015926010356271968440228425328949661544592301901938880429078128498137995236807230054990399825332743672182021464507418972947615409185410592547619089250795898705918292042851936379568443949808306698752167161226540129040901195185702476372936463120634926738201483649491478451629880033570506444913783419918454556325080506588312566026909835983313859076922921109717012198238657304945745590671923068020930966179869712109533883024801614227647124679489410199587599738754003032049286651193516980833185735849354746955178181638079447612563010552309001667939098353064243728089683811240365907045941890908315637246098394792758569415955710440788330210138433753216469017605822179768195294423412916748147647382236262133274330336774575189671576766547457809171417659132362742011107778397605141479378523810877474629715233792151325326597452477300926376918182253120423395427225958886598271156420910772806932535353935788917685463711440574816204985937170416049470378284208270101148787303143189738199412527983569687371922950148333082322115034235797912782972986926270030335104442605604347259209325136462719053141660757313438848996954578941276414737280523528348772623475095126602286199233991279745593255987961879920281080169207506983193030759700257060451480324548402030883690306425313910627731798082472822808784620613676216273620894123814139940066247842942029055214052836303648982550632302501861475610708894197704486047940150360082123135289226920077404826871827083960312999812842704686904497856640091912274813445100602697518873057744518587371467729276436192669247103867273282057945476687630303337049369236005433114722187921621492767125766133794938999273319672088745092276022512214515512944363986831067444884553306279311406747349071648911757428333915145476314617658196687597298409811865830363847865963897681838700739261848671291317785221543264236262208908473916744583160502893656686477918897185481435287220559245834856129404211133636766175290745803898965107306118328394858161046604443583691480096517381345005292959524255371779063920784714852688082358041602097614780449581375332647034674256959475684139423675246018507314728234042467470929213826388682981375611816787142954846774778565633362313567790680090081727549151796355703055842043176148669229108633028807958064840617877122739159208552554035582673578874157983929242997119686968674421447862629599500244551462356352360648173919187300731271019541884575013034806443299956656620560123837797741901962550033484501015990795460853148159410921148830275133303027521083082714819275261630353788964914725946210727442760688622578237422325274270182615395922006060575969181180492450253412137670035846568680859455568564618379917520048779332695284518165085531921178857824045901834310438663621589837594255235972818762731791377646334562258090584557426465251876460344572051394593771327848972152303752558634297925223205508726025321521972259237403004584237944096295774340046725090863461613081225995384333394492695973280352286720544563839292994959382147633354862106463084591320923586033832904823467713658948716073785064105462014569822215364751261009131585358770494437307924396594069992970620028281616240503264978714797624849449489609054386179615607311603333131249041305044480937329731716510013117460009579089512157452091726714585311320879047281441165136118321411544355465726222037277934023007970860410358726378126349903865753660132384438769691554911796496060746987940002174828567202950166000733651604194809538145735684820537062806437374859034072875303723038176414376784283466397404992566084316691023507029835015201210932418401250707169873129893716741941233610446725531307126773337481198064346882768890825743020634379951834838056169745741299251016893178472260693818529285705799016498994906885936978474520703702757159261767054830195067003742469549500247731778252007042535427529635727004463878342753075272483523802212635355342271550224943084718410325426969654308650509031330295578700664239331044672758571223785246347625021071172786878331557702138717754354574757691167318557404499893109366440254636508590900494982882755430310527787986432767947282237843834192218995347844892600102021661727589951743722306718754941023757851994108311480687109243088142468508532612035888853749147116061421586330777075594580393745424068280843390115631914316103107354635596203383313324522347940499809757115655489197892385423135036563031069396975054591072089827099464158344621035366781023316321313643617260313494948025497581172417922042082207123017759222280624131449144679200360482330261397255840501813415553411475027989397363925571757123847800900347345816300098771649075330063376119571588552384910395081285539748263591194979623518635469657910296371180567689488855564160914973952965734878016568452513417695507352072480770389988632152905903762717814100094145281675076709509369805482972603756729013402232696594902574319676143774258825052102233529390490232618771711000824056862745532679871341193127671905504951317784329195661540027637770029150753807356214005001111217576361358907347448627732963058840276842468682111542917701187194051704670168420439336904116805842199400406668516288682458660395171059577959638816802661502202342098367753377012366221697195015982968561154090598825738435486599043881439598223206969457398083646069484287213998226038768159290321566898912826602596028575493688532861521749366340255719528957199274533357177262591572458627052934589551635001969819650819028892786730496423829847497849949538211409029657346252164269603372914645429149428075045813939549861510833367838070289041830823685467602034045363873773649124847186200319943544349472288687121939067786314238355341238323768423994951610397526791707990022759214539223938753186228060915085470823595258547020758522134339219890445872349052270150359963003602938687296352947834009847248294904220379542158995545764348754640695871149224595834883716222208600442669694476984680405555681256894433892112114823285648450011381274420545715529063619710605051972992156429710450811476858774469212281809867984123289168570565378787338174467635751195664082917502731130294060469684196984007314351955262945730469631622560551281108716709650628811728068630821640328883868652968012019756391813107989477310466675829003787943422334713259736664511339657847948300332395472163305554720161500674598877836917392757707060156316131850838131155700190476080587532020955932744825760985826369218651320991839160848125898924254922121245098723564846151829530325206913181551973634487116239717972524113333645642869556400321711221228912424227667055976626330698324045128852927660711757361011847682433773898437980420718009443504200612635570326986410767748168279277652883080117485920850427869775236151578359657953297695197198620637157501128404433175974816878492935441679811906978191100255869502086844300098687152588131299992149008046921996904559133282358252667213767764755974871386266254839960294237592574814469759614057107833079992189386986192264883210282025108888810209879493193629184915539913203412702322684608352218147586906152357195258669778221286527871387615276790898376404978676358519438046783209968738224725046590291242553783967166457622416567921692467138378692305958389709391035061919502523001679902900095633082517147193822506110234930215387762716607739200989989373898831113347317661520123248809914344281388495036851093860916154424546234868900012774352600657261022624617946179377310719911260972355259630290950805700541715680442001775851262046700592235919242153995022746869808971777582232496034108410805007611343552476350932544509597520449559576252968554913858451660199099473173690234381143894280391447122096346689969771650052507951941143880798326707242340171269090717835195046844760973943332494318984570095824801919950392835178921170922477259876736664726733591374306736492087679671111745749688329256552101866933120005139985695991704737300642196820616858578609859978878640808091989220246672276514258426626728445702067500579561237634222430315321360679604986941076298192362726307954082866002634959575122817096442072256461500598303070218933631363412244540943099602042311044533800675439886380386073474421034693781217945485994135571460756710314744983072137130181390320098693251364585434890006706558008477744958816393683403079965261803652780277902950594295626666499105004906278653763132192058027987444666657262112885423264092503446907389028786008543902317895053325469825555155680259216261826466926706522934287028316383746201302494012819693736448654430598243697662912899238318850155693318460255116710415636598395296564279561120468713345382086384995396014176681542094470689362918216944330657315147087330501758767227127026564721469340368695610242118645159997102960640147949736811923217580498158338146691963417682456544576408022353713743341075861537471743997575729538740955169897456045033683408245222446374998341892477504044054255397487626644393754347808032908011807595673271310367648608871485220007868894968304500081151746534045386928956525624811059939157689945664584952368964913440910193362235015336989262410889030918230953182514574009266345830446932558820796833127652636693412840769627212605890316761541921383037576846734306346720162744396313697224250733367756095139443236079016294544591298949843903309835931617960515748969565610762386634748564389142426322574399224543289181384578782461153644421847235039008306640691149683532856759042743273883393801328040353969809405142586933795834179237797312411676004544097039035116235961017017237921673799159933173930223446513900142933043421050080819880448219016214558666767999106869088858769498992943220351308220204401404025547440086828427704251268009174803870331552013950176184787938530858744706200205848127488484023714068556039289905535613193039820232730586882125527968444522943892952889031688586179478333438460735343106468383849907676820817218054733884561890055901535079496664636311995898315440861540549938740812119217719670559015488476310376946484397563760802937604484096198042940186069138336336003872400149864031644380473886734391646812883896493467698378793462089335184386003482550554177107819097721523151626909921549217563570442138538106877833864689880334448944829861519513672523512276928988217761669743261181618767826771117244681268114856502551262277850833566724507024621290678060151276155216794802036419177179377971268202803742750974855899247903001792190352142609638904343652030847887843054420968386210596156771805063537008945526904520037866029261860735173159329142901887358781353711014614274468756161751426895061825829992511361130672643411632984956493955524640379839096835373524423862385916373189653909700078721773838638364785433143205285822089731525904110603296464713654806017945158396268491851159337113496062108373353807773809809260140160663181628129109965479457066721604645109795708995882539316873624769692074522515591467485092171709751580481302450775811674867415876629680427333364553521454286972940970956643916135713068321523210094075653257405164788057871665156186780484932200547053934085284471864212211641395683881511512787987266288600479272185815121572952867800914253772928370563295728436921984334137385225668786906888853036867690200392982179337987279533266944454341219334850486692260449768376700811564742077933882626654750870577873503832257630841628793729760455088720649877677401284726642348891224188238292211017070484131741060296904668847585338041139077643492897211142698848919602323416366261827353307716738606998130939000570913258689392578676061931484744450868224415449350395010170907545400540452829120936965232833650029858129825206906451740191669748729228879882750854342900441215545157296443016688944626507176522112301282250882031246643546113382738745650635748445749890999246367030879612307324702041766628663646306238514648913913526074330554246970967940372868419550625811290367694471265938556734095609669455898349406498916971564165059393716884114562474489387735912543007885479371954080293146770044427176777496875525263923874713126350841466770882052513887005564763765298146430442561668508775620184390070455270893583946349465406203677749236814602079662214448966138005974466533699144049403207303910272738574174540536614326141145814987763782447374751616814734169090232951597472387599291780101465427362401821593349906647573656652115424137002471616296572354671739909014538642219867593117298392682337681254530823208668721990444978371475975079897764847925429916568261962619084293782665630372297893118231732284623381180840200685861621095757915534644868527535414093780043006119135195129653432225898364062167168660194242001278644481486917033626795870269153095316243981603750643603742515290795610649418416628361478724689502789084603570685646077481336503250791770958773582206385811859745924769306231647576151543349560819842044935382704340295476931189394027595325216784121389472700561299632077321808262511407821811804948558365986799256428048727718004262389197726720486431921206840518286637963745489097745110108925170101204106862326295578892393207436648631442197468717061912677857026088440109321998243439531264409538050311162678602752826691408818028794239605421973302288354945193603069241257847190923162794880208468375158097824508627365313997317992111804010686894381357017568161713438132824991767462110098994644579735841222009306720308763157908581812717037104261145629459214447646268989753300991365581349920656690625550059891722143600501987000899916919042479240857511677103080732632256829981364669212614355717035680283197889129589712630447464948441010305670482123702875128370064206462274720464031913943386406976008193441042391826178047501336260363947962971092984677219979785556622866203118765208623419115534756173708740197620299744461232716100181361269486106694276921919810786371524741852186110140315476300906619973381578671291402149229193016760182925669537976405900987923485807100300018916147229149786807236743133126711428181369462633526774167449314009492861479421017487262569597581873335427765017155369130207666153179185103897754784848801578736201147174409997480405051345082480935205724107817999317592466630575630751608727052850602937899054014240662700833091401246160473833205968312731076803273393677702219063652952722689343031148069823991075682727237614730535405124369226253063767158998848542343528041582402225712207600693439448604346803198565143054627117431251165783120893449099533894306250042062953382698130233981190148845668981820515568411966608996616337299622698898694569949679977353912701339460328529993862001390883969684164685687679762659560167871781782687127443848649367677366103792471725029712477367093712243680755843093935703364901909116410494474373062014753006269894705923758826857945625518036625043744556934452604596158035743929988176376813453095597988746803090311915854607505838927155198387726964909522616955942437290736636370134082942803307140020207155733151856424993618040756463582059011017952163154543818783169114569598738259119350545562162041910999468536638643033937757588594556813666180089132378535213721836973179910961755860269204261235847235606555948730931719284428917823065926341956002017345595002496719296468414759279051286818485993799776535119699776630245958102519214001657096866653035217261929306801561107502942942980690340030611985450121463015986375089771311366795163803318166470300735427758855973722742992060597303382523814862555828143971557715326554069965071419145227203924947239047811422727164955929409003146346464646914137929302582297511448938963840988509426561287906819718367263680072634979661145915773777453185749480592910469254971051665477314832409111688551354954425081771544918254075416038073544573257500673324115531915682991451484061846216009561325926555212598773796759659403213665147994390551351646839889543206470950441474727745483635828716611803166929518413265815872768934751649681223330662216312060219766684024171641528403982959013059918541113234149080064631478328143598155694734309542365725822696732885944490832631254615144349085731800699436747170685688343530839114796102619609235939088111493243297930501751903575509934420422934962525219031404181240040544375024696359446952337620549682313987331410404345433015819453541711858165774608764381995129300965230564999986472326593000102088199044883585633568427434139849214147454244169741262612794229174249572069771378720341056159041751093212598650538271158916591634227983867414805473696674122371609868120466084174224266972463844298927795558178007919581047947308579692360416658593371981566112904812145846941156990429092288688358859872034693451275976395828479053544973583403006134450616217183586934953357432666520783761304050550722181477694550882147965636897548271214478032463394455502811616452136708541944426697960318800677156746314052764992772990543521780103568063410971193757738556423069858746333792630435890896176037127052654528444938740003118720479688093401237433243699259904655018763538253047111527137513810733650417430965879298577617251480440856073831780870265603043103523049929475390377032460833952803362502888132067714109975075709364240324745711864207439419545047231403588049748620099588953750199984341756337141818397340534015322412688105534597332512849989033267216936564659444011053011708470321246014040901518930874783173988695970706743686556512824031984214461306322103024990610192678566400640638603778790931462095661416087137559042904110966580005405215572300177565893238931619885444388062720534935167916091370307890655829597270873701124425658563104568088890015900942257047219896304401575286824908989478245211724785969278349328254504239662609728175763874385208399320581936413725940267609531603085280273638801770678386568531670837816093936613405741119344633489579525392428833479544040581743707883249250972696847707312932584602175446310428791197255805149205060152856634033247772566682085827023289633362436166224954668662267741889903746304778366040017414506253253233711113425939939893898804468299128879976390922083342661215834476197559285731422691088098260108139448005768714146859263268518966406642895974129077597774941740538768893927457414245103699356223482082320008178295734753245348639066548381885971449353962151314130804147589572916298624412141158022941715948436276561325761688705280502641110878784113873050166640754362113527205405575959263465939462398709770076018476313665014852254114336264451157074962680491156514191263822686180563067978392300346100383096932659532127814821457091809039816495677997319585511556453308564994626510133683065092116157005321311412997552737534644896083728567917898349945658735200618286136517237235017070385142552693595575088990948500799595528866099980877372015082715423946410083050119870235908782792641112630370909040512634363527477627111131872403644378778410747051257384782256998175430803174675964875758778867843945543370691438521456413702717763491116399788935687436090860179239023387334772037948118378380913311670924042511451050357257605798628239369446093418030932180740012907665701166672277516089842332778994222321900471339563229773430654280462616259723588037970150399892726763476223397121820969549051356895803160497031252787291198980480332866322902470731316027036743708698023327729677662468005331060126221664064880870057047481008031267406971394226430360884128694442751714974376222990257142798733066638421582142931014024383932814828657509414231875260893707857873671176811096117670061604209904370311079794726517424026450959900715147230465863403655333179915132418379931133457783243135118959272165043449848434015722192352336309204383960055045958139513792170008369499595782974614646106936141705375762325698672830130524919160183062287601913505348409620432727771592341788429008490919083207416017945834706953750304109899391170163906034834396612512556150232244701941271466058257736593674756714598547376004640393221374450364629804915704053519848902556816194121789066959131418175816237662569076940367749090390836516231463175809166664348571012355654421369211396621101879861080536751207433730561809408135852339156536972814122317322676680649943619645831095468718654060866505165963197325481743179111472670633178186856128433296983974567653355151934091244992362841740657454769593531698153295889165068068559252039075433401137229038097902593000870715125359374396459662979841494555139077916127343458262909801444172529756464612295649987010440441850206724051799090473577233085950592178216085429914341749824991363865938702268883415753679694713916659215469815679662597933196917522911157168524744509186711487917022307017229641178385916690549194786979054867032163852884859590513774239709702490163745839094532744721709764604360417153707986574870532656745893778685074087952640510960263204646041960611679040259606510808507930180423889616637855410008527561305542979586143640364770010096753108565043828998854007553366121270833016611704190746898019236235249199229324465113025323944377021619289674337842204151349374040721619126653544222155793887592032775089423950068310496271379230928490089729611741003589918713756644994051609599626641433630004202644479363046687271627186230519310160223825866263016594740518874710918019567352749561214172945195188544820892782589621709835423298654277604815576162631837283102702313875125310406476031017322652148166276527774907008305147668892466442255571148889177523550613495415655772424195273886605539107721959957220175340683793549343586464165772064966493593936628693191690851268171904225614681877858675140481880500096870421920053017894324136377997576278712721082428070327619028659608920716467950500047049379137977900257431266105187469947197171803701427910406490865430785818068127432555826707253048409970115420091068042773025041499088385703978363051315417259806136225705891516421188033155610244563189229663054749009019331056459399430258856661466084612112231179166605573044933652649123008248668856631004702577675939676123857124617257789227339629377043393580987049600583636555303572545920120766661528272016101992029487847409845109831939302234041113892889208483314714200001921548436771630978312016995386689996867333944077055826032112532413911329391061199573280949720658727925617242048190825859379718490312279164568223580580976284814124445774025672033989668610801947038776526969169581132944846159243202252010840064205901135357810290560947273572786014574203349126627906656468133239715031428859895804024325385302237257667274189325824196542831490361523231744890319462943549023061925520073126511047918985262234543490985173327877796781203225030665768123680452480491018383331648917427929899583237722020470529739280069148084417397367679108140494457092397909161475309163421544499836246165837902636699819729170506189953048567295169962108793977473393299134677926128462013953374687186083107204267065807788276284757030678636251839449879430936893979803165802892245783877137738715252225143822680740194081755590075272820006104478057312015287704229251511460047706070559539809671781549175791212999341127846138314926964652202257880337039124695913394851804940123513443509978845218471682967704860169026192693209990225202094432268237688942334142999136742387406819746977068229863247277346148774227674251182085805239914426641254541291208415740174541272815410976234695032808377476336126854316665954562708223716415563524101132151293514794873166269203302457461889908556455408644690545582349172222384571973871063152460730878527927716165178812891152231802049629839908081640957965904782584417734563176834947155070012299441589196210452010214618362198648808308566564023200825582202038271739046295937719033058259786320583728633294430206148506093537283951222450292020160447167701554887959884595399131013427911687733318173353576706587093215452546495526572646710972382674942150207564560569857951871709780938752409340821429078025647709833364592746540637977602564548193655598901366138112333145833743339208006366631034032298523047098925150079094024177871610071626954651130979197701420261672143389752690848394968486549536932708701191122430730703622817667652509027112377902438267041643529457922717711485969890548921507951447095968967452572815494446313838181786814749294085726786749667696909851542177475614831521640634772200423455046711041957751716171581084054501395060813306827851500072756686047658574330602089058835892140991449700185227491528448685066382763854588795611539063282827808270526212846725444148381976085316747543595334959217178713647973282884706551602224490818778356040863579301852015691910225818441953757034040791073529332192363924782164868910082951952333708032534195907572830863044259394421294473151831675690346844437051824461365605790000714864985929347958098910325400795750435757820890036958963752962099215413297034101403113612949239079449622560133230682521793179203341527875347241355067853026188230472568988926604809954283522282627950347592791566834727164024999844041964621769691749943395186736690340645760712667085792976142082659271427388898374378288643391004272704908271002262244062641749873510930393160449718665916587581266158239410603523582230212439136168079066076928134424057285234583548600812338413277543085325970333332538327916727481526867763592166845840262509326411813027055951683923929136472651653422449073527219908445169270368992747029349480483779020755542747552637680333685579314565457742713365065057336395987117155289462871885756132406506448121984356547319407808663019607161362201543969224149049794275012402003726893125621257476895924388808395888715125093091220849445952459372069343875415608552601537913795643430319902210748447916523867163464027791978154888408834248161044524248253946567208801222365972334018552511244904029145431941195606912436723100270881854346128943983294570845222632972089412750796784977864234459701899865682469778349989851099440777130389920807143372230327231864585111028400050740294900875956447484374072560489092891495018139536410099160887204293703435030042026211527376980181376354362029231436749475431063722742861428262366652884197400696340192795200976459356788028927251362839702078427215112236625540472165553438953682877716103034245738754539517614833643902368041266119268284416776975005210001190909349515411849273301179048727265115857463950958642860577178683797005309129040349483258199423306547012686482403792227089208413712904760884451690950481724172461491439450401879106593318246062124593447581249369199132591264381391881463513111841296189835187774103043507011099700885127998581792893860293062257422892114759135199352103029877930066646218780294675305215841012200995620703125996480698540877331976347272728643899094242556716919062096023782054801485723838854715524248057797181426106948886708336100071136647326725319329602863571920461178810587453379958169022526422359110094997553159786882072886245546711573612464307318419721333489672431640454860044507822523538431854379655975854625997298168781509941534568156390685479570587722342658695825315498275343189140986773826773292064505228076105745136309428941790922500101119809471468581925047589507364640039170039255678943328755263522289582789383656575338730787773257825446436512147513571010140685383506419808814082289980690231453157937700735743236854026235103882856658140832456043496549171896658747590070641332073118037525417527007621456133666928723062820005480708890032166156275467234289119046353967811769260690857738417971587675723548012069161861350080625580335396117790467278024493753935904580267480172132097179416384923771048376318805219156637333471453201543368842055694485891149210995890732739295987538691695508457671724038336394748249696870215762034263466174407751348398750715013217426591637880802597322614703197928302963009496324352103050914907373883932913627827217443446016111719909379272500052623171751780185773476014288584127603478046975552870239048149055212279262014180320236848110566422978545842418525357085370587501647295914233442735910066594952608476622839860973803539375756154802049469977321179119372017174687890284942166478794448033457301624089582266126604854464268081118304329508841358349358518159922184354125890339137745093925386655415666329381763277953673057584016580555578629269327110428758935428635183824836908916758689380290538257266964704692369075047843963810912545482845575942471610588595918121604905984210058053062810470170747350447428788881943264571956918740669169620850822083404511811643105195771738833155599484279563683980533390703956474993391287543127568349616660383778331391453673269267822059222958651548932558006147604737652467677222062747865098060199359079705716074024127757924534224597152574171051539140103771489363861079497425261662228273539950885325886424556912307925027281267996915831629915599507659327711081324405222261051325280452891322274212216728330083886006187756197034125488854618542193313835695757921309394260490019182459360506612860059843727427283502855452360468053239830679946923005481671054525516312772529920625720050613155268963887544036294175297559026902543448759614339386180968210857559430380921725599700669904950097103379307678852883057023798928653866810067347671524127914456739638481610608757962408448069796024226141596608822099236759522831431221960573207998585360956041441804850066806246935934819708358854593905444067295945431445370325543255533548806461448748303041202535951641777865662184091805117037135510641586263917165297172023532694342825030253989128196778310658020501348243389807028262041280460377509777404042190038482283217810810535750955764216885287994608883690829358749490009118985366109093623983160055142825923743923819737028369641808450356906635028357011599291656065079545718079761540936074284967369668837874784655292227922049920516140319705723390549148191838205352267286849560318467167891765189899264671192025498751644848815233075053683394033714316999101016698267954869790631670445368994461275540381638596421538626444789508785674090758867105242820287235221772656444521891717116767143040110298610989766537246263141394737242798569955707887010643435317597085055575426842619939852080120622662636097095593057843396769734256355483835790981489722800212051542165030539569793581929830477874139921159483208487607186601431895325260367956554331387820671979608275105959025132016552651919790020661614734045398402115425489407562372450604911254589438834001457445308732977891712942424748722587460858155156249268384135526084025649740648710178507213306495421646852885252305964279830164913297922351089361309943569056071756852578890178471380283521193073269353782090994015654534450804906350116293952800545814185592137720180672813357087565629466373322617000291143229461387531858131871773300788404449056744197748022241599618580292509103619925039341920834330105703072240736458449282049311563661052265325599570780398587159890790328844707901675428499059233266787897680471529529848769994183564241800957871898903923697609848517208661957568588162209095940317304530003707893934747082310474182738828708335020972823282696807995667055764679015404893515047516377004572159572453949834985954300277604411362147529471610018642922488181505269267640384568556614297004214239991352174670539596523315845467289759527877697581340868616643223776329824551217347679724667782820871714941397224670439052956326049623482312253990756230761901905332162101763633484102806489816119898961073392041929171901923410868580491369235647438723176136981150663394360670800800998899927401249139950825542796879147321204782199704849764165842835614733702534273945530461706936322675048133437612629167209367398638423646669409305705275095874979174043720705134341182327589273130631966826514720933460851402970091964069706033421654195710206225423219407664003953546052026154169104260503478546823681563587002925057324789720913193202235574049640411777245182827115189088247158137631451500574433455728435586601595146005949621928395417223435826443090833274526595520453143500053904062456324457299197291175677110239511679093530895937404499763921430602330769043424726410809468183151612383181648246824875218113121035789355280115675122886488332492609062758980090462601734624059964531567165789302052141145777700414077523593421115782933620664163912806274701829357714920247138952480087254128978556276864529519633982798133666512349775235554042593973509375932868701805796571057962764090670678128821200404854753414255687578741837728232074123626030539443520164160713751025709361455765879924226545900102097222709823941170896077758383428881292262443146965970875677695406979588867934986773554384681105823752410888562623799966191445566476552513379847639666028649336470477641933460201345268422977201980700908579650381824754886943911722034304240723756200120896651421724912712161524842032967657249629031837126338149532603374248570840635363990174988168090416495521916122168366186160143116092379957242973826695527439993949852383517418829880658134208491750308126640702465301521369916999278931874376965644746942467384197798011420264214702333417529574276948588939319151459732952073290774248808761483692934874668793067137306170396887822985322686796153140729431737869284079483636908865813024512418172288722927579564809508814283206781849406519239531110753951506889614226781468641770376726653810072770132000365690974741752832743476602645792205948717708143078813811801729926700313020538668220143996232888885173106593971885664695033080218844386305426037503590621953201227326768086281751705153248827700914952564883850567527001129975676272560589374550083014679522745592916073496431141912588699850593884967497735370901402585724835501021455686362957770731145051113832131153790649329326229010088259204668628754633941048780139490159580209171425802608256691589285032688664440061816471079071129443487437888704776210670288819125715768772266939359948631094665143718028843150785302200276996147847206397347853456422481109368780531160103077235911314174234003344006195830216465787518372187847628772513283771657309762527781982094329919712119816164691972719927440495960799791631642031953905925658229968584976752370682661786549539615701872303963681625248048785880897319294237099665380444227024121836473665220373703444503549133309098698723027026602041749117300226416744763854764625311974623069148499054288125884148264064400817084674505632238662877941138833370626169097981474390611938124455161880452930050968068561399255753648202666320368631139187849109610703043564279322301965878897740212045203459724680661923448972111510761440821072542217961328176574336408245549189909317817907628181606977640877727658702507936606240504444162077238634522379982968405880593603529576336496249818839317751144800321505544353246340367009814990255347797711132799128852926100690333227495291798672055336178858972221759755693494418324248107379471061595225137681592567375334126708588996062919404453063290993200158689725191427539362239676462564425231839268066349973210768343319096899822757734778786766907241907298415136802210431441109415439578875372418084237705293905515685617708360581949405664223006200200596025534678600657519015961662667789608657917151745464149542297758685418408193927978841901012610633558550775348764129234887715166193190638117225916676215790534540071157105661223644708409669812914831431587289297718876958829808149826546147605244090402657323479929663811258106850998936934992011881619024228055784451387290088294953336085423354365635715980876979213876488646927298049839776457261885896489482575535685272289206207549261367912518823628675310633001920133792771812083563875266651738964979764306756981125550237600784984179336685742075818959906850811930296456406926815136598252233517937985570088978908239488897281414924248646429099111488091022107898549762513464317696077096257691437553993274180789608837524721343925313109579330475169948352913968873586661247421783217695484150460612221310306656684986525208157232573112997130870924556901459839194359516654140066758287999313888593419075467620762636164308027045919072310773617767014644337904955912461428705003264798378278810473314888915812986580258432146778539550626671104078144969080189708127889726949843375631411081161867969401382265387636521989611148110380557954824992434088561684737874975896440409711497861776551398151595387078430368153412431975828962396115521426748297067728746489921102693827566922710873423686837345437609579250697757197480322093734376283893193568641772687047206132873683938962166301905019152937508534771525621564874330173239070221215877136990040205428538217775683872524355341869664820993481255419399816067169671676570563062195400380295968222807758779946134667427930069437664008277776412039423734623779164752472609145955388855259404019712644298481785380640364404255953232085745026573519618166503920678302875559032353298347931955314245885770419822567613832658715585682081783367648488013883459848111255507945368980560888532701439658552607122486583564816032574801931214743302910108001015162001569706215684739322206599497112253969876992710428044699688116949111145037767274194564427009114413497009400139859988783454591368641287635687907603044112390085145444285192740524512966312341333344199788749711406478064558147531572085965635171788418279553699477222334740556069577314553928890991529132571534341403194643542337530161123442645883194932173556908417820376012312718702582923002279729419127075162330370811176786545702697266243218837790403985492583315601582581500913784243242699445232058708565912328499924535019950322081727689808864281613129014228843854403348934174516053655238278973944711412979863543231837425414409791363308846000256858604144223839174473318291056069131056614505936603389888825688703314418195062896373277189710739130677646502048825736989730388545443629979857344724750530133746633274578992432199600428652066807644743424583840381394537978637591457909659071331625754097647715464985150843056263828344614640353236097134731700104958605050474221807824614816371816760981805713836535183707977596910173001522964926215052194579490165416755503944175046691530880516171529620968798314184069808975864916821987249887291818562705112945159593171501881294212306030379107813878795408008983947659127524002438210352724851805760548288942555615297181952025671875017071390201778173427528664912543888357295530093046218823862474799672735726261310862886144826986075269232673099950991811852033799437363379348625329117076916063787539452556989198344902327625958976983991407049407201661188456307651692895779704354654611760017912642451716731139730798705203737870877038739723263106849270136445124537914119419540059631051551714214561415424760846683902749022923092335339468860879016581106270519275068430680566287553726735136743575752385755331865136459929410875472638211309370122425655701242514858023673384396552839229548311759347571366431052327106982982260274746625425329934263844446073996785645084274796011430136115348075876241566356823831916976460811293549572235963975443057602666499529943244352263748969369589344178748946512591522989976121820002894409090238308471150009422988214023910034149488389575308716086606442393168178390922502723876940861525785947931837822168502005064875332714182162458393707171249727345166187201138119474827358978053962066090956707419570434753623805646063760541008636987353601734509032774401131120799520148480053525046316238333770926639435382092106096341909824948149926062382322595260055456249204247769744972257786798577187905258891690322439235561222289767179897626908555251120718779355752373624007246519349067619307633659510318753758445608457358904233617449607558174467986431961986763988335577658990090009006321063903797128988120153238424099680652295330052429600468449006994092076851023407163670426694439280736818525228702753305281507866721326142056212275070060818539750042162070897542202466235428555739985648305480497228251965227840768134937534873858499026575988590193560730920013915246195372870813603685588790878548408714108204716072909802325734601812359775877465056796699974020002452976635070522101620137737738415392537173897112369198947375711699481154825822044374161185008783694223354326301088290143512935892030455393157228466248748117685853156840267952308420117543579287416840580811839714077299250255714627579007102583223635090500213340152328603196640718128774744521721855788372882881350172527877211096014501179031384652355303649334984504529577043045200817278219347452137407340822826442140604376559791889700543478529461529938399713562104098710773628300026354630279934934699063240967311925794760918707643765906543807050944511448815006061580554160605186734224770315434800530538679932097040927906314361029859822164208277457399048502582535371135658078498884603562619980661388154682078107431605996773964912939678676740030291609523351314587142567369876414911924717093100280491777811214780108701273120695279787953941514796633474531980617688210084345414634934117864001751277269740133839272473884713167478532450152907672032192025420878765241396923046559933158980416086970409367470778484897314229411475731278826950893397045773555445541748997955865958412241697522533666135993157299489557318828673598347311905611685080952976450327477051428745289384827662826434653011556300462018318045211861285440040059828731389846698379889344527488937838075212627966955033040188343784759628635904117255472571164669094910443961846171292648239561095922099620988798384315086669196143315282402351400496924862713089099687794489253820019631151973197880990297812566159959636968299958067989087492895477863740109397187936761472401243353928677155261864321954076234504935437599323747943789015181192888339567309285520202142369958365915465756728833884829382991919603901517458930009070757390465190848925202610218130474401795792397839049754124263413864436561866719869869847393229214612096504856050053713379548801121145058909406895664988692389224150869005505672274836419213314800464766850911967870243292190249034758865687515001865351668804671051247852581076238355942072730638900180596200907313073607903927373872898462239985090509448206718516676179052828311605458665316361331664984256416257298015425275821287144364800510333558561147996739067309717726836061874773129216352081796724908169997288485149191505545585492951834197663724985518241855529357144334161713771475952482531278595983790405110146870357070386393714159603078168143399128947588830557938343619544602486080924633952389652394603918887537455828112068161065937747373241952023736165149856090098722041260130579138319170886989051799022249279045053703700115620896203464518068146397587425705767429860438626997011394355507141300454398254697222321490519739397804995581408494535467924943510857148525302191949710116956334708622424094235782264379104930338813034653360242060565464999936605566718205714760314745171411202411519544229680033550364158445777082499363365850323385161151537696605405863129751335883318263520153971289670372319829447049621363478254626115839192374537606736902707039416885074879028492980125025222572647211560286083301705328775995328618750149220168916576327951710171532933140372778062066201550037811058642157867612759580074452170969241878736165808294315995575765508094725630964008991554220203324841368811153599156833231651961073613075786677995286467672997257919433549366991673370322557115033051336790641765425341789787526409519315832158750158997596645387151760306843860027053813880586290246389305609387333380752141531901786879925940713404764096617690533264448091208264223906647362250862971639398019455518413543121214537784557002772233885909471409125740424884943573779552835074961760487676717383393738939492538959512564021895847030382677527712401697089141714769409682861355791765720209743412059224982289669089524141240697045149391178579692760976148688312340112588299239101884889447524565276207333140900955679989349701602394935035315289904240640711743312503929045166881936227192548158265971678282222248953096321224879410320303147549823034442867829860722721666606940079448519781412147204354015619992217444905493321029139031631479121254637063043127098336779395083026908315359368275763752845334806830468152059809800811078303865914829598986299363442237410236967811513184542795600647853457222893693264341988509376275194973852220166404705629967955093444265889349891858830280263393903195667248472001645512074600295578313884134201827128875233818251492591632702880778260244732595766682657906320146827234032942540226965319795247439126732601795273641838064097986953949918907368767744614446145483680791676653542455889377809464991178200117047508218923846127905036021499979088585305878435597824753694477183706178195760665194206846226334372682477244469355691389423302226421262233479141962252490466533931861870644483322688108608389457988383619584284789686385968176144061971075092534509702701384848728081746194323576444404643483651977628543771849712208303487875330086743143776816678144386371343355003879405108107537033998970499988448337254785469985779302926624300358548293912307926085804387926310746787866019007774819003733807740899505431863396506040903452664370751490204165496101361874775069918863966397516920858303118632151679055464706006278689009399380616703231854514967462438603442720437177103114878114730847457214449267878566749881488534530914566671456677384564607361081026715988578424534356171374623598450587483529150540418648291350943563355090942897271901994270896415784599909124649791633985506451477801759298510394824078481222618681619584345869449558216948274527443577587569690813307803139844404000434069446603947439376609245264217059975645988132135257038734239809517711006305314584252638307440294078588602141542753901585831960235633944042897138517119910743849403057749962172095244033698640821321718326569724527222470498264984951825778381206224881878877939292443610212535210090854297904397139304856332738061348768095346691270618227564033290204710762325936707535798924698955956525915927882645877915490919598255105946590322915338363933302738439008607122864149180022186460367322555123685500545926618088531790671818215729414217120394333741562991070135996233114460125470329332444790977319532926407330675927868207987737572401429776919656386106060103690355311591233708540260654901790810920046683721531911798044621393734348921557324295456213948993762503719911163023083263637760279589839015226463332669936283046843744564908361608479486146790557649701729016654201484327689088372761566922651864207428945683425741995429098328851993392710876147806914209820828917712627289378465598449182198403639616462301969843871692756994308804746110254549116309323113710741991541546686690127642034084386185103561143935346574258911298790878463385133404906438032655539790065887943330814352853796726937147216795941519378076469208075993696702142752041095160244733978332231221807327137085115988258123105891093382993756258461541316119040091865113139334764746164415169544589500351811665223839399845785562271728387981623447855562449398225724002021007553790637051632440427757139809082552713651059878380394373234337180311388223700547925368644085377912898769594471864111555903385066531726103037950884358220750684469025694811195472670256456884854336047131465082658996399713460359218736746922359703635888409705604309580421100843336405266084348327947262126623143858311986072070299023970774896671581545422494329627551323027320935443209992798531351000815543239548388348592538479796744917605761939638733941200221172242264701933990226862279164988534193614461574747257532996005101197416617000961973883091455156167734269403186136683476403607006741606826171483166892627329857860000138872122497587230362045078360821348932174365504806084893528554483406059452497282878305581218650980846205449914288574744125766047836600914585605134438160305337208393391153636824522909823670712873829560405503332958420830300061952915125244550950307848897925889773945765037268063654806148347783506419793557759742091262067852221583921533491387716268162063846026724960361455654432223969809555955205080036638430183216555794867285612149501983948881597268836645828116874974233235448358653867077579466539493229167702184209782777110951765077426569865454792377441043577959129227551617195777863522999571842067504682911236293904497154527161355729769700629811534764053136481017423560404272524514128149090118609177410432969819933018492911795565572438266282595574362558692999736721902094997489318190535426117628093164704615728015378787328548027274961668315599254411363980358820714752864927951823013992925063911459531283439311821934423513688961124191453891110295114947553675273484180053321894159568326183717303512211111095894989960862484696993485822043604051294585304005074644241868575037075429162880257952982840923340921200006691209926789481117479014750901563914277220667322344388004946464685826183640357265241935667572654939412606030132146964897213950237223827387678504998286624940695670005381678085216828202334972671317573904717754313870030418719012780143872614871851232986103914477484895046458196910107593017041706942664692717564378338577931682882810147570473036796925878118076485395486867538731528747408343850768781412522401318412655976245966658012825412502234118392474010623938233635055238469368960354373197100224236327956669002564103966610224960028176949092879540731142207606804654636205840073027128439877533572866518398615344216204818029760583025272040332011803876041195626670237608176295894889645060837184675009969424969800892522978818427273586121038387214796906334590954233513510372278627560820426175740312690198249736488953900841930731401182284151856065231118166497233810250465460866758676872361044103595874485709030813822303662633690992185543986588532149153062299279637242494266831194073850506290293125951479605584143050781964961759694597840787560648830655434227169133499852239383396268351678055408909310370376372540321152607568004429075504274911716866907950180561497781974270228075168019971828365977594405986052955606149540815606344486118827751181625681290311898252897787959877280614139174902192642191368854968277028112120176114971569639181560885354713181959385953651388039104600404604132353905620975184110033806154173345304002969421180256003244844146283787538668412696113998131599400046167649350390935813164363168939462865642038830613460660547795843665520686119422265163561791644907243343117587137628832618904668307229787443272487711256394355155482255046835151104939902661704520252324933745602532820483745764147103563667381900555486639354660017997792160084507137730038073332643212541634906853692893076948438001348677337577879125915928027105275964832718140918751339421068635690228887299140784402678904683323532489848771865377741889988096370381034160472957458493378620774141158289490082995781825866482496721457614114765930745061458943492928261694118031935985456916328844266195365183964682155539671680682296978145853113818122198235552361548537348001659084597275675636834264078752813745992579784846167972075338060541234383639234243699453156642005441823717240247058449941232595414974998128851400282858476142764047558961857225944525393916396750326367305388540791563726932051072315555893811316049183811982201807414303915279578253859569743770800813457980706684661676958041092867021328456498097483542696189081341903811831288088630911233786282638972306876822583844612051883890226956877743317225558396538844044413934198793792906981703442731983139327947382810849982129772300516031405910836038961930157855723461622598012941121389183048464966755372924048800844115034019022619770372506016805617180627450874434562173315896422450745731772975189376071213579376499846608738197606440516329486614362386354739891633708571170580824793574949387374131098160279660845816518060794877252906145839730832702319287317546458843883740689592749141089087585488860676423985067186166142249379825857226941145821405256190256405230443886445143900122194135124575879199124559940638868171195500589544816191053991937970505185510691569835709870939023533329641815871487197003898573937874030987020050020498304098971853104253603375796357194200414825896058753755616912863090918221143928299215629308709678047150034005132243947554198437247042839829374470764601789041458845803195542142268355763085721697299032714747338300357034920268615287218453403829973513032520782764666755221481100084571394921454780684142697223181535121336222425961063027504014057990568201367622968072849342310511538066249884990001581593760834214670004869526980725264808151015862585524502419772284118150038968511547375037437837458141018664741017640783128692519237748523760952647210459713863284843424722043331558166552657136171100161939420584881412563051996913724590977339286881219954701816187296121288807072853665300365237035313114009142540131936681403603793247091680294796245011933043574462966011068845353242624022826532591995879126696555049430594880222683473783204739754467426886933936298782443812653025907774225733393881831501686725523805332972070120585090410826394642567588884498204635293855081676767801758407284901240312142387212195869066829081072354812167524246869750346867945080595130232599778561615142067177316662547407824276725569228361835070287772452583331002509753674799552713213731562866940637248690034523134634113477022770272271911191026888999055546318535705704923635618730685860666547775973572714185200500030950058449150592566134943961902965976908802970243142569229140373660190521874620735113278063058601456897644135628323521313964360451719797814855162696067123520165489931286545989458985664177340731887240199871703858073532284846130487171691029347505454839131711118440432445507398575242160759614106578462061516835243846062106149497774178747628757903712966968433746015249825304837640673440469376981365635372773434355107756855802852252274291397114716033304349619050066113932888692038979866711860245325276120768041855886716948098348517536014319104790450351750783383859012762989604941645071989712678633603237977078690039721740696808155878166787063775907060737679786829158201869514963394042535589205568531039299506720822701716346092981078542802016797013139378686088109461935810165691402689469887743453589583627983117586382098454652780366261628362535134664320011485864189540430343472636472447575445706342207734446078162269333439733616264374103903855563378929635708937176518842156052500851871919562754247174970036474465848319300685434208753306811201414872376642383919983871368963329512895360593538845272979928164478403929320733506003451769894742888067540304296713584594112559260632236790847353024798504656251658560279591556586029343739938318765427151141879120616903596291773770448814508497115504184335857067906773240188661554316026912811706799529840425100551266344836461399867570841355031959238552418523327549954347249407663685661487924470862420756564449238780795035218084865332290238238775850841706730249170872162734172969088997926934916295376067215698169937927238522805912220564491564452472036332094378110231864966238953412891690423267610203074667076448153394875252775573895474855120216436322180636665040238973844548997907751892671879736834521564959377825940819177019687196263497283929750947202178425873888967177338136665928120827414788041089458043664085183610110634952365309923361416009318556297191138391739455657269982793637051722690935747671643635469724899826383595307659872950530740858628258116851985115885228555804098338275657044156910694711018066179063815462866719256688817347173017983147168183745880393191556658707548786977662702210460265642760386341459500771071967366656722858374477994566204463360753442497673002532757012171987610888085266476667591491062910254388987708399362731366596136149004628841024840017111337560014138138914583444894007737784615834607054689742710071666997364983514037398644851815787865214900777263594229027492231737835327192121761949305158529244281518848391381264640651155840278017315417569751964242993743443900928817079685604061011459910171461405268675064339511393137746951903178345131323806019654365076436880224447397093098328675099891421037551364147517617028244497891557593874486874181647657901470346406010409677810273385347224434702556873331258389918297700002725377887873636903344342875849524463015549947809410244075350414192637405825196131411930455427766588781754137419998260398023792378490197257887480121376275770539826370749117680655087188575629696248181873942335951892354165262682511112900173905549146709260730408174285664070339840250012322410162861912612544314157983689240349693393536141114013604042543298009855813455257102444059552767197151719580345980179945064291782621214246785195256825817541567055024767446520230049676456548731161717992375020111815583043904084130123632994594925734884333638119873271295824798181827716230954768019921396819820020501308084974161244807290380069199357787970725043623102410237155368254373218115340649899677435483338740589362009007914122574144231050902907093846303991672356664445409855091446622624476215300091019752919089731493150985890132668579626072971428788502842330466966734925903372248627825246801068254475430795167536547314187502804149207444154079383818564306153726555177222195412725983256361955129408335144000646079981335594087166478327158261105089242137574154456516078818782478060478775273785062503825706708677448663183141178929364411092527853444731323529890273774005001132103914876956196057098566934658186579034397533301632014661461310962987190527482872424631908301190364732320931178584330280461446930604084361717394795802677849788946035037792511875952581784415589357403568446089862436535505218605772622019802314194136284523992742222003316104209755062487253356508439695409383958715471161276814517788394741630758481960758236430508796012756649422671030205279258927766697097727510316849708439128688431082544692639459698373677935238562859647892541813443303787533708111337672838380506415110366029761646925567676390502802799118325372067659806090649203143055996794485317865221044876072119609857967740874300173547273959388182898353499308312322635410843501794099120093012526519434974434643315169829103261051653885288638571395486983244063192258929225318101647386921871820725724569916731711983690384007277143198446809052331198909355735361715268113454778137181323733762358690689924669515668577911994031959240144083608858942852802885664859377585968386085527268458682446193903549630993643894134790191225407213429242479668890181567169133630087399179434774756489957757618739310508205859153624338816324684134296221727138227243092079018019202894690952780213612627651531342813002103982996264911150554030609018156400484936826667912274499758163167961904947609158158156004920707536055209891073646144515475445925983345110329929629393448330529123279391137940700083605319004562138840219570010615129979065058287806144107936517200394926490314415507895237020126604744817302778990210086094354299550117459501274481551416768805620705579295408737076656918779803311258281373038184593121236142041867390001557951958989077572498919717961074827327741192601810465240177255096227914930329041498896408720379082140696561849334874250234773742665519910651762000078318875856493241914692753830915989104450200928051341745990690557422114090837809321439718048587142810588989650638800766567384360807361463200419830369423210719751540035476724179782471984645773943946018175982446441279351332339565557852712290863304657594669047819767995864375616103161501168510794425137360456442484226510998920073183391708099279831429792983561491547015693375421218666192666186768630573101820922877863175588147277789036810836669953077343389093843008408961210361781665974238785187358613879886391807837643717723808683352797261561831050373377877140782439883067771678834320790847622606130510503733428710727254228510799909670680466786741624566381640499362656566878947969201718621680375385768337752012198234148794018882880794458546984180596343301213754709916276716013902477966453260593223655497419075794619534658378838126064956601361130033448307440914348246349594410112992539429391927566113858711022031316868782779372340912688214457913679445589720718543395045919718797059933784666032833305182197443512418235820179316628580343851360318709954192959922747816496617382491138077570516086977248623639051778979900299518725304589371035855558163131737363776937708584957361968066688261758874081048782754464192469356546768174176819240401405665604516479987966452715768825797427511736515544579255916178432420640530615904179880964701329113232203726845715283966520671587782074967099711901457783154239792205769095493307694567395555308862929172080841808152574333167930918148568169551282885789242505553372329901946419551330600115929543467921380803753978691309911270251697545185112419773202336096353366731078290586590928260795738470701519093594901875760890932330436690551652991338513365779208269862835974285467569502484552359660744162623572608024359358511703199460202974062110616962789951904926776604146953142596985820879774334716028587606851681931972842564497248260413413615455118775516097747574739159169120368810761960502957816217419266327330494028868711156553279931063324406346988254537775371492495565680477330098436480297553600696243632873146647126010293858201649840620423752455072045062947875021513420448109663579433840921121415625285189171583437050976598886463189065342861386414772776355877271879049064899619587198694945539498584568862532446136574745112156859054800302908437850001382170440174248954333587400361898179281348673046411342932220934189491363635441267722587453526988090207792184560321491545737759037222450801298814586984407068538065765532816923586729363149664829193558123868789988157340201627985015671879491601331641460910146516240256350921870172997137203414357977507735249661510765685528195710313469523145724720656456847119854091491848846222630247382639169818514794539811468992400548334355478090226112211631861202980236870804010930985782306275690410698634910821530586280734454499530050202944089329847475367574927864677064301696748599681184721852895792432853881429676445926271091395769185386182721732638061620073484753989401972408295873521314091788505080386300113688909617753631639594369399978924780370550560110324239684966800358629728580492815478336610166290649317443995015443854472369268090528968144244442161333445989767985947462641933694405585617856846352572456799594328709354306600693529186173495784845282093437014813764664600136677116175009249836679548068137228638734516045727396640365974921306334925128399729411241268071914195955304687918654484486645323434829364583778953019449826243509686184680474890902759269319114591145420233446473302246550123952477514035297284535310127065898755178213872210943979498172740696923256181049752672592181459714775578813576512552229946570890700825839573031240785816969646611799426323740408424260949368210049729545029632658255386531065613474781214154469243557678593118235791509391338560464184632243372707781520637908533217295519317715258365151040100384971057060538410524926678110298310369613572278185046922818459275469172939167038679494395337067788003153159679248097647236539537697575116091797218389456594316222905864726683244526604501705201666212608961939279764554179645923808852728282978451963979518170998546000332480632508238882313488897144382238662094066288422632888690122944480297224187259221041931901077758059322912004921531115994788553724755272240305375262057352653364278031969386424313213047658538139404434629194589178455924741450950647120183589459130814936156763716129268557169833235305304186330886333644862171500789613837474625282025072438286677672319611977153342418491416191335485902506107509788924144520018427501313507366370789539247573040558579027172457213306092821916895143086128929400789398534114281074959331834600637209922171704358969091666695302247020345529347186448523452032689932702683354037942909685542220168475672066114598098987860011014941562865815618225268927238513481991674655293189511904220935459530743125030896045988877335786149684497742199131025021774512001488601695605471876681097879658143804996678959570092275753699059997498794016054418994178240607488854888044483913066087929161436107918179769412146533476412142536713092819349029019646547095682325574656048033938335084518169585693199181828508147794885079937892163282581488721974531763465900719600186984838804390043965272751202903884030147024553671211419303951252922842261529568238741400286096688940059784240516339343952699987146552126541318325414896003899032477721426321704177443038568413567004097629014625300477731535192176215135818122701202876295515464444834784076869930831665803893469011169654962536306456328691922296773494949486131466406926358834371938025116239224851288256013324823118987280658840857880108909050999776937836617002605306767155348746335782204511443185860030728383405517364068255136891153133481937231406116160399255135946054150317144580505073686910145857424506484887752108883239171880155915363430917668581236614880176336348068473526171382869118353939890621970490868891760460082265211716886980291285646380798177417303828746722709399984552501900016060796890649579363669212634246342251811779432182321972388725807816063364666830735557690011834383281312101002606209451739312570333593602202586678350837375134976924114107369091576458765799273151904269646239922815868524864525129932639327460228774172826176215893870005403609978270354336522645858644840585404786306927608974209475427386885242244433588832629806777894828930746166044199673402079591348420026103663155162261616430190366751378148095343482329252305908471967301813175716073808967953902265575501758570364990376918867436897168925071966118291088244540904379843941702013778738365133847861734896176643830999007147399872217521171572382834606708100447678249452196930741696904654290778841112614116420342083999964252601407103089945252779638431555695198547134440096245110368740185020025654351499178611343883200266054282457456449031138209468694786120667342697353746032176663228053687571272705770412399308980825004045905043812274698907510126679939532856435343777043059285529734757854814622788159486916880223653592922468294584282669386959307948441630983278784400129060255524958062628481442716778693740039204267623663016707195630346097095644695511973116870068241046060138147479050916478091887503031051712295853832552178741238437373401243926188835931704233516044141430379629661623365010451080011391504522759005875632254285310685812037416899370977426949754229341532660550378259531509900856565007035978934900132107730945254213659629781862250315751415602800147109214600885956591104299307995477397310830737739411576825641612844193740904584691223649692735823721973559465382621412423492830543740623288927926761127433857759571267931012229976294500299780477164046218926712902137611446141230472361296348252391150616411010153448025097368345772030309154189886262767799597792744728996847072068050550187002047268394030017593376184694722247826812704404497854612954405143846175442996885259332013976390825962239963346222531442365530526186103691375461672821669348130138329390865461389401774399580157253262506548400551864735866328260269015928959489100826804317656807378158624752271284949693161807489852488649135882370283607948586710280155215994613113132613955781504544760843639621420204918220914997200986662967315618147981638883420106808349949269292878200690917269487365570819296462970673447273110634506844984378445944048809127054402675153182844710342078955448721827428715851797959913425359755976449602233974503751948185526803955879889032135247413195441188591318520670809896319842781555680416593614804209340427518693229958756326776689394504110937773441560067562255909597941564409554811285195714296493771602762348409408345706835024077306812249049491969020169420561922207196821808943271488581227392259268002228633520240851835476565320395418153351307285509898493068226214251464693691316721703537550082493757772299479479718838187706405006428832803284738131467477339319916708463513748960699530804352941116453833910978355121702284512923868620764288375555681381305653875112869919176696985650530016576390350018736247920513104317433381486473544582355588255107024387206043769919910452963199967053324756959751545535689364865588352680539046685087500331690680198019247335821308267148744914880252679534192654431817273168271461279202552117514551871035827564151366968535192238205587732209010350475989260701382197230917353620069857443331327939686690833850934280577182076106876216459019784900075198268531658093798853720815523160944529080650435330576471211423590051691068189364417077130141748021705579744962007176776151685938217882950110122974070848867155793993214699127462580268042425297424631552534125944910631869831520792588765038507996181379810847203423150104897175160217132561110264827808083463633672493531294618005165967235855419538747904145568749760636992017630471668171025130121235959987133987519902585670600292324218267458587005124758400617030839921069079715539218546490081457431910788560926614211246913008136416136209952572631712285821325509652079950047199433698551748334216950639918848627634997025575812717749459219163558615185012020505036745758747515720168572832527288508720652145212576361812593094577263777555169422484593636900753989938131097553848921279974462254333484230302049272181815797151682373303276881423439683791199663002107797884311806142210132084927124244033028860698701852961094432352570060699669442693087224762486948995747912073210503713809540855611002460059293685884231309638826396453801176673099721174996704078205492990366882901149600421678300963793486465304450490886463908108580812455243072727785891012265479755479382305989325650650272802762797533144488060364668249288532592415079545218318483242156302707803612990493309828517789264808667453416368268845049988643888965905198886320316421548941819200191763244915175558423089241456128290256696461678636279702669832692099663400863227130238639142268771615359731963932511380232938147097223931084654466985089592776346046021336343322340453213583401332135845014488018630316912883640129799580753223078890747805087826139306633231001210966438188714952711103507146192684158848530055414629338019856602219556333435445241363594883829272989335200385020878306471136244132587369712014484748001007402596706882252050668990404683295916170038179059575915320462166735629732372433043261503305452721621943518986845415373764446797113361183484780664076285070938289570950222894993081028787421021113907810099365248149282353715876182100887689076793275134194608275406581879870733863585949341342698580394608102062508314616548283515952303089401836529750823749734130266091636513751526089765895621114759446427467996471919221074237680714676517925013098295894620161155918776250153553746184698619648983382539330056187007512074672388477915708669870672715768948030729333259901966900735676228506409022469749536521497635844705574712385743560323068011702056561360955947177242519863566355374392238378796442115054463598642776743120550189392570397595786179753653616612501382108841396323713758053392807197466815044399567249109168851948650983387229873425704015207647807136137632732458521079404910120397536302283303594025686754740774268290612193225421487490630621426527943108372629062552407045341277958260474106123417626708997294946355995738403052818162459854106053114362679610246847356176560331291707700287138322124160545215401445548458646454381302196032776033838265840763529500967110771956543110224165365022798009675640123704407049709258366869083034292294965598695568558767750910303406325094002128301621900043872785574873834255950498925704535904031654004865271339239284310507430896553838467605434208411394759875277113056618340675378095187613052916570138792316824049566322242267691580320099055301104914360645875318499424848111137172144743294260991430840154759126287290298475616602989924745165552056971797665070757069065360056592773653542951748032872939034917534757531139474068888972338194142449567386032849476020484694104359042913528747807369129710784374667592071443731575643072219750748924618983166038363116952093662591095115266629982959496261534718402518548080398507557561816140834805334986049526467835851332507955018847129079943323564157289903589168679105904221422686702366426205751558552072509909194956930888427895186292513477736842222300304511916199412776529391755675010308223887460159376738289351448075782521782933658167590140760388547747123123052839323727032233042892245116569539586614346821735815322058697398474465853016239805294850277129974384391105578251448694009531541470534276049828489455093096587905489542589530933977577620664378933135779912091662899491718781656191786440378871344451569299889297517196226436185488169689341444191727674334885913320938013052674884251320772952190647485197057954891082401757371255491594377101383815257640327535343586995825166624284381772215008015682672397205459571415138368036179293189398864761351490767261517296773204828563454925649136628370197508514375511084098807011962778727647426092172336025812281364485389915366264449393236293010135267056282397721432044337085736278817084200554081074997574446024659295437226803506806646984765949896820760126511354790191486203429992396144958872362119859750437762795351739774363390193863713695627440309477374238992304140726657201701938036820138570643810332450710706585638459505440784018522172968453642167734491498336286475857341672007659472324028785814852281514309745394678320434616749799477423163803449041192767573187319083495591892091490776466218093222047378606546156542699584617219015412491723630920033113216248802660316218554714983917419991275736277139021296310816919964758546718325429892443681469605392771344233936535706355957369244481732336465990090952649632541614546663418651002835328434276623049290798361184559198209587262927259344560966751049679447000594943435162589107632496098915717658279636737011375712481880755503522854673261496597951753267012826280821325946609476953788507628157940462226078786348413235292437364140481734688721421521777086909350054625150493740179995101833335145056430608236374983417806835915699662475492058392042165349181219263459641733751374755993351078463059299728555282086554189103961160708486581520898702462325046903588307141287375566695895564735061276974657401100901992577292703464023745528481986656662057271002933197158124233337458801152641894246452693831805212335538601823346484016895014921697158366983614078420775217807659981308179492044580374875266067903595014543584803793960285731569845982478215286876847653554651454152425997841350987081972973363311047011641747210325556495651989273564418013743276938711167971101519708466766849725762225455778927152307245272406735908987298014727522114864302151631856002879766783939525632414285523986520092704214110431038848972386774913785141429049307466657059662906802091129603316282019043541753141816809033900221907340014870089489769980002759026357470168087706935620951724928830619597949982677701906681940584730327304834333071230180568454822081727992574448071841500831977271459329189488982140306264174442463615323888785919783278812539961323095247493814877324324902944901303950728316821521144983667934381911514900274106723863340509874884525901282536353013251513559675224559709588075071122612782750661457576388336329997353636791129653756320276981974300837572056836576608902476839885633433349520452210065674919853950926457889234078774916868572841795139326356750269626261250531445133019967386866949848987637813714185963651883360410048858671251195098621404895882236256694544254365703533493467999789098497753122428445133198136445515255047062337706316108517086312679723351150696418097987494465945148592224105963309227272578094382578300540480405669777340482210161230318668915460038202361557260356286225279944617203775932865653069269418220519693605464541704378660357827772041008510980705197350209205620922232589385110627481409942448080933642852872951361783029441153406925898992491396770447030762595451056582383903676738685295303613139868226563119504425783851693511108923170338346750424062281147801485843118952689746778863810102744619133388994674823976493028176452169830338673600370286997579682214184817843778170649937071221628948222388142930478338681235676463043820234782094540188461491848263539357717320606926348244122476309863877709543403880407435276203453067062620591577824053826635614854042845265912192440878620616054734932031772026716134738071884376939066071997706706253032485704969148536221488995496564531984703875432695993295269098414518165655207972005238022755356087767988339026043177715232753863952233929848203186908966161696160407420174239887766167306351837578259429338483701081353379374040827132916397462749380552231618055444674087092043671217621820762783294807229096420302225068962574743860872020112263973640656747396596045799540777701302392095923321994659012343439479430838000472263283118120475693329938069725279308999572878255722346143035535664668395693658921286660425569214329715364986124246835932953851410308986202537131812803672572463907089700427097645676870203446455949750071450539659005597671120463919094171737659798368090422400226781740996174933747913915789469356592226985163704267426217414485659232081464951248019906880269852917399572354480006936050773866240284962624716115292976564428607656062539411131728271807753354846628214418443521771632190014064662928714175659290573059635494961718816463702135678239220547984815355101001153058813447054416692492374706654736436426223242724742835210741740672411947700792371366872726227170785093542107475191848016118130048199464873725854601911185727008920000953671031446719003189600940592554146375329860246862739453751386239453969564692831508609600368970108045367106631534246843343851215061989774035375812561226953123453949610049421495293341248844065742644450244346150423939199306815036678436283779875413422837879987791438511918744160101525324271109075161705028762637346035365043415812404705336593842430724520079114784490764847451720245978113658793060504184155899843719377951865668896715345709640358341570274317706505785995526577564331288474792683781480058449530697939145929591574193464119854993272005202389479074301170060566972652571695607885553826796818737257440292404080098680502332393541421193830275149166440420403434292928039842114662089376651487396551069116912531215973018527546250483039331864673900003138328229044744625952820467083763634200513130733404050237922618971668318639814727959874580908892022866524475986824282808919566944124439708393612891436256411620006448334823427052855494054913791479314099477199724872466320552651441081006818162874714356482867578713632300377752673324443594509932144711179990546379204625991793406547663907152064204024645471070822655563293823835580570256424436997846577487346608348312591871141576578055393833160528820241422568031300315157902207704717190547127713857747800361313596279708046602741323649290413965103056789656530585702141997962336736850744651675862255234246091516964510991281881367975412563369167197241155465831749821757149087821606213678051471217196979603054645234395986153285314545453037864591570354805203265158410268175819627775488790387577985110099235867687462130964322436666766132450543737611052175332208833794562159634528611088827567395283922970700788973950702020209873969833947102815046004500212417546378700778740497667086372612962339022125609409632581965266332857613197384944476230767262391620500685155501276271187995210637673260872812427979578739493039023558917865381241129477080259032037298401454369450625690430067634454188650084322883657971293629377743384255797995674109977793317115590755341122086072614838605047685905010544363750065585780193072201734804837250715033838608485395649325310260814317326963737880280767822382131345370241769005300159797967204760761981883330668529292270684009083719396296128748466336058973515148542173481464919130374061103655460747855435934689357100435873024148651633505151032909472710037667514488027769223707369253107938326668628918610602541201146180256625192823443605062644043287109928950334696594387489177352731289954462264648837916724341940620698515928440731577798093045633648276784670181735183477607467860075894950735050196759706292591600825537721816718396825585438317617985427753730929402095462386791988402679128851464505640524041328482939493440290963609047504691575563285638444431224895347355248384628564146676272700993071728989131645353242862354947163019529988206053272694239161692821315549763250261432770266355553902815462476906072795842270620944082204324998082692493833458533535907306157317014921242769715115384997261416832297604903859183687217618908244668705836141306408079394409503091834394339864295664912847296355014171551922573948060794562614191376942780418312600164640777443128440766653855353414635752635012463755799394033601658072098777409589078831105027031292683154995218365225923514718906063726205627439132480686120803453633449783895885934676061796224389903329253772305444771227784230432393724873301698226290251424298118183909984217552816484218739371565588472607592689364765198146816591678989873025517493936158602811207388317353819253236353773697399434821236404205114520431626155727607848012579372496942172613504501638954759158266338277283222468623184949127860292652398633087353623430177510689030265191920515452280874563380464385008637998547634406783352909606267883737396626003294199642946024145585034736479344638877537171284206965484862734473519473638514939264473174237049270551119273831388313873515848092368786665513956531076164569945368540740942445055702720961536003197991849996239636604942897491409103467745453687185361168302056792446941386307328588243116146873743194599348564052667837150952853162009852026488029176472173316862074056261732010790426257199385061845695226566033840634153385432004648379186081327819224727893705207559706070073311793263922093427295341617649462472943558387620682545302082251503998850100500099341365203104413796111230582141033649454003582047610947660350781071813201995336057097290468956515922805964364300944736586209770744446941577433527664290151956486917791610093872729978003635477624358748063589695213839640404927926062909336058469761253591640453344743124029208205242103939105057790774951611162630086752447562694356326957924213452656547577497134653424134324326385375526060653691591415232121331991628377924518256142848053841293702575378633342414920787039314371612955048211845350451860205280727252157563070317974070535678067851422413701266578423365168205561239057369170301154920851489909950346551006637871164433579190475602850820457226050531999565701347109625613624945357360553841130788843348136209178302697226899046944473037786197939435775411356853465971503500191711919932443850296439432527988159233317102481720789468203275461079933981054929345431761969905379646514510130911957677366611362731495303778611523178071334266265070722472268948596907512749576331723454555223503132357040640770294255824383677594483351597203661865235112210136893280557435012215992292250522484659660782975930534873413927361574301236400662487947787195324326327531316260737225383515992413480010963544274727019038686559008593160018912545977628067891311564645449546472789351312837693125966402040141227625185017590953172925505774600466214802857609075877488818801288680824367702798351917205031822306434881488812685020416557541600982220555319754239261928936269896326616356803627747350881477327881299271682444268303189512140031307964694016350956202154289740971686561199657142141430992204790378781150389073822439247828961062013041480225799452206854340017162538976740948073582996433345335849593210347858644319183848795197437666818138303015973919747813704201618065797033723671174430981799500721673259617071340159817946331966132835785035554303204309452742162659878563199578895022840749087027615963873290921606683785676835224500233971840714965650908833765791141449867967942930412915653212864698882147178729952847949747474256472826189767967362848559525978416674650563368437682327537587567364888518180579470154215577309615558256156885839380728773204594869723028759051873757255223054853519314631894037166292382771108576171204194191033832204663578175463227843927685328900089691381302851251581676603003402551795078450524027779199323211075054028016479066494644283816353648790553038498052495595782205134382479296910621987862601656383174100198172185946419139173648060643566067026136451756966409193262303297673032619215056876013925341586616603121862445492385623548261405971420294448960144604164586906983403106645756839292110012212921376777933791624687153963457045026265546110969587983192738142395607131299351951040767859817458238428281924098641664555592505114793915694097427241893453876743862273618613983586361682189379853433268838070655111872942851831239535012488049462813393878533042308548104364197440237384946155760141197409971454592528461160684655406413146365116479036599715246883570266410960521758291565734417199135310488584705747323829022519498984781495421373105544722223988798528199385770158488556455207046646735550069836147433791237666235448402132722063124063506977118513623693690874454372568090655573195923848218611423270482463533655608791228191397254039951790631975483252002160094044433829733685007870809536847535633163775373045513842398647172159231983504452936468388226372051669222193299353733212707963412571038237283012624076065651382854642072970235870941965404319277822644815182184078133001159573134904776414171662441549733318209925447138796536676646454042681387796621595933506814927176701806026152187456327444606028034401798545455723874776628461914416140554758859121226605658239980271255882523284203163665432372491154451696822499272992549132927318271151719903244534041111817819386714023205467946151859870749288261325332532184154790573851024166877452976490175712186021551177024708652902439082771348775656597872997400424373506176102337226675803843528411495169277720371985782492023622804854568571807650383153856834921051552444432466212412132818775056053109074744974039776961911254861634929905878205806312545388603573709152509561832401362448856824979075174554214839590434302973136252598225687708122773806605168581142784190540790637796343327934673870237933554702727351547062299069052800794878680690847015254950746014682339866989281645335597660465587290138965298822094615929751948384667962000091359556141035530613063520790635316340366718135295088988087787554172324321179293755529718138512469581579876568050580009273235217893148065213022551239634481270430556713536599749983004422499329826425936921207746999486515269194731387334517908292759560733922020284717112691790240481488504670119526928652220095533269669461663214507703738202203481581174182828456960473799821125701412657790717378018351354743955583264593589009276029701641004197192759216775693275075004472655158366589328468083078094694307321922096456882260231483806103889540489008380340634980942982488345891200266503099160237999333529796225867260732290695454836273245028749455819888805603178209914408847002437572955997813239571697006518564837663522576508654515586030558631655064518286849314147885039827848090093081527707227423598242123169413764059471070493722535296256354820142816890337451947328384672134187134429977285955333106407689001982124378624492598051867991903041165234855744764062086086955973024839937989252387470098801468675468880653347897531148518036943005929279336394089316603313808872604003044523954849058193859289543522322351228967878347103800096613839344370066984595143269969855466949219273118820563242842722106544231445964330183329524542398432760167920103655263434895896531307320541515148530928616320892381067854196308888127720053010965248892630977282364661164317165076101780635073479846872676186751625323012671154937831482951325149664480781388771922021043682094310860922871815833636712968702447876000767518358832677323456180333454263904848643674138597010361627563154035359098944219258703125932705474220645101103257546043080630694104709475395432315447608664354266355690122663048924247512386269975853900467026426328950871431267741733332217086825518988054794818540771464399598653475853993040760068621369123570964136389957322684684213967444708285758023958986343820194964392368496955072374356856077217314164225756880522100208821678933748463015211155692783361338072846677112061934530005399058674029826681433302668643846726333588215593996565481801430586770837021066896082273635334147781072566259400711513312369218846030014224756200065587146319472279465854519917973038240241160630777361060559849321526464162619226827475056307357656493275420786694628259407642798836303534210306110848422978650349011780443223200623219118026921725214897780055144279730986114958935484150457414686963556877069297642124254406481632072635962775397877093530880773419095145518003317759471381994147900600811812358269728751236501067598815068590504707168704989658803137769072213952930486775911366169865948964661357159461815215154389292083470283270632998244466643234293357575025753289364134491653630722157765735317764494338392672252026584282346204832696728283071186005095154249936942424951575044651625755074276395608772893463577490527636252326649405979843756164042065123348571561008139347529858970035033471302514675085915603099029390375069551490340553599280596106272200762225070152130564052137219868831649191217443190342658687074836376682413271917485275820796022313547118451285742675405982941145628410315600283433621983239310583999220301047803284652912851953395986261545810950622804173399674862347170789174768253621896987785694345682220660018338778823361562617949265725882664662133522647969862632689326745883646019781787650647374231781055234030999479383206634018002686767657782240366709030072538125924777084839283677279361660328077136728189173236449076721565328693746659794143178028323124263082614884004068714246647435026595172657392192523623127673481556296702902052011911011132034829935781068055921523783005567815798324841117977248463427920285518881623975176019971805886667927943767207946067870464083776720337722389754341292497140566839161999957885780226839122733500165039810882551622556863595158737657781780421757191354209199809381556015357964163652216991921966642761185445848464427250903893133614093746392393678453849448621907390568327078661598685377059070989859690896154178031893379067409179281247349690067582836817377292107640078288167597903098003002750976724441989244800520445182018495840334557843259666129366952246560747975191248156214684261943351469270519033890256998048345175743643438727583180979840028265797650346472186574381315555436653668610502529736610104963349408345782337354838432391652054515323943991061420035135019264570971523257027277289083815793533614598870950609395913008751188368774840859520265947445169747320545920548949644237664215004646593159775417360938271664739964925449357608905602393001347440282802998189606870068788948165615797231809006272825905704434914743719338583700901755243534295812491244333918024418097317842723264948122181066070388760958188624393173949028183993062582645367028817655367989508291280316931205632059249448419853125468615516566102369020601389611578659352260625254707031740070462048725730174950713335401730197814658854533522505417652334343065048854652218828689645287340673598943660003316180443190503175813826005560234957467965762682312617882707249931437323408442118333203846768045160645369453539778938692151155925929735040244594136680608954821257883904780577799143838555005383703459063532211104532563696048403967100656321351555465754817631646023411760903319980811693878915436380729487040836702837215644742143810859697724242223489179140225627642025124243788880880801610038527318752560395605936216935804816904560911999233635444068014718965580364804392055855418508222337619592407115429493739343741853793999047895632152511441992798621622743090328677423451795949048632412322628375931937581268335595149294459804671085860555828751396600679342696611543865263963808495209219718980206451582851016423692652160992241533715422358125495879772445860828551520406471682538185399318294319787566657282698304494853526552481696967073461837621841351052653193304458931410063354449031837397050519420989945274034382792547923574250972981234289833495313970770507400133723111410957026889767902231162065835679387922383563695663551676326404580298686830724442151198048665765123588843597597904031578617344220193489353575622916606246053696223809383797395972784817802501601284366267435692054373688520417410955050136713923852892729912138325422343681836472291333467492745143222364080991553408647067725763332296416864235144391873794218133479458715358845115222828787922301595571782777875455926118769600429768630648895870833725203733862704834025041427194664331367459753752371074443758974765763736780473652869742887732876374426784130159481297625800231111392587840638054964136385567649164331869364006448262683413918038991239657539090213112803234574936762814043083130049782224229229791195356422480732544955475215708032195218115820925165406989779939286424965044191213958923412096939391857772628978853304279158526851667452217063579425662033842843045246614349668393111528747347435361515636612275230254106710814996174116502468176578754618765480011467773419319573518172288768871987395157613730090394842463000774545972328620549182345240090804131372510573021381289246449111501397456942202486481173717065062794967870365786457743824825941352172526558899978626985607984383791360002309730360158876631301749489434858510804366588024072180344732654786955926009877990982230653871594454821682371274570743680533802018609814387244061383165425615329893281016530674363340951974205619761872397859915882404897155012080583825551588911933354830476363547417169975437088873871888724456827423264929604835809926903991148180689718834931367721115795569176482599996614746171627084335134180018832798722313889835354224399800703155522109511310309891881084591886783911148079719259043697462489652584425317183641519581151959354496117696411044302365103182833444731521323174125409674332620894660695027657938247997124535814949341621549143073423487697391907906117509389865962232072892840700408608118536245343927738028225627113142021484535576499246180354455120111911685005294173151806079848686299124447702332655548650497391483993516395647421424309615386101092902250586372750065329370335693349625906462437458439669647820342673061354111898702551043627650982518064231264901807093446819118757671657647904688007664186630677781238307714399775024972278770076192443556230260871065235561892325297895687872912317796090747145367320758141957710987333273194172717065028514826084929649445134555085432055208494862956827902612093542533257230137956161443675935380321134773639536748660972022205771982112072074979260466265291206857563720964461633951088494899561280546506042221147141421859743395393188471186153484164256167291566035211429470050285999715497479929007035192224202087884767964218506460609623867927920060081822963963694548767847909514060689350109036445118275623667082695742500470472288495846139004368798143914429159360177911511874625079902333556215356408007028193996870014441220779833117810540266945931353827032424516690414459715756694986799249980065180749600332971591615425611498192265477119205868621266605789343506563567518315548783385148897970581978068282381481899064516200501785359619489875595407609785056768512500681895796629279865262990669018340556840610048373393587332705732508082056764307481507516079373972491465859574671104291236200526436263904167572422105632415171125831066095294811519000170464153417673567096895548731123174175700255237546021848137479963436951776802076979323684065357295205321588137167062267140643629080610477687372565970013524389689107072787436837065273563173392571580818029934536187088353181580859393927497318085212711562280011886531950873171021643319106455672174020200265321319068428293086823137968326182861832408817556315146928216830723756360869568780705002236607219780228782899693167019357327432265254535874579012661546600791296152225345835433869362638688786969309083315834896377045515000278211901888657779791078547873714840931944792226846784011383312291774304342720876381747281229968342939120976831111972598222167675041396549758317373318503932551316036988705104181149054206270557675195860980777019621441952274708743895026036347918615043400134748632832161579815631613031661544612004814336351874815479138775585594142685822177427202599547492663645734565218110771767151177155672008648537181141298027729355164321695482188751615088800876813343266882541811317656489727253696541933342749237740905524151039612762912689696564783393832441999289580490312426270315839913049393744292211764964160343912684538662272534310122548201319141265721085235643364753676462476167191110694350742957549834207774902180130501090639248263383667617343575204272320508659776926956034629972084519410930645608960465012018101579396689158835819692593782416092824406966069383221175519765367423266941548031784278054506020892137286270356843258014097784429510771905300073624349442921842634639802058870171008363431556215812117236046691649470752947071796468060165164006539759407184413853070913487801381779197082012980317777872995040704971641933950380338122976351485496480087577950163522419760465783614809061945082165558159460623848361082984760906944200922726265877430537054503954700437293908178302174407020349066640440460539010085493181938611910123246655739128292644917517942195123473430887378812189009933841852901081061132972645562784138206764434833323687349560727100099888278001489884569032216542507078206991712370962526214711154143026267358505740211634267999388954490923408897475496686191623327628858940535258711606414579951516456944021095770996063810992158989312301814846785575569099265503861450935667074008522077787281644470176550042160415495511418637009902757064713834656637853394318465936941375605210553404463601616378719120202599491950688616609080248267138620157699782172563985004256603436958061888076179519652418410163730448488424102809438339703242617905944460402680569945158949775325788245823826728344892520635381750397625432679914450569646533425950236947340209111982003159640236550650984911696672543899682466992057776203104759733448133626711194936543549089255363720910371264762356023022271139908724172699506507350714008954941872643843361512796839389192400828332562860719631177272987056168876315989021757286421653990553077861731228002228572184630154927093508567126483923588616849346089389185797799365727874381768201009479119566840932724863400375066904923077589833464012621662550063881860106457898897119926415166032511402664573921000284683853483015155305627093534778459966511041300681928804805439984350742466995327413070249709185735868622797952661580249387338665383861366524131125624136352726573543354309718791828681664391020465572846190101439023538854557894884969911385446636955499428357158634725472067958117970839951901998999267561118541928900853928267100307345629102639463368821049949299451633721872927421192333703093864662303007330166090318888742720600459116067197027486000794489983210314187355817384120996481076091300728863759413602196582929268369101099368545274816616437179498525171754436438905878389834936840767422984073801093066903160940472216203905964235097373143378657257408486428831643153938947276509292379379100638329171254428896358933445178940500560128814053760772075537582028477614388422642480396609951623978454281935098664235698277823163509725535510019968922277269586514293938106419446728237735383927101718499219087037455404669230709519419012667950672338286296599581482609012917545885495643164304636074163803058800367458914599132098096553827270591414647892787995661801620948433574064393605090766222927801240918694224459918307992933363178237388739998077639428084709042908343252709259418224385447056218058662918321516844273169820624807215831135247145144224836978145057572452879118394514358418041225214576007299551797638611804869132176542113441507760252345951799609106678214462409090857952027057551217485119926500214913787927724811004235774397379295605702559909725938325646988415001958140606592603903798850254540479133238336341696791117102982122503207002037284938763636267157151477418138720557855785288068246682066258394080964547011908206826979028988097281392497239886316512334991157084964388493573453368022874937399283452113366701737410099450205220073630630670388449105245530151828817203637517885469596755335318394075922051260064588125706581226059955259998759748353022540027579013156862200347318311100423886730198415731859390113845899541759949274486397143737673356411290472273929461667618329768344350127697835146413382921274913435022466509519604736825034314562736145101131200228854567517004067495749542144400889343324477170181127442496286157953160534354079553877684530558863102654014560407925027582982547603370051081682411470966037829418312945738639788145999719551538977365744140905114740493237194667423913152746501294243735081435532706301320989066356532272596302617355037151948870649736197522303896950851114565280080895260930014975534066452947511948963665409528573152271026857685060111656179143304663338598586281416319536052479113845797260860342985880314065858024288193172579795668257350706226938876805548780887947023237317590458380945374085304475365996439487814666361789641065740501663575720731538371080357890607773574974110077746923880733245620965996221677248625180916573204264526076898194831941348283557854642078204862835311511985185326631811524779703442195286101866668090990888296619464933824130047316599252551963653052911700842688861964917191611712717697560916196103467489703369504497043045342140374350697041370456339898545416017832582960742934276326463172699674782693321919580465080842476875707624642716471362223985830428015668450744732153912465586919318052900122471764926408776468868181596337252124290133411135869786809325635723960692599243818070200127764140325825657710785942849550011081096637321863592506412342167581007082461044539336231606254112739378267349826743980269310605137815388847881922745729960924435593663960276335952061124733528113812171208469481473230281249178294403255633268358426350138673027040758794714882143402080430233015276370184125034139785195302392991882499347562312400500951021933881366507947142462582621899689428090034565219408069694191766269798837617543210823957067764059091506005909719802011975938804444661733587202462502045190051621749278627458607451311521544576653098610897755899798814697666576656445636227982283725000876315962034605283093179458336699928102646128395483830566912216245425022097352111340689077502461204459630322693089263634591028111305571618206889663036546338055370292586779995726508554113787156555235707477872498500563780579391626938746090051564939773399380710011459035602921019889723028975655438312945980480362646784325774775310221618451882621296458461336663638883699150812615994314163510537355505854306701671758506873713560192769568965966079856904080808276607830382887284662197327270749530196937311770420557442486947235842710462568854600666689322554605527261049466253110927950570964979253392462164836055321615777999708747334736480360837152379214088221290613051257505687477385812055920315335320026489790973311760324757325372221689566612946245907877246111965759377087273269683503634961030279276748108554306645467724433215946876950043661881852538967141762599389493875179522403327620309727995378979392105385359598904621577792273058040988355376715183730717311057584730425905500188969307574379062968927777305844606186857802353420514681353032843510563307084819160604395422381063856376806464789036911792715821023443358741941556561640006723291876343739515501957885014204071440883296757399058571104919146309560138700477137513775981167576854745432247316894790551652335827597910756391586910315300353240279256075658154372165050486165367841413614169189290974519627198516446673848548358552098230437994146221895786552547380642240491985541395642870694136529453651381571658201551634895213771602912298942800170059326473930160305574102324476310203444918373984654431585776388899048756980113234305947534198873518552718924272843477931167444684730786770439941836742176041161084190636847347159598920169578623665414479232215966085567778270246226209506916615231882489822085547013594759143670563788709564481727925793645597814129088515938356117566661116544833022497911943696904642738099299729542382929421090382141847524986874143846073766921962883348003419332689924895492951655597517031547757102172413705519558710021228791465033526831273415014848200177007744205902838677113248243798401155521429664369500523051334439975677741727645706162522620919555429268547360615269653443653651702442099351815810769527636474452466504005484713236842189259732702184125549144253449382747848248430319563568024546652588257875835635643605025192672554623015247879799214385833611397969485738370637898574655278461703790996675876210304255838064534771534945054271369880871040962483302835913151675801467781109328245485732258893104377136687441224670941705035197863245173007225981860901946029229760711152695053634412638163245382207838166083597046378241001436906333847707221674786787483846731516054186342826630752498163485080038466673042311760346314384887575104893453486307917162058448803285979648311275518470913498519705801413439229783741580602074561833664032816138760387570015406249228548879675689411437643835359557605888672665185660319478294095333762120738437070368614540466376698653080159974131042300632983202070480394748767808153176161249211149681480816660739207680244100729527659624312618203562795056604619207813219431503331262986607635565881264770680270472846399384048421254744562489454818339627017006922840332783630251138955319694008996002444106041779493079299144526013501315328707672652617299932976941329683764371468181173492720811512333807963915655195765204342906982545231480713298292059707762534818101639652982881180958522138981507101890073316225725579252564965394480223361735851626930993385794524883246355966002032115925339705440617591725067985464595369120109539215717697432040670184650826071475324769191009758580715658594476527269018654268783534632298923574246426646124896237930317733497490462943270816148153180794023050058661743823410957508843220208517128211232907302999813681647806242769592075091696671050457301309607223352851158614089828931414895796596817674699508990417976227147367749381072995103835444100424116197416068076017931659969986802486019290429526058487038922896940593507696272278640438368690168668263515931682818368628189374522312825242878069411824009191895994315183897927978006234767608003588748227896344515521296189313786721752629943366580394035895220132470391401560202685328641481138148220440076155227480928446100069302305277935315763808156790756337253149063343682212679339126850527910368898116632498309982088379376580440068597468235943577761804464939060689972158862474834048013904519859452087325415824562852600942781460540681292066169292818506806171713353866826061888936411420596780850575872338845836621108530251718794527500213358303368963255192634298792448304547811153329018123206677748173876662870010060243636236530622954642991346808638679767573370948865424269607241195209066364078255006002981293059043754031067159057685585922166866734196855345581007266221700861101985527649416545894249070705654293285357867040258232637228016762865715498041019733782272283190567967564786910925289567689565182550007398551402348995836329083684988501671033783368132365829358567489479851153968900651845934434471316567508115248481935053439164710239204343554434024329390311961373943357408435367444826244824005581646762899666597252644009282938894002192492438910790378577901528365928798616108414004485558561359605941454781595840447370663897286500773554483335866138399507812540153636644256875676161731339094806123369363567058177578122359822693729070418679847778227847104762681959887320008526897967822387228255708185364499457312470051209986893959763898445568185613745278085578944142450172966920553701029850904490104087491133484231350417238683137461998101122796331976641158649030125807395320725155366438574958942461308152135815613267475067704763641316708487909944419253967032288154045460225508359729665440837140982017527892215532311074067951730769223158373056978678164233592945556956437049132659127530955257096279517861824336197383992275391748210185428098299856609547767478811239454283917174589760643584049471900366478704119016413159184654205557508175948949601803397901187574172129758072781585164239063017481180463594668800283794579367299069347674843834569206648093035554498407070048538820385642783065557762795627770360937863709655765744240776173519604830083012341124333502279149731222994176624810643450869599695838873427326178496280704958964377531618334610712413392203194162135310691106049692234760548832066223002165454730899905133295091556774420303332047261123442943892617282823080659205431573116160678417714216396321429768678293634488493808286472445203961758585272415065415687237422729758144787027737734745284893248919872596726853315039789735537542846471293575841764205030340159263383395005823955264121525427320237582649184721023823323757527766842503807561911852200243774079861452453580243822440273452797719728439584494428617402748016585938682754113641699872128439386700831938002681666171327444637241971573888098979063391879921117411816084395925282995640122618998108118434005796038174486248772470995809402735403130652838646372528171314175056459276891108715723040827955830297669787677151412385239706423199437161463662524716618321519202490494517344200558827103073801036148115789672851178215125403835051314301755694000174536171014385562964066349009439538179661634354509511623374207252770731897305534359369122542590635016355424768034806021302521873162235044066999519981903517118874636050568576256095942962421085262797210435202780401548354407071889624547061025637651663795092693724448993874233701180831873665513649776064342579608355007345441580063130131536136768623997476236029103469282400892289372594620555875912051572070576712707597904486359982956052381738396841261377828328544293805629506129810004223128223254943008115928291815081576974930906821436159032773341139780727203121022657393129471877082873706154045982374676298402543693940228736907795596592692315895504020854352085521386885668608105299980517117780981369290099779279343432322345457240013952142731191293422525298794881538202198021695868243997696176154874660508419747389849195821858088340269420557974327300740845944781247618141513647479727664197977335050225413864587610338041272575171503301198626871750635712479435764873439879476070247443280914317160541663514432855343765275345007723090863826752579979724846666682130607567239639240098525685915215099202866184241914665479896846156727286094215412174225685115848503824026127124039800936315567364126620942791663265809277076319047762878793518849994584274745724104690145203176195816714044857627277509378650324801671416306654195901475662290365376211211269772712337730617060656849408505086082296711042460093549521021013699470015922128315360341973937095275865827488694031571341360228808308734535597953556314878314276838501691685987953241099357091818413947795505513308392868666697582689180034128940097160121618364532036205573991077850469501351377502827850646156687891172889436485720825305444543522696197786073001119557612023074061612683585611641697721813533963287805968600617092068481348265593256903609861587865435776247998578577994636736597655436323599268006904547360755127432120042597204459894670556276110850308486660097131925787653015152807226416863003156196509511100995545166356875834883066288875775579985004694274352734690819606206409937077905598548958012124413908015291210918427408666551751666124600245236028187188596812216646738479802054608413392596626972752536268075799400491677569575877705584605423371081656691407468283503702398207367978784618327660425024929981240112215991412757883938940966452522423327866271785509162265814768365509105909608422121195003491850088969374211461477467961992573646050170071801912799063457708932228040449704040762387792542005741782841194397859600592854698586570535116882594122582512022987626916000321908975183986673979283794345583823304570750010017518502414053245126499960666863075421481485295269051889562566350002958711454955221924964423123107209674756689998656140712690962375267289632950423567201855468487187927425419831228635666758837730457909475845757128972813555196839438972416639607173057151184301885174637873608972611580178295006082903419782979102326916459861547366205080401288619312541398879821576925166439261956846609029171691467164940016461452961524763300982459887742085146096845330003153635204460420883504125494968943938082705469508434709674996132214310742551698230839741281807867965941229441175811838966799759235128468585436377919781646320795196677465275803904451490159822070499078026849524850170261943615348194057792299999713258842541175730596277247588335818565618162461625332101182435028600856288459840110076414783522093372999668875643820245658799447738817281340836260113981227680232770107124941031104168334511122188093087743414826671493784573804092805902966883832120451240218071058719944374993728688495942829677324708814396017930012527802300697183873305336839099550096554245768802381838397600570738454217239023866173700741426913446797880269683386217593680707587848783143640167228686983255497239054301917590942125983529645794680129431267127200810886300416043338830382241658417162529157435647450318995552197477296359906356188541436297945427457027205430569866182900621106927888931526799884675161893926339232158496603410748515749807218101662835471333454953331768065516273298464215497835969946772803821463785957635830255058154495825829976227391210106884198319468463709158672756695908029727030998737824716426506941251994098312336264124148412493927735230204027215071830587458337007431697520864137524530425930377518134228793369974625259702934738500373529203981331084331346465271012216881640096013085994983631358512331886058982120332505238632103548942784090175704813965562871557660920540870664349346118555940017406362200922863618718034725814153141499495693489526261150365640923797837484564192080749773853960545216633688125598209819181939476536681663951885390447980666661246113397436904679585202409628592338409971552355771693705488953149697240184010256561493735743189250988373750798516185354071619315454554202955018034444985282349260064733153786404982686003185336119646529710999489381004091799342205574668880995764558005040420362228067804863713549254517884673745819104128909640237204694946877484695693967005134067455883989798532222379249006949908609351362466170138834152013579124053222767268039825740145520005121606094769113727558661889520444321837896738118166283030016872351644818192755009955142281500405163274764586426744817341492016422169294290330661547363107783805652705891299436266259440446907471896192615649714899348146586281542522250181960975212192927849264492667347147379718361982509521171045303324963878901052522462399591630948515976383067944121871079907173500789428498917083769348275319375264355190788937980533019954870474087671262515011971499174293904520979519847283601727810476702837231023791806797488576656346542767795596314923956746656330839936472407366000682172671331095299848871593704895746725380397122581386849679309664788715924210323581003974009789687703251258248899380343258672176680535638415258285574626241597629128301783475029752023473578550424791163705556686804929304286809089256959373519807989047093192675272479946984639554303634239997564242767427753899885667348477321728739110211049979335433506931793011304526323846154453857415521785051622847628506494312454153395965514703267928306082295663140506920073170793096844374080090970204203840314060744018937975750329956405701677767523055907472197406920856043895705097043536785072724429010174692339440662698761056658874327559081333665195458362359794862984236561555051615821879655224063103988157375896145865342487584752069204968194378895850518853070175427418492440777123717342598053263137428717803226088259033444420890773660850450964764500586469818309050111158022966425719380679762293681104557644577711279338072992971754675977389329298936009281302989191601892919115884939308348440594316857195451807166588880089675191442386936674031230118527443099881759498760232402257102184910971699351470223861541156001287818733089921826729750823444252676756888220181341427243771363185212990330698909475026749792020790639766171479523460678705120549848190568235828803975952480040078539337650564269893018259668828649188728587248606581837175142305450637387657229332279796463010506905443097205470414769040865556446045366175691913313108794407687261995330258859247911259411417864460193309603333047181502432297404641455233050008701518458208604194251893782417085640130789123570922973025070304742553734349879912605662883205273850832701757831057280486620447546249728091933713456047373311938972611699217807922120536558736691520106230491117004243140147608793601351830711289742274794370143615329311776463236350472989864597859002795206613186238350129103166388512862756446509895777068186855509257541577260862782227893477239830646861068071323429218230429773771664283782368614650665117823976663215625186587370616760676413915949838033476001601826347596052363843826874009050049193324271758358608703393805037316002368116850427856452369510657202095380660925915030087975086179779540709477617376596718070850758353858872719380966761712611516690545475087127050125991643311740691026381108176742408039350236828651979317412136847623797944713558155657782885856903416617587557255990674931312460449481666201662507010866297145308385808763266679521633423510773841922284128643776714261905394017197598312508306448766271938314181005981290107691010809140689491510754094400466752737850135390405173394550769073987518211676995577885793656610842388492923103484173507378020025334231778916111590877247853260958734467490653206354173223082350803337779782794879230439735865109597044507909008655389698598319590590774254720442136603119482573954656442405543951589280494755147558877661287153756955486993588875906328662982486457350473415089924878597173946355437667461555632545940180112885087859566093223966733819723761212080057237356559886018076376349697720472591746602402473544571225671627682067381724734031879296036256555643825591119507439142322283716305049888109503435217691140804071923634940992855613792929530107185220425130687093951475491983291494759039114601709937393094902101057293997988819293674561689302126248870846609861216217251173136137699333348339330100785394878555641231157605850228408116676375130919548092349728411504752482607612422817865036527478213814312886473999374966208219477823923320270196983527450060738227325614956134135028045939360149789567483149388856711651306746090251890295051014984230618354256477938694104293663073510055246488566808276115244630783578636049462606773186725063305030177233043808421578179221188389526243953140920062796177123097288666228598910769862658294538806006888238315473299963266432326166751400090736209557776579142998604711520541729559423588822107624200808753888030133454637732062056688435856973889260017109688351998514471047974212034075319246832447011053319740509407424245315990475231777655111106046018531801677161852123627846577507140634212937837736003902336311921876224789718019730562529846438564371490770984914397579545469591424635021380805797847497804400405569048247895984835582502986077728822148481162505132770374404645639771261453299794635242674722561721695753695898218892823824258510667715987218793410594670989854298768024055447093262490858008344731064255018700137117274585255998064056515131925065202020746509850297750915980363543977102039029802490312226323280123437898106903416424830720619310234095319499515440029221877820082146912869208558234569715717049765119619720246493330041699420239117651112291093376947814598528142961221039541609781982773248084119052820411764685761624973759362235405801435267078663975749951486194246110618504367183504927232885651595865382986187371405253272287746959176744236560154713759174700140463952400244367117616443180285880166955485797473776504484076471879427297161378436036242335260949390490713665214927791765510101912458618067999062574085826193375513174830335556710884692473605867119647740856070430587530570864807389725569539536695027651756633776318648540980254209986600839790322205619849299318907791534638284533841823777036022812840267929198720411440186207434649352896878995515859627195795750719457514038047071663352463959755024855647907810137760108415810736408922427786809456258853480339269398038363914946346856568365054886722207448532711856384027887504549794560813463669102745059825323338564766565269553720900390324832991268466010990867730235227693918226590059287294278373228629120672636498109308384895528629487198726806536948505104280732881820294463218690007176183646754300963763195920962822308052587500213831838993745009957628711659915406817406127373227044526635443847031218072688401797889929360311883978695364718789090484263631666537177106336266085405493766629041942237047088413276962556442984460695036303514398900263403150700537696364217452090265482899196532538201696790497108740714987070074850346247483870385446468173043630553048757408388098899703478899790485180394033592537144092551525082091739881756701586994020900326525481220145403109662547157382474978013181128604672168485334786168288777701161359747830248452241983444671570815274850388332899892053491683677672584726330242961282562278944525356031527498707383193497837973784315556823168251538328459719670078639910155899101093531938056500242270946018748673220149872942895348841533863011423680524189502644745714525305943861773897662658794717236573219100360570302865236267215572559242953981810677072334314191658872811178003210824852962560158009183277375645404862207159871386017824008079565017759914786640523370710217205775508872188655147191613379874285416147023656948453478019854132408117295426367278531553179702074620255414465538652658068232431751599094797536283751266030164546354698806322084016122837878904181713564242194462055294370332117755262176325240946912741539880956729522907404153789483967530900667197265731399142361897919731668434611862233610085488728774496894162161352157241396695093604669106245266827094934951167404283284110496663423945481182208492441053824544127379924300187084030135507690106139940664784139261670507944535481642591493051363637846599119629814179429957716039839522258207938364127302655842718251857849660598754139998669183313628371949922109330828557597002351941251791646063658814630886572918269213050992998047171947406334908970705009078906102347596928257646414280746236949041120234144946938746216201374727269871261237133162044162959673351282774072234193577311826412200961505678649644230367092910599411158810319059542851446810968389115065975995203202973685735667436394816886836158643954106076298777858772220679682206207933443012933901934587679740517315577095267210124918932723806130141329947612680106294972196954442997926211866608971981151542484690830028787813200933469852466385183549202081638854257243178559998667129745524650894118744113221209654217562233753259757423118748155876018582663901002656620474800460067506843785204176657185635924783560769975771446224535064531225191415155109189275933680344175896707327474915797531288088980161844531530905237919787211228153034553786680059608197040641275287052098699995032332760983690834916999839937211645349559132335139654303347473637916373910232737954261143870092923926656053000877323786711254662675007277640370955489520365824815972825269341404936642854198570834685181834061186736156379489483231386504740565424795640126450998136125557603260522727994724886317734559925944740023553982181033680916823665579304862416217043004558113768164036630298423142493263534013537985307913243588748417628765710893643127277833463911100935411620915623369897070463024707167445466303634855126224570418908008854079881045873935357359011659945680373750282527055760153636093668200927469533790547492288723603381149039698208436163145405748668783686112827194234353424933839985809406487921581453144740896513733934219770304041805586204796121075676963084467598703688838884080367976673819286115457901446240434342995680329464067463058203771739362918445373566731993274996066868239954826264162499743729262266660265791306940473516925594684793120167486632902932365726736734637882016471032716926166663450027345254114070065386125840625011818602824728101653045538278069922518770900853912973420357407031052659968565283068423594037933123471990240873242839446883776412416449305116177538092065323775865736283634931114136098565628281650309844034563514162587972758748055558579922086755942999647974633983532740578082594812941799418900023521856503102172118549763301754972494710583384976957046188737940648132505029237874024259328001274727670158049711792584832679140094852134812018931901089190555189100944853734446367111634632195453010671888547457208061493416634991897933617262875843943044914775929456086847868892478131384399082023877346692277123016402978936267757960224779843873838068262287599773868477578944854912612728769331055706305811042587174199904489853771279256919696046972322207358839557219467219238380692981173783968474084886439501876340394487639847137206780095050431622312847761380038199401618504544195299327182696077870641501542291181872697652546081612507599625137002588787663281665748470945922523493065238639602848243521892937543875753292797109391513945467432754083952199088320299080819672551637723510362192368411136239966381589756111854281839978501581239847850457246839361145042446772560815059118025143071129069656618999696055016309409495628675363644452787142618207697888074670633001591701016955493492779369707047532095239868062919194334175780300228583625594049317241488325999879421095949250056806094743337855946876786810966471777802208529846702779722660535811798265793993588749002966930316576136451677381259535853812680275582410434135688498183789413031816834350939434774957135659710520670180360112777245157365129106471831460187986826769078053132731847174752945627288366685266605304422856515656410333427783480248741854341583443803621964491305673364840342582134456122454437177578878654666033644133481289875741679415413712159366076377690420569918173285726741523774689116441909194723077942272786170636837741628585592257218474459423611477424684706785037095826664651075909345709290745085383556608555720034257644686824641825197712391834871868698340733991087353839734672568225567577253663307419349289389556880867244480729918383906083312900524312902138970493390847469535312106120011691083626978299170355966283025866661745890970943985679148918717660291965001364739344369549253579010190553801490917774749272623603012704716898202391991437207397076686826722042718883275717766276084622640683692974422883416086881629445022391253994332791831544767493669607420860627679737619037098796063198171060515820828951403879755979464115330740861635287122171090204846166528956685091154222299145156708488864445051177552821529572188522315944952779472605162769862484151764491433621394893925041205381398575243680174437789520097768040414037624822070102929453888742580166549587342287519198423200609731171724892743467645604230229543394028986985736847977795361889731026658157228853004983583399322957425401955165028902367654370399163933750249772173748592257735208004155555350888618410502142658438120789893626187055794336609149158111807520016356153356898817916318678974856562085008629020740597322903149302876639175336597680625748269705191267963388615259264957012629620663975715220285047720466037968596845846843583194846054354796899479597175496266086979014392186233792007983871263691479788217441575047490780802725323640832020795969517297569506656980532893112207075052630168987252881349960747306819418020937191067436650867034394575189590677274183510299068117819304163147093440500997199897637142617452991011134582450877341160051628027743163899798778601713958244198039973380097189557751961895974623873282942262583445808428835037349019081729671938665912915321330442865936111131001689499748837074737878133511448674946591827305519028202091717941438752472790669292825132522327194553794265891078557483002624185204564708545879900004579118938430767495931068201710912724749450559634644889046346360514835908211561153219621972909019123928252707819060999213135080951319432720726594740027567567277897896888646126571360487541491042441828622314041661246649615225838500396093221898049276733129250727700684885253876147110986252627402765776247689683755599156893130857858938357302503982768515611463382404923506858255707902563943371873121726317943842344270840560369841342596612681598665701982973714895924550433524930720509510378734813303608927311263322244445825454431748412060357715191866927622540137481536464120756404001610957614756012790438412845973881303522231561487757560573686511415498549897181475732751782583302883842351812687568947814262870835133776977894341127343360315232403232165848536440176442328334500597763388303358750395991263828156856056448424183090735952800280139319785421987184567008129437780214837586693070418044021245336021949772471682412994268250699091510871879724679678588370210864964748200978347581261771494715037847005622886610938523892949957096196857318679312365775437564507492539002958368331680759814842999911307739520942842934813319597100753332282250993169414209990071856733064531582907335583306771817911361283612961562219121812462243001863742298535067579217016313748352504838046763281099598583063039832991162748534258237150721880290438073190018406088989241986850919303840113483764734804744041415720814023087737151802884666996840615138354068496094709869294155649444120178886635191175153021275739139103324774692723540233245879182055231422764725763567725025021355202646061567974852139148083999102484447602790642171869715914866239603227806135935135416731611291080382872683220888829481368870326162699725085200508249284965985981799853591529931972796305525802019192524258279097113228216940081239977138192722340483210909415623344419426976883359707413026117301909916421892514229493794364743228793500256951814971141942911575183938515228271063890078244862860022044396635372327449049212081169909079888341202533122901806361899267643463745286639439946537116017946224434898630404386510661710441565244944457549734663201497405517594187115650849845287500569614400060934924589314862698657694597833748688454302471580419446597898676549310563836003563569724424258606820573469001230833941582581772804787432149385484799323709352847988527587334831033691960586630595050434368868235717292504531085815758976142485019460330794379730371188880468509496931411091946035798312120751092830201001783343495634841335828380399422501441154961721706103483989801309136616143044033132618164274675573171374870451589423413140092882721460096585050185273171879954891033649439277662948642290718086265900658594244538482328423444209217954261435549864842986513627853349301643859406529543639702241583273787172039271526508572568002068558205914431681217425422657649417132852648401462605589344615609834860208721984499593177812444456995025994168017193198845363811665215873115424619311220877985827811187076473154048388223392964845292206608952388976306498502987057797162893853656978787010510294370664743549201260461424940098165429327377154743359375712069850715033923129988982289509959900909384210265826623978719457081183684108263103427981286440136269543487213720433669006510925935972101485802530040618487708109549423048707901387594038571580151093342164167720070873450918747616715018364695028278904280865682554010800533720787523992585421830109233520830721602896770722281718612425504342342947808308945877210558986676433959456955545662636109249316891393588149453264769697170996632840313411873014218153853184316715244980207113041602002148643766878641308586080830556031295425006088021226300282255662812449937985247017502298795850942295309741404753673041643752303880861263948185152477427690545877841245640290494911042124021262432627675559507578828365574358565943360955492441110189924044700420704339290420316333328921294667026475607478809323773687315415573137017848135588631782678406867188521973807958149386723844759308681337465893586630593872374932447996903801658337223094416452064663072396175083724102232421969473754619180916880960552953164038258840623079588781155232407122393390098723232400318771857910012415431343941849693360281677421636190307092371322067772411372046154840181524226827795994151095856310554306508527930468322798814254398415659986183199869580344017611281753686694394502108121655323941446738393836446420156705138819728831088273555775064271399744507046586784809929014324017674758362708492244343774098042186330445876143958213209618045070389873387442733285467747480895454244276306916399636409651730327338260698698322890124411260288153727239525564707357580142510667642169649210100251973908678577381209147052519188254054965417581388941628440919288280549301471130702465369435118765555949928963360218167231324214518091132709480182394939823579792384589967598476820290049886737826133778892779315423678651774122956601685351558974073726270518328618473294624538555276187454617110091562000559018914202157143202539902351979238782076835899834118411196095480452623862514532235580171707285735916237546452734427391627651903442845230603498326020953011259111125657940207394867695875703383381664945356847708691890674282795428344033338863791655354199809001764971609187516400871950610199701738614274136662019531058986322067457631030768727176762512712911677450972943458131079290625822391599343087050396938497952449581118205163295257818465345760504175155627888446063179397240143684820621728487397584395662129000916527778845167612575100761518876216717266221009271387838962756857600930626368214054780800262955896026403689769373140033553883405315272686823495858408842036403257837063334587485651629384971121445544197576861731381304324907433508868339115751031965594458907336686343612501313406253309704677271104558687861565808170207478284093760201837274363756051379037028303930057111503501988812935136835754241653174737299967774437037292674617123000567243539082531094051078781182281536379099831722064469933023286607389444422012641890715142916438787611934884634869922171936105387520929069713034533476553831173519187311714266516019903839846864500649801975970836101117647516629250281644271134135370822269836830167129881204341143947561199897609320084331491608360965949891485063760005497206896887371645842338936638166493620161966222667646661810852742859343959722209384224859406999737381429993403510030898346418881689907691784060313373400227271989578253605418282624507181219786802474686131338430071320406980853583905718264367123455317549683882247575800298240083553607525123245184805201876437392699843062101775635394898658293749538010923949729977883669384180776972097339926060705304050215207530455859448413213666920933219906199422263854068540208349010656450124894566888935296408767067524263546002354077594057386697124228218664509049332808446114430940557451748774650015674453568766982740191297234940875937742867085537744144300668731582144667530659463886549417058274364005642225850074937350102941467774752938309521128798596645714404691109370869088325284631625771297924357515319266639950223758629397627749706177765286489048354705514216979580920644321967699031601365940669238476559402198624978589016386951155807096195012564192962323586855925064784969513638146408750010833991947410811527824317362699107065812142400568655260475160788277760655365588283471286134485302283025019945342201078113827818517239632510164803557876358995929881463306821307127997918146425731497094439133419960904759648695454594385079401300436728913944154431165059712839207771673030171518594065674729368727303465343004629849040204799993864237522632550921962699252304371987576297479066761205998911826682047002890109936186556880180491230962852300390206389326566779311541180771817873403381923382418252163764078276944056003173029694053187354035209623577521194558847711857244887106084765414245331856378979160282969761622508048946164658841711494600501417268230633232666983944729420209088689925993064649512072308031207243532749888240858889322569708338872747942130369563136493610694111195671500564937567112053426113099666179131438711517451460049181834779120555497714107466969658849472154171922062521113763199872212073284143660594497238921360313548463904162981110397442624481621724280893972268533155495321478368768764672822453073990936890523948397459332977263195348848583248700440401797875218096036323144538911413607621841675185591642080247080974380110553043632210656348164211350352965604722057609966382953119501734539308725915748405134727924882903738106297050993699720834423937275826638881364009933521567678658448326749560922890563596625849893253719999009920348970486610919976297364224803032959268228545075076083013341036468411364872638247304827262776722979597214702915553421953230431065476848203757005876881760030214898936759928479056661512820161307036158607846697785920315869809221192879646598716343393805563151508397275438152042460186251905853236841450121740663075898236625356595344144228134327507614652792999516614252861288088293619208070684627423391676975095541626744795520099798421382799995243243070450629159446002486278226148996704961020830882756782063383571178007897782078933793056256811120071806096608796010101934633921435307572518670964242256908912304333428468049126218911691121389822922068775153426948399111961362363603679845937543846868676617771962842293672720723387785694715573913863830401925976749681874758010540432564472505510819174482089760743775129371431004487519211190214622547786841697819184207349328869417909563563443051459231685790865608182835391574566790759258179510388836595191840365598395632540011331086827989634447670593322798401258829828571623146365938583963285766556584218458713601241352249748811466706771198725862729423365307517418033117445488722976319561042725839097623590207127140450439882141565040994849065668809663627062618618520226762999727261343452417803711422557017229261818987119789047149568566199578374581657800029576535484306811782076172055706907311832382384993302149295139365776344544194619606699753418922133414825378372024062956167495949139937428055314870635974585206592539694265272483963903949256652477911000541082377358565382297856948464896030645476674774980280809321313277482409289161615870981961610742966227350618028117829890838599769200082892287412124955932489177313759838780209166796190930562294425104810071251461982774746253420112036488362330184370637543230550375341223729141652713735290746692856958339204034430358311816773119625528048362704765841665170523450833160008757579745464159430307136182957519968039347744558612237915343473320010852816651496662545610934110882199763416770000729470824051932894547640141400018107292595432128649233163734911837587503291718116596034921570482617419489453983641115277376947148891163184953515455939341724946087598316267381481305100713857489376481955143798446334575558285828739661655655675870694009355661447772642796794338393420898698536821848202363268477616881793905042261356243473506779740390302373525507185711481802150950142704740039355341690004910722708120877266044015502731914754443495971463049060842780849253460674385644291343050896537735631239156208256463114490978863499201258292406207595084153981276631256991172965316048651843844263169400103800408223752641092572503455383299120373999909245700736821091063083001815306594328447427329493303750981984814636103575549155365891430660437796041583399761020358389716896816914900325889847362394422759521440276142868714393678172724965179239636382639779509032194862217825476707284754920996510426726989269757290174085945352511922699488689454095237795801230455611326236500284978147905709575704713535410664296185479120612712156653417462787510758742099822659761213116962629007208845502605256474395722490664793484583480801860227032202044602794907387897036492715379108868833776578428312911716954527045459253318094221843066973687413869950523635573066352679865931698526733292906696905652621311391364679227114842704101522654188301497387991725276709304146870208010654595582183448395981327874561979192249155806815922438130013261133824716385621715658710178172504667613662510198394715294190980066727005772047865048574470248198893284432502673003663574652775402994832897858122614711569653499912460429796600471935447695186782104124952024746623334993980015014492021176654199540028291477288588345139156906063542572693247726377476180144351388965262484881243579074813050594873082332501439585012033841413426006939446870123122173171212882484834870214221336033377744639172274703711587291901929255129508858295064611104144438057314324294933512136860537933960065397561094830071778771485174323580751021272104500901829027405501674178775708572283785960522406402782754201062231566304143339707050487340397644817274751397148228567675328617798527688875982715666639959270202474740756720128149883084765738449887267225820239214726382142560729351721049963119894074234607553441860455541494595612610576775526086949977642899673809081643496374867152356242369148019465931400460463833034094661684531351035512744423991871489694837472898453915652263168239601290223542377671384494046261476454062102950605090183043467506790510280758537742860582780181103654760818910052806662503954560338077866013889971424202400459907041395990263283978363794423832523403077191257825412959298513284002854417799210894410771297276024495501038229029471165644241134695395482286135448106410571243236382444670495584501303135515542985953526589385961156847965875529227199942673379849009570607899512673681286106068936286392557597645176159336079953462732134055514300798760283188151901365571081068506554436633559915819038544369819408741403085758916791970001299376458202693355672055741780855036413561453148979193916944047617263955685991171592019512340559146099727663488190502834372545772373979243205266126652312157018610845928858161175108017524431057648114320712147290880251930539655689922725206864883029843693088484937984337880070840123979614165705454061602875078661962193388900262898287221848423354615760727678050454068202384553046729439870253408080633455161711020166506299705328122146127471488500849985285149161756767136622082502944152020770193238618170878638980739789051743997084870099802675789960489254193272989568000480941348696432025295204781554827148221798434875148845147938602804036851735888630920523250268443924168450640147424457809803094704212936046704076206567807486265399626272260904303135084173950318447613987434431477647978178188870291090143776642795206587727948783275494233242986106404511500156060305948865412662258001434286194094872052551768000493548628260958454432161418175141185568070398191791466726657590844130430432243346958319655577335100173457149161730149828482368597613985804322336944382639507451877476285000638377533819993899475821306987538300633424987189812659108601091750212692197926478745460085465939012766835618482512826260545472786405071509652092181834517403133945378153793459731103447184688277570456331234727531275996885370649917340404428355522572790552704866721211887346591407414107312962771804165294851709256689781835191551643128845125255380567593269696393937641177907376943812936965449466585217785703076955395223066089175338344270100531475470125674212412623286311792668837481966110260875539543393061636607438474371739400114013320027130920984696438964497723416834261950903609688823497485335960999475204786143198000631255002371053913480220138614063518238353001969589199833631058349160972628573311288726637927597275331052778051194938474609618115217738766964295040440139311775092394221880615047655131988785041486985907552067571851829187161280811321112695242864710020502947415856737939665603055274067738715801232719503591862774233289970360465855468177192822027623451147197187030425668881763263757507988804015106694378832311237336486310004079758485997126845920869747557646124754239614924136497401601878857298915725992779724617004432020147151505709261076421434891621971142986648016188755227519847433688669010723709723531655880438132279779061156731248505925027760052750027759591673971110473963098126591773123464534881271081911102811312756723331304907352220480213928986146546631237666110928561028211452497298252418338032119481552193685085947047542009215827594018954115588873242343869946236344712540337756627095517830627270788965248998121187110357464239041611802767392504474478635530433850683565767236083277837995576468220244153951920103800965752217162959193372346672587533742073733187513603697669273864120971634886304825556142270734173713673329343651369492891268644721359377126988584236225417535695642141447981529712553915306374401804282426733546409212907862223351962708577057486437473827005320341383918976993598702214805130303843907821693949482397276081917049244202333489116086346789872712258831793985914923015603088797637879626491617171794869490368791680694554537132664494076971429037380269829959567032487444534030926514768398932452611283258773885046973883840661729498275103068697171868094376456891050414614584214692189725934355791944133354237692060725910756332703733433000364778487201447745772420710373243220595566676686584133007512812003471779547388175003424469167333660585637760836097251690306980842176113372277919081569710734706793299895436912859098798690476967484555681608884153242989674824824289228212715893217235672740057545730359223529920584600459363908542257578885182021516403588869132747976428254042562435498667276436938469420275563441747411240081535041917253039021485785877880239464621991654289854611518210379237461637356521914188197609276237781363803938991434021574652839131608020550934909106500883192267225925847740815248036069506225532596920935085859385641696193574724888431862152637036190705371053626991210232343962684758399121991216921101085284151962389365374815583795208973579138958661432732394555658243224285898334451345844235235102570240394529717798270468198889404360427567185848139243380931580067791195010726270889100889286761809676510959350722353431265209990708239498840455129636312497259108591107904822498045077284165816066687308551745836955147987046833687674194655406203625896442812109460727149146654287462098393476202068277939249397979807021776182977752651682657046754099386549176824559946661655989434264352972957822221189029217662910991756327287755635556794517864389987079451640083155672655221193340607944905827785130725419835998728794862549956334711225919294947913977338530957426623851724247602943288911367282651832779228744423674902556384895319561904563550345748372974762743366366805806878311345487287489583017484847668115540757622270044860849812443838671350005105484469346566909582231989647149225357891964770431916713203385491104030059849957670231989267207581340725011643271048659948178843413817453801368120932733316547017551120929584260381512877549176812498956833490716003126327967551451044564051477634333101080782494992828284776074269651759343214416715257443063725763894119416286455573297459596358232838893502704315951621767876699906868432866226795231619029228476073759535739188449503546235856533121884009772501933802526837280239571934718834842564549520324823067320918834312223871933843515350735822745892334409104038145979522199808256390376009345221301035499155184092273848065798421922570896473640637640087875197601177424844619995914100575231651845905102489513486261859812707708412472986924168302731541431215551895336142342468703171111191926212110270895058387732832002455284940510427888332405324936476165620065163026843463935480094405211547824098307998333392698022948118581063792465610031915277774031121161955541581632353702994056477570093433782854184999380258708305799151095590784212382275794877118686748821733136800390404659629336802384389561786307445207143029688827361388619445373281991230375681267211236452247436848283610546346804472508344180367581257458968826117632603573193532762318223383382773949555576774770915850193900127163043890574784077362843111159181084241851138887605727938378200404275108276609797800191023300801347510414705264284938373491166821729766147139655895234941040805194209359136511416671471658502250036764216751767984430153868134013384594389258309598608696925087212489417798476603542403738117687476673347820744028497811165771480597475014121543472893815078280039794509087130792638823459839706002346215941900811952100278778625728475668730081202304370919962262970875549729893612954548937365504955651241502049368874250991762914678970718336323892677819251296635590192473429216947084281464701351554743737549494358547688956260771119054805782313412633601345382842697309128274674587932510226575377836863864699359275117084654326930915097842126282671551033527663992337022686783154532256469146893947955175440092684140267993245150024334398573748146584779647372892140345951682071014278395031174590299108056541965487048900780264363888368586937720465364831506314438085875349869766296573503486568842449363609301755311220518713087546739223162205992278756013388969703903337377739228816305061820679856160529041642484211105966803928994061180994525492070163901649337472774057220018150917026848130592087833439636773308695658881258380019636440609813493312489906156577049601655629425340457223057553726085723301578079222517323284592146316258274347496869195958635761146825112436638074186801125363855010936373621781462879606783829467275738011811541643315023005652250531524337352339376984195447878368227264566444910499904106269553361312296287228463463201681234015618001593662620518091743787215334567864883824215147609653415848454879482558950839146584404868915478549119841309488628664871701728076128131318195029202038554915025663971360114890375328739978249089279812249286368540839575409272939550251527407685440575505093174421915517946414053044419119553265895907217529913861797745152460766665046152393780927100622289000844461856350855027826177544978378715140402587211331674508749052545289482058836609786022560661878259205471239838472219108064748738780312610728441176938533882433060329733378713662521430871673642656315615256526230182754081055345080416650021175629866879954271037449754249995309659862704774353438264257525387011447764134323429091695989393410926373988469140997034125693251518126465188952185885486483541783740874741483461986200838484619673629238399606212308754048837694316986668895071842496268707043043736544400006725098238231371653990611210448043827553839655416643216071736434549352975692704766873122607717416295530764986596454407550572889843237407426728645513288101586014695380225556788366071545992073612785744443969808425466448559869373878094150354541463533418170552694799999291351401518766743537184861720115378231663047014645781586517187090959750043165791028068044685840799145350450580711923436944218269431743532359972821107525334878181067327289543885728608873382385663053032748647953964484108251134766004822495675068122629068065771197963603669238783395476342262166702824065397432322820871910085536996446827599033726289464618079587621891083680474778437795619717928419724110803207516461806084102933680953968210005966224591830536455700162861785720658050748189077802734567774342405086283533684216026334889816347852129931129266353548582681302349536014423647319216005504485202119799657938196810432937082797553797655962418373025519921489506067913161320234263913932351791202588003645025411024517611338353635073365170227782874786333935808978224745735136865395351466033824964182331174669914331267856682543074551750245061905691804936575226862941787782226002625080762584733685214883691328793407817303468813678710273575361061163202348893247059281092318792335467734202387176599849358392861478205109929933226351410955157776731416946626303867700334755352315030775926692309771568735518466468926487196939536373518327843109013646246162449959437218777098260789253789209636823663704636335145696946738176166567907205921693629130359961795604271215332790707249707496027972028981411177297340522798665522084268094752491513135557971842957576644949645161449092211929725334662502951909013977989085098794139753975248656744868347667702260634022657711929960224940295287819113112242804823127314521217241885868856787999860090698945937181345307731253720298595128860403155868734430786304324297853319494359447027262154351923741874335538723161386219272406107385454639513889991495637260110152157459912580452721525910894681038710120959805229870929758775698287999615701481837499858912630275383495455702891374644895570956309288326601543764245361112380381614551665888815862793266354277439020059057830933006100424149312707829736511791789767806758918631455883106451298919709289251440155856658609363076627980305770650098747521549390112236187192505095663041578445025440978756309033528406900716691548788252125854319046121321211927259360249290539594330181784994790895216831916441479829798102768636450912276843722411528847428992446069154152836971570635227674001111196692820854331146729375648320233318397951515946529166971412211549929428390774457539222070762527658136385150178409201128881193583057387794559100413203813163776848549821396360977824774023133167770320325791011306989022291602276300159817460152691042413208206091232208134058930778096979907246125632676103991022724796163693810441845660301852645194237212145804720974254735712984303923951695169374163859459189731259997231335696691174272156684272914318411818992258474910279158217430006073894163284993757913436484286206724008393248485525862380148358467845298715734787934299127753560709530406315377731714360602638326071974057813338614385780610488092757689029268857857672759125117646059403313905744887361726465924838526345475977776500271073614750277645306701832542852577742237361421135401053339371876075122958014273433652243994675066031970779618436987897799580463819570311408506874167535547255182774712960659004830878564899686957400537449700018353619614475863873887104444614294241441896816431277575149779791613714637275524439078646681049465588817424875492699517888685265976006750034787432800677985330691873119976659086699279935551217834580971775574589201989354444677074102592181651340962507490094814776521390558681226093342474995944390982815775036528463208944911626091485746867414657006035357711988809131853762402280771427373854358505277025993320633318861612789083320326753348237491592886174914997570433892712262035423302758019225730990020804563329885343597897607424072044732251470433515284074402417276283534707248882782528354373463305508075541907560349146174515833702216663370344388152149012846218702249380817140577236810595128292823419448729759427715532653301559458083519998809203905971383676551309542915297874226459347957099061347369693028176832914403981664901594872628615260706955179469419078105033367878731812145941749802973712400512861418184822237529511656733712978003686320665307729415709588006971129318540683840645286203963156903554460260782139170730272574781718517006228134704346148706464892456291864382142098088251354622662432734880297726490515871011964818948503891369876780290250240500062120577122050508695653944464351370407834144386923912492253144206305006618261048779583476914681400582142070770050022945443366111132372382636784351897110521947335888242473939494951960727179017110211791547115902150072193529762181170798824641189286367277427864808052615929971306400955988847390485569319838811963052826241242606131992583718180015746033181283070601598765506753364208785105589758471749308898945582280718181018907577820666114132009844854841515116685517068539333085867565055789984312150885997842970551907138310754319766599274942218115453918516943843675454034154709691459815133686788874559472007176844327253860718191576878306566016726255101013507295853864518466273371939982259820396139467839602253376006010972137127504194709957277911185292424393245890567087741665081543780822126689021724471931442790517443859271752334855572871550426809977554801153049091080422940957853721013587813230813996776398297168267009733139197277203060465997668048930030066661308988224389951563648032748477768292448204818992270829672401358546644723253203938811768474152261814542498754408158291992476505647788228456688726700789853739958290870562762837243738344698733626290848412332684844471806749506600272052670309243085902716215065753263547005881373453610206115531266782705788921941536046508821557860562623487630059518483205166988366473282332504584880839092594191170293612744674529290072096885211144403407813213000182755672407482046517821661030096400945097812350329831897480847246245096437350220624098587257611178774469105087577501515368784003352472323262651346092980875930883851798498149525343366863511272072660618416564521448624515552001250077777562813727712281236736158265550663785520255844851159092159222682466685010091773186639042854142301382047011040820968961902628474440972753697046795022836051707297799038172111193017173571186662642485684803101933785313901155863616051322540483025377097250614182626408304594570335069822547433806008729523668233032112942139427897017671871430273375280275794944669047978683966243678509196589840399236259217355787032023384392941093990925515140230964631303109935611078949979254313449687763358834908492285701061388632013327726365574913598269462506070365693976783556323620278454287713756674625673501459945584284111100099618377376546346092082276893273294626250659186659285970384862635886509020280482675144005288930644359530055893836343324028387604941111736897434193150489845908965972983761214627867310823093006607574686409325349842040608476904552593846976925679319851244670736209078242357198767361612823200245327927640750028821433685138000440550788454788936771095052829939621284672143865802193759369244861864706304165229608979518754342822631978601044586597372863416290919154240310747265797484936517346095881108401859042923171072724060585023740503498138536282896468679865244772490767855324372638123647073303608156286353239791390256024907268888310084255433553200028445807613450209264131635407086776247093261739564597181923363428218138983429183934598294736187602186980997866347816080913439251046081802734401179370090304625653301769068341709478773592913327799128252386077716386826983425866841152353332785021276936850902844076967152273194807745507639899489260979733060506924384474847420892946570794985522620686928228385463901199757318713722622838397268704477206607953153119171510605661019046596059720598167295012707131732229104505947820474876664342100508179207977885370208921131635845794135688641258543948996985280020867055115098560198980011525337529415414845948807101890191297087996897556044337324675619034924968020316882006064733900725381099034827916463319508860149872702492875074742348300134309677444087702263884730247237692599128607182655335580244630098408271612285048405037209656721312166049004137486558260046429075669274969398783347767986132818331278340710420244660666918187652693575778539892880960168106151348696965712892231649064192252097709159151899081076983273571551995633638251840180171759689446984866274536066295789681678198587681848756443818478643032868507170575207954327506782409791286873008948825421994846677770184407629496696217799320199992631107083843253378729722033646144370641371212657382686075845489595389864784408489467479499362337235254259637999467493049294480077359496628364046016562472824325061870340532954932111380803992808568728730354300691332827736629420044418780225553166611664447189127620976288890154813599446197031876287402708231302906365895640348345387110097177636309771907758341585548923303099293675735858801596631958671882758061589541356318823711434502221589938112002283820025979371661907969808075909579977816077702750036874707041953260037389250542029069932681555089598901625380362895490206274627476447107381776043350526595709454094745802102808539184801221293944568790379604574083846772376705413509502244871853405812751058078213102128954308731892081129512369433734642747254181308214943600062791915159512637780904709764555413842662898376558661935131885420023398383036285057125875391533116569582223516909058451054772259576907187490415722194762834112417629168184437406688907323279051630664107609010426711790600332782721340710967152344306892888404508093637979942871044070179415263718329889761809062945998047430067430995609452636120152506310623939861138121086779213023643573242532622258546078706572407110014553673122940363635837006792028046695566511787948887987009199628430252803237038135905288293529402779017868896815877441139649690783318445188207113412044836102589253112364428911063040984835920165409843239420779626922716519228881002150236617251755699482140302823838075885880489650147942166316933252332489116003364941739223047489918422189022858383973878759769968752841601075170832250892500772376733496880955478804059542258912108164832690326362274341520348376651501027000072845262499667874636958368012715428619215290161528469591310601304472633055755499323303763883636166483879901296072171172584233357205879015029516431910885533968798551526499451679799661947719597283532625118897977461735115271302711787965822523121940602085686842090522840833023554475816697088696395650532674767000921967817580291193648350279705291308601983838180618618561325332244135271517363587606289726130203636727578589806388864658508906449322207540302231110724235981496971168883926347228580419061117604803360416862767765027015447590312517740605408904010991125511572332378550736641435446444296650517291957943337311766911085757345733113854015440006922950833921594972397151169996195608041419191170129536368574686710833790160982664658924662350079548832102317830048990320922330608090866240254778915560420502425365918387434473849749415163126940406464971443685173872931189277097118042115883808132641104782009173927060735384624701340106737367630757483897194855372184108486112329524854533337660938471829779380187990148719446788199922581351067452619208946009069713425964906740517166707337699340162298041454892169364832036267358652249775299028817291285445535107318295400381859727654131978703925423362267418332580780324547964098701749252889195946298184307531718639726400973222555897549248552195364245997922905632518723530196616656441213290431676547827379379521784587456398706669219137651343597994446673951824200879841225090755374258595829850842099022921436656142301570906702603384702642652191681993486086215151451322051918601277265817252603138825231971734864804563104360721814630043075384899194671206629554936805381871371794479254036700167961867700409910775405108680556431868611573580917855901358682405442691252638735197923906012989516855930351847094614463379498331725181827615158288110546848617228899944474783407610985847315895774019033185107918509676644929233668483720451620398874638361855398767695707418911544023732287813000325810867192121640945753853687083032793042527849318792490965445367427709517247764078478297217484070315974435197224175869162110071719234230337334072881702169594841660603005206894786077874730213072256901975231534671905103556875788905456863925896016371091425106129845151507534108489260193867235170967663970929807205003628963107532513226630327667329125956620688424743825657420918957100641078931755162764384705766813035182295263547700331476474087401687358115062637537833513610820485357440653676065452234701712136045934466187533085538901475629612844685805249223568919709829801833856064359398868341160230452803532575529165641128355357918889151167521766446997394700420473780919916998798574015717172456867824179355781240166426407850905939408549179163009352638493300035869319209993143327575251233142646356885272183169185855556423307118583005886393684644552100288970845164096952175698909316503869571267983190054328913923124735044153941211899608462696606875236406714552115802778885671869126450427879478373737702266884750661878358685308056595025171332497654168725500728332751261828874073003360426799868870390424276775581520493401963788992100297235617212032504554195392602405393308824460329997142939094628797734284179603191702635288424559192246590270896503398394908299471812899268901329963317061806353804661127310382388872333703877868205525567840945732118032857709874199286258785475372623034084772060536806764101850130257044420849895266715329503585500960032889263014321842711951102102417585866526300956201692006189425996636315317200544538271431165206713472216314151848117805884585251508608783688882857877227881534172455175268753519967945050517955431421535187106103111266233892307786671856655920135126713927885268803057761345970078889355582454663100295521706231950589497774220215100027310321978630201751814024515801021144026315662890249420779581964090947160640850766923284392757676634170746590034802664508587291085059966410595574229235735869296543446116360469863603460853484826838388344350024557586445211270146718918095393570689127650260588808299055079086620454973195478073818621754677544195697825723000280308019912331345316461506245638075724809373912747516871796009452687545990342232209676614096851035052902991597181980407762901812286294754385671577198943590294442847590091510758728428251380535707190263782912187760476424361006035381887522294432329783453499855593688152734921127785633083421716185484911488147824207130588342800687335381578932875369334270636350901677731227568616248296784520704685447785775927252675638602851669943780370549363593440261833729244314479659891936664226384112309461368582589591359348878930390034159649337365271110731493227302541012304465467761481457459382062757446862498567574241633787276397643454013441646306680987680476468750219447512359581518981129134845077942936201633865972463874698545236807295003316485649557350990628484322242192634352580102843815774431332452472623933381959530417146458465776307705287353572545558569775907031023755461725012602107438006691014862506892444297678589617062663283572578385452604500196460940470824988280886248366492465164285394025564224634159320490674435725275141576756523477871901864848314752224358789435524798499727322180825912756359270243719359027337449583127923876774812337478518010363862280477707906178413560012247679126101165816392943731278897587179537900695772384566201226116969974602819241185794983066624720426815911873007315758585295077160691953736861031960650002200068759934685231598176637283539607451751015984656335000830514517822556749543226074733754743443521045553569316839571467899413940873956849469087894948254237027395666671924827991405086851785071885890077012307512369109207188092740876682129989271181542040355621838425114739034254824634360354218984123808628085262547865976248990707584409435884535688835748451736360194880403119883008150242274083974967863399067394427854338763740083690708871772273067909464233762914102284738927839167389689115754349411028621022588770599629589722084215630459401053604985733070113831680867780276317323957073333089077869784939328637657184920590117757661347944161494044182769397246480570909563539440548304714941061880833319860888324483759606402182283036689735630466067101368397667100705366581207020559750074038455256036486499868806372939237479485509079640008693863824942316723054646776094382540943536715263180898976816507758508012258692102252327585583545047647588811081454782021884907327028198225432460593949169460052424802781007907588013698935245066553565176038511003595143942693235976447560160109440825019213666601155893296943854225403026817595694273469295743976491420754069037585226230805063377216676276253511925509670936533644624256901901999670879089061430458476745324779831852956266137078277977840236791958436170500071443336114629885473853815811754882255943978774688165696255838495331395985860043162924597660601368100806394715504441305089919861307787973028012734601084004567831601421326840079758251926578815222753085438735164288330597652175770874231526890222402006328680637457117981075011227002770205264841979256589362717903380298087109884769110647207495696649648674078236617495740817952915701817725571119178689746868532384056241289283713169516661718455379654945608916343293576797922716463077667846529106419044675237393491410433218943348536736632522517681049431961529819803657671371783383381061352109541973454367333221564931357778246626175504350915091557325999549215886935239597657700801872131414591501714080603067661543054429829539493972331791889555632020758794201028184243531774216535125322257493109376235536492174891262091320910078172220481219429301561499756480053020198303657635295569140867021762873523715969824764296797723263962530718718426574901968344996428827351713318023665661022654953391716789782064452159442227647432461325127659051052319704536774173723979005282945906287748640545556960202381908855504594994267106205602840035555414849628377834254582263882234419777004105325937692771954421821720383284846381568678469267987840179385469428464187687145727550215270928492077976163088741413723662196409753907328874608773062846871546094399913732293381634062348858418112543594582479129118571625339925068220079713697054198222005901212613974592005165841941001949680815083309601967885446881888511851056271812445377571874947658116169460146763111072910232522097419492136101302313900889904391852887391391016528065343408911846642001343005534336132477698704501637967019637756577365470862365499435590302940826945036254748517316949141556427755954084829253859970887940078304671606735955840531753148062442347999785422253835614195053490516175865080515862691410798283264421198827709492769244128334909170442088175388342598543658581290294720561540301178383373652217109439147662536269711297504722148662087017310681539567609490413079314738313072593871413064072239925279094685330953969506818953115020762201808401447737245066794241545638548082833465624700326130186170252499192468062547698822806454047405214987238317252982905211905209438710149195991983806154861016668613085537471422185844493063108082768519287243577647680415448367848586613039219314713738245738192034054008393903695655020868072758578047217989878092319079446925642270458412279310027830196936800925514757187825161304267445073681750059028405126686607145327146592276643643992900287210509351964671508323090293499324704599285766561639408469057082266566346879309641435624223657757654473332726396792327409869536172493569911886507341426615247087934040877969491461819180191932896959900814165946687077088999458286241996360117998974577412934783116825141082757778813842659130897189542815491883964019423436336130634019552707713737664506406080387744688067545901616532356943935973576345116102489035621758450927036654046796064299000770444066293184435381736323446741405449597601076971028409957429368890913836650498399608953880295370715150036477038319462275054801041799842758447416115592528908402432055672979563568389762462979721272633194353182824596781670364479697124613914322581707854640752637932801477500656732962628801759433512836684259981621690423338161288088819795009453848612834827093914841428677504224062416598823129003396739601658020758355250647309288205928119025187016637806204566281213434909792052084092380918668074413564368068916335294684384084916592466373492611187390339397425857100188531267455639630267975569733865298923881235527976431928371452872660622672960494451741362742887802499256657737227221570529113047307746722000941861688226364372859769034350632436568012306094073366550001177746103971626952378453737377467250074679772907615096774359677901451508733902088900871577715996265293723153302226905979598752618195105124160033711047662569598894433412145141082557751745780660558123619710849647163678339075606962381327725128512742071833571371495592447089572723468051223435844612473521137689487374318718753390152007985239658106271406309048373107128179484100761068425267592371472322731915566189685988452527048450451467747680242008066593606781525349362190938696620605496102291466507269207218445150327418462368409792237325252327194831927382239002209553908813632399687243676146531906040328314447757142722028061738359821342669139719992200761060441667520616248976225860727166374384434990343487096211826786463614207485842652948919097554748637765840890017221194966279136600680606400652284027218262679566138101763409415085542127516172357484918889015780485191055496695104309540565644629130713223871673805231896757222611549639505406753286410017077921364277237212995052753255575003539959258566649296947846274048900077782299538183728557752215209384145339988180558901307778617191015565518588377551485057067513402387710168589927082288338244127720942622942400884077738793913768136102593490060874895161326335954513994696868861123390526854553735619519882064198619144329634330272741923844353512532260238685655903401390321138497497483797437566465273675747175301617782123042362276024683344347325168355970287441510473201064048851777707802136311343226954850769315106084937316169208185872175244065082659106835879169774753748084300377184629608044887420593802981304220270086929115160882008218947855654030317078247424102917651259650296050122258379824019419567656095491921567540267366428562641126718586649733708907468791772049637738814013890116229896529485935196029647677905512387926445650229072702457639426327450560904177595936235899259415028554062265835332208891448907450815571198047046114699224922001171566076683462779973418819570402268306255919668653693912703462854269619339408309330598695969023069672711209791462281283818652989017182522937747281628606045283035301291658386546936838278451739906696933965828664991354022114159196389717068389388595101898364951811088297870026817497819404956347017066090823629178037798838427492305439338981087920397754713090998567092687800190137055546606896210284635355739127776029014837031631583732739859021594635123380395707431382341294422554583554187044922573812589546653418474477932988320334800258160566971421976126831336885219607073998999494370250682493460858376500793555143227102244326701437705677165874271255647403092846529612260594871174303868677128737250906426094572728627151371512637787356209767330640295171037299679712579565205425102013452216301211739144349364176176597408427752022768566653007336925299516604726558110751145364250626245516942529862959562495149660910444058694167183631853143553870282819127071967747142453207433167729839987600930462175172351828875689566077729488669482397481392741525394762969531651672027415480159330836401791148335581937992374990640628745292799744236491345321287744231167372802317370615437046770463905390366596190788212047550923581933779084837030324432612184578599619516549312083481718376358001940913714819085564337429549283530251242977145026198583619476381985638244195854038246288031156303219535746014366255283526916937449593106222746203320834534499386977024163111761325962272160659487363496364013253135458900896362295550157133288453542035714133499950907461376689707301115814765346996977596144222379632897760114823196223479857939381477185121268396676340454977807766051814368478025001877817929903491512575455088177769583586606108374602620408031111644646260767716688441872777326137524755583149418416884989613314538360756545685565306667412927722691463470171295483673170562595111748029362907347586136183459256246957521017472957504906208187895848302741340875627191583097980118837742265242631575956983309631225030584410153824703902459183531284028847860730160128592928026759035779901452593017003574080229210856086875131014130283969348593970675278572229856015509031424201467540988976875841015459030666630454996191245276805423725423411816503003739724912403223092613918632780313816746412672878549717550482308146752713722464023617098942033260570272430738812349208394230088588207966726258559453578596918798310336547347395944372799241504175271384151371200225201819633766055652194385559410769426067711819747929016418701944310847553431656567809646797439880035549643941649459847796353754018937601923661299963168269604331849154887930977957430043800227513643025652064942016701175508422254123361593634599372171615276445039935986508120536625812032424933132869011672403915300229483643061696268971811338275779348065224643138243320355172129021811426394718711856756873659789349045749008091680617595312177804282374000726291760896650787285630268538642470557531063120727014368711501568179387540518887634679502077669746966584449626322776337491209244930333834102191370951449835337950115481838412975271985831321973653169464810298217242861557140537325431387446131126474097009626767938997259118230350271416819368516655973396236100669379059123815104735886404803639812646836287188206093490836221604266723176635025902390814731310578009481110802406996641334038112329526167682053701355587526471205431970920828683179624636009728119666483113807817018505143684287138330582104952572419945634559790744804438768981012732921442525003481305467453255378595331779531678175264632872742438193502231747078450521503759289450016889881385825051128712712859049092355116256105220362771493073947164440658878838417220157103247859384810402374065336689629408574793304325546595265424725499507222908210598856137139128319264066263819780173461551833503480299993699549212576738066391939293974604616667637011178135090132361046669784232802573863984801031712163203381749291762993108942260146928985865543122055134307869614258712035140331411893216926582921232623227214416134503304295568289825431674382436316325660021765939153643613596863476241323882086292226330751842537082265293941014326725829635542585076827816447200188984776047362965364644151719506300078271433717571471491489416842137668721442513496660404185744248834426220412289956303111324221163979332964805777707272273111007665653919956633510129703991185961906281830801394101033576961357676790834489435304948818131722519200430545012485616546709708045528720071561195354541548040660058178108174976948904733396095964598239489856135963973544600428574329402821242076126148087134115249749860574440291531761708210579811777370936909416853034463272658338263022372053479122263480385019493358482652136396191184571037262934258722540043661293003714593569641930891704023995156736369181965774342606974766023242661729568694141166523481710690956033618128121732305291145315534059247754946354929121420317972181437542470587670663279042712605534131862490746390751567769831044667812234876095483671711690986797633781478453275029616777710846010976462552810345068395353069459172483943336543536159770350285943286698453126036346787529690011064930427595178738155855131350416898133949842530297414621978678038102820506794471322922217705769298267612352974649226831471542858425273616689619281280430946016302237192884274740562296695764476120947467635858091224008517864148165524180853351123023317771249032479488089532312945737385751592247052789175064586964713061888791272177470550262571106258803427336742799349988139596754724106943662616287901473465900350168273921894630374291476063457878556239591978553395085626210741516659379930048333991320393275884579601459173374884769456583367539418649920719106445507792619245495007538029548056286121750570893207939237051369692616080696264046489998754283310989346964068105057079517279013009240056476936183558518288514861993252513355910388514244400567524498601295007938777417016678403866440681669758160628068007867579199460965985203380302222315695263904000182955869188211191108223035102932406062309008674387930121731062152721139135002778917746017362112627562562677132418608221086331075735355368320504102536971705053740562868207523991250840360834042304122353606857495697981537103582524728274078881372004648740321595432970379657092536668589594248731193111496009638538194475520096595633171388020770131640267805050767027482874373410105579925926648811718887514460091383000599256976051593883828135249219017920503068333357361558513110087606026909723885612081343827343384512389382019226307543580981496420600923269686633809051119345467890431835798795193414803720274226970962705120857686095734860224980044627803789267717996617208347566095974829798921677591103497565076975362253132316490943268676501786814273927615428051524370798111821821936253801395321584021857623293376267912144230753577311961365518685200720893959725136019166327283820235895818738690751077988842757242775860888897685301091610450250301049013619185384951035912867907820917795316403089867049874976261511315950890091241483940198181932248349086821283363544711521424604553910749728100969253527586444981632201844258314632427931634345203363685693875108186618553763563826577423942466137972969602636585563194262498839469979658963198219883949154324836412387579755607030924246441685406872816247348639693607448963054245162368217576225127448803485983164628247124162754492525889513250017879524994243954355833547007988437390439168155702242446433432516922672058105035997624272750071318944205642602237101333300614160564040928760232941784548460905004267414790468024299175218994057085237537468159665964392126685596780713738911957919639908850454494006096173062348600243067515245721648311287939927416718986346439475294103774429769252947040832050312576519540335070093524879501425896493642483328818018465848130385363689618588433647575974292395631679313500902096098343072471424362700610113041410842016932775718648342513340658519907628822194475866654146994924333744734438257593993537404703201366435049984217987938919449038017916621940459823187624748856547091574156190158176880181110141364485214487329556299043175536254786394420506792843682222366450432619912109340989531871701060732859135743081958901376378164097248675254524286356653426691920048348952882220136125411319366533756535549822037085278997511754660520777400523813787687300583107189779543212141769264274768582114348672539578019985349461910196116128453270421699491287569346776383470308242704934139788211555784933283247682330579018918848877874097346294168709781045713230130641930975001305619566611653604710553232881829452586741139323520336965401727242196673510345949696856021312831732992985792949423323637103248668789914202581405279678689178569897773513544454969317202635579313588019419186632162360080158100380570225294080411950485506434863773965631489506352523685284219288876831247182178399867428447923122385235631086894900638126796266997817411346103263116068869474076710613562496525263909679944962023966800458918724460904523739606008356498096819094659938175676871293428232346894319682624281314459610172461839037005120498467636727824029827514205991389207024077915441598994770401438962093089668765096011255649086134561124657597434644366879405592385422203215024311089097040760186213941815865074421154141828295030288043213675277824028517806731319430385757556586005539894043797392713127000286628454228215643175356654838413438593644010290353153239883055287912912933503210678962682431375050202779062657584638195095808292658108446884184900974460169815509169820437677482202945458129734735019578532836362236864339379458091648371105309560959786688342957566850272816932394385770361498454841899471422479841177514932479160564532979751240782193642353138113349315761578224464667899567224454578477975752299924922015883317654492775093993204740306752710003454074222702541282256896904571683678812455929493315650546376642533441116888428920320672968975838628687113729543512807369470572353712855684357783863878670567354357732279790068173388959875170786193963424308660777610791972394827347530258331327986529866430295512468844392042513251458442494531296586027490391220608073237480357171055618450531670146565233409585436846146365604983784292169294665366767364966338417264956755765587855266875259893462461529205400883600676635092974342265174217878954675832496190482216263432180865508249592989178239499927555938456434796442282616953790337819734063521262786994801386859193207829680988858538028146810018757905488771355612246109968367928535546444146904405616897442276179305906816639803533146572814974873573804784491927652571660891947255624524415568105141938690344723307031265322759976579531952563563741239831917258435005336930392551735229331927686359000579891037004439207481054853589679761913714631016553565980600734765934273796638500588455706014500023165676899439288098894834259274875826974299544674228692425046758806368470688637481451431626646809541599987950643518647951136517431100505592461512772832066342853245170685371524012635098227710503712603779610307875658893845868093479726046172098523672225128628540654454400667195493205405038407957677476631546673510996754374314060792284352487744707425615299780303691001421237067050209119211318419319393670367816264161604909295398976222233654466191294843871282869020813983509038307306319041333646527376626896754254381495786430692516415648693257565735508344292739912255187597036223304381491168972084099594056166150372071440134501446227505080054689380172795204979434893773667097869227765219721508047731256013784955230197574245448540794427742414120104495412331779506037723262913953373014463472757545336576190550659606815614760020944498156942325250423479567385020786022343402412009860226961835983522369884585220013037092589113286179237127177285455050029715799832198925700732628846195929964042839754267854735634547270679031863211185960265919179772492752399050169228520703760261868358329120878541914391845329088694448466081483110417051192016512807775960574230064221617751546873045050158175334724368912975386058883223647011792647114170079016135587980942447562206083248453836638309440712522243353546756700680922726717268148191444887066459800401475533254750306108564642343979812080312021059227172632379210147207973280042842004663794250484645722704006876245467708781290575265373873562460197334571614950966588253691289996507650764279750722780687023877881303465930770573742414329755198145641584740144925920420288142080990953976457491180243011530967190296495911058511939046181074070319292979536868194949522845446578361410989119122335605423089071982698448077573949158460921657643772126086902657661007992194369604138879451954681578191054787527126507613343383801094393580102122346247277520232188105957764561383856032623374584022649976775727597056225096193628949360687051561062603990207872944829481716173457008152601513713611976299421082602213025968287905724800478233243424824580760699928336606298384476871259743336592541698533685580042940293742627617660571977159326840745768968875730327377698850945558750164715536610003615943859065032930558212172818677690918142461716774041042691485380515921863961016737537159080533879661667439692559303392395448041050308762082497149309838351918680070539413398143409964954583890259799476890323853666710301046742791723539520604980387694707467975394846650748193648077583257861652243232597568628401068918139070056422803216463467473439253939881343705558316300758041178250992155819675354096102635325091569192672426382834324946166141947042587034129865300468830012423779258756621019500196938917341519440924574177036792578620634383753459833694570204163940210350441491471155178422578500036974858112568592169705857494601772306202203480130452122010745797820801732145913428268105712651807417083841011729942381873081132952377386565343137717375921473050291689182682829175595031371553378733558182927678348051649245352913548644555587129857701547227873579745635427504356901634999249092843934993352378838545328401392953846226536961815432088614641526045151299354584283849860803807780092481380976837317413290738014472994119555051811895645729347007174787532180580585570700612560161603705123384629347474306290210900461313071946133109042344506625477214021126530878264483679099697569681107724822999415074637238185184774583048554534765186141524301261477194667519363966521379782994147712288083459776747415870431137352207201527423876843182162799809684743092782153467746292204942197137389783260082238284405377694593161628855959865964365300689081341479061181831512961689206715488162933284418833090181823924560360086458305873740003894754652958364647527851595642181434555467989001342915374088811107993179325544398941853694293632037724096047576945717739657432593151831184041802676564957155404520623697131170379016686249673935997962981237709316598550495378592146516029339992221605095093214339598426058034756334390591552164712159691797926553295817747004777372500492701812274096953335058460350708970134195471670168347324098973864703706309991839937624891150152361540258989617287908270726032674689990350905467819352204124767026595356755025961808474955994348068880518139322122768143079687560059166876673354507530121815432480121349233549981677891163025697501387061971948654184099915656889576039850728321568609932206615560159935603642697522613073256249507405861822073511736902947146474322023293401699067377335379107439132768866957859597199665690067519502363760608397309017474425681518820709702814119413695997584977866307105662900024326906230802494217252884833071996688583894621368176684984830632096427696575399326245977916422763045438904155099106496527527679163183195748645941184814571280489300124741272826003372824818020082966547043184440425463449237470409498379921065286402799763302751638376523442418865588097511515732092360997869428141049612703852310453129320135221183547099069191192059765839472571298067900242500435129213415420564239486808774815589077916008111222365620070441486348369662139912777127839656633890320993492127999001070092895027480947635583918512042968485718232647674613329727544976070422077412613839794336651369448356697978562792999561551628726390411932983220523967407477429651718990586036898091310510658985500238744570752621950192025378806976986032044513853449748911142906599845687343347299327408868686842368185905523013230729512235823608875685131973015627723317706409212424340975082206043937280536476501265621109224099067610240437833063669986070048272770687120646986199239343605163961417368501181749382019025056226722841399855780741611137432872375057682961666957590823910473778997412424262904019088501784904056861652316038194416155871055623499430637122155004321070974858872044766115579045924955418714045563983577199637394867971831784437481175234394031131000704644766036145042205557427667727902409376365186651304189593055273124068554097821158050255935008018913088152763094084913971299373836702919293990724620223269760872435633519751590142275046472894840527211163559829729786241738055005040358347477527415391094812497327635267736814852966007892423671289986043142158613094004316688005751835473883458656368626629262795868849928830768680063924527155556132404819582666500905711399911944756012350809387226067247613127879371384609216295360121900437744913177967596162268002660672271139561939364190662958623628879255264027036111421563945709858986484515566425006952648021528137360030440987175332170580129361451427210821093726826757550475036307358630687165628403206844894709399722401283190257984628013044754044124139523010250792042511014464887357527959139724311842669583841970103863692557805795273343680477051541881237105955046561054507841451283252950120987326496314612611387660764703459106972776357299799912242498765949806748856192723744748539096828324299337089160072873770852900662887453780952156781289917678214646895620486975841256801114146157181076896054966484959130872664138989146294702977298353274640586202608563532314091298049522288591247543505831208722974893128385614641184092574252218942932311658762604488505178384732232662002617822019364258032911071124861371146800087408608862046341251673331265458790958764490095906087869002546799237730187823612972692897092422471918751892883711671374760460730709596826480132839096134514694171016109095230044911417791345196503812981104039484366726097426306684406613916096741013237552935025786848384733939482942938163604357395375000313888482277200753588454724051801688224083474695181451694514234342836012633203222309352618695609212102108982248681987084349828420018311186828171063298770581492114795988885806546893700710186326063402376344651901046005517993388345767622718734331371193522983701745908799489898323104212783866630673364567011094800593872693338080880952654127558992505663718230472891459844684958206263369965131405336937203045575744349809897308233543765989915141239534620986156676338473937330679918443364011936403504578075866203059635755323209533477130651595023696836213431491318319768235242726361315501949922206149327093146886198318809348739929015478532797575353077104293470440154671101746818320045065495341082954022012506635899605995723374642077964534111222402494164985699042542301320611299138678995596933827754799722974689716218925291416702034352979588002267937241382519653139072565981281275482778246162753754773648090101373959602944055623654704442190471837046375492487002514390881168824479742398721036215622935408684201312493942655619792672992079799913120914979166749141342338665275153611041394183326294106200547083600505277540633947598012835048574981136173139777397429134104135810328060777839084460673677069796547550455118322048783963851929851460832716276108999396248440678770219745452235147591751233920023582386582693167642472243285573461256866317430630350993082139756343390353819433985883101649291414999064900573752853613474187870756519617126917575604669474927767828015231130685330442690756491598444263861963322653827339701207593072439136828867009771803836193610463469629770582059262368234293210441993348644466625802214574622409934686383857146303984695928410312956238158391857925101337701417180473549069747116772137899644894181875690743352810536419927830460662818472265891339446993707461344073573504480000942788989984147498523333529702432600895711061223616455594855396484169027254346920083536576690250117927408331389312535846880656194326632920969328101902786761182457961250867696544544534301074757392041344497052880328793361943899600597501453035098344208115694005476615916521064071000178008494494985445142787201009011083161518379240141570591902962832667734342493421607813800464476415712141839914317858023526386582492484373876903312026912547654737723971083642002512383418644388673471028725903496032853425160393036053681449849525355077437147143376152787719632804474358179965573971408696785184714024931752731495535337093613322379244841091418121809273995632597346932223369163204786232637048943124439799976081369945238236713990402705635601788546527924867226322498900937841323339316025672302899039635132565482875522807645244776450110712062530379183111677281915389072519927743528483188308075472141049668039143721844545754738739074273390682501053084364715976202021518505679491687297853904600823687915587177155993487781701906847330161553503980403057878934751403755062768389813902384372767563792460342695114513581348278159772024374642533830770424463627904345500313193933386030722283170571613774895245577201796689999793050889713515758482462185747467872021986301957831324535770077474979321397593716787927680402029360348998540190429965367804895042681015938607467143255107512676470291891534514412458729505584808134021991850893087544511473502578161491864617950157498121343853387808496635772129984884119724145508380312076620764438187158387479510160728407475154855648891591482349249859503560525866536825133757566521575008194091125319764398373522180445944387321218810610843566842723724837185091418008064293459600390347461646842749816297201353028417786517281642155428537378095645207288388715577186079767555569037778532793804976770108856068926213673237695627064262817806215218212018911382302583152491551989489760761179176267236605380518881170327766092320626259783470647361018717631684652505099860785275892900982765815588411840304736514804298043071122919643660241668060766029606928448002016190224343241134287407869752304428748255913972756269991281689289499581022824034251058696817505842742605470164462790715538452257732274166421447569046147500999911149546822327361739737988344494023868752525314992998143276657938535526089202073856364972562857075134061297241420433575797177072209682911100033884472179015530948412508590212993399268622547632451050096035746867165381202026046725401573940954973319386954564379505431487077188007357541476745596490089536520312533579373659335618144993837172648841926057190836870951837269915634788234262318848122866937701278356667489941031386711592226572637698556395935516428255401246228991860279082010668179289753997912148932638733176739465002080254510527598670939067051440479517342913481567163108338647791609689382527049199329172839816484461545320125897309921548761288322096795240802749505782409100043953407620916621790675945836131264149170871366076933582424124837622385766061551860440354761132178060962175976059213749160067013721587174563354553288580846144066508248655339628716814969803403698348895567098164980339581070941475747246640372869658941773342688547217883893350184282012431859077142074985292930003568426823898889443724876985495051172714401550289767045841642530123897449821154198827669648839123953612999852173450283862855013927921691248071320223286824138115863975162187621740065708376851134247842415108222950870376133924422048681887071834965187034887120192564609509480346996136953562586503246666064303658442066111688825977630035129607126974966842925066173048873258085544354625134617859095407702660733764274693737644470953563747966529064015959920031454312139015550986424850404351547227693417093150482595107268627320434111615534475501868475529379908815399461262453720566798290671757206935841082249355764873482074274698898384121326180683925646105919434363298850721222190796337480151244971529876105528397043810379436146397903815161889408536362559915833734058007255201984227676356611850308010423253566149247618986489890342852469551903171062331036034827660902334241722093780584446676587385337705983207573625450064697827242143310394651308577764458343158857721178873067323431480366747469076298355843435341008873399083118321710084756130868177848507442012864485370927801547197891944878282165200329601102705256829516810437051666339927991702421181063801916972106773484646339729952368054951374921074681264432128785887358173022652428844327841023346735673789463538181904640085670782701279512960957052720337243339366040316981651573615241254980782572521200148583933241602922654745997950308447385024855726130122910577961054169198697804227847645415931653127344355087379238876262226584553812274807400230214949825294026389603605312773263465940540211987596518123922216038823967700204326287241412902083303175741865784186479703641691622616117744348278308652717953815215987333929189097059844810272894670596682619139660933121776437900686723203176748213479817064660269534455715968576069481885743795593709512093207087260104060305498733204640830666587265642163702050054311261396447789181815672322840296664376345164099590056482110358465443147816643740702677329954087984177323164907330754088504218793692717152934075364153459038917280382877816714430061157559501405656571492708365947045027822033119542868484877869503084663724808501944757054402890417128853647361946564422417441035128458643641715233830606201568626947017510281317731924858363460022729666881946898650223736978598948558823181010775370037534316474220724362242266550662252470745038539499283912695181299172073341444165754623278803036049234033259541684689955556190604357433662122889063158223039210200173265628929874531377752442810455208878671758399394972755127838717377870009845489180409763944985746338914266052897465886979973250572849238695361050028547405520458154197393223493382006924742941748309103830166044532463350795784189411801064971739527198797389026133671521009804405018309785137292189717643877931118969915017777071995005034794126670222836474435190722769650860288866943722712928666284408438352611832261725961761997948390013315526931589658933864326006459992856762267852765886919337357485577525372213400131003029180318487115011881216834421524707283140943653905670853432291275792993542521758648470699780708244233595865567490290748932089942838819837401910804518003946024402401335593539346531981194988842315058202103129390600870636004270532409211444837312548753627939567441337327906423641205888145387139832607601045143835188255202209909359668487795766891096517965529280523050065596837736759897311618869126396625760375972140483201125241166306036597393994058191576013905805439887265747331788573427106735305654083697096066323663537218083383883360218871867745336843120623502101098019679831255279804249454796923734929957429207344879786695660811871889528397629482890345216742789546123155212847448342383295508929095225246167293837158961290833004071725458290004024120921657687211243864009860533345479563600109853722819701243274690874252885741947246379004570511893464001668460105203556534368846729103488178306674468595720867297426681859151923301442814950044233378443988398050810494447909192945715647066059945909585460540707382208183611298359817630239903835185662746957971006064011369652474572614956662698438322599354110709306537514064114255829843660575252027466830985838836318388076218540944493417731216371888413156686706370554704451339613450218815792546649543531086795259268165642794796976689041686915839334022915351758192630578051908236008678660561110230165318668754838645126930806151010707501453479806326994104145801176265350949818198560641652224106327403119075818802602950363885432456662990244843944849283156288243921442674341645819144184308119241412859532272949102847317075428317310771141628185261778057950783330249680715116374334941908912045099011059423854746106479567905093339328513103665992556292626048441017234035666559781257670448876429280999037042134178009573244955451387535805893481016217633995784418984713382120440408189453439272664321097502828700582568996535399634694145248842742577575588316752789381553473395333440513539790411245458222237080101570469489287620048134678877303314652299380771693387920048484222483613823876773300569334839681118246730689356868559706921214422519549864762885866507548972123806696920338771949634760834623463875137339952512764837557673882659253035922756626087651093185170860461180883306616851828392936930584921988990899752162278920673798560416235219589643990679617490553282182059090911246822088761922122532923315918101201073561330747194718783646729661080025979400992527128582905517595471551109487927197564165636917567960794870683859131059230914617785617260251371130354279276829127573711290255219891772540878798233953128372589240614063001083233527588778554426608653295294702186735696745336859703373086225556062898193166020040102435278070676196044429812542312570975532770438742793131955430382339593972716505712814014293921770721662022962800727016901889678266691769649284512809027467222949915939570039490705199958625352557154935357366780495685266285184430405243205450455977103781670841315875480310331308860073054776322107113724479065506020565814666893302534200956803341388840811083278003069049463346684950685233993687978794766363914193219258620028447208077803300011007423344228890120973049370027382195083144188548185094229448525381393262992065591159197166774062700330682606824188716007478162270908430947343571792242766658814823866864346672057046394500479288644367654518631879663584580613394608219282895103319309312454140410723168614572105688528864796940616210492085276722954239338824885313370859368547752115857516340669542544403463378798473042128072584339306844161702409333203882657048526315172606070541369176457800191008690140155183905618281793007743722398860851360129293699152399301625309032499262975180826790761957145845578557979405193881931234090073905125800596700049005398665827146146262683672163288198223965504533063396573103658347861844848729415538479088438080584671341277080404940826261426787946942616937632770442615181095541865853018309396607282468945571096192119206786399393673194462479573577092410649003455959024119807497870709754283794422178376137073965132232169744835555742775689669302439755778655517692913219104368970930340762322395396774742101991846537693098900123930498075270443800542430182986549289257377685279377248106010662512546094236245893819205904086628747458744875369565383860855862316098788272322329021750119301546724952684906697774880107990656419242226328774192653721362746362921546984447473368170530524180765511512153245214556927683706658598906337345321092479219823854018016143161863857722430397007398205696266527409140202720814095079355447608488847558123067487369315070575664593830095925692140911747772831646431993214685874228580804128325575436487295976002363792747829813083395871358413708970604860071887720945364013463098849841861584750603846865228274209476013441664243728815552425765682607234103256562955133365149089713206476494904885145061672901553809809665252493728818773714085066169786485291909909760327080058256619286355380057826690201507252090440662291833580218015382693098432755260948570694295474051168625827422566452724964846303855708140369555118137961203818941536056128950839368963656511945409142418225180803979994099377507884148407950321494614257948501598889987566213515388689819875251551373289794184852071136939261508816322834584072110254349184053161813796739132472239196560413844924907329490962320779567299460131750380674134244336403731771671588310170058407708656984728440498455021024824679253943101290703428562119689039967505130346263309584541365811273000209358703526690585751231915117685507151703443433476649640849475500823441315266552289966418770949643789306927984114831265660071770009211935552136009287193082306629885501819041336180420490245621518914700075493163329997188070056474305844195011658629331031667678095456640174346013848309361188078141411797499740584463169034711035263304218093723343658390860003702201971584316273020236248754603532991568088384475053299322893840351792053783156292621455218044341282228301359635984572563101197379332379933437722012645048712363411457025983876078448997247677091962540568824854299596104386916901397481849421263352903202383673502662456333028300376124547549337244029560973336395364866480958407620251954319945131866826443097809984415649424455220264398073796236084214049854243661558807247806822617497007950862490336605956222189120861508965718275780419166502990007699967300772445758633495398619657253900083590318641986838815546481318372692138329297384297057269481831399706638885138779872370858061865867263220017900661026332283103130972746795484812347940962186868952348284974060399548969215407828078383866870413122343677180015165375138185183786668999988241961917907346686241127792246004867643404931905522720330664149854862608304708495262497240680541225596233701521743075538230903144410951784532198435131186212139662540386982810482844103743042518046777445928772038401955849331351571603626726121345903515402000475852264900021646281877117965754499986548107144088793208977892035481991474998563498283188431968953351953109933540446579950610507498012108086578865513991101894727699934561683946267853790638749274757404707776788842230867192265336512008136963938802008602985550883504123447226143095924652945632127041527890607287358961455931610913688025860265025116621106647312404048921872976432881051597891950612128179920416955818641338700715980210695969798510200510642752000339823011699649437020439107033243945105178664134378039383005976739799163285622520091171758869185770622380089393887826647677058274882149005843599359169910930874923094329551529304206458642917422233851102126172572199802383083197355909556209888900148975567405982017163781934329011032314279981516486276521996089379564073088272693420536433286665078244204408667153586218667721697715096086145294838872621903386861178722013049897612362857800206736918978274866141989148393308384234179108953888925407902520985588023922829597971680037100937245675162781236823769804504589729955216021091321025017630427237903465336819238810023278663008464682411076180571278529406772974625517084773313522327326009320239905057468525483150251988424094746213020341494816874838513024486807329138612875428519888186900060809612189283828865768760144041772465256861478433114976487337900876496019521564184100597484926241954516452584837134214345477868938635102069919179535708666786290793557701083216734962037865828510760339229312470461214662223697994345836376270678050843823346692453801075050341348633358308583562664228783172222704673370296458387626799067065930957178612645531667822190033516545092610636112688888752532718109589525940900749391010531543297289622932992429557329165614525379073184107674201100730581340356665966108302983673871369919271961970662896713991602580314978137068403318284360171533271274226376335181064367062224473609850746430721973316079386472742257761914233655695383403616658658081536800332883328711391199735935401528570453137959378490439311170484529982153069108357975896427915743433995320044470336163576970669097968686096873678378724286244381861361550239665141018691333557844456655000058630575178692717718042262540141353331332843595545969998367987365889241537956705268185693334059159443754026200404861149613120387111542785716089950906654254172991665641307727656940360486140150295565148141502885870360115234364478407060418772387702021058695726126354710754163934535203149309518893630089564130406016980936029342671277127503563455770207979648420973804603850298555287603922205404189712039489386207987580385112524774637184355076132716242677525390736969857759680064607857771656868282882344451358951188523176471408477617752593668594356030825452159161008776916268094747883517747022431600131041244216254096990157446854899057123572206956935961702778641359283770837269218861823353768430233943206857649064258413221356111965631443614624618818635965998045085253503464006178284169450396331764178365530225287749998651912923279103381872877027774895012856341446884425254198217316154527664525551727323990528065248004802308287849799708244337119246751695639520849132862960606215286987857086897292495647413338892596006933933858522542023924183480678215968572010413315006084841449027747447186677661808334190084093517365006034584467223643782799174366200011816181119993406607524946484123455070587048572538147235416646064172491017745601189817593234102529702026432983815973040921465723261046189390484233762837782605951465436291093910230986835358765193490615161756822997619378274044848239258744721342962097925912868725204065007334079029441062658952115602588867699585572742883703546743935313772954644661234982029150961923372405617011039925129406379958285347493288168223854065915373787009265337948245408732560222164140675396599502841813668443529917091106919048660183576367554516462503137937313617008775073709715954360577253694327483045080129542972871241865034624825459310415785893117640064091115118476095563407841336875603859031316999302548679111051120345277171620805038193943938846811833817778483173413813204908018539269154932844127711139227086109170053774222162102135489361861995865021593182275991363098795488282914735775129300861393990030945624433705557883598941343985057849099413559105482988504644946114600083065373193692070947318698845982285538299625424786773274066976690947318106313831213670496441004317027054743144356607983148287851685341124603991745295126733090899968882144864666427373582803376485140051500043942410391283606201813543246249536997778003766790170979406622822223066763055371279405875479847665755499552038776685851306891455552164001986191067330633927351296101826918425132654035009414523664970633549246836053808956054534654229170036687394398375945414063164205169287241654467046675900043705975836256498143933955184652484698115033875637810466709337455678895831815422822753661773709970061230593352945237505780781475566556851815736560026384073864903566545730863137704384696986782499577352210809246460844564032581470859913359015380524875861705966235159154732553732340658510638591474214690497204045380854220629898788873199928343811363109848014861879290000737453429637805079849660490795920770045076439319442852715977907525491901152693372274956636698335864288774944505859690796378073835965382432898062040120050539637880023724002791770904992455555801689854912976725787819690168003216153840141810528375930653240771091486494314478205467211880499818673434809812358770886780580252410258266327968652564461328957912895109667794171179956866625387964501686917891053656197636252378189776748381141207828415934058217902820034183662388302701840656169301239480538604769935898201913625748526755767012137105500205370286619429232853125719147539748753763169366078297394569957714163492610482551940301232980829107697727943085620009115663115807340704809593778202483085804148069362324094561629840215032669291661554689447640118202345556710808154813112387812837446099253667243563207685676617984378249869268533853084393503473648785685071538947419915086982613898501564450045033697241625772336638729725681254789410726295152560226222200102927838840398390518163768896246153208260245641547371739223261278396768272634646737112027221311688427338154281294669929144514079853011903629515631513438573593308277808385503881286471203629048819686915995654214647467247665337171410405256471388279650412835926199080206264383110316299069534976277749212411437998696522996514582572733936289808443937147950281737123464472229568623050761889343745898366801264544556471710827092002766128525258817911201515270673586171355945347172253860349096878672449495289571213740559163630543423513801145656939743931892997006404626460631149143496809666052492833927049257429842604291378107437066477364427156369714961553350767336750275854344022578708413794812791935974390310242189206812509221254854829782019872880120505316234749363838371952747537349961983305295909745244992442466197227722462624987912986387388686961658185779054045706072209959714582099188747549950488790713510550924424258790802228599795979272694023664589449355825375422559847097630596699641725565993172717362028853816381624739442643445633998182487120966753776089296421578693808175311826638790512030803691108005293575340871368278906641895685062895845099354617985281600404616462716138852584907694156687624372058361559803061745989443564970503708924639897178991909854990386250807930762153701675578444372022663049751486773966372948336939444496470819810478827233740655010144121239534083849115522170472003367183267296368751310463328515092730735851725738449641407536797229298140103691724483127745385747579696606708668745321290414610148336891931191641371337870226536702010129295052044591363026560434646672537248956169659871609059823442259436845916257630006747394785588022888378322364970844656915077646683889358383900682875029699914428121616313684004806814562511313878800958531444375987185147545653365691970379368024411134382650431859635952531895481898979980886260466796888423282728911256385661985108624512791464518057054404981105365986168744121445095285656334039770757555074547004001820081962083946642852134120565985690173771675696787240994847580860491199660181221882491528685819118526475214375490972444770632189504988582658152433005673958781476737241756749348896397099191545021341974109545586027277737708891332154593120080191475822617922627272334411913074848777535907304312460106073011093819764558033619166588577544174619510952791897747175702639535682739828033241917924070467054862039202024821161007024642575618828539735193926375706815091928683332669194139157529811857908443210943292340295794560446102935120425595879767576367530389472798761704786936560723084153937001182349711824939328614858348243366667965093142042592256662013970765679536629188402936009834014575104579646140167975814449801866809622543756515693970732965105918374890378754483964136106422111693927719579884067159979219239478845981504738258481170823144595349581637625133877391980940171678845408391945117349497054035823200427059915982678344650608426703867317524045493900643832081655316602457033276486552139509776627446060747861284664569260621237758089023361902286546312120404382325173893830682503516153638378780310768036765966401974198190923866946463099053304056846710717148366459665233924716166286372074048151262865362615519600911051124464146850049039841626998290880212179226124806406314347143170682056436064888022393156020491956229782616900843902634142711775838872886806986809700630897059577145519311447674034336296963361725343846147372129407230933457048609087853124961937598724079651411506330854186040524947650868155679500018079281726733179700351903689038162679376273087015531122704421479622497965795922924180807064235181713191169358098453486877075070286578573292186292449996322454724115156462162941487231925880714268438159145250392137149947238947358510065534296942029232429142239220841023269452564148629729297334016720071311658976066456624290694175364036347844763536851523470423523862429898105385854767390775750638973330273719313964615070020281179711203896650657785484192377052428102681646620877347119554768869784196052882927030469938587652887357483368269926817119227875454553772203603462202563223178595188583444998464925415348313623608057589308612576635866906974823127831968199733302661953797874176531241431359474100977638379332632092202740568811324279028883123720981768800796489630642449316787331938480094904050818994575435709927747513055488412728229622280123112868017534896795939521549866380246400304745602467429289826173595030802069273681060801107668866295169479767755556179595484374738414948999298488664256612465727513359333427384976876521851845083515136276137646440823139871907452125906288012102726240374771547247837453488878898228557725015008610106473032531911690396220525588840801310519489203714419138596481516722044280428272966581123491040781976299815879531620309793043641871719841399823928450778147741712289709405339914981565981778148209203794917897806184176920350041816277146073544355560009034903495012365086915049031552437022458497912153474534066107371737778982287287378258455671816002021010370466319733341110558351097226673188795401527464175527187889235450607717030508534144596441086050576155358247699850000162389335284275082014960746853688116121765039062135568951905176400274631838393922117494235525572707186188324615470926861930826825812362893502551181714640563989183846105111910276950406468757692814771791314478110516082440381417136943661442615679342915416889073297668272779717126481292328228946655577614580961504136650514027903666413399472508593818024612672114514405484647396644710329008062113107315301888431887439394385442717998633584870134345230686027274510506845181127172334678313345928966675610304781620576110307234922363933558969438215460886894891508378201285450154747006701667601979857074184725000380063340013491850815782172152927091419566644179609325813774981211823180749566863491690428823088832002179337794016334925967524879483085024855835171016372963029829356836309705069977431477688018495890248184682238839649620846957768088730319550071090192185840536263342581904966907305638698233433938191870753357855119884867101411244865308414326620898203802744835723364674810065165532427087792516863629422506615675031736157784115791145647708449669783911366500668589308356822961633774723569918573086249838452727727011296622580384907403630952584962620820514436131317808642488260569817067381922407976584713028504553752394535947873761411573727827002082521981015405189063498522992206626265898665876348842505883620371300119288350681888564722825762334250959167669194194311629905895847468505732754698226180814597824263846018340161519752281737952697745675471995575703032429065835885185929924155449223225629259238799585827730306357893240647388090039839970514485381437986896990942260286886327858669724736673739557196718262145610600124772845497768057183819394321821732720976358814600496326745629906037308874660442573283501758291139209107413409509527127360445921273507327106296263356665308689357396503443957610094949468327002000825356087319227763262649883134660055480105724931518529111441719752897794094199368980408446768832936819128083133475503389129546920370771192768944537552183287134443271765029622225048249682966725474930335050399938984750828699633382758016294468605478473324879136619480768464176796221750300691828524332710158213310175557317064481152997224013255108190765084735711778980112789018653595416750443243251684509034924873601469863233735337213162639612945605574900878422534484911264042359181171220754671291403599449175701468044588201576540883188587485218046603668707236168752035081895017552890080238410503216991303827520551088773924792578978841459627052480905869749811001642462846492040256769514377220455783383310948908465076989538136305666514107363472351213214493277430360982923177412671067306155121603273560217789545386185055916688471555246650833615649677580904247586098932353487671943598825056002239209114778964462547704485404456760457717744014782720629242257590916027214499198778109417688320019012251566938601862273232908731530436298861473059999645535060067309654708211369936943374017054904311694819672764976652235426959399100583330096193189177338397854433092731377953045567994632357031329356134763754333249282507701671443823806147375294166099977265837547917518770551330385981282059470773954537561710449934746334120616029554225191705230408056155449256022024218467906765206850045978950208977831848758103156719211006373052031677601323491920722490694876764491998700815652825910107610062827684023256291740419006845997545433657633809851613115507362602931834709468564903126007255752880604451792759443964464394955532361526930393826185739714674743861387401611484333151797458338059631801066910585898066761328810072520779997564072018129548641441910883727029945975585873999133100852552392052370022443177180703538358590024396807033830077009089736789249271190325817973272485115954698349445426668957868428568530256830092535165489527548724811682957519978121128911054497451225075648944032988180412816104684035608559311638808232768783127302658914631028380367163453381937934204230546229473374771641468812119938656799826586011442860855543420767873658628189653548488821245225007597930312751983073873856520951442486198151140096653304193966752477919224907761384848467172317108560897038106731481789182118593570974845691964961752726163373757013068199109252044040022858215674694338289607301287202590626049541926080925954673519762605116739454474571148717653370326187262402178932311837548406461787571282116631965926028810579921052012032682368549561839017577421572583293551531490022175348585322151468415421782821173861619726224214907557423402126881896543392575060122840248414485485421786026062734418802977183298048689031559616130419493092613031160075126702435549091160779550500594769635290291372521749201664483387893584746052486042959059244394951193356791970864857077123295848876734622515004885070670247568128785341816040539704186239480856149933599286909790120337788801193990467449664502552731163061786058196373319508464183611420390401532594326359512312567762854214212558366462183938223490877710904364231221227866670465060952873885347930738259930155826853885448961314381183812603281492757867264658786246050495838587104091887537028146771998219612340750182278831954463189608296325861712154123894777101727071259344911559073822549010790845837005262394154932111280611402340437415831489751095607820608099271921838665654213437520184703626676094064101266895209018540373716429919895030841303344916862433642656474859478513220605618741577299636320582932492267156397174039397013169078029732132535541000097037186321077220860885294233382872479999674609241135513984747129915252262855569925832081368213819518520589881563095052310083937345944627065654388579740951142473847364472048707875382017959901569540076842017852230160648685409235320216698764832099438527874649995413498564342451058177390442314290716522905396525600127511522600910417041426021078223461396626910786293100344365559044328613688967412711735565546441433048224418329525436125369785667104565098918755478996824359436663370281024937408633353277246675149890101969776291509355148716946694821456619413655767548977137757171445123426294723793454820290849719835476912024316275157284113349518649911514853070250264638024898751661570780936283858380395456162969896287877428458385052540793600892679511428448450684276523352293809487598511452690082020544748798944968867489992916619383083530353421390559402653284068086489355016247125979194370701435008202483598433119779823709909614448895932458012540982487921405522720935346792568716832172581674605420549849776695089994064106934429713346413414264672100898336896618380494644216444518769380209225298162504178957520269759383442998424829003864889214480630940918279858236161848340637791361818704235745498594075372146617941872113442373817781767563211311107298830766446940708264402222979818821850586331746908070469059453998482140992400002893381881046308350967396939736053363653636602253638373220625834115537990127245464292926243208940452905729155243072451291721468977438893812341681650964988264469608248510954677584922364029746289838819157561745760492425980175516206409732869510300674869351888084296854178738366254261951925741822782360787201754198363836024468864837705747098869748530053778377988467360104968093946780362984900539407061177574759174374550004284050190690178963388048007476541748403663953074686456742854654451168375790669570935991913547901393605312353419527555541339406603026581165367008636895267777570569917249983822756322767824962111360196364314608056627963506642817356559281512584635313334382641370108906837762011014850722448028864169535471312846664231713030929765443061090930243848370976930179585676632730253588358132907062485169243884252158357848508131846255910132277220724167293431036956165614430254601866510298035746846753898006836177307540607971988259128985072630160997612815045341897397496745053719197875386475782150577400857715267970475584437289887740250941880032643970781180343996008021975614219104719992568861668436962687637129345765881810267673362938505379701139738195782966796359454532712932713663930885799904882128843588862330179723939805245259628459001911794235905626156837949903650033852733965465319222284567330414908024870821574454237936610088877531680449748771859343971767103975145275342920269957923401040173926258621794847579585018209582949773181282716683440058959464200051648181958955474078875080648698994700010414279468441650248379183149406526070665735602668227912790195009369461195569528882235137886827198340571959047213019859325075250876797470412460734484048884388806264128124477986306318371432389676073130720257092262100001196605803861570666350431769405351088653331312990837039504275409722570785078849079242193636796427185173799988253422023225409218184433188796484960632992867850606769411806795165341596904378703996426223619326215075719586070191452998783382066197903080127795678494418749955262790968418162131832903059936321790676613587201015084727005081779297429411949398978309852641840122654957748663272077205508746386429556454594468177582625923022360924893798473486400719325752400986522906395137951068680438168101281719084847226891045656415355972252558977199805985975751061234147833583982802214817539446576790530275259524767169700203664479546847236153377113246398422615153130435612872967861159150073365645524091984873678615726276558254338517489049547920347950141432001950282792260653345138504985627374000881252512467400252946765081193170857455987345000458808402576536981707872853311992552852369491736130637313317401158393722911957380550435835661249395310723122897303141397908317036331087658763486687391154320152315057578973975715336233714709450052308852088230945839810381470372692535329998058521712482004999783159640126157581740927849116895587501720429284443440898844072421772633612886826024342404960082822134615569298749680135180882690453598008672260057237265225774330239977328666685732238235876927086552384076683229849003321865602709084670109485935303224183807158289797662667764913233841974716984387532864926019872252886949352378724405671619137102639900718438524082394254435592984227934562041928412108494150081780485931457625682747891543258727023029083558066555413766638942225240978317221614147662270874502192026643640991723307582447098962498090491727615110592717022452306864806156049039453238599872818636870442282169055297965950264652679508677797003724060382356124996870013623072886089007372816781487429897771066855518569683837740063936104831378969062116027847941296399699508267983388500478388390279550608810882694773224698204980598897394842365567011208846589666548439257745566938894831576762306886405240892066394550653285378669254245351974268266137768877706185778313595329736712548549246694536335071615958634263749129483336440822235400098417546601184076109529573427115394164899911950421332694076984014152168073608536373138940884261172152007699606035213897978833607925242103033190711649369974265746381595493892878414900324870626892136324461737203869921632937408323002693322951190607620414318499328837254228697064101699323001958008411775906204349218416339626860859449815578135181758041951809296620665253512834590528211420503355549036476507340887835834578195327898166061514526928074321870728910006010608388128798782076006305373364360218088443299447623157198213459695684069128625189621170794675791891748564254886999098135836128573577632017689363879525774274689221906872335108279851508380294730741245956271301666380116981760798137767369135611678932798219415803882937150051248480375166659327157528093581407587923543700499824830205395319703777200099426018172914931080040916749887456754585193315353735917221435164923695648389692370699421690798093062445462951329374469044216374478498031748270099292474052249701173750919176211245473517508329085224390080234155875941947368056574938210790218734961524223541873893914141375209235028260330822162426572937579964737054364817546108249171014529031275023949090914306820540670243558003896475024770973219685866262137595041330904215307953727499300046118885689055324441630473782107716445522828682259861963614520046064385041321258212475357776861741154422050762103254549676910664502238508087682884614682821521762743941669376376536865222209307892900173015630108400454196038263390242087843969591064480518299266664758600897555461499562218975521293192326858349039358936242767800167949087036449082514444329182415520547938213068093132645702513134529308690965656952205575342549679318849222020445449767286343104688545300168526209698675959927353824732626545011078649897932872245807478020806852964580384388566015870265416232986640723931112290488400480364045477560485773099252776626434752022359280718135392862407160998480356924485905142660865414128003680665052071496082703089771990162327407962707433367656001571135419336264742221124740859831166954619836040199891144023146112801625616092821359023044585675488320997377733904916655029545526646622699155941485631855014613008152849978938362118610801199489742653932695719484382041780589802277986876009021279993613222353412185078199306989554472341247625577419102877748776948582950495616239555058284268666848366120266246955615313449690340528332735678350913840747840267563708390080037268316126145213809476944076546690034907499340265836075922124359848571633022556004192607603966672531448756265327227852668861624261059211532131970533230454057695694864402867298389321104759884359700951671152531808898497383520989700098185948541969761412028783682455666235633171739867345556959496183732817853762476667249072895921523709319660639890239663717154668954355477690991225895147308206977663216022675342068769772363948679659929454024299773698822463147300970284462007417672430750766705932007702279122142736362912110891925537578323804747537835400174863601541574020775272598417510034365949354273085862402719614638381303143248787577998945285120240856310110155224857649888074654970495961081813715391773906272296464888164843051814987991661513993361820561486452140435820466090277725352919249101992180294232714944329099814401545951129943648661021223340329753152736491299704621781070966162913003410145626478513823251909597562900029704955940197755892381867296651376471481418354828622248131918618879932740926573625834309973548340006547973636293198485720780478865181179145573633269758933931132413804340414759935160854779680074234573819530443567739201431842677773551538890817425422968509291306270638407686677094819925931712988384697845963509068334649779300870619443774891656879465565914317537864344301509833150868880794095409837237690423466279185833637833444706683487558336796001983321682127673967988792152099145644549947741459133238762834449765785789549171902399627722362902767784675155585679506263131864090892010357690484426427953936589260399236982663991690760402817821027243531855127475986940444731711344154895553072894840662870608739910039282775816382225707380105908112062762779985166095745000053030110045988485007823573674482457451934460976018540603738639435710559622900590162974888115449966327125069072690742500816663059437493157650224197670767804705838329839984178828154639459277088122055853777676374815679559989124624151662629474075500372142862393392720321113122079734430139432989164471252711972650748257503154491717943003008576603186318090090932243390565867091932312355812618332414728846658711853247541730918839231379005712417318176006635151155491947770916822348245576660057247887756352220195460839993180406292473431254485983382113545552074467166001199183035358344494275767607355905621753190084697574660529400856949433819012337208402184306430054998667388696647198696063494826909395622062879961157356961350425239514920032089486385728902444976629158455375016104918557928492150409607330817518755822769906049443827586437732940611273142157812426945771202218517342629603678723058221397601598707372568931408988941833944091539203619132652469271839725227275956576570093770305856488981031808513707337462816537837722677782044847218650008351996049924518016019105427774963725316914270615092752249772593742568795533975273881183142611785377173350802256099502903299325023435059136672905953555684292984579840265545483557748543984698772847006437934452690161974829849479585180431409431371276599791841960773081636832763600376066220016343883129675317441877792236398887578527498802802904284316560905004598979050555261569327715133536176716168173436641928404909474760492085529798312444192663138717042584672932988273979568533195408811548993879455855133183360618658509612457952714361892523838693855354296687971952749183630488949719997661356705072514477698954893557869873221225034262446296445151689742382671343327672140034495402434863663283242167587080374742141933614698658967496707968170951458692051972555082674024798877257351723890928501860519971983544793714253004807616541687563100391986043201918932606842157079122413335474189128742660927241585732540226067498859705907223188763862183645713648832297028126262221663794930748666419092212638858420921740837775173352105349280663303897844125527371850549136794266621597143689230575315782324365066926841638504048998610417672701896991142749296763297721736076910013219684229315949071127541399226319275394604997357507387499626143490018919369940482643765701559664250395122231571311483538858356890061330818644469479903951373025360919380510217296775129723664019038859155252367595533565012663731633244069015459895366729406738984764965517435410166699881587691258606311129684578141310431251463568086642513470920252073879791265142181818622169340490675582052723841303597770569614451468818677973895452506450862099970022939661775359989210934138601963749254391812533418467840277843527702838137091231237079341595039423944944078162252725935291961536662294827542072153037363130881848735776684953906884387212181556574787310272034177329046249795395086508895143779495156002637120988909452816118841877021061145164048940206458964348980112205248204162313460406283765639442470601311835343914421259106654235754828036828870657794283240255670567217277422979578870250383921597714279263911070859365791174521964542879039020233336196605367580185829356185846446320933834695135362466813558146964168948136318338863688451970004307971952435322794962561216437763601714596014921982069533636394256695925314033097184565853078961216216705513257847191644107605061509365181891890413821631845238569886703680817980030938786756272372641339893129828177781393141157986390446230876141923943506210855010423444545025703154089390819836626238812669245136039945894876851012782516744951067165321616956587606211385501527736413334341691867566219814495657811765280828199212822017551104153628747528132744755760918021854428969760093798751917330508359081376371572967441191595091312419772876680198887046391650025686706564230274039484465754026456826869778294182483549449193848024132705768642525716841805325310859748596463078382959026299035195012481339640218544467274486161842610246253711575834314216244751869760827242849556419052741736757648873719239063529759679969138700742985882151978401332695219674215702624631843760219875071800714925450357332116419863491136573084705470504994518246445378021044611788255374402285615346011056396475906639008275086008231763988392817412964516755850856820422948166898168520501513937296494349683710619720397015433665553144542971136129177866247805885084907401162732871276617409239523162051400633978576153424243739527856812476862243648091630955467126932955608507403621304244171611500788122299759190765858415504061373952245012776294079209543165014208217457819558883194997318216288438423335674626105721569104193963273480433794258499206006570182695178680568485054233351763921064501298686289443435666839951239239313233294418426794542381974485860084204332092683069761341659246391149477168898704121388999784909789918520953320383642015635243455475255495735830361803067503196988419296486995908223068431961729434475933877388004396881302120859456369173023061397228335336342835118665379283137350239834473794800757121758039573647845595037264744669682204128858522926721286967828418594847900457664596097729289706597563180406437941002627722307481454471995117703821101542004960615217486155682432413156709517410296299357057707713300799123630603748538041767458056545288669595675167423763516069326418935791429004893718625602194616842695844220851614471350559836841308690885593673396836136364990574345720035142893553548958295873600056658512702850434097606036005315482694827594933218491476289841939389799150901619633817795840366921739767675917406064855986123282103093594653469389764825297097898178370700487744172186793163030349512592450637204592536370075481989282344224851608514573384503021648335269583408138219677643290013850582973767644151779373440297142612096055197778412476018106382987283798237810375232591687213270685004342770130229915007369358463090241854217047556298262472859948702231910056038371647856532630371796375475416946741544579542907302209071023244661999524233710952536971550688025851590494175989815522490412433898944448119009699017065978660136066972863204650790329993131715016166139765027941371053510081664538945832352853488641818430283493067476594036784762645868929176986611655665649584976766589835303327008418320129587316013320068901977653557429020731372175191369362198718689332468888021793661639210717506318956331659410283873027443333513159939326067134587777106310488226213728230333559813585064372791913374930440853401300264695574290286498325343303296893444540418917598334936899288795770615839254242402548316547726712117019829723285942035115619914460649907224015197687679575212918809724870494097721431558189228257515407038315475179892729247336112320352461115508225236802494965492937685621805436618749292477166250896018435558455112456933543480851655269653815872100976238654256385000920721184779650600270520312609309843284290635160439394160440613680598922494061126990965053521638071767490748814632052043553963620590782565654630395236500039335845041169329307564220653222692942801941145025733166045315770709262477437717230426316596253172277418891988344467396586786625643318345663299081242089511718701320866317648322507228186759833007108806939118958177435428850639276981907104386120770522092641161731581571263077849525303817129072469535571671170695622376385188943612747879303422900776410526343276455953784527009032099100603180540296201625132665902129065697084970336612843655217904062642229849072155266755369669025610103508154924142118338912913151348088324050096839653202862248147808544826137296218441108851153858202738528795841257542970115404970586700345964249204524012909531490257481774887722428587613449171174921710373555746329707074109807866080280599023555705313183225873486186461146048157819237156920725553697694297704478781902051307370560408106234103695708040757869626808192379781698639612720197440643398785945297190947016221133689284209754867319462555524738921172710054589113956542925699727832749196341032389754397121051485792320511779814827000693249205672589285694013856813675522004272105988572184883924790415362208789499009723774333692237850030857559777728897582481301926069052799033190122769385582624135245147424719650503854655587075432580113918464222040264769279365759624460065504670592471708982472365462985663337169846365947087447017061338286022571463016712752261216486067877514702457622134724015221481088860980957871364116982685131434528017004868808434761908032820655905149755988919659516385338975714699187482803568295598784427164058406445088411614044017012703842866202226717355711767994587130226604205378529001523808787684412779164365688522651783429570367027360716991740251790008245762595487280323504039309692483740585720663535799981587392431108866384995515901534508991453752528509905572230105960952200995208331242810581817838614500375143191673432520127792336594307899467145777846554445853013286558624575055059368796583735228220137506026292685139661533596048653476186307366641524027313822977545494343098934363682390352844172043671635447405846753155497157987560491316999046909224363888007890926174122528951234362449113378816653869136145347174862533419982308968903421368611847982891838394637992524062963290625016878589078702454409967496475425644325939809751641616241870105141053645447291825297036324507352412360715652544420613083265666810306766840655467999322461715855976320172733636820616183849021742086335771203493029715733064974348757282709685992377193326858224729102384109247116411050254991203253456438079836304692765074401326192717387824789519310932729404065053978287629915002874612893178503899218744115995348821072106172729433112539510734068319170373966375359608984508235885426709630176379007404485359216684556404303936382127741736751511258417472487987953665001685237170816037584617024641153737178714959847329818956095096682219391226097946403613663104438456697848893636947528760260317741070268853699414691378080158143778658159721410808842168718715417162622807734907076359748597913048866857542761871104034172338250078137452272562703508398964270300083451872156619457458888648502511916593134266254960015686124767907794951058645854128668801588737687665623924423392107065285346690868752076237090344336305642522398924290586669567384637731851493029739943183258889899963506759917929546870226595438497082356730355896579941095781119509472044815933654810702176537144295154038361380974408865568968604230003818648274852150998088047829299584674310386197295903956524537135139277696024703549375518662563300739381467388797433685739599240485620201122885282533737809880484267575702530371595077207316580840892309084190771970572181334689302765606041337205978952045980697141917793159351608528894657208873178187463037439327711649360399762337741632600660148798256360278666470665736181151617243188769369368250216897960148685355232413827761176077464381424060741443010976457297526052274020867456039713525791117589446861077005942963652862783180119874938770597292565021923174024239544870348941982752953436625645672373170092965731366753570619661080058838596101071210118771365370639091425386311543110062793262436273072876131154719594431300362462313010100782076130561767474762382450857494633936878018736750449642676693238386030252208518798287676130544598711146228805023447720568418529764018866164113036345535157321848079429410595245583625520809166737004358932189124187110263810005199474917980619198990479803394969570470097571779864777887834181812871732671237008263723243298333965882131014422620379382834744934538671844030608644761545000363181995585215514150874499304852064887481318601534802566042852059323604601765771875748991759712749095716817214613274263367690149839771564812297301688224936154451227128816660861614801447789611763947279802554585553301202674184251829185143944557634338601850792455279914576143871352052322493549010300688456910279282463537432864634623112890962024637528535749977115560233260538514625120046452941639883955095567372637978693733186041745494485378450425513993630254016812773751054443470984696453127987597985396953877097410060390842171654005526447988437579550507190498535369568239537039665558633636842010294551842539164917544769852371567840104990180945753551300030412444719468749469615009839090109159072303459435398278755373868180932091991117358493063138693162865037708045916121839246150476816691324448535700979803736309446430990298070982019223400198280394938556332894246344318999655377955953911783283158170728928348863494148169384867913559025415637007225434231483711464839621350932505383321889550273659328867637495714117807889735106642442200519454441591406302880050737941239720681232767266967774684718081508830329633981608315494922010716606241488451068617999789819325765631023430667516428488646855190081256311547474035593034372014432735400059006400827708398894919065951218039638863168483486783145923327104903841748394889014852702736015549222154527422032715049655966196668158885821529264044410721060952815145836069566542163176297727037473174811986019088523220031356473300017952693434361687277724702991315448771355432189297446166847518136741253273647790655710855370933076784994816007806607950308236202677724888286829061858248236028880204111047478982617030771413052732700351008258106904108762193834702482174593513163543206510496877602107690215214384536327834441780345865230446112976069530991705821731675765856011295578165763565567387001601665190300859810630236579807926401297843817934689359855384678128673555289952547239524657876350522814091400291739210091136213734085935721196060355893498218483900342636858550704243120182720211242392738984397183885547342138562958005017852661763915488517752465219058138304076056474193578178022166675633119689649219566640421354849870025877137794082617072206390475351935876654023401995226977371779193196060019962326986695696819610186461896464457321822900864964179632166349068375142862098736152270767283846303616136062468118176089567511559341236914832699566608016360455042340181627517677094665947569610068464197902645251351838830876348209209376033012261524629627913137802819461997596568070084453241359983167892940796009435587573470488923513125196921299031740459213354601447870769238045882450997104194812061207664523169450032355130319028200775530199150071622464295664238946509770417467845563731088964617093199600133177279285308964988384927328813306339059738363029085193625286419253366228924948590389815400600881116046079164410012274061228842260160589797705809314353645838658583678252561734887588674238297916497554320833042615747063247690685283947862920597491143357337632545894023931606461736142424789585330402707605818673714181610018638878297864556930224331688381747920093617154964025166663912291995880751094705028795068861547871751482625040907264990369751336480028167835729462010222820928750690382403129553014259691630082027500911414301919163346124233879571841567230518524879863464261046170594977901682635730274228548674203650910802782495635979115827637432934530124923518708405193626139836285095559681539317584105293370534038286201645765236456594101128760341663774476468110512504584968686947629567970482354520538272268849427207896273545650996368560210075309921901349128089995090303599232903580045366546399578817969505945979576201915195342965864210712991076895607497992801929793510599469199860990038461781392129907583057061002139166827374453227870215995065762113853771503095211480878597754421067722776621216133216608366497400887961305155693982171838827637650855587554329862866612646008071996943075449863616271065133283090588412831483078244335575939130940877177288487023813774687431345760838826275307408484928971806205006400242251993610764968058438517723823575250198462422971956331348316969046181466343957063159452366812525162641321785396358374858558403891921543947973974979502774237388700743614349765694985976872427103755716450222761898320945134798250539022705362449864403325646985519636640918263976464008329057937995563218402288032610736942474222528016498048239664725844251739312929856575886909318067880511833711150020014135115264768602920312488521447925311260415594790398624493554591174187981146205003661239483294638536654224098359156821319773221635026956321418707609860626470688163085435501375153498579380832405900754071670093684111042940311095665047816923556829999280742323790783270161878018752188427490617023457353498310536032139202542037960279828440933464226393030277982843774227240701856104626037043082773926742209377447947826023824865536862020042079904176906547176774470761944778293586433276983611598755582482265733638174271941057690335301086787259139485029766319300260574999400175030864342510355782610140858126643013757877625369240582625445432004138889734661226675502899392936800193745877416217443509229939647528188044737343715235675447441998281327459890288677289543567249810699111168150844271948949217910856399125340202717317929462358357992377530427313833871098363275481767711619623718609693393989812740079514395168302765711641204507792051508807876930655906473799019590994843179048608407285636709806267210253051320651863515653912965863043012808592862584895490363026866079962113919600755085738553273475335811723204332437035789624154520144964755185022867761664690716791922626142962254521512767032571750821282973563221782712553701481245757873553494297031717414579336264640226115450016732866560806048893372462767918702218031817125988117643061423728286576728970185957116385693719640978545639935157035616258787060097262317197292727849482672769052947590563033602234360825313767874324919838456646200304019882333319926516342764578173766055775510728847797609439431721415736588193273868470367966976654086924135674342973658328068716629241096479877794452276136427735680821030947666258951910163280912571996035997957550873166837917709480898657671553867029098369621218203170430885422060969897680446687806605957955660127925133091554519428456643889972286545918786347976859900545488418342324146465083552875206276045670304882903787134131507787478859124868626294735583264407887496843948432725195236661134181409151609210282278428757767329687059494632447407459275924237520858343108886341853788335741307715465062802130496039040910257400909379325109569741532566719490871619088371379313518619130513244482775258801394687667888699604636840609071732495593180398071496263868999231253979842211197930289129886087381871592079580451062081659121171073128588586080818169774855390633660275114852309395428452326333769673783661578881321691565886756372174305914696357398081914569064788619433004732633253818478247215748485788338574255020576729900745061037889112899081275748626191653385625138394831053726423095615427104940237264529970884406156306596455551601336245967927620540057445357413348806398954158092002760906571975161866095000458542277285142129729361596707123494295425748612127403320689408432786609164810607328633062805244714543094479426251546760669652069129651787820732021033667485622153553765511561478128892923255210201376884410721072864089920203070047822373526254696411178402198555257549578496815339862367577856283902162537425472939157291169989657682802683270877515722633194623386020275452003160225482215390286297350370769115891235643371949412279701245571421563666845090588814168685170932868572462410618093753770185367869772589569596507870305424969513070753138278336966009213201365799238829549994131063417546676987935161224318722970222206198157918469472821491297395525632714318319847884062971149354782861132924530448032391716248599928347604643656903928791714827185372212863885672478776416050168486539286730733324658022453098542784663078017435543631269357521569344361162028999362515482975001403421826765010220506806063688448068866130522436954841347072613018281330481746173044832184952921743087684161645473766144962166919662547250732140243746283043544872236439670285650400956616674254852468737564186773564211174700507792934422765235925206650658176046025434581668843506282053774266123759454781546497919744966358601251423263546499252244003974908033836523702781720621664595076944897136737484382471800502516967008494360304645077379716573150803918784050783403515375815684292231409739076136813579206788523449612232549750164933650774048269821156024606392152003552127762266341491983024560385650280398709298385168908094408666683930732336479344800307815286521367921008127882319258172694213905756998158623054736756640097919948116362556401378826825386981523045591289122389456652954326513157739974909973201547530584726872912411134329360163890778513594280644323579051775884415171428458876973541687096810782838669928025377531941535385670102247638209821690851835722856928851885305431411475988252763238223973602072273868303000137038813234958765505248043061235207054828349586642906066044844073205783159536679522674572266213435176776756122017978550569078225407383341961480067399981823695581778960499322313665400898003434216117145623783793623368881053863117653426886992396825235318719288518618464790745913088092244915172627374559280952708953225521147768808258146148273558073533822146422255218663637364329437306885967478882743084626114699651566677818135761304295372149992351879020507786851028118655177044514214618578340471109285206013752023922942000725816696134406441423118307596921339391341103151098942703372992973793321007646295031563012422179040762688757314423145951008152544492912688035346421984452811496498865496132511948816842940151805454523002782394111887948249563697202305658967196405141025965480931469697232123154052048090441451491468378460754757066859926099453582845728331882144069508393545668737536429821916670595377697179300223717442888709986357606981693056966516497807601088323567324308376413092565247699497398613035513982227644211829873691201176011284453156214017536675642191204638004332098348124528516592380966426212419764933054202980049358797111237573875917817336092543363506583208334892217615723340457273202972294892042102436553509914306075309753771400432715855787473807220838818655490241744354065475325383265979463188014998279608215468928538392389536589476201243072516258310135345147760830604338463388558127863183213608590297265047605017834096090175142690956067225601308359017287333861143903974257605631186517608653131799306169800185862476924709733349776867337792207289050610441765468894914952765635971121339599314021643737528001391913866939357460190591532269746341134611316021491714130395289636474877021792655752967452907417015914754592110296657329044983752003630589961539605332803339591719313994411900997100034259894501053976065179134828608257697075517007912475157481524702644768267549855824113709298976248330462854602564582773872590516565767291405159404533904065781217236523303633631627390771916672124977686081309963023827087408079002098490306240763025373628284883949287510638753030432039725264299243067729995889321800360096090142314471087278976700752681944709096070675667034955230162077401551403839827903917558369655720315948707685196879504583760032978474469384546357457222076051620101528790405068294658416329676314693168586447502425221211306054461568697978740242040318851599347903961651299720737298905706690198718788405485321104119127405736508385323288291939855138272538376610331383280835159397271844975012706634905734799494492156787782392656045213523804547783579422675839422711755170225843831954779213167582878326211833210339853216119356180819947875424416136446696517081806076036083780377107550497525998242453134822615939940045458664167101997670776096406773257131282186868928889649237958786410186684899785996202463077401382273089045806446617015304282199328540096594708367027386690870971308209335032006699391957752619365064718188515068809742907834574304199544528383880325731142181146255932139534872283868917763012469078362241752413387790222220753620259862737025635845986223984718726906512919922243640174791208169868288294768990437019356102335896879627852034920901523698418993358202570488792991539805070965702190974706478861626592711713156028646000174568829338133111315347865427445864850757310798628495563873497468268721894918749600824820944132848268628149967111265688355406561978777304800633321881092415039259710408479728644169369840149338697028298970866505799913607038044747921381674630169523701749586865968512058456994418597296215038125398088996027953900850081594363934138299382909044828182218144927502034233468803620681359159365746130290110236258189998880767030140852337101047261451404092009754586459106634324323908790031941750963722429513299218570146261779496641802280622479665604782748065080200115470177669345832536235022468000486880627784422917391778714736274405172783568841506880047004263663702446510237617509554279742395587408609351601466900526219092797396933207742534686398735661596011500202571333010341567270435673147895312900450479599355432256204995120507453789864857909222492634968727066686914889771196943091972695201602962251778056286398947797529049144908344035398619766862092538059204487767508376673628961813487711569419234756007519351401945755230134797258722894290718690123840573696581623394556269931453342282488829322789559435947746629059043605846363177471996971115329011104529168825492188813777204065583331132224818439417096479291376289758151227630276846553512537344760866019990562352267644760386920647757252412071485999177802918527643339304232102014250237463181471222341936990080887463712863505938075315404895862970133668347949783741638906552554473696024310687289357698074120968620502565741480915526016288022763213651460015577040437398976127139559783751690208817802396496642122111836182430912740388470585187807679853368853612563217887281746407355007267073417708993025761899784556390652126961106506055723999902009046668483868447712846134118131493271647270873485719166473191797682524947259905059985697927633618397684657687988385044510996482778015144019692084912763361555693884944944057689088127122985822903339002597496898684834288565534573338043859009800257100563868801936986053276599000876826677752836580094218896166754416099844925830318602500071719182068698491802224153384298405803486281312492715958774258481287272124307780654061919106448176994490303763869443943595280927445480163799098999010979642062057179087590691322615612531138001616079803514106748336959274542353961144386974891396813294054348117349602756136332851323246107454185796997146171977238412332807799598565698510413312995508748979637491038080117786573741788347442946995385718696106061449823537492964819504423364725015137367057121722044416045247765903636739975324179283404077533715321869513320071418203794413391254206799805090376427175657365402728452601700263763858989282304460675358108749171617044917406895721936590825977654752531122705326255583052842979454074612654008086286698923352402970658458073428161747387881367203554214672694527791120104423979451265869963729326031190906970087112148249234816354428957032677127468793987536666404674159548462239955616497571547117920401778212656524901456454228052636758538922671456396245115313108602048245304931212211123736542960646746792490386708408678175206194554131165938724859316673213419850093700836366041560054344134254444433605466595792601573153213749301887905099758060460636342415025516439250079365228316306538436027015863940675525473664748417132821017024034601495134886320396283781012019741743891098741637452628287480101867848570104724142652864865160364065742971451785494209093678146640017927948280489524692422892506962884843641637938793991750820279373743748628945151427509321847495977465485857918082373765332297738058541780781947855781142683483039583237317911404060323212735132931865065477433704423160430131795612439830428470785485728383900728923749842729393476619998712599005734221870135726748331523882237465744267772782388229586844926953322402096448564151663003174487331745378089202650437767472966205715122821036208820513640376220624939026855887176885123055077197049399135141696148808889328809419516865701177362304032536009392756318422227785239340065446443022702488803866728233734769557873319945378662343284151896886427793875796438093025169869533856281165744686719346908871285736870829143637631770803824639843866385617463853582338078073373215399134095397324337525048503557341690846103222403231837424347856707770232937945412850630880392587681419290114394398182537224275925913554074624003175574214740151604712783445898853458994309863514641198440118245761312593645222694162747706016180278655561678448189524208835150684913112019879780140030774384459095497003142952188135822912997675382321739675676040125112298189466619824251132718838003829169975141058772366415654173779231776392174340595048743796004038850442983927141320848435480682531383886512724641204672196622560407921258153369784260752077625144739136489414024724279240667194211361464548214342720092454135259991692512289085718671894907334978012405930671302405458595817985297693316318096438292876977109773646724103874541488497523592036241891576990838124671240196528689656795617585173870631721526137502956638831254381992124153016850291007469214084939433584938231625927565710462146851291313279101642214592558616279987988150999422811965762285368433963182866481818390212090336245463863194277800720797141314244845292061477017049156946611884623350659514727786897398522573695776693813861304861552326467791863960461595515430194364764513117126508509076244372794317130260845846480496536703808625482417370056672445167622729803405579693064292780439474485675177237134151448519749425408618839203331005939962451139441011679938803323029241022532380275534335590987866157458704148815582576072850659625767174989584003778370862842971227550440412668580018536427836208645540724250489901210805499532081906625292690898024636708333624506698007983275184869851065754395619631508505997030879341082602828471875261965557052960062924832025214012756751246970752595577194038939602070276012318372332167038752089253836053046127598352965496501239131852657649555588306691728225880888646722111126274703349754704834948386888397420235056221855614721107994865186862759056361879817658890436935937474999766243093163588450059030457871676039875456621636000730184353856764983966338131500886058891741143541703075714059429907939972399782733731334892244147624885083873906855987934393882674346092946396199603508123132371991712810324037939997091926455912468218041134861702081590054152750379697035726075646757497938800107002311087059526544910321409677630401072019150535733160055428572040198168199391865164983802474808678137447986177002873788581997777156296773418482972773954596459112931292241936463655631597572133418207794439443779771178799015962411268816592308951201584272953034541484916210131370780694210230779258257866962070104437680685465963766739910472778248731714501343584383727329223740667866736346661288902624944454799971523233870342250373389284284712813787306266540576610495065359632438597628197633751998690209733834031123452686043785355805688445989301913201790052537160994523435400588160250561078213842744334022317372313846714266812709346191625945823893154882437832276405322256449643880935528271286455990938744957440570895668903061947779122382789561859616035640252793738144688576987337360061275879601244760200627692628994138346641049040494443453961810334784557993799055696245552779277878779788123037254270044394177851647212322003257119932524445887740943157519202652779379977083217202930842273283042588735932856645954064277673616233816530530263494773605613113713716213758025658789880142494178753277511514482888506821901012231159490165544361357523091313167102249718501706071138572882629897544375642765296543104549266454432567264884578002823150605903396781821188295635482928448633743043763967955227301087465371022862860195023082025431438645755577867528005831755432793301274714547781791838409776403559002896455612474885086860845012751543175998990635452142664045295401559782808807173227910580002395527667920066848765751577344030466934169299932558741663674970868510524922977544379221462285805111534719994975543776269465182272487633015792714876087754946279199479891389805406941441301097271598215445439403698031031856983016045271002007672911679177120948697827506671640078453749182631548824312320919922971890244186736720093641768307299946561926763019977057079523149272867071637132802061262674280481883811504249727880685332999891901875919805196786429713669115539761254833027153260486375546181436157439276142129996035133851290984018602052661453797758680558172289024354928398255010587201914054448307740453562470312302580472439664483662995081450347989902747326995597671869348018562039018982240991419294303742166857527599597522116754272582601616659089399288809343538305463619780912164422962516310507332171257351060970667518499443964192312327720345504334489050527485230282713973119596211567468653731414555535697211884762895544816833212904335836400243634573452483682746930466953443029552915647928566048957089282856530072540352433995561507942326049228741514560000450021264852454263443341873379658787584004423478026512659727090367226652474058884306156194971824732534139685814445724120927012717572091726885227475449571833415312487038177115596874029990107087475496779096601905099675205936351702841760748756011090412275922076827223791082374083635205247818438003733952193415392099168516558400555167176487407101762520455132367563908287565765002270322456309554115940465829275445998587808172880749199075046038108720460833995129316854925369951387724296377219383077213501701689760161024843299397496730162800990770848359122957371846151895583267254011024332118981523518909386402204675792606253333772852903113737777492365430690418634092647961082400967525807677285892300428094275969818595352413751269427124947602669485313945442894956963540524525377511524923955814253956618803377814947963617411800894490843395857524816056619677231642937336825325709310682609256131715388398722503935781567101642411274193919091663997329921380013811722096811048818658639128777432811895270624606774674930345245955197242661309804435839618392601471438857899303670619083622660314900499060000304518743288022339911604445778321836138184040312557331090034582420596590791171085246884905256233828908005402010093876662393161096213694251277084749480870238552345199298602108026923613048619699456120190177295735261906088902998404428440842045967288721481886766962922540784598927794258372090559651373119688136703890635499756104811128337958632060244261177605695159504552289404211336341843332466243981433529411306784941937892847507051418570714502055726750142857269482400690278270980320089458990182710361179528979185866132216112207682496021232206533877194599469012880439389886131031887924567338498934250519696549296577765342117915763799889855989398420376109332572761508708585212286858957148192117886252209210901294715717126765055127682240236782734337601596840329032484756695163163377472052991295412513577913860314865613303979994835616719441205438522215635566865430354702124164070065928934218888578685031408789952812245990325963621519110871352467072754974225209261340510245326852578322809699927112161898533910009543288456969168359379809514710044493098082496128590333069968708131175429118214722901990940062581621516359100392074054016119388410433328350755720127364871738738269545124637741919126187559895307072712962004521698236078141501283754566779358955150044540827249987196280651174527110321558421147387885804988008796345958546774678138262198472304717160859011552479578083373540258834553804023415259508583058776167024012424588453961220284104472997740439471960815588134388099917338531775041272932374663769379999627052820229204274588424626609971795128567288207820329666674930717265047432534101227756426577794284824968005967379979631576871120964420763836791907437442503735218393381246803997123702300083630106427258283570121452742725806187996793901440310340743765806064680638767293522931600888849210621705988016248927891516576873034408162423616473149665587506279261455612408333759789954816942685888099696973136061262276534827107906165085446812609173661241225809024883364194809884682150474678856241886332321873252206479363991146222142944675903744081831681862206065944466566709702655869822689778343723265310281586018544782124491254808298863792886226702791298083678568487974358871445880460785434177208173770796711159138391090961180193434639572076369719815879525104526374136872660540450767849564489698084155899667535116054364643129776575898108989844124466954332119455409177948338857059859067296311011840209606219610515113967956284807036685858853908537362168132090268524562956842652016189392719893727885148231888478137071847651006535971410413332448002788426325903653522893381413649133410355561064561661098890097276671133471053731414499848722711479883816697725558762939903118269737757585177786486105641112167650776581902212504670971809610148074271067783082986288364871242453512511262050911078909014706304477813045680074919832331033827713217718836462893434949990641344894019552176081525127994129676341956406928677627369598051515609360003679209717812860523152557373630224058042936695613379295111989389715042337821665527571399242676119734335510292308285565584962931438615600448050797065820637493917209838114011266962357851364663121214756863395505770361862507177752272572275609193128331743998940454214458385413389034941921766116272361930095604733035640370333044584574656050197841499361559189483693059785243691195426319321668143724277721183740928704908197512155183204056703578020597712987610497977410715027376686809288822807825572699055536435519220775097811940344104886767974338849740900410898302111318597546075929501984299450136295964910371917364367307776975070022633548092848878659264687624918665257826315135175062530820342782207590320079410485937236723445733303953168788221046817327587819327796161288254411615821070408857207820353907175519875864675742042378783268873362245921430861952847248547683973366272698498017672087440396695918359495960495368744756229775308006337915819330060593415517486145101303386878135250080068791544938808253740961069235965490347686961045372729126324606783078206867081641139037615954986234496750393334962430639960202344242560576831489175166204431123009158528006339671591208097018790789383636697702392426906242272007100243376460367796213146360704577134187581281652407093406361933653157606902641832590504295427483375696213555347958370009961006845396781637325380050570626989041273000859589464674562214463287771687660956500908076340780633906189084360039349548029341117866019929127466351661470270666351180907794463735366782690686883489649358175052385963533102878257172024984613966778951550677701793952501483928555807356455565671295119522526522536144610693417138115030879546439104550237185076137179305753085256375549163747818899233357533433323751022537336703264999650395563134636738100520633407557686981103397266675778710939648367192109951341390145029794171950579489140130107776803343463493809749956232786148986226872725026514696805311750026352957364727895841187152928647081663764027105161666094346542353453977453665757988299448502200920534101548980657466821282619266995506163132185516743057622543684270373485517732709312965593968807233159502551471103430163741639164049482227941631136228359696894772349079177604799308432048303980502998704136801814539500334380679776112156686633824667355350197190708649456767629992566220463471915178824795049551586281787360189085131740438948250017583549626853184692242330450254194587617854130871975752006455617252617931289947872368879179182664698189235122784257315436780635052251705600518099560328031280489967739553006490040196524013349732842543795526293878118032123294082130630926879549027018646616273537753252113430658890915162154842662890749661591431066790552129307602189338631953802844432032203004184117985459887362930871706976962806102800131605021789496305867681901562914934953300169574975695663842062769780449349373880841830794501863644756429094736373605742827938920948986746606020667028763536532621075165830866390801073298476111330348198158177949487198343965061104134110630916241404739388725925345655275715845415183083532674768994960267109643356731646404607601079240015953846426344248828454562166443336818502378640843904825881577299464755801729251630667014169826974840408907375229598980546969397179774948919026529895172935379720488169925780317921677102857290305849152912243735132991725596186356583510443565789945346151402365805183865322581441399669850346474946384818269943541907526063017985892300601855771357374679208389921112400884945252410235499088403577918325893583141540801021379119621565615171911552371113095411971654219344919070641282415108291807433141916615078193029233527687750168186480890347574427908214287118491783173309993267560052191510182354276250203934386616547440745590421049985751605041708395677328288799288568442481928259764172149944286171076452503904721578712088335826662876306584115868479213818437617474134255461337487044018794692843968262435365530546918456489688556823742107644374900523728464844074392324434960564646148134068353494439082188902916223705477579949153005977441585513616585269056439465766166046798779497052692038366099429973459466044987815857933325162750987483704495073743965394113095583836741832948627784414596744556749335727009374049695387017847700595525132519741669754727922752993989013094487308937522982346553179766297359094652694453740981904445713069164753614012894025814389633131371251212965917382131083442867907906202347689210413876180774833779031341710758938075476076134941221320624715276071504980709213645028547573821146886559869483571311162558273354839770681301298854335605497343483825736315399176498614971429152868337045495337739384980909020752016676430352199598297002778154788514545844301626279122454083358679070691424090621238383736794613484486907645713043233598285713078603113851996754135647585575313123619026513678383901137928119482897391713498333394327116329571876987617742549645709005402819134421488939809713471688236476780749178207463816452071550714002219832517451281662540750494841867991868098989389700836641474506910476524416241446649985549463493171458103527765228854898936410963044685880441843693665883578871249467614482204623354383313514424007405897348602339948594678104734659094538866356128325277012769734237568330776399021127504503934126046203211660163863031849639453751785602078333170417875979266852700656055511217357382184344755830857295781507879000624271913986424387623108109707466772873372775207770863475664877706847810591072220351288388986759306431315567348164552697864931866561348671261257197791419990756415554336419052716552698863503035760197720825452117950767825235647528912128824578409682643418152922349664305869242077605632000360638976128457012234224533106521161142678139506796401504845598680552796128098592115009494881518931916591818013329625242126606088582719622803539888320386961894467214464268048293353910654931933680931738561720696095860613065392363472919197870307778387309384686000095483736589990587144189028317297277369119628931304928041831609655603425231168912298210523969530532405861539715298510937158727328613339302057593783449919872382268663853345413000171182116717566421453705343599907492095579377995942536203320656776676212501684888066665751436130452069154718069469858967862411464377858772466495385935970695501069850305237326516363681767911724967635285259305130204065593675320501921558871618381788364485246312982756339163821805503819490087321622432072238820016967423941006564029137338884907707651562503426376142859656960696336513100473108035266651785317744214763773651029973203091228351064065847864017537913635227580175909227852346095272099906534159708569670778821399163833809085101680871153218482938781668395512219884488906354431169812284915589069330938543820969594154749731749979047521463922781690154631124760886779223239115944633870159608850561587260995053640937078102118697473333143958964928779687095121058902950194114903220371633634636087561054889268348496884050078608513928996093483418230191163145543407999493082347469336140290578299822092537328694321438176497512172276296358991347658297211928546873287899887231300550097271548940697234146661541726319508342118928013485124523209223463574310620892606617535551635814800650252048904783244186353628142251792320097023010554029368945784913021267489581755334885992700863424384622932131510654851826417761112913367590575675739801837759123394687763736430947322242277585962778441775906100544502617361987235470483113261750125533338642578851217989043843810992459090971216796692602412573461082972372918121947258923564945437133303641645483967629739150466070895790617762409868086037631980348248349253918311768332659277936964816147024312989710458300323395151713902812638410141061988509382666069903529663922099172581159628684504216041628028910000012353815259462164562073841350739668957783668467685646881013427977410255733228053523216018236849656160101505517718901005377076951783723000029821744912180831658723395813815756021735578854424473090152634869522282036745954386752569774524737373045627691497233466851479938377832676007805921764421309915017730528452195335675403617877426294910149137384820920853892170477808778818323120513265862070759524247314685338581948001687844679196877128557143102610345398973116981591003546329136772579533797524965572657558129826439558679054600851457284526553691830132728600224269560997493782037020999367589214880333463497473723664585902958611557016054277914403256323786621430983884455435278888789600470296873840412281656745456542202257856178628626775327205966141322927441957372121834039361915903130257982787756634906474473739167443717507899673054009125676994586581049479672748797529307467061110545547403295521112757235471486550247038305316528324911561583211739608145824635004569522724935300638079434192591558537256992432290077220229808648919269360659207552668291941329211204547396972927786123156448617346858469318681528557436077263589934546872310293693040259391192187185869836842661406772761053507684651888811208407907734457343610682583405484022238844663140510564344119971184544460247016846535050248057456150314772592244701124362714058667572197346427349245924064112368069036911674847642736899936586576802532354102042432850660933538681222264482770560079633287474195468898909894412809619096109352405103312046259704444354342919703722875242330480702819047576273993786666408879578637314755361799586712224249125441384757634666633604689696962240637711630857104510631226888646133841833651418645304532640198932956391904102192089248778466258992386267090104857249394216104203000567484076774556759507218099777634113232879206474066183176425913285808364964175203775877225909710651769879601937511848506728728926403038280380312010996241452604900340386305210945945489855949993317087348738337627793839055975554350901479028401976763440980797052752579916400474451325781861960382382718853880919212424739880334094900433820493893010426602044298559091804712971919062531036070295438306564870485394486850069047714281642698103063597479585992842587401128026591584496333945011113968326891182904426432305945360501996143515159985250200459880114532596933029466385996125904532123055243906611798214017382392900536704424240545809067673048648966424143554451958973228124943470464849096122471207415747092730853156934653944647529530885051711242544045809273947375617638207987112429904423526421660374419970479293503002931015414487869258373652174544915518269060468237868524237837654424200751368615820325061154581492079613311217666921396999454184606950611205501830897606726178110227821483748413867948779966653956355205078010615965508828851002533350491927067287343577202712216417543814605787170456300448804211448172365879338338994785479875221869116002139190261989822926346757709626492286541278144148159968232771540345532684821964939999071486459715258255375942854244047954369152822205267315290366651579953840901230194233407106831754047537612928071216341956506300626498459142601534729634486305143935258579149603280449397245908224783979584871257936410497454697711275850216839180832290875073516327117433754835294596339210296250853731588459692429830960567998512811423197052228953377906563598739005178025830523324001831219881836960816910582369872484082208114655230486327662540409858662893726793209449731011319982523671895172735436862298389884446755842431459811997630449983384865443564597559327979422926208546935817451055315803474656947724601892104668623308871002436348023770453679061687235370820703197340517796302725731404284904547851745748384679775167095847252579306889810392652566374780340860149847942780245745211082342271524840009061107182752057554862236686972271767261371099687475509355435488221040078578192690167512222128646512342911301263628568404747636722499310347227236910832885108232683591688662042063839099065587618067533976868734624603004025908758823453339974821480887744909697195290412712212800581665418098042503626016388196617891216746393985226246799787357621885740009810446429222439517396344765611934494414703858851455112149734641166232242877854643913554808169969209974841971107990787728130385592132152189103863416283386067053264053447540479048786633649998144838814408212424215628950404084441104120876371276664908694822762442166650876508519779212966044791084614526333003349160786018037027459725817995449782841137325583048503638530740575437213070307782200936974576260077143998109646846943422115227247536696953152576531953982079291741452037733535270186682856900288542767692629168723021634664703333350922047253054647986836258848675863499048276717321123132582100152210562925272150172447119255254310449371584758616575316780542696000663769690180121400941649351491341823856746227566307819065288792467409505000230514590143331818097913091599590163530919454260146547876488639660997211539889475717213850010822541194694345844128688187410105394339184007501697756320829976134129719705611578503073059466761030413262739469594943061787799946572175802052909549344889425191165297791948520473472513869812969780370076550288040791150168721883819864675944348451807391602683379799195970233815204572365256631858560253625054283968310430533550764530782986732837041938183549523733913648078733124634284354928362441457256782642496124754093783937492418761794439624913396647821167038538154486066005952193111815875648214503799957483365413414819925003109520318924792408249814020030586321543547114367614236744786527269654001042684384602163074077286521407807694805614061432748249088112862562139558318683655643945163712909828290660517778624763957648499226997734260649227175432129868532034310203838700833378488528787869229898329969469405599033487969582844111431040966918842063062712690976857744739394352437989389390213112391177781676721826781428255152565218580453165142871617623653748106593439577526205627218698122763801162814681417895206179691373060563892675910157415935372348494778388198411096025924832431068447179594797110895354018487599508492907616796288884571216554576300936581330409869890364210312654828652482895239889323104999969555740486686934412524073611963912257357744303252551445864090513937583487233585510628277719154637030719474734980317459926245744220469617052916239697323929133674718460276844664685706646483367070082811887173700953779053339491162779207408255241349531222751643850823831988192794932561419579284486458492592336342536036837953657612453529261856987897090994047925630956351756788030914068002184724868350183789647151258043039287004731200002636127686728113549544717687072862483302050539060439700786614792994839429894007357366290328917453238955904273451872084019531671499710523138923790441988154674365985531923438628720252885667801893899792205597090898612158411099225574845083270608920163266315499221480196926371946524260750863184142632393055502564809020349607286833112188282366550214376396654096986171199110390680009415844941560256181563072589352266509539991193445877232940087989170531248178835878961607815514109157415069152768069729355365611500142779706759540782620865563539567942444532274189558345232181385881548390596216843819272044321816585466931780066639957198909815091077669795721814531705919613416688315562542257098895060844309070009384097403448683907086119775610258639749210986623099598326811735870832117441800148298864456114618029538416170929760959829241218922181369055098868739704523079247131604169905104335112060340806491731179128125757261098463645838842373482759651014090892910424751524273704796387554188832873741898066022612888391960140941280647175641536071236412925123270239827363900860708867572141508650098558683333843905439543765868682701903575302817222799362020539174490999575639466970795145987536139333291191180082589669630117788084803070670609263691133893930041383910614792450921763005549513645783215694947191781545544733262036999329558572171792192523991153512241689000839105193956557709913953743543982226795492442933152597704672925749653053815127582772451301761603383218985942423523370506911014329923858897698400496634891661872431419351392409797040597692436747999676336170244530431249961205713548837468690719862320047312804890623673240209462951415754710183644788468174112703041553047352823705476066128687470146993687135628884848662280783855228353082878511156796344289884030623056917711354183122422574488483212123487814776048380640310689939359454456678964264515975615514983811307718476620785322662050773907503582510522317925751283123468861531986339286594128528190287910818464929289938798671123528820874509566962355373477663069698694838008974047892125770689256165827977819004433121966590739632756110880715514730871541492418802941412900266489242987715909363398408080075657452529672573769967786068249799568901838989204790773268183222365886062478121105563316962786409790244088277695979178619538608856752074784117390162296825899884479834336234491169733032870154074740789206242129368332773630405047601819810189031787068161353029006017699932522506847015647114011890299386624226060970835629258077023317262534669044589712303325999631319275586047385497761267446424085265046195370991910073100515371702187224017340283114975771565226614119470746378631759421865030814324755139009019876265243088019005484489393326638104700120248983237886763425808173263778760071477906106618535753243888700948757215313347538955855192104316648446364291486210687631281577788013682441659596216699063866159757969749890437196754808906855136249618029813722384849364299108131323637472959097488531290362940015260554114699385299676203494552575908387466991220334259388268648853245987165930081683691560706949508313424771684317013018947461993463064318559327833448729693720478686731390966932080887107335585240725672310974751792184565391298104372793769436044983143639645905299487763023225992309603450569331580108003741669688709288536007828397286099823933029065693604657843051643992335198896687420889100140335853288061974778391744823341220857121648088921198999679599260138314302136429774189469778132623074862048544246451474149470529769213016855055744373357881840163979372109715118925432217420314180356650719856029868460068815396438447130050477777289763972053948443536647859400770918356239388262215585786383758835590256632789732567894719884636362627418999734156134338699428962641186431126705871367349974590891082436944396618375312690329918568726390206441531297804828773058671091469418449020684302441635262235847438572865237126511365104038436612866570861166703032349655994773124785430132893796878269477692007885167149796797624742296561471150163982469782348790340923521584800918434131719065627706478003598065068701133371269706787497149568279234081153376089973198758543604771245451392684678922090098937442096335392310469917377114331178676220963295617898989313436340827212663423966549339490006169845586071423982286594861436349171870001206713174987276742313624894040911804248656827863853001921433970327651082302001305631208959134247511775609934642487751503929343461490321370573263533398236893864807773374548387621348376609944797267972676343389120686764300831514903731434549794240858303782264386803195486584158423403897000414964447551762844213664794440438576648941614701829493280857878933866922573083276121312458049828980832943019238929724899196050091644482845474229676657853756647500658234978196664472927251130481809342135046234666622011251429823397443948462698753536279077382173952856694854373990842430581641177677520932120040583069765407046383321901772222053692209845941218247712326397284610488280730505270745284934828968962516676463071320079870517341140900077721033020733351094720818468415065018861424202097355448197648900828981308768061688809091919962587481680510927964266013405357255699796811516428794562085240755909361799874408190347540015145421160248501676034381686912679045261625635288993789496376091307090896442697520164991410705278524838345946697348406411675460234728605220948951704378460403169127821864322063695707279837719481606877200329412717366777881441565791924896876094032845400177179226723429420827266354231132962300467363000631179623582890361648208863982509984362947611590894013205027531587319029658937198780549777248968811581324536315801174432781079236326572411255334349177195806374825040406904573382443252587218846053460654633316737666479798303571025569003500600073255308643827172438135015174375382581324163887077470122336076654852640244944720965871740280206404200059131078848039390565339203217269273883311604103331870953729467356093555644746131857486063967668084836037536220701104881786023119760342447557363002954845839054711731106770746397579689392727259720929327745556159219115877454576085429146585366125483745508604483487700016516914203742665044212451938294720341656058110385772980646814036714374330881262359542967340487491409475472474980733938937521826249154167258965778272592952455588954717418942624989804743573119178685780773609703663955343427081585618948913435974646517271302660357925304238546220716027966272546010427718624931787799552951401135961245325657031205975719396149397402993074347230245278471043549680905121620215633656980941157375425078832704829716815452157941060743222807969436430417624695651473758508241367231828933040962336380500869733655950029214111240853263918844610646543719333337722508730153188162525279703655044524319224493830871502684830195805115771190204111541691958120922695938171728089127747443790077302023963340778752112133724466728972476271294909112462881299493340533560733629257158486149655241243767250104085320016365897201489647712675574627320861038065955776716628935775629147998379361454327145395357725843366212373063332548823335118290831374947437098767308331575039881161813547627648109176736174303219025609784970906595424894420766900178950822112601817210213686167538427718440647858607517173157203688832238679776046077500310880852441210340927641370904207248543084470347610009897926445544746436584502740249901475882491893873069168248445863594378368575936235326638908989058938610570196234054964024658450101274349462247115222129189478201800793197646905264372091201912784289348006427380689122894025493437534864830348324514513721587190754485898032615328176925884648419100012697849272620453599093083579492664265011098065008195443338574324685256625535317630954937050047611457519174999308989897813284352343418195626073780573698622000650099177677288889562237462439174244074782467104978273350606364624213562863262991592905735449107851610515500823060414950857757816252025671174677734366572415475826627729701519546150500713825717111398655448428357802279110793779086241576104540902399258511509028275364493617560231215217524637029807065250402071463296988539222096247711064160876822873126529057215026044755681007314298009439027570925266396757900269764049525957329570966573007380116480197246819771120994709287802229686303351235231171762131869498947625575385723262727984352106231306065123764334983922164547797521587443143720028661777176318833587194682132830148460183922594409062495742867195847151748102364212800229202131062829694103173636534674219196343434969504093930500562938196577158702621349783196540287192127890630361808312928925434819314104219711018180964631731269968037405540481870028215512405210616905607725479204167153529176080823849763001321898970563957395939849356344804955209036065397717989133363787373212758063809268082446539192006173898843043441802847422206831524889503981054327841227425147667934782912138370533909006898491193044414619565145272119707628114349017815693595546429160412094086707844733707901611940131030201829407297290636954339046813699705758494346661079876985298265316585496892425820097019006798694242033023050005604197023558795359673574852333983451100024681207738821836007820132298579175026004144093324102207546182054510886945839834420842396314348447405484937543568472862557020935462774717951927490361214596552671727153196026490019906931455074334509491454744290158867359475606693716311662412033497070781150977549477835977089545160390825228987220036855777259008206624630301846437224128688998509490336737506570309720958546486709296675474172635582430321592044723381212469269394482392765023100561613914118339191547755886304613597990954460214813866018692098128978386334336538420209968772283606305834068402173590544512198328166175286579228956585928450054865539432271756906723732501731795128188815328915416270196985960120159072330317411938056721436515671333273472305192745120410228168415301373837921605787928133538747967148467006511599268200719273161067854381561419565828162205986367220530133467664021858794178541451770929529402764263715309321238991772803775314343545619933274203674503407521515009496484858428650442548733451327661947260842130453873588872912901318302854484595314206133883269951515659787668780016445509383705624712354515280500309505387280085413729196162139433474807480602256522690771176876517950523700830388576061206243478117035093687591997294339620295909373813307580346888668807069512074328377270662255693354038947376870959403559181874732415286584591831923823830142591460711887239510749978529466434386246816466747106534763885803223603211823005505179039792214297048661476570003542115059652872844536346032763730701825444421022001252853505723994730609299364715195194758017673588709485489956111583643710402359555129785363978591633383931314510156112466805294417335302760732719874962554956732762413483601806441735614199374649259321944215279173985222624916276398921147326325721186399052472512386066958209484104531341460704394994876335450652093845600992372771199715358676766745192019609161663883682120265862066495634033190349106264393389486512256707717905270956610726733080665382352244558921397324698808061940343608955077851820088064366589492799151625310887202763591181869234659752947038256290213077866373241371638764426403239573604387360920430731083723175550307129332068793088439460480430145493773141533063429393565973376625900933091467412539991532372768319380158152503923757044905501436089474280444319475583417705997490486768188105188595375594259363701900789102456296335980538889475716670134576335448635257903705664639409882409648206954412060849497175042182776358831224298275728212955489762663996271639217102164145744314012766524799542874520811439923666109890769408568595143799991518200484834334173526682361632657709363217041445274267413279263165994513897916109603067257375021099332569881724284890471227624275229703952132212807499135416107945258350887822737396111104430342338265027150783775609639981796759949559730093218575435063389406996959407303006106216889456949417915689973405794103512994447315914468659104332239041808247981469826633955888593777265127078733229897234943714455068520761025064916824228781051106240355569686690531898137334418866567327902374085485977673768908249304674033476345990684809098612788544982384086757363772840090925095646225612263493434239096143021891152770366753660842347898407094867329903261001576373404113515445324341320806786192075111302147950608640077910146783892513621782098666014228264468024990542399955695161167999190816380419811315453875119179355437133841542315315840664274223854360576359052681990694256802129079208177197817247655457122427215062308928841680138973631152610836646867558103184406069313647145379469983531683329320250789362663350400460188171080342194992190744718189766280450850171648677424002593791031908630950222230155108126496957028078079543699961732052352127739385978543495839977085509500084028591561247396925624746441163542458324257872963439331585211869759707960713240089405118217654641912407565548375563027325382829750350974859288790597842532291803328425643389318183930088601983149572110183717919430061082606469699506055779021198942546421806378947890150057147851655059399334797027143145272761872331416723484377736574441632455259229251175387689288406588792073146320628865456171383132707315091484229240298008684316386073673514784181248932078569957406293293194587485745229914305681517131001940673141660946197058996040508897985453437032044423036173074271131109501172187089132523619991784244950233063251755641481948238000194684265902776699545655608061503560260967680459651204906467683986084700921430166290655309908707169461060983866720193333674284564382619474866639931329936097353718698011432164350009088397594915230023812218542614305810001917612989287621834854919074026484985750107830387695196775827233301792724297273919068079381014032044748032609054790573460880713329416480264027156889731910812572828482655858309224258861694282929589375154346353096675728240158688960057893368678656231804703746859779257388589397043453122255931945297517805256301292614571052475785471219765866617547932295298181104035970601105517546869294525926333354533980309142752315348223927982113547105168872410950333475278171427911930427656716332986326335213119064313244412621561565966074238445869614842742196527282692933051594175087190876235397899933118641251662498489897269373050820226218685343558452588867876125627319513478763263767203932516457396539628445986876387919417106093998810890286677288078681942016172916734271334952091430491133629314818951640213216228919522379294332286578203253039858306350943603581273766984216748238142853111922099364257855776373330093565200996398792540451467811585771648642485242471736462266351445685850859907129603266261936632579941318417222113523092369156576058035674390777094426736005684424939131907518516844635196218346297255737076476202410561304883278135845973393803324988814722653850979478728100529169884834055076583433648544856417412510042286077542147235160373703450677425015784541982713177760577438257575599679301789102306038918189771053516404437128458514867837432067471589025249509137881634272946070402354608771181444881945753587732429002312611758002078816431223019014648748599406177859981023744056359410432362369229957583137642360458447348877790209740755978300974617032043824129878371131623781061038769078259217776836525693379867501419279217300255023447092536785883080972557169441219630961533487980201942447858782076917003898693844103867594708271983612031463434520603606567203908350656444537861232714553614688280789533405648751471283997275863881376903806878754711634654286700381399379088268275241328933882065032517137074110605031163140975260921738590975345669129227065403047872623679558315441526598372199304078135968663960666956558048817663813018172235897390885934846627884478825083950949576104620652677358370959382025068330294061854876337659649463637705119593799932975244420679548304181350793322497563457146831305307127930535842541121371154674290373414233344074833558947381665529064593927141580775418173369377260140251625643139072244772093527825783269528510386604520241467660974039501740189147957928394207352998607489308919289090143500797879100251443664664633476801698257527031553654450454921842084166745932061784946119464109461730963174218365255010449086686300497309502808004504403280664004775770797010034428080837620918644365576065741530447488395120504687800022040352848148709234298688351486737747876543951226325558659137107967039567385213713692814691340487412100351567279342985706595149849441428626923795148220860437017616643798662809321153418501506928157856119628847130242841912270838840917634179508095943810059454400817741956966075737851463964758349135794050482107866074209778881112608646938148048149520250408389080633492594858349971133853765151536808202648284228114774302064609404470787276487624203581370715562492073213463834337806165573106888416427430437737743952270313694761815375409212478433537482842328128113529526995825396409675439304987030858210174611961419510309300411368574262719792787896755363793857482522927284841809384734124901369916054464951371222688292588962874349952362989269287765888040989557725743543789964109708800084608806634501867257588582585577211581795121104948587143438673152458674187997074553384728880527068773109860528827184954435395298563154864203582776742065317162219114649963790422431219741093822638154481326623902477630901699342405517226259396248699315193430663565372003777792836175902825318640171885826623053912804002200357348919588266291775942248328099750708252388914800406543151544335683972199309117879542328494196419592593571761967478381056494318938053968037241685578052872380602591486087502187973771528224560937706962706710738320260809860220244026799397931089792386344880617910010656375076176049294456186287028977278629733409728665542865015988832868601548868710715306680120515804037665369952637606176696532766613651869774878362517138471209641225795497037032083946880897827603377279688805897307716151722139358052618734824752491193044485498533968369503057269276252377425297193884198560596532665320732020608147927865739155344983875095755281129501154342974673324044231155994923639235034211383511954958601435506175502010757834568181830690910700873873737346115323555874167937748224013926705328275482388474864876102888450554415198515754171213902658155042988111051739196728011315681209029920535462581213145764866455242955754586380739429947750502288751920152543382457936202754354644964226900803538192342002508254590491481198409383435250508769195977950780931962163154998604033074770339877870139240476282670808055885077007298906450913947310989616050077595126691453176164350830917832728945278333865958505701458472332555179311216643879402950843317349794829254630503339616538437406199732009893940157578478573509282287631967853545805577949652157579983082792369606573366337107493883919176551609692625989373207299566815792629185792200917871767446984698600886121664614510377698403555416755211616676596970721365540989883289833390879922154886025065400659279679229551246233245026625008325854711140793640571371597192727844739718399555516250780733705503448737881550712452531898715789089746568572382759042330146052738339690317866266535074113050531986699392509774006701425359994944307271795569688897107617140106945190543056757121125179146764874180624834480087335120519207470682782711276014290165279247943501442656048340090719045621272590477560563328043732853774953689435465344008367548090656605833443747848966396008190923309926161212137721715090738902027277840926629787336823291191148539069759112786964244347432720559838054896383845983281621679093892949914797093940299048760226356800654417149365363523059576670167641453560220190176114952148037520991151439468575049779269363585279990838630532318033804049011661254081111740991013524034434542471088917655710057423543414479061001572857254668603575143838300393023128069767484269656086348097181324138621893954829267350572315775651583297458534428955329904143773330530752512026789994741150406649893853333874261121853874754132600815307916171526728998160757609058745725590054648272354278677814990632714629816230667073117773444199534258351472781271894477826917409680076564660490143855786415355959136658139551465164313002023314244806519298609776241342218846222625150803826586287738020477195414479087952697369838281820934101213019941392439262766197202014452139040187068423389048069939884931235732914771832974977521888514458190756038895393299600463464324262072007219001832131391886190785455658844995859859501041931557349699875589686035490815859730822938818023986251213930706677554702194536083895663815048004645836354063062741094607418820833030501407357540847632708138091206230149021904580413795062838261014788528948197946076488476591725414265881671980012283162003252942582505220031679947871468458547461289729777961964397195585834713717752415232775943144669524722282684768211548797437953056454256812066359970129593637843725832937146488555937001941345547649027291137809489138704578171614300112638721848990253599642291648952279088251371426150252913198864058931911947606647168090961264071070363837817033686946304455963749122371107192701453802190476718898224108372379572568124400243859114060851321450868804713120870058170284991329555796031277015379838409832878595883761728483223910219544746313758899355003452842221974561675094291830662044954758914114612828594258725083897346455570639755612332822624114731137004045945043119903833455109184670736883913261129589179653312851469264873044826809534711243371474026841218783751798380694645733382529259640867519331505574977206635534922015790844451779575567483431191761070156208948743338435385751784782431051322710254507458926695381264715268786269070001421960760314448775552030464699864582727674329103946164408479336722929757565563626769925798692256256610717712735641813915419010659766916938360580735734792263395615143490089690651387198817363616554000498774054897183136120010875643219191820936230379922720328603810322916988313693900926304081387592248003699058865646150153151396418493863571622628791870993442194691261672122867129108886731252788678733217117952571076430117809259087104760283852575345058549309315438289398298448060223355831705480290310756939667394383283209012711897873979797951574837184893786254425014332917667188113928745950625152137492134402843044637583531603641770077027061153974266938440846965242897263355895262492244868909470625007167782303250602050573579166061922050555285070072650043800885577620720461768872041923626995210424974755051548770940587326497541130341039182402561246506755230013919620724994989711847959709884230759647170248341636611132646719393512062001947412457789473960136735186117581699119198042800241381590578269914766311207618671084380657486093649828494522236437015567143178407286161717733364583945823087152317587758539418168862115698386412639166660324574282450819432007737712252156530075911082957743952818150123016719597978266442435258698669678896027640861259240424918365463038710484423799506569026076687187334628614398647018534886112679423908046686396433673464183045062550971490019478875736929940755148857015969480874097097158037321512365046288793416505340100094284668767359926461528715162299319707293679538269147250006512470683258438985629180641683047127794363699936832528004220298294381831708147338381338026022478194021971405379900191854611296237651847559161700835926733197859387590595797857417526240078480888244402374512731939116871684717189292178758738049522768349074847360376388588631980294384274474742863510574771042972929605299370656170777260390441519314941630082445267590108942414503094102818533533508325063165812142192734329981914746883075448072909934725565179203896046119136502497492822804760292569994509011350784172776131274221565313279687401094915219133986506413301620740872097852225370023088926293799762817671978111018387228334505888501153882844561925210545658611933006346721189170292748569128960753615237812980087062110518031537163508906958551446944763514987477882025798636800428362086726281636781701161590068286177849429226726078796337346589079442376492753015923952993536249895294136335968173191068835350044214036217665640082935114924684833581373963611322087104198513756415067949180761845998211880382097900443089186517720132280115911222578448066903765454054347374232474206363535516961226657029822830050449744521530786169503360576238275190179057156172445770420823247856462608051947924584775423534284338338527230530959150860499919716690366873334801330499637925346266221332481951663906466666825560133144143045807541487274286094944161139083578355543006723809518115305933841114708867465824804019119942733821814143024495705876620026316124208133700438438513218606973474533064233701633453213609913855716798909189467234862070098437212714223967319688910858522626381046699018149044444693887851801783661483186261604900361119770401205459178821555918549422910180942612950522093394931022401395139119789836762135599172270739322328588790669629853794665009147237036252315132009273532095417454761764434367773476727535219072031615133888198387054869809411559680913718527684592130823571286443703363523984265050716917703477936840138480136927428945711243597660573576490646341983957933284347504779939598114015359742542002167511451180271937269296721227347508049649299032744895111922204178377886819962792219225330600232229464484563419409107591880570046865716694096617541441961783867878414986049686597383941789312066036966366072296499043435742608964812178035097890023675381105963393050534782275637450609925543379079942886690500337183682052108574895782889064741587819571502397910721366572233113707764450960381332398644626779088772956726537767184693731186514688264182152390990415570790548357764008342194188274268514151358728323932370127132373189858388201573831335020644349888768346607368445396758306209598013929109106414318253479307113339837947556591077643026096009958293983123789718272401026829886573362932211323597372458001353644760788331619469157400994713835417083721555754375006941388785037481053352200660301386058266615132192360853866221360470351024119774936343065735547792728237842291850807279569106596099127210462744620713665224453358610495267169629889607719494902930898221837595127532118066071502018686260377604305389974637751563780090218319129691743306972119396544414754033886037630860680402093760268812011372380498806408252841093156524572898490831233336538641826081041309597067513372436311493024631310746795673289466821750055259924929345603949554927820358081633403778064490499176857675385864003581157603398481065582648217831981704905627958115805133603479967873600674477504120039104181236959177452918629651116136818419119701906705869843322990608831542696610036575474100464015820121955036559981022935468804363855037189891651137280458347830311189351243596002960645805482884725240804189812422020177444228971603697318323473580619011226775930406647776426767124729602338482610571692047115159370655665540634154678004801447795412633202867317065772681137068690904137427095399896197832344420079791911387118755264325003736946248830460135760691991095409568625550573891467439608287317843150874117465028607764303091393675666410151077532638317701209441013122344557106225388360968702062431135639750457699997915885819406336131215322130378701501919579599701287179427565353152923960347790547873926591258558678354689293946737581399189459958522552614795786851207537476168400592046947085140255500974996908718947310784590174844996156412223244569806455433998549497950272820101499369245702161760414283340122478220357679876602698809263485410848190542071010403850031500331589615982242881243020829929497977283970273164645480484253207018636624748370502266898984214792211691925960288088219615601332788894336550201548443689553609798603507916228027358458403902677913879448674532147306256974800817398935223116508558646234499640685753547066968857244197578405999814334083035115083046697891311536425713414608771764671226929331983065504068044202136242742761300184555883169795182974124513361261065818590913645373530384663236283298873519908746608582425330607569506427326764419498032489346322715991483513031257468317794501835810992359617145240899731361909679473712206040230026750966141329083004048463319064887482997411263902777001801533362012999521741743593284284303667856393111085662284026216191695510920913828842771149664486686278903003779196223553000655885979356195804021955493252205472096345024292462931032454317497239490342419849927503810900770558251497859795930468051935585973981838091069836016168102613854881403315310882096184186181940445550091339208953092652428209234306282124766951834870957487227988623453472484780394755697318485972323244019081000916032254302873466491504434360381527292426972367421592747228139078236431314680727086018432951907814695043621677116321548056400611237036698182288884003335362519081120983699480688064582528372672121134336147802036051687739993498349965949891175602019407991999981177561480514959880326970716462373526237924838683210454909384232019788730608626645345218085878002521421610238326637533459545321824667112399587837669696594881187585866571385372638074923863825351362690804499704579189463923673876685386577915862228828812651861362985907561940486915095498818762306322324092068366238128449434276885951638447814841958647936212191255091468811997160939929490093271875476814523735447080304278218446458980177024351153960126226725779152718644278320265677974911319910764123760622703118166474086634381677801037411255476523541353061233344684162902489391280737888273822210373652719878065781101139010195522659259535778648542473526235005202291323700388945365030036965156319507064479555625960514357238943167961624730891288475702890474070645904595775847487698637734534467301063408706139587432103011055982065478038494297496369085694587036269020753966162811589130985838657200350272362807897805599116986626810828153296684893917091023904945755961154073217221513666030022466421008217580391828003132772431117964086270327510541402030323319052768200577169806990244488603308022487179303406797603221105732021822281683048558190207616158123488154026040670226312501507498817589277076230507867675700626878432229237446354795908572615317581696259064643848356994345444133002693245702977964841963019532699694815559386766495528400740511214419986140479932989595687948902786758084711159811354626912634845611807420578796334245513204894819499870432338207410868763980340815722795036587198714290096891946841490012916166131843330933897070595404081034720532205355256756585249893226841946852578651290967611712348779928557821940067606830943973542888895898051726449352259600248184024231100162048546182626168280880047876905832444604810277970250393594728899977238877481833696622919391014257373111944331674855918280998292936831695525377023852872018166424163101101888908503635293767742598455727910525389336209840371760099826965068620486089356471033550390130802791418511288059410571045436845288807408703468227728421193277416795932705341733864343137814177493527241889004054001309633317284792120042481307215079012881314976161934852734472384375158288525701498456154757321818176770033609486226414892851238996105920675313343157411026258256533147059584355620297867521892399898527284966728343632033538191948249143383726914451931213262971695951647086357050418133266320846074268133236377487128877898944660621197775935419520925466021387602925621141269315955544629949465383124800631684055788288128554165436913543501298047534095227748514407587796501085282014278177657397269205109324160259723003599287184079140216880278292920443467613207075241001510589474987215687661569832147638777235099432260780509086157404838380246157671553131965394612585569485786405585778199578661863285456530989768578341387177131555317750196840478260623577166035237672297195913505791062844700462691577343629444332183528720204243118755452755457624639343401661652978957957219543304266333067017375319738038941209028862259737471853443899922217699025910474608997836152950026262693406218204026049399788823198340545540944051997860794921833052056563581531230345610897535478206868525060272135263132090359087009230551229531036714544951978932985389385031225180790920528807386173903862134644856998870089936172537002622855737818210660561464033549385430922767654292457907652728857008456427673476441309140622780831387387172563674431195165772020922611249443158017344717879474807922674022474276891988540049873972153611266494341933258064128114673996226948338678280703576639618830156204486352265014740412284511561779972121550667149740055257445278591959892011624481458910288165732549118722985808670876646888613558555339360363683725581537737991644528866500137258564388667419590062356930983376371911488986313315808641264072795508680399114575303074023349372296683988389060172412045759630403316849281216732604277358448107706414821973449954297039983320675741892515985510817442948418029883517568592506827788177341410037908966490011477031184026920368537670812636266885108686916060152904311839454390240037222575465958822954430011541165281058153988242347235985203375432373701126515942596510405932266520549395612522537798233126130313546176928346808559793388589917039806504629044406524547480509653885098843138443410456718761524700496620745698616242348081053437869462281122102644505367445645791715724211824787298736179091699163721784465637639474548948868841536083360286457173622438605117142193211160570787992615551397241670297016880229041308792528527970812004165264708669620001418437015926666041823636802130062884723829047190226371667503993304461224101518169843298785489104817332609810512754628842736627690138841082212429656373729530441382917707586364498618190337658261761003064522962039387686272289420827650393333327116283960768020315814542858171428598451765121690949513531699820496176513149818268155946148904304835771932822573509085851698598461882780547779172395696348148156740711934200559394690333314046812705855541183220234002233929324593738521449664910573286419577653036645960666138607578201215191886810788111364715697844008476484075277176950481573940611514136261440227700416559491658555249704393736483222694040263667276158783113774293965080234100304310978273249065855700296255121885357227797617159542107252984157566604407842619117091464074861072615218136177548453693796973767684621971997572362962177242713976904043444512384403030215576217879802982154415240433697080863220134079513206663425491533425702066483112545763129971763983264532659088549252318702437397688573599187848897744759862269965196650757033948231802700888950968002715682935690624078336562710267679873791836895379397599653187996591879884767788737485758950744876945010519333830807680108836945635653820551929862758068890365419953704970253983006001367864868315282169518506524282009997578488508310651318966159301480248156054597232621233948360447861815689636002102254277362964666093509828381889791380591179785312677199702032613805858254811966004304538047206427445211318627881931670300099442054580595939650125218346329237505455592864766322472280094179145335201471986870466723475526673291155846797437297691533188549328661280261080275427845049453962426614763650791776318449895121947505437518615294129735292081591402223685266096005984051418853691224068714425841261814839178982422898312441061871514314732717180945622983193918703684556863721753310544547205254895484499362626494090212192896473136155420471682097778442056744329833542625546340947525971874844442375415708704393099166291199391331650812446904032962089959096931372407334617582699082870394291597973948237171379368854145878708596571679381880054111370854528405173308426470133694601357860732722547261097531996312202093203930646833479488231762464224157918569494156597610291395954579968017886097899533811197318844378000490701614261556958579862575335304962216954697345086753272031534540969211541203937650717673943071323441065360672755715508400158372832977111722966726110084376684825153149158983556988260674464298965620926198533425343262085065303689838814353800940707267870957031537083015840521762584712656842017754586297518942924869277950338145700069814020911393580924742146594148040482586074783250232581609509040568840785468084518154998146920119757269662711788308665229643610209929616826435066576479712827435967562727986869992430710739463842802910521822509585055099639827169324532867327599751231523052887259401402857202656854165225335584512194424409051199594431078161509530141489195415845064056365991144360763848351211391499332420335436690672588727517781925598269139584329074531339889105605457188805071001471578008710713974480053233552042674950198663990033773915465265094881631769309889891252814090610294280122784437442665706005537769596428081210348867918794865054175198423248179014778964159045657492899471628613341813066499881124269260513535759008118598443240407631013805489176465097365227456305244585501645268861997577142275010384595872296683582916364619495704340821482707696377531638984571087119846064248262795418136841553004000126703655521453672072826033469606478169149549187400132308825494984409745444066417784621511936827687738147000194118851121736029836625124194302325254544326481804706362204848302918552381350448808329090119431413697794693363812532547209189490976513609610562347805844419424913811099886142195911565422955781970950785652109860258982868826153089315298256156504795308260726854828735466286577478790179786672065144952773399778182843036147417442550930470475654631207692651405632179607381106287414394592035522196050535850324784665433400179957990343237702496084706840000844870676708011338238405179293125787675411542787951627445977249776617010919425085042769816355209045851283005417962089989587436329789507545476388868735974556287475216842896864695330573709365420950677305163826116047665577227110106774727603598597928583222970040427651098774281313529154331335887870610942301033717262384673289189072641713800883787319334359918058843332176885338042125534146297144707026617678128832688349524182958274649951478383115276940480218795472240777536911865453232634326792364928950676395049134667245175643877597321602676382115436124667005572364670815986319311037265927687254865754042925204255482411162925022724683024922802591995562051826269942508752172727690475037692394329411203267337692478878784891430921522846289235064084468810347511769132524592863038717553619202345427880479230878836203043523375495420747717108446903197736336237345063751993329813683972257316315232137891528692929065479966518983103742157192756044168019343364463509691065636247847778968551400324282253773647878177482927932225838568716466662897862757586586585353327274341348266926731201694455184467692677681802325426407921121721914736103318040193691709013757349558302336319898017563290915462530440931049241692251625233389845717212863860150292888288632825904178898221906620629502234160688598347272307309810232673226879152251121119717736657124044008872069408402647310630640740885055989027327245678466561389165998243751949331037535640426542061623812065327682302914613747271061637546912405482470086578078980912611938923861382373204875314935819913453836436524614076531940630447240506768406742465960946855264822765939287999228880673433605841262197570006119657683689331907776954018111986943596297839865842598499798261091321874898097435981320966175777323752540620102555638234825370691899197056868075516456187195757830304081373873820041392571751239228800877954848469659794621173191379728883239375638056912165049860254963635043272303128288859516027658316286622679206731807933006596893992766266896925722060867210027254371380032559761618964231735520472754869926577204778207123665644729587310694796449673931994571196578195084873414566544371039336709469148483693076524269542200682997083661705785521994137613208148754038598237883667885743081782195700198974007411854363596754067090340422368891794146520080183853148040667763359910862006961568763243694350924699853486848220005923738498045881750659652857058712584794488313242565348344031484023669518677912663356240286702885662242914112406824911214871283856346839022698253953818188847656604509347729371811443190645426780182049429598178473898285783943035100265727955856222404302207877327935997586845309305539157800006871453224729601115783339909244833402505017938822622887418252616707263782808852192729201299173621405485946789209719473098663156665558722871897615099240881883602169991582561098798808290895904341356517510184503974251156992301775740011228064771641266728839257166144190498789743121693655911519707315222087999271371155269012556753982421841875378008928527776741282682744632888760617911217183117062599392976032306411326615866287549057603562237034823384017529746159277847780311533299230353853712307817153988185671376628433535049284921310248722909698153530130127376124470790870881978313135459718240361807622094805514682522714744174104744614301852019377606958594692138447688679353465378589385203851866971256593172262233162255339414750024215180262488483620944555790311419465295818767720127250154156084537888084035161429244326332956706727640693005538376373648807650289615058519130993661190587648336110437520569512122266619814861262325465663477726385975336230526663977223822660599789919662453280811526634396883779107462031065075205797618100317348898504622725568509832132845326411704276078410750577987050836497697177437397667519898997522437628502915278451253782519912066598103416238961711828242800977222575629182470039613365255472865056664534661784286120352828621694090616489497498599787996734598316976279027566722599080605609141527127957517891677985506834561732898956322544748659891862295130796675598635209341805811868779194080684997851458819542468867684608834135695728127785306786340355920740784150977989880745518413017215603806529953041277740062001969147893156847608914369446947851578041437264317375690384446121778194353492785950032250948874051355855605007663000883042894480740006694601339680502105842879041173863870070033644711002569610684164676502495424403682696234522452738378874838424593317713293811630415677734345680672287936817740010005214572312409376977672669035534835610349557278829840284200865460506323976615149130343977767870217316535771539287484171385244998409730243747628610938254491245931651948550327539413881572063665493108385036177465970419801364020798496858820177092714823720192377836640049815188688328144899754515044391323567840572614337681184338699750049998673332145088860684733829271092444995945187696979793215038722191863252091521175618737410221161407866567948310575631602445399060439339105705485574049087271002263816786783847889774224557501338794132431595892967248935209028174156804741740112287113324903869610892088793007511409601356866420240229856046550449684338634172615168183113871546541371349711387188940850230514999128678257050381172252515142338175102335877018524683978000668641901336013702055323691097516432249904066418714235218332696879191113836282641991722748879078334942129383154250111122001075966908583121174623654426157181070660443179814547525116523273804455900061848333111670256357311391190066137020289621865875716051537107420936030834098316062221901952281088759186309900703048207744763147981482980034861821576934043812704738551226897816099018410013696096969839157786564415101973183293229362239124957731843070653195436974387615745208386695041158919101880937585298976046553426247288033089295689521497902563908977019189031109358440695039606061970292129987095650540780002154012499924883164705258114633705194378267929409928168385074629126679051601362906906680496211402119500607260243677614405296258745515180147819231265991563582986410805886395771756685216125517237320893960345342492456120599261894223088010509923836938661871686170605098957554638841522453096041043669922609736094960721522654682918879804682910117710268824560549142720645447460231574436738320071415535383030958863248706141355448260640994091319477198583047834464944507000362605234085061648792049379761788818027552846530585114502862862249445942774783813926954528241603972542218964160755454546508017354003068769848796130338738982633547946310919054905002267274011124590346998562139440008968575663121650250547129409920234575690383487164632394915434032098121114335800227310227932958204921810558529049887874064385993518605780786889202696723813396281988999089624794259580255294157590735737019786835765770011027810412742779836962044090227771594238057587326187041496151820202552230877451416667127658317629138283874587628913162580884683246446777285755190698643847605526608874604189919287589404445632039316499033588784852094961983526965999257482960971348881995218034835239450421652622264042107838919234608495441153542424937061973626429546837201589139191523029201785099875633779460486384971481715473750695273651456762203356463230167962956065548689280409336976681708784650978434182168040683799578541830205052973744786918813934415638026153955365324064902765933607453526733333944294067587738160056559342635131699163378700798207795306289446858006554599642326307449039947358361057503419339350325246367337163084068813155957000577850171399389004141822287264414214118840825775722773357390231547446780294652401382168562695614293068758235040211196380997045229990839765190484909932996910405686151473626909605817019576627407160747642334297785543220949316292789107786348940184843042737821378929531051717457200369761007400671332893749681300674700773738900088864812359895286935974767035612688633980133197985575052572404929841079204634915843825522954261727501485787970158817642943162982667204784725277574356050174848418868101832050459248281539579662318979464653609269324666679916222618832055613768713879111702275704967435211157059873801981128011516511296337738028192592134576164225643182775217244781462911118435746173439197702037725348975200918119644940098698636013181526486147412886583909766862662391133991671415906554607360314389344878426462842866526697193827952017141819934799968554438072292088125017727803108159355807598517175692393116432728268366421817595456950525464635116849478092823958058906239197368214968054480597641916694989236436661728792013342931000970474898506569962566414560367793111443139815296704837517550373997113109260601069719730708094054246053527747005602635251678382848931566629683093465643694868249408442734506803977038049084863913286581713725422798985536509065976204929268589596091346780510317542774546459879179320611367631642981011507571468399926686963060715995404057890216316063679088540045004693849691140757798226235801236761058324628916110278376112349621917709713249183072949700079703911573241776193356147315934793206870833171364739121230153672154835102284616636559049298175433772157887822273104942716121311486924601154203150823543671403862235179806616839886416604269618383451833889403412492934158239949813022023364416785213428883856225429906940282768656957584771086175799919540563556291194095166983511992135718667058342686223876253709428140671978822103245048323138770456440928359644274946647094069566952680251235640938036330822338844820260968585167280175850396119142875316456243506353599180353310444706166744373407308064874979086920683096470880051478211332187772651893095884036269460399200003804907179018327029241920505373089194551902291767453142229947181783357571258835903408705770755369569901337026157483901286132655662668752619637440175674465507443227259980130612995638827499421482731582298384779286727075352780240914401075415374258797162516894386015767278090902160665476724635930431945836731726837592694319392279379178755325655362511513944123561776769436825119744746604162914116045188113118730819094933702728980522342712390335135396249747394995901364464549622132955456710777460141450781376661191057571625285391614239550672251059012421920322086930377771887601830408431870908732319954112085682649372467075175183952123632997273756945707468469150827100736934213449300681047934944994990317848293884933476399898561034421019386002326736042984274591835732567539229063330562944084440464583363701747572074827740914520235041330025145529955601146620676439036080855734289942954558112196566361782953589321793209677556213894413691173779104409624324384007622610266711232286876120759254994621277454902773496315221662926096150654589881387208109179130564501774532587934042936341198095475587723421570165958840202217774653330889650444073088026809496284998284991675128141913470114851005123789843943906184785422420166330887581417979956273346209259830270387684239954348239859757185003062485808453732990669410122023304768130381665499334815151614260889360110488917865155368587665603497233610824260235183425556516574362720002217595498603224217900580768818620321579855509671040311132710158854766707984638151203657467909931605070629404746100775744096187861161350008779094169483022401892852190470917032821052820193586555722049279057963467479283843637827163305957471690357567366085550113851848582001710806152679318066015775021747462426662916381507124371691816750344470396966493685274240570677531811124588542781762124535106229057678087128443751221421892959329932665918981999510618337863619255704134594515657350907493772941013643023249870631449505039356021307147062139159776094221424216867428914372589821938999870926816881910806967659684539961247442250129685937261760778164503126946663357421804734389082251411560504542068442987082155991427551874469207860094500808296747928729233119276113752036138521112710704976944312342310360342221926625809398015806472832758390483751404593915491260219735756041437718117000479971623315141793050813165287928510773237145763758066482652795133588561901035180034166253680693846522990435080820332825710999662283296455204499980627620134152943185775073459046464360827179024784473946430052099547602857969071423002124256442559673643089159741113285987474863092650947790411502623603663754239209506312874578552403723630385809781869832480383188317662510676324521553897904327576229708677649723293727242116401860655190696102284159890303529107449658883250291732522119739203577368832612211072394371483171807104755844520104082847671812076272763607818945519361722124398349552328843858026642250250641810746701611982236387633763134906336204773621346050254199274546837277588640909325394875480220284768823649180405529666100482335486146324163831065265846136603356796162769856382891061719135365825172668863459754970143836774445946326132100396177809350523179307967266867636191605742503703917633608308500953816686561780814906908574497745078133296824411230931862320081629614386711786403574713563619315388568978414021545129186052171706029099135814290551234977045342449726848772705701214946829743958503028215919055808429004991181304237136677890898808625930765311484871106057536782801382084286021675288165510818648452053620418229114759731667375557670912658536305815234581092862483908932687515799038827275891909997554004141423224676229496434613623311091183484538052875139062972127872642904572076424596075866448655547682769661831495984694977364620782136534150384769576443775558610866908650722840042127615997423191323560452024084104622467775876170020597669503863942336281821381571739723692561743639301848868340379827444205682244064483989279422765066786410711915577707842679298919588442975454426924021807712264618239858056086900695767738655779639492938098179827793070587771988527537779878248515598466400753234705065489034414807897288148704132305753641708314514745081291444159688636232140906614128061209619583423659978530111553971753964641069291539836214760857037576395820615382573197828772032968107106252291642083406925562961030688149243324461478697755352184752276704293366361185795242965830878400261440239469229962714931478632182497564911857769712990229792219827427996494152410351421799143531220336197978662371251443984849178586138309681599536249392806792469184369488994565580925051706710556860422210314030370247059205528045047588977275063329629087274246549144219196282418286584031916358006361867546323859059037177078014710264488850275870449846559826728635766383490415872040798659588903098101043647875401852577205011501533652403763415255981791873824544738101049588196033741867449131666107639881093558287676783616442368499270843376025269877958824500719464336814314035500450012230012901205136632939165893366502049916236122829736238710531417260399468018022795674756309063633745048018613003396199089156103310758688299202357111439830760119463710193129793477261048914098973599587117892563193954299011848848141036877070761393909151572222010676418638784506772069372146999856433721374507708715976346512850183903211629853131494395859157011358181286122929482887482336879579685735505064822180594816290596441474877388180362440123196452105567527607461846181144464333927387846588809130582767961745571692932516713867783061683207288235886232120264602577977234580229064845299368060187414632448570786515594020177088627158809408279955425409739663483140065559918922764123903533477875880924382821754456913636819610308232164416110572622461541643006638935188346369075242921262535556787703822984661064326584316326693566680389270325221422461749538786645285238138806416591542978950558280418585980799785001607485830803899845646402627314863241801267161722624905444500169874687656892562426762915873608085105321609683295291768922726517027150756918134098108487516331919833952404028916471787004579625080293240623108932352751837957876517575857458079671241255091301328363641395006103309871701119331458003373801917379716616179106888981677382980399844591245233477294336217769133651723415592606327195494041981210403448954478425977245864368024597775522179588932218564806582836923328082752489859069461182182981844998441957059858230649931526212933377650709327471780760221884546402399747066703931390883881041322726754160055314933629106288021286442281374027293047619148507581508735408754878512424399563698561039139828357619054809652303971560119818522645352747289714384312036793493502532768669224953506322770204587478340076874477024364227284775315725013330154310288941180285273814494912739761979910591815521873311213837870402958093104926651440259167966635494098026413880926573910861713659645220593473557582316174176654523050504506682620143493394214844592804059718641837920867094798871114781950732219155245255612508609495553011710977104982291702089095074254527691666943179578977093034221832118767006093325078730600042337530895805424661296053256948695938108860249806241158283992875965398538329692150476879927209851584071181034799739800823874620000511580880856800921883569876277577775551954897787095284223532075823996371171389397263901577649892975843914974930789454555775093176201583870055065118789333523884429227233459378358204059031850465680185318369342867177785897780677074290014459808929457904360526740997121551821342160713989875680454814622487353360270120952298267285054474769195275110842583307630217682112276521609653294124323610073464406868378887404947732745957918967271186491968112639314239372936106449317872992762339647871146592400589766451073880926607233741507635465892787100814364713582954730400869202104655312685266447482970693480710433664428830822598780404455174332914522599016041508151510552602248567957860872139135810211853105911570683285347559082091631204104296475594654398649940687668521796507868993163976563953137535627159495351017128429492686056679108622333513931970968947589729789507068746653226860176279969620435076073309065740491135849023436040058895929945563612507129868297483988167170115397679589300105441155357365731561329080761541545379028683006542804963725318803176935563842156273628183815575168844157995898349464352805863662228960233417059702589702689861800767384666490372231328677952854672837233279425622420984616608641746166908765450728709847706017547340192854641750656659067977217646614204680225293125261487145906155020029270454168332852873268066946494488044222949300178600994373523702052998121020254837913409837435304587828238187139630233495006632313331204094710941255507688877921786767459419196960363793960274456845381238215068036920856783503758336031751602221177948093743947276066222718669211783770427504248523027213714294306126789036893428743676285065812895369643390178896594750467537138316638899183592216887578307226204388795925495285633973725514232457219147835780549451358429436667334131356206607458418172007252342219729572988988330139432400402073298979591022765563405106661799191473025686206055207151950007478273993529320656175290190582913124542214212537336307884190972476043667817447838269708797954000761330695707908964512795548580628629517513796968036410631390449075238501541044265935064227119001845149242449375165366744252942574403990194239309206595279011084084668255306746769181300301917716344956043462180616074054891780648719269382181436992685728095633624393756198454065788121429552613491440590193829487006368012362905979245322073619415956067607023414135793912162065019071626593629193583191320960225310708158351361355541842405747595428024287951804764418909400232964800643910798258215579014220779185104712055544445816618606848478165169601456099856487972401051979797685903042413398952781976179962598710129977617281828890806431215899724209264397313246358361097439434365532071742313883550600723846584278371285594077739474029923776905776234839696862603032979806631741412224089001527603383505751543580981945942746212753781181147320162632413397564791659049451717713745971588471784082612486238178420883727728737381177251542654780174199689499394229404866300658635018209966527743573254905031297360561434931060320525043535137519582301889589991686767549723520168516310948561154430434575018250230389185960447880000460223596599406941572428906649876024088482427804066493810276503237176010467171189310352542670452896112811788798293744874784855811672630009969360989254300012809947588315961289928572688377526720738042278671625217537269429125349515608582861573702296315417753854486409810857728992966631503930234885728886957405289702863062538914581119957502548171766890650079158675907858242084860513298272728340930137725203929036965250912520917325168906527116026478220467062292887435627733439964297965283515438384096448580434031097278631892807619011298335251755705739422610313684893979359389060582748077127968853647286358709678069569047503489799457368718721648397557519610587915561294615934577820240041424724756666379129395525273999155470550490853670547626240622950397628891991030656758828954662314538310319246774826288167092892663831811634530681841377529218077222575777941040577607903776357183332435249875275372073721297391401947070158139669602351020154017808159446177408128871918425369977329372678958365345437264301785928111587325722183783872962708101214081302803569828080251805396899949025209319335521408277230716632897443400781607163833651870867874226172223407077016130545296949145456725755150823820240930337633217639164749543208813119928621806047663169343501710036871033711660535054686266568649494547514072097649977908938639970147823484674157525860509681203254924782372440758225391335553654658989225618092212361926260469127611084661225713784432261684685778742055184531052256114486016073575388223327742746213537545288327934125036558821089777378834981330565733211128785078641464704457835201780980401971080749570962688849105797890837470302651228674542944769830842033969139752092760718426640603587407000481630253682069532096605122576753110072659425631377294250159032017122526472015532346676885178922153228932160874685866872602724415034137617288043556736778103271756278017082686543259470072556244771459031144283671613380611658165019217449853635223403516683259529546594123170575192156774618921962808748064013603022842420876132048961807806974666074502410704482773332510638780033203060206828392743077971558567645027151634442539063865660599724473912752413958778204722706530582485544323616744207889541273427453598706733183065774895805243731123071187848959324766013389024847956142475914580394824486704664115808997733642089943331062307907818553028284954110002874910674143411863195277662767752200355447953356921328910641398303634369665503404747257526912547370123933465409081284794113953861373141380152448318273900801050536197009333246031599623319154234662795720865542042523255954212884988867183422634873914945419016428303203877430946267845994846971444599323884846423550482976895614613318388877073320695114813096272735161678255642206110682658182560824043903189018101440249259992160065343753234671179309797833532129305702411316836963023686832544465862306583068157780355320760849477426460096591940259644455383635181680809848463212491636425838799436808347292658955176778810427293582874744999030118621074074862493047926685913669379858396694997592870254932543416948167517533393781572272074161177964127120140849504012180647888283153504067195734916849699910623993070133123787467315650085304576007369347713756067389241519313894000713500330059805143200191528639393338527954271723926027767047231986071434642483232892707852509068311615263436394200540521416002360467849130465042030439018262690703948657078699854898503737401375693586253713801284561976317865716182599047910106703731685041711827236753443820137614613783409719171219940116037272987244572234220207088640823710030551274954540735270820238508128887010969064613870580367698849325598246010073177928672490659061066957541385877350196742605126917623057876475884882697220134389766460336146134487099574912433275873838127742321678801641048478929534196297686230159591133231819774575501983204660473157137704473640492148450791468370862221705836134519887590576679994916259655443281471536990708538546239331229410847522093117661306171664745400235466246918431974596161072486662386801278872779792705585492624530232866297553135761853704697720530375133080737044316285448669426414380610466127867115899193610855891440451851243184529354381252775253627139869263887165269303070970608575787296795994351820424771954349052148079513712935862049545363344744503968570743369237872454399614516202186288548625837781284372249502023349404369722068593925561198407679137166218898955164467963537030028349379639497147783376394389425835453604304671496215852849814414847036235361755912276229709662298133909928121188980492898364593431680813668834345078750848700277961558570650974800357413892840914035653009665394881450034560684076904302105191853436903713880641401964097067766855524663508857336287458721335663852272227568768330294424233655517818407786904372312550205458641540408238458003732550425247996817164594296393531277461389901246150955723929097249503529189941549689793516622815609794377956934691934133246412722421845318440849080066394233913635385283661824125044558795460497556535533873275258224628280546446615163730880361126560149342319555005749987128377901483609916013409264506410653984803607511356183445010932910345860147204893176354781670984139340533259851363596255656131959039794798678141722564720040468236313678140340587066058647361840466829886180842656271720738085064553643474698378088658533376774293022584726611292671406608594752120433945671176064582359741113634882931168439082326685147689694113232633296587162111517095946878443341665317872948768824126654924968633969583319225686192154073174382709985420410926919167794927527050553717612604702431632260499103923265028774770078585381986080219326453566447804775632711091521165573143616084654176681319810818182718044034186852280630367967052524576491666028801151390505519104542380152932786178327793352963608230087657260899593983873578123689261195034769846595400451908401849164180964535507649609108033376949008934761985730081617812061068575406138906682260767607876874529079393888088296150575847444355746385005496654146838924004021902904183132213912965202837374080147674403562430945205519080787328272874899337914739229552493862462840364535170631997127840586761455203376265251898182597046280516995426413570070883744534279290567334135148798423313416612644902645713557147369794026928681249167839864755363411386273578705386441301214149968151770488569143500016639145052083952369401214893681640041115021669465858172430873688469330532803261879758584210697275838697532290560190261173348529513301733345349322973685792020672275233112211817393910003602722665170578610882969935207702333074972833476913770175250979676685310797673543793052414212444354340561897845976829243241776782952920953356824976850441816067020039523538379197471072697379046441056296222425734339523906542060442800337077202589341809756518363396974982693884329338895848117673083411679491865187192357840515018243673387679370214162378707630368900821111023317308519780427172284840419018378240049014941106679636903693081068155854674490981334406915409045065309275724192318533565591199113410707296562121693828311221727379739725418370065241174412945890378787427549531899006687997429829727555912753081598896783996424456580407767793315998761297822051466781622606317782790398159645108310965845296983480636469541609490788882793156142373720845010501582545203889984682484860614429028924555595903762101738443590879021224972346921570652486962848942611512691503824966466282513895800799594259664143048572148377866839769579776852385468450852345431602075077363976239409886946709736304979196852501660280055997045751031938078860445341625966791811551935453342127873804399566234576674598338902913018934715469304244463936161846175344953824629775773208264985297331013982289288114260549966388856609154077203872424879600502061182719233231241860012727452436669567081401591847201497936541945976881991736993587363061159362689474970799465225923163247645838945068894367072177276321066948440649087534449924823770201055604180435956787976009133540431225785113334319632349140323998719013783585439586763390754137574919377979772818416330269377221155576019989095813266571235867137425021927718036887274084434011663238309205460958126475979344366056520195715361166730388600082866758492623849721206795799213527721409852794530676364566653055539623884745776724269738879394905391136645980590344427936881927913278009007044279312631501444598468146660068248850976911968573014199363446975962053986430445280692050160375324868858463088201092070119113206880253299544833442429503461536163703897179026183778729127671323607495414138889061012230268597562574669081054505733024439783908719526411850375952320146644839036019634358219527524192603827114759491382132140728518233886837596912379263122704578598522794188819145794171600028060937318162230656704369855578144190356605446403619002162183066887165933899898284288425641810611389829137594093466176081312003435527298000366189245699117281563746376845639026590434438062888892500679914254717234421859363199403287205777565697905817201222990768240405837910216350952161016716591180694241432848875804193724727168893478711890127597482578734304090154503372978069366106857493745174994142294679795110331938362056721548120552607682126138814686577594645969756925760977284280968405816288021889849688316193124613854500150041812024379204844073487788992782425545405704016749999870326292611907450847763053541307702365459087525387992509683352056715980444902765776781103993413485891223975025634158256694870291609831699250971891140984933627649811008863307434388595109064882241840648713116045405847838816746684372391772330981709134802255822298563842741227212707795167918013538182764084121014252559506942042758782358580941831541224112681865314480521240113091239454632981698195223217081779231335341443703552300009655702287884562648860244310373948484542105945011381789265946586461991409233779946907541371685608748843573939152998516399343180135431594878783933917095203614354682276364243259431641597219782147801416155654046673924479603463922092046001609801593936948706583870994038246120240696544790042075870930218798177014950463530897673757060826212766607052674971205424242542169086953273781689005986664000311307618360476324445965860954717036575114036205556160284515500100017427425034274059475569043654536798853705360301499462307102975111735155798913429475852562982914471283421366793758079136941481935079470851925134391103163748394142100508998289599690674913838894651218513403765974638364194018457628605868956540285877605068522109380617900977365261846223575315648951614962165976630845058849477686417402204392989530641081754340432857337021666219190816844463795126151346435678730230983042249917457307851702198427155898156982005504037853672259825974004270307132051782353418138618248960528331430575951952270084566869652357334409382049884267366029641206007761250421538992043775295640564049325887159377754862896878009992548459698753319612699387132231110355035888305745958808817143599569748382274538229123382896103204613077656042716851899310456849829101808374855655106478270118950824809081189900974150817185407313348617136700134070035334492190699528809292741546829041649814523824535270130924476085952778028084131253893864356902969437927206319493777558126995460869336038170776808741323455999114305613770245473892984419062122914893907935097718821231255614145009642093710448348876329787515482508013932444540570501909144591811864624196088626179609497716676978373768513640749688235501940229471891260007052196823423311438133339933317630609498402570433536475858848628246203772715693300423929094909555410559962313775409041231783364097769686198389869231797300882430472216790940957467774132374542638059685513907515568615301477197590397005600225124530202321920165324677886901571320593875343700893736525140182970120521312183242246487116240488875285234906293514824971909076326348025686168776797874444137663509027520355481654788020614137230610946392405515612790885167869574181898290006478650353996251791163605381902413167668663947342082571649903343680439768085713144685232905004601340903669807751564349601401674683244352692664429594930664426281241052341400076940119293435445038278603394171554644206911474256526205548877293676274465747180657914360719705240870960694239316078432403902271584435634394021158668893733396098866734303459993589276623005314080474030591704165621373499349130170132563286267154150159433716776095190462688777138762150040607667050159876042311076129862692095633023453612934946437313786637984563544660152285117762562798754060251307842673527902524855368777109089661991896575166453181513784282380464083646873463480045460312090075790719844487500009763262303812471515940229257541852624062838476975939216909261413064906715280788217004841784100473823686826955485325991846522941015606204264559007461466425758424597660105677353296533278895955253818388903543979575513017704603744519131672828562840273810232615306391657248525027860669257733326042484064079876086175195782504902241983569648198875621960136167684958226454627437757665561698896301669330423069309358587900358959151445567504029303017493956093605503957782716118475574622946084427899419262014173374760648917097167741537708399810804492445071027015397964353399045321178121073024667046037470920879327316364727472064596031924649026584725014409290581252317788977745519725530148200414035224398251204961200678135510748895279232748857888095193671501566638550272960374634405815065606062120527265975728400352990047470079816564053293711438595746318246201543708555083369909576750747231464223199944164179846698885203888340858629331195976153965326086715767105137479863593455878473703417079491375248147618391007647742868335439138434106844270598431028637662334207924451562058299932995946320837115101111116103099279139737436834901082775667953958194884552184586056452971171410911056935490560271828477854967144285285124995387672437424396749993312950437431903251714921338597681559219429460536951048638252102570611074707677310751094546309219986574638931445346522046805830702765742222305756758512934057223987085665966670290375567476128490408624661019540269939678323736919911396226975640203604230846820336269333349758931062194567295730741701475590338370988045586089764265209029730497096795554505452424671769632850634470522643354956068374615582875536460626169536432178294583309573210194002414820589133018722405116353471522291035415256422054443373671570768840545954760702752139032658173994039424860608153887506076569592085293748973431725748128614365952502901163738375316812922194804637522928602203111318572617667511563570529370971127777543852201322936781352474743738235010269042563961325874452563689656068557239787683144715493606256408360368688835279691129182429393111883707176877308402537997185889195760147467674146220077063195510855326399903576797205575475574331365574726906237154142656931570568378576315701935865794551423950755026050839170513456082219749783107374923733998151478039386341984856615474487278147511734867277885231419346682535267380231267984956733336498859294333645291842146511261603847762268690432742554737822834098457010992690277341339938899865393496627731335901169141011249878365510347695349585961510454580463092289343254872310940772594695415512570247512741720615057691149721037017224420356125814487324251111032374554024104817980869489326148718127213278028577023502354247613448208986112311569881675414895308783612376725756574787272132066166601841872373531215856858875457563162775228122690469758629971752099390194506608281295959673187783232646326780700370319889818330007477092621851502126519425806891361850623996017100060765017839096517107078505773241927281286219940574257167161336217984396631565535692860606311294109452224049100333570867230600948319053630252975534535082095467950838656085597211569538621135650075130715508980891960103633794428856502532760890570237306328529899117890863341630439695556901404407983476285819387296801275252166652312169177407633357332765340442502408368496928387789399425357212631278385755627518715897437716626727892585758212054127560528786426915293182559346947988002673713303081710866284967603215879186423014414189088948089487456595778442954714235275498852164616048636722715639044607351546893367490862327416304490060074311104806335013345208762755195835692414590961360265798636265621701915341565665750082544587598178995535487274986140096908797082111451473719309418509707930858191609333408649272778482828080225701934229352289278745857683561210269063625143679018416031949486734787785155346751893369452088689889123260020038249177135877681098518000814835967894072587172568115363369294928946106508815831455335147210516351000495481803202118671756726270867766128597891735295620050740241813766007447029651692893732081140970546238337538283710863531891615758706249248720390896258604386054686376896298494525870288236830190153604898391803614677328820170846596013457559526587552723295260398998483621122520014385488678522195346099655500454296365380649988660492494306380061526599354432657683843371961753933244224851830115418876720533932463613483674684805093287660566389870359818658928562837152208047554187118812438328519531467857868100432066018017542730438754092950956054375466141459682195308189288210028774744979784687929309788252953710502906530385528832215281530296205612650752112530810921602003252647588566041705868883143673706762622547724373135495860398147048550423044143823731502399322465950098193538379397897397822250966860635824586696612039653471898488342872907509602010587633007752888377954237607328731541574130292308707398027060600677540063112243699904289216698961333565798219811379833444608852338292096216141521928592938820637634466857847730200046494912591798884691572459122639644632099868786803262493032226701700687690648871629911188724275235148045547664239698406512026018787328099990859797541474875162338599149739414254873952257959889924771536836893050228462286490360798405758985454662578288031769904561886518550283989623587579407605475481564776942053007229104427305897874078687118500979281266957384820301448494530840575368710278674143678982805391299614752407407452273215051332350751811619882244053312744659559822188198190402905829151406072133048241376892118030378111520614890635153963558460396212839836768455805189574925819340162145422941860060722963642387798960222879482522580472905483154052421859506387535505310621133980007459325205857692986627155922761193561504234604724627410254127834998023423035941826969122720270165112091233744132156775720276498847358752264201781552513803861698848604077787226831370331903897489874098669058620564166232266395121099956539710406060446383096051982882232466611596763618726937068659691325579427515564472023367000515351183337337474364793135166927348476325677583791490092854988723399259119790796530830264118245988627078686923141976055696907279644360983572998225585278061937718406245086354711626823753469517087890641398950419236177537579652074773234018694557528889671439486957882189268509762355914357378699947892321898952832750229085532160041476092605972903908101427430428274016509883947395773718837501552735120446743537519722546971597375415159551305442537788375834792976244716385919462998437305193086030580644365566239115332716123074388573954257047545212127287810472542714464374986707413946803491178726460352671077371993200160342033512662916528542903782750661631513534063819565816058297732277104242755922799565327023113757061288669026692622385234410333710964157373778753262618934388375138232047449577488204156783042833743499999339275199505300391748526954212561191234673562740960443753482000137115033458527573957209416296861280219009551203243055770725905276560885373498847650143633889732534952250110335828290792517545770007988454789285953459527155190678973626451357017420603493296202183018698820187205906998898448142398004015607173640178948639557917797093595111516604340614806190069517210050187106455683891425407193890097526439010948085351931677880646849609130844279380844543535311082183641078680115854915314118736570382318276666952305492949277507405054786331970642969607176346740514842093267994566221292614559205996475216133497107486740055966488031512718292979744219521703935687478042225449580937108633342373298078130885411549673959069035978429555446769938992592523211126205530243044457448265258495872563177631757744421462694314465110065336811757282554141705431863127194538260391198749100721831660850348488976360905697875304958712760054512957283509246044073182007943403479232234997138878276129458644639400357210051405804529240474033757497879160037011537160975012043804136642004778103166928916206381511848066086756892429667649480925661932843290130289211545377856116122150062842870645205294286246688570058277489423916884970340781256379232262381914345671990625342523751933508493744035203507802506370960921168702433480391680349409234549530049413911039794499640924596548797627972716085422564251701834663082990136254504126312018421850060462588658607978413544714289823049571463205098716852482771094459011814147490503924757862722052382435815777414959255573961498962740841136915410829111466586968475651201712896877721070205600780464219120807087437579769735701272004380545718513793105589383644204050941690032718594644199376283555724970084323585209049548004944147220370065325115050712461602402982712994816910403366451051982266866963582278200041982574384962931063200410818771070880105551228831507640019011955425216458688672483306623194495371785288295131549530970794743970881336252363021765993625490629840778196279019362974234215767586079537320146579482848694912777740499000253743371011665253851855437086018283553619291975279492996882672565900153409901666906591112764735888315256189353073268272030273776634500774694871178775289325710399267891412033686737837734404127570417489253871009242418581100812773389625077043753004364284336614308506903269224942632061140034509567127347650708607114813866651320811859360159343508001051483483279186985781019275690370111322722411632979904722981237006464630303922819429571728826757079511791598437356096772391797016139515432189013393888264800333535341035791913666518574452838431786180888257745673659044027260028635951315119535638631797622707549642446591884042532174365714223958520264927876291345023194968303487715084086818954959980566288537788819340910865242382597920638119232937171209716691255298572756830234052839754374239644991909369653759414535723618984686793187093615679189094812969086615672984199483875023900765299572494698060453244966424064177923491999098290642858414479267706629428805496523892628098039367041043493751074022974472371766123425313121585995975733822848637018538395287721478504743776276317100458714833113271591724422655410840365199301745473092690123181322446178518132539426936421621912710172369801071529854099068151787754608058382678349882530337306876417648384251846205690166032575414136588410738526951208110744327499144327335201405252753908818096182376677665581607664764555033556155039473264452858459714103639171164174402840545500594827383014221701594092091431798585011909198997280136062396779471718110337689904232069528407405430168720824416185900152851024833505401795275732436858276095384735386502724076114358539109931518119588245111898744707543710187654524761544496333328614180046958714399592843563716505474822411081166879490557676674988350789674569065281367873430255218992162947347167610793300064870932259883280426816152996818348978506738974253509622425745414996306269328172740394960458904977304657942125483328516845472696603679669282037391315148316616177148600975967213408989547051927855630500807058031261799233231253408334125916160207487122037301612845477736853341861471416431258705070032755837914358868350849024277630566379086486986739964652047145555503885771698174836384527302394692056495326054640351995482423602615096557687524507456639532839774125941073293496165020058309034445603543603131252323684200466086135396667975516466888594233486659131576148733468977887293180404750866270389658151398082692989795639099239712977151485909114006719822616632279724876011287376906254558963634826376957563395350750627994693170693263994565318541036433916623779487155494524378991181828792724288902393212054902897280921543981895661143224816323769494893726641833621175040205072900921569200780157154877059867656548966363940542614345888072185607126793581328926529107229134562802148084423457202696451229901045045364776971919443320517363033640915061934842105555115748206236341401986721006186591201517019815470626342545740743401577918340305630402046984185117185056143250575310638187291957779801398315231817792089308275940714695128328259979699937833562181061094280120537364615427160736006399426788360957117967046515892563950952436755096698675475754875583624154011044586904484024158943800098178321656176551395591458905557770914316682048179138221410690392631464302598718155262605505897739806093615976490922213470665549512612483661438811267107841528358772520937185748663700431521222987455676185022154601737225787037287971567411045219192278654938280316520249626199424218552416659713662802727873620125215676109411406886769845427422174675209352688113789820242293417604391360450624385638215394504250972441777661773579082521161294519696236102128324011055454270124480559419039767856679008179804295772991818274878309777719563399151837980404557593389243852774830553918652863514649381945292881094037616755854060138502456799226746977709535977473425608219903108946760709761455786219281807158186508714478184640094193917719267530027809579435049292270944574007816770403078957837606793889644313298805881380742737407480633468673080203193992749088868083447022604035469585550142868281028262531592810007195117834155326198699829425577750688387087556522120412783335997223027946364161654785782052003496390148807074575744229902814776604229233045539686581377196994985704280816059919041431937087181495267293181232938336816451258978866494843692585240717228928432473524904203181736257754549875185690076743364742299608524206823337593342131743057677907551314955234624755662623748371968929201303912619762830620425239097043900245815260801911326998334179425020538510197787802206058818901480799952208496476750583112838212198201112204128304764766400212025376818416816892717827822049013748282790333129141996855759919067938209443828865524133005641998229488186771903675541509437492107139713981027981008587086113594781792449250649934775993561332424785821866190013542090342979156717840478138241753573223227310796472336715818371985484474778699436172642159651331786311797087351582435277826712896656869532898834246724894106887799982626935945581960245789782787827965277434239564979140634867119268527289963371839710397842875568366600295042341302305340073218885744257469209328101342444973434663184092957879411340983947216192696665607611129596691605029563784467275634413551704338508438367710764180780685321622584058234677082822649159716568506450873200177106264598758711643221677541294001632727075362151083151419865777192893737134070325927525593956082162121454715479881128577757527719829405578969922722247141677197524730556324467784484763276083735260119652448447227232639469855524835400456260603059449852630161100818090906342554200114292379804245869421082162986169977832595416703878383710431506620737720720384395195402915937666312515267557848345536273607534126704083087843446240539157971509672330121339756467038375357136297308049836556425191527929509368871681018677406486036882232908322614960483478110842052048756333650080682645824776304978409108549285189008255719239745544958759033182610533022242065505683867803178122051733240052030415351301134683219335461873313765799050517140915908638283037777235807665897875394600176667618360427330568264262412852044209677556842156109895741629898811385124745595137202775552619115340994273190143430049830413404670960457575959919778671687291158837343787471109992762195276405670940237647102786906019254205120837977834480445635771507109879249851640716932000199376001370647701102754984425969513541446117070503599822269735192951260023523127433074489996719765043809185992208537051420980249415455866663761245375952128513678699932337067007665265527866847957711011153411706200357775756820833294798990705707275168353037161868390421932168279740373185469999654845418660232581632507708946301341180757593313679573126314556934890457339779148385936854846289927008736776423520083173967444858816745081443710031370051337624903483030188987311688338468070359033235238704267010643981197379214555686538415972406888125707162693180647881434526971820940085441449346610830980045584915617696869195667869638236393819347069253572814164632412112049325973484612420894613315462854806181456072869939139769119008647517313063231136471274643132310417789968338389801393454413034212050948617377298204556896097331637011049510067815150553567954581846165038694444971215842846372423377463868120260869748295597528595364406471452631688464631804707158471205176187955807788254303337621774471990055377361921069962592200230054162806417618804556020895876321596057222205590758933891666837555805249063416054226617942811228657461124608028947408087802132742806100121856719858763732546973346896873923013757522881274122931386443560154282836394873485200339323342893760927249311138555513593893819900956024142103056641640412231789219968779751613517648573754153826925505352625552487263190751790115006277840915429169514831187474195052933927410433258603971028842929884819589974995173679410205166675211084302954616625843983057665052707555334408387858293952409140353134215684098207977919516899829579702795614754651150377876156172736358781079006053617484956475266399867586251336275608571080897542700828968031781830493986942361067209239724589324798889213947222922398552167664107638947572283887520948492491579387667155858790788300533617116448611087650706795817205011828306350881905718534665307741102556835616616981754493282160841513253156220715176346688805214309763760184552210805365446710715086347328646709500515393409876627870568563909514508508382991095852038576499166200741683561361513709379422485597977370209521393641460261007938166878120024293592488992143371818865132620430756497154866573112717842572463942997189660437163260127929093484012170363725185983879869881852731929703384984594081725737357237266023996074152309100137580277640272692938309239571947733921778702688310441245768056892238008831194228954813358215358703094321822135889505281664796514590654881853744637105936988898092432208003474523776501764760655988780723775607219485170744360607095933604989959251433937738049613789662070642071021093717452124889482118039213195529400719789879397632990707210544204187078170664065320031930165139289833536814175621706285584554172901553466034558232886626526456049146678410588071481489809790477402895266306889992649228063882189216474733181553653756991264903694730355539832549571148476967829365513469675285359440120637783309549918135414453198500003853733635374380124567112243015743689612784282077749331418304241133863500908055668635333931915041095700689212304954959127264145728812645086195744076753150609762376685383028497075863575010173822697565915710418652438476741930186868761305160274733744190675695511739809390562773003637039074225955437066876731132440573817622810859777384956236831246234538492481923978516168245514571846831142839844923030695617109900920955192628966078133477045801023540326426361172525522856817860151777684834156214606313609642533309324030264338817879039898027597903448951338656366737112755326142699060275170935509330706303031355626185982312834029458734181914684463502257147404621706778919412957514925006737488742664687282256589155046121982422922015783192414071322050461519575057536433149929030977995502455130206808748171141642664995035120424035563220888131547949516555301565914759493434705825626269980983532694790932251994701317523864207869967173682846073215562936253556051452694929182771653223223859009199667072009024354019331958908084855685318100201645774601661768803604261634253959506294220426782348146366893093155931793819121320770358406006281600400115553689539016138861008474685675253429690111871590869329500736394482189959328133415751035727817824176788569497553341429064245799679856162838850944034561584021202197120504377662585924820609318543814443523299173374953597453235933114012822269567277258258968685785827618219432703317758228703680218903679425199532683025511426880750554584170227460658051190999072045723564648877936115377323863489918321521852011632145988231583267326378258461184735923829034546190841893792424441103520898993651939258818395802830681270947151774778856835477904359082803708403237939395643428539351931423724954659890820983154864025428196659685153406235023042699459752321774784713244473615825485717176841096699858982452818880683451843291615868933171622830877761868477054914446001468681825034220645731461000302385709290088159272664495591359187933334743590188100503326376114251454393586857639829204968619160888544285122088905172794578457835280794762171389286730289693625852584650718043550205810421904795327655692343831384501903319212476627842857560732121137249201033575766835497327963674439880336429774158780845171397940987302884332782459428593891956695453493496503905647171271389186254442376672939310577893579783563446736580817337030184910462703764267043860374558100025662454661345200527218336022749395133967494115139531797778744769513005283437002902900079254782961379256395235859237987800385490413604635037609277219473552613091971067521297495207564192827737757576629898830336928458528250404630452698565005047419899010822680484754302842661448807956401032915878714305942279594808058220435522509286053298432839553997702039437448941868169615958307919705294991383330082105321851285998361034282932463599272002981636697884020001118100941978410151741664662608111119795529327716883351798945632996335866387866857055029050885048176201436733089341693826941803062118190301726165519887632424398941733075507362729433512974158348232908932585121110562170433960383849484187476358715562952736553698802942768319175294261185246023732754880599026666572320086993920386713291727369179411798752688999785302413543321488356875702410700660601434153811730968907930408158213292123808034142088950362185480830920882358574482186210754026023327884370098742623087983169302048208535122357873476556811972689651049932972686080619156824812812628351117747295840080963283584828721047794400863650982979057492904429012085711518500671621462291539525595778741646475807688408662607037147316230584522377326824078001505710803488086666464384146341599572867889600728417950034956150650094366295155923888365942716894821369211061585410536677795016928605640703452442565413089676486218633646310432516932928012136766335342897396959285280089922010227933792097389840955895348664559585696769792439476173334855045865628993764815148746364647288135272027280862884745319635151760822961773222949396223214495652705108600897716706577337239044944378976721451276345483329136673264688007671816076253175733969328854832406985214016336684950988332438238639924530514786947232282435082344335061578493258003611471459069172101693052036805402237180489951982190286379480791577744654455402124181617936032637590418324365942644901835108213231143170984407929667044662052477099810580643120496327518520032287564685583565214142281292498342164211816877525007654439317436959688487072896252793969639232746395794162759878454548215642788653201447561417790250925824475229345781658677032303776227921170818914430984376988775200308327143334992334806256988637046696387034962935583683152195217273437835236890889099813673544734276584089045111251505584762337183849995120660994968002929628085372396480943538388146875581581800409526501556385656200176324597397829029595625296939122422488197240417378774990889183975393044512949037530645001810976500037188821586609950814120256937712612081231028530509405386044254217138836667596334353043783709781088352407154706544465079097454457780551401039178786527526935553071444441995655684780978030211456831557481939383766324291683625552369992779663873128330609038644855983958151057912047272262217176637127464230065737935055553410050552083190537750621036341681935373467479234600024561355709248106014304657643608032267151071309285410295230295044075382090746328103747183163939951071278575266799695703943864750403183933409878183674672163383128498266612597183878753516755913751900386423804657604524753723698907041632773767860899735376163208140157435893454754380125544071593916177630452636046335374543197580886524898308278156953024317829602573305385755204402704540815301423457813560195109922143502236897935922258476721992523390796474191103365286857091593378249797259978292620849641876501251413415823720545077385444211580065128910188301117246476520838911587369542163011364492967845282807267966236331029779731671313150859270028831560232550094598513679607682292423402331324505830369520188409039568326052613905317873611975479418780946566567560291738918172641960969366243408941629048220233917885449308330820560682661397437894852162987020585739945877784764389650510100441903754789688477225911108926773225691130159177285981809550315303350796810259297819635117777517996364949590343484004361158319242956087677262492984371482478091183309506964345758981047656449490884143304281519186244586879714297369344750028139008117638542193934208809512114763281827594980040412235127669986743836199854006690043313648907326596599270262039736101703862961949130059556372149151232716341686456633932528918920523198733245619151218587021805065208435805077712022838492426635649583201599089731642398346047132480249977790569426654378339546951006256377087858786910398516724882631213242965131844346325979976641557968554673726585251390443676223982510180735226446211025990934481914789056195616503927635093450064195117494619303657056134486936102690832594021427646824554408642659477021854501461731692820575395768326473950829627397064084077176689826083174145895902549760828616872065633578999362736308769334921630022938647116514905768409834730534017621836480114267036860274345567990339058063401978725576965794552739736032873571001212129181574217699625913025995695947991603958486582139205986005652762855794166644246340488533872855670021451676006952402811741966812161022767180867548258951628549854883118239536097647626156542402274277413191270225186907331283198951721972576454421196906179592737432239586449717480613773961726173386438686535738284569161704776393976788388255404707861644993123993773034406200581244520103084002756361987935088799551200333716988281338969518829525549189665348297409783421384985935876191032488793743135571501400446069814221985373386636283154717946402048332010169525233771105118201308903100981246998187602314825980562892241756689937201029853804002587152600631776610708194674450286734304202257201347350592606693996422913199410994088659596561351594353577940970694698358372890311127088777364138220534020446549113943509388415695779323274019858489188731157907443973230499637757448959602856991038473547711938167182185723770101332661109268339921716501961291134616851803708217465333251790012717450446230735450985534483711159067743435133953688759573653548099503370403339577114354987437019437812082566813938457336978941140806233418473352557521588956784536203301035269994139482960182373493364046805014851241666497072916212200494398088299864209543023482718235305896948970322657929539092806188352536804224569885852477736159627665442703020302855341107575908806423197206396421702558323132567905524848530699575538075943569961207326412239852124246133238014535407275019552926351549881563045272572522021541572339775832865313172884888712750721256994781360199012769792110985941214781820558734186981007381916074010946378907168363156216895581250993224312569922788948872295049358506423784624692848554429103454878977408611896665156121302507597993360476322206020866317552286259067862099451129189211812748410963675153802264582829283835538413410373013160489184013138609487064705275093728375279453864135355479229613522264718515612645528324770249176914340655188707615431403874811857263863199961326181519660662803836175020237399957049072419812379768025007433645455496130819128068020414038656955530333249284734070568341099626742821533844747433719109706058928779489460115314238155926867190789004616319354949428245774841884769342322403616036250175541010399011085684461011922559931051969297105838000552441960939203540587601346689930146130427786403817751445418916416060364428400583328793818468704674373421546521767944978645354969873423727094726362463927712714653222790916010028252233223455608135613029345479799690677241996363541094417665742059749914893059747523219027675652963184018665735225329771850079931363331209820064292984510584583995871286843914413704509924022982874613741430860329489638874407901710590912492251893096207124652524807323879439409486684768461529333770099728842495324972977513279536972258615986314007095613072327336322149165924675450463497891361323436358847974595270606807506995027680801514965310447043403910639886419438816004443470982056721266627098010328694615408476425667523346432867216701912055128853696274558759871987019269599487258137487326560360989668619662114773837745886371712632475052025800804328618932273554967297459354478290751205623886868122280495362036071861250631240054848482451568363006809337778603958353493948118543389955863748455957114534563856905563033255815753040330634507744955035472831796500094091554989624724668511860597962936893368077522034362796719973883969201451604454274387837030728367391523982898641069013253005849880393757777519407575290811144578382665067719176961079417102962384494834628579605181366922177642554802789408475304200694972833804947403980853457675012249485449295907966563551051132054234833784100532785998043583534756913528901096049189945894578674798913479109657128943706256605748702773193965815205415624523319118883146944630079486435153762886373123221614342143502030536852182986140635505753989073679798832072555626912120863496410883849404467186020663551668033802782010683093095610700285049830328027651507182996479719707442687454181982834155406642187849886951267721059745596921645465985579897043770565138064565089611955891367811744753600884563982646376113254310539173869920466170356450151426316921660638901698624623068324687439278464851330951075121468160022651630700295348516064188000344981080843514748424172198988085625701231281315524814152620774018498078886408500535490188810513928743035107067684931501174009777648731718799303278023181313301288281848368448875795834592610852967359402136287275102958764219079199782580428393505409362083539517207112976445316818473690191792893291049819556704484153781064604903458109124811922384959305717252085517596027807263193305054218389182784203876029374848600235905208680228205909477975240872815488008063119395984844194309220975234538376081534090858411093042874886577117508301645011518638985682113722798693458852419738911465480568929033314793580759753161320993182256581603925276096654701750810011008852374865140746730655069032747006182375338452367091811321615472086683914445034880722297180247324469474229242912313036881957698233142050422719467619500852735646761780300233157396409733548965164824102994346838400920635297928576336862702787706937580410886252913135538377419331653642008884732575189981676474463070174704121941425942439275369103679614872928782483672060283187860722839132438896839777887567129313547684214450400997895537871818105454085011266549566113604829481196563368661640171827811170782600521138766298603035616943018624827310971755653184316595719959947579686373721502669863546155916536166349310517125899972346655623399718762103222324639733670948320397114813006253174869208640978609581133699791954485570051512910060994025413310133275302098176156848762029382835404024566188669702237443366376928089781033379221538316118380120604873054071600413121529880742519267329954315985392533980600266565644049671050683345483185490716622517708878439297574811317739054765830271649862679334773414889453831687860205132117493165083613114502671223028302802977731577582375594850451756400035485122739181775052253603783169769794711647151543529004287749934195803141739810964258549344003980383785960478387408255096601281908232560819660183458602163209116445490864415471026084506062850137633346646989248802884885488734295806870470087276098291527124118207311761999657525267248275406845712896166499903227531371289101007733070688844617906492068275672501197511830923902962124328688340406372322765728538936409359931998315821840509215749177546032285200319934687406446560967080322913137562229834209156938680146361790868960671803788983303690000866522590969053925684048283234233170358878919745892884348883695786262442127523451987285495303823611860839533412780291720390187561642017408550087447556125170276693514222018048367503134663673826759855224008445838083664364324523983359172607742465522091655342788310691599320685163965307364002173722398145484636936078139595641081069043930602250086258573120925181287637838833584122276886162204614863545882450937719095080234598359471186426702147831318385870695638702077520865161233128969677681749864753688060873354834209125054738958050647564547144954556848298502311562284845643403764227947558649571744086534197949565525725914942128420664407145959226771405211406501478808110359029447132274648267622731563284905779628010765753712444115827174076390490342478626694664748162215001651631477900585978470057080657464049999028626342903071332522165253721837385135130946273677518440660617088612539169211455491405283185149690126119224805855593389795280789269662289203211900100528954102875858710067467076845433338916307180034528273862767052488942341744969533080932755038037305830726408802033632835726838897541319536796603236315638098177592865150659512033765427607603848767020849349588776315802793132486176821260568788659003321116198501997460506555453516524804675162432539652663991962205258164468820009282701575993890361097038286096171532541457689738831137901887229294872074163193609379746420776649036197169410066969702563571357209109568970349116204233080276350784963948143343521791549673480717067807758421058709656871597604877318935543425694322353001475012926702219917060602221387046868402083158092506114843771724618903708273025381135720102873382711157554385014442906834904567411051263707330348271420363205388773464949978056420398456030834907772513373241922769659012066469141575267368762368420322277240195766754348694214976544786553285118467911498469157797558977475945541510416342986614291482050687872400340122028575649551364062244276512454528713820464599017769503407841729767385746177349201677160524600935620699844564745867797599324246290355357911325366713560240967078649200453244811146134549803143266710692347218634500456092516816561193211783558499746139767035239325213618835043210007724697682536990643305554954286428001996175954057625077028382083169530411689875404605918655757388871830113720840926750684560441266453069443499454916675563075000528534984964672858293014568887610864718372984023913984996455978988594255029993020281980661054600833744491963108038133815943299369734743635434104216821128736384266918498946242352467544849221051416109354846265568499154345565456867438281181759342427476852439981337524469852722458648542586047621240685665806181135859148864352976767070733463425191854623821553666560982814150622387701491794757686644955569558968365534457946597875593016434634180175498573918889936227949585332113408254761420931882112974634002442710815401861780390822887341727371136150264288654850252950792213545333566109158948438347287458953709807131002609893580963034351694642580700732338116130399380884363807790667282099212776256398364531950688977386053793080153110073604304404722467952254270604053326308008331440801520595853534474098299838463015381643761666815130096451278245381776500161275733084741381797481429737491124065768115964737733769864293261064667074329202124760574131783983963994762919908961387781186478734373724651033452010490732572420317358246353018013003497831623469530962297892075180637166952056238093360393156834606809397674431912091285457027784974533352680340460915388651536185112150640083865277389172666730292422054087264501968510792985593836645203303136723306390850357219353625900815187719462701467745181320916016914603180788071855153432749585368452225161531874917563617766905080731039750330909222176559377850201005637151137753210492405879348404993063031044098438619949091253450780154030645695783539077603831677381201928096134822454055451668013782283763146952247947067774800463928465918234522942673752370446663114587618090344865652327368023652699573521339279210369009363159333203493262764003540988010082047052790747446011701260490690814278454345184803279251391775217831761964606390160373399556526149344213818477709152315120722948125670562406020029671377710600029259456397809171168668188231982884180852400091893212909438721229764797767845190074716338359824667970935054733218154804242158927705424433264564479571908571202332529822572501701663486392111216382850654559886846672285717416825836594889436232650404514683308494314673246799759712309274490774446451525349692780884529095235780488883602980289950986094508468683985622700406179657825902796576889749316663111354349263960823432157490385191516280550779620880112349078961149961720725022183703021226139422829334547348732746284679295895342024075363933169721456710811073417978530564355636052157750620549652310212773833961892408211300978250294597334038764192741602199522067308721917287562011359636543517527127289283941603206519493342878305037059879900358614870829143822959112569095365382043022157726326737336528467727395832823753125023287942507430577781515894285364539662562722238546417736076825072241681822840729519149057038732846181679155343334402734908151825265236782391137249334420812811722048220077375860927924980074902627936264703161575771010573016396714922313145053169049922157348269955827828094818199723525197142922805452734595703350791877210372631136883615924279269179822353376830011265106441032773155508042360711330224435143273797122471446400051503922251462718930029545225614454309273469405325081627029772785556762250017223787343324939534090478941515307755311701270422917031546411391979768104321829319155143845882045452304811893045924028957848765478050552549768525985724091459167214061638438111372764936690713593220734787866391481858483603092520056428079230273074052457121006320468725510785511410398418211751648789155351817296920240443947920885189964852388268245489110488422646586192342874250925033061552048207268447573860259998483835578403285199498522806880610836708097082519271152772730365638637727521567888095798991625992389904517256580464394424849458202267545255267646008746505682621461152823505606348107908145198852123041595513798648375863032593682575975944923824800990123950053418546832284030261283318405077280248784118207768197065154306640002490188741054906905935605603878887614265630066872360963908845665110571650255637243791746598784201930885998607990834586814738019127221921034194885842844220881258987882774968742978170744783677721478434467427435525290922524064596775716556903381700407613613192297160830688303428685372273794588226894556030405423991973954843166171747797171251482017427784283542455095060496109471881499228559589314515972627174985403612088251159501478499724472012958671465697519658813517528667615524745393829008171430821327337196561613786358208622089296351308329158747436499610091212534343468212278091945927662295013715582482651773825373342400839241480285677996549319929533756497815285796902366836953914920539665791772358616520301381211327912076290148489763052658010791612245104058644721055952371997797157569726617690547676717538825413733360216090353222679344415787641210943542032055535081110829890648002094413031362569622547528456098818981613011603750659049561154780154614477216906934339475188706088686364212837580161659709987136210374356588121785801778632251374677996751285397026379676333885522675315372987502609797032094428307071336894800020959858978267244985419584452444483036372953050231215007376020674660280971216624376244925262644018661044037426437783780145614959553215242912152411745797423964339009322650236046952962248712240485273311904563104934381498519742766151603040943682187339491241966708282692753019814824725543058043577957516651069039552260723872295954059588601519175352383038995406816925415915747561413223155393941847811107575649275492064390723110787016726272073152903199543243021474516410182097874206680230609715940874470685021989783134453272503439840384921537726464828775227546501296602701329209323831789720236194862620140208438838903311613319669943428997899700446455587842722466586660886333340380116674392527646698062547288983873448229267640187683680490181702019056460000628187147709867913097095839731200503429736043405660185696516041449028444153837665672702307535419729617549926804813305620512215358407079799206950968162512472832890584141669604260350291240705136577302569067053488803424554108002397299405311283799719187787907288587343390696225704556350808251061633769227216589076497385964321864767911413966239531149171913427664069112499466499007658680093425659963525271018972397327786868139036990846520643829625787733935850345448399754401648782776226578521007023744856060131386302883456755508566091286908963239491431609637384221823386960655530846646698960795248044935942063682356464283220651973901798143011554347780129343434451213083088140883610056752834766306147901360273357166520960969313920365948620671969305927074514025354324277090361502385679874354647428797649323472631459404061922096083052331970398257929463439625549185645818862676254846010619439997849783100529655828708621979625974895068047196485351578880450885329129618068625362568236493154761719100213194078827042651420847160527702430112103464538051989169975868774234842283783306749823798956162386104395408467435331397309850622141220541244639644249650529307436348232119195744158613202545430407632056746046321694330898085592694647319217789349855042418471670486799664103329630636265647670985601059815713336374550240501104221903643224435543462584328420961427799608747911294819910410540303158029311080849290858181414759821374234907855038307338764723941591166524677184104176653553753340693541623776826296486931353764489481125193112749898984345822174820083576544200846243789213982852109795163711621312243899682774472279462060708749009509143486417856814174534532450787817409579938073391390934381609644203649929566002272551648271375340279454302058874474488812560592992291170297651113958477298039518327797390671423160005171380545185075321827141015930636262159280826819219497886377778604232196438350411862224217789013274949512657348613870697412604011042751343505005742312312687379323042570073566639927350438324762459272311881056739452193863059113190623492108125813987494687606486736432249438401406496924600430805757034330644693832985359236463106242370883764794545854992154720627892452488936277829578345982205635106374973019475185414205338798791213311327651297880853877244458456011757365062017383036887059032903165499291720625744630281275503201782987030690610574544891822002164614141912565613589210486634663409826248352904051386545421673178366412094393272326995897948093141842547260145426343651623265920512688459980727929548518349517778106222015601561222423579632420636785654338992787487476576373748887680919836659953170813598065794912870236269852743688203963492861250947154461903638129945299887234263248110630281093034441342503443358389544357937170614850730555897702609888071820132906088620157823197014313424613828313189212018309730897826287528665679990368593035190762217752622119417738456901500471836308400827568129080847163570465310981506249584176861533153526551279643262585862337360976215441953042171868766610339998040886103004755389939476489059770271910859136293853411961719437079915273234446185872810334127895300692341564320050956219735292754394458844850659381431654038610060623303638055167181083536232435590821269583065222443621796116031849288600214549390216803826824263330256680555621044757817320951230106414439498540334802837990581664749197975895598279054289348744816550203718436897267244787702783574928885744514311614880098199548886012004318915727496028740491792580695116284456009571274690393244817938232049641481091259944166468908785684404550541066059142352570714717469946317975925196655896090889110977304682892042824624495906606370425920170283693443428007629477131016240043802477600269680983133435816163805066372214344806449450885276739162938628778286326263086755975184852632609070877971366002706274745528286856332096974303666910951429507603256537130647408110204956271321078084003871780316046082941003016994497713407293893615239910894674946536064353446727116781413309540112352542487152153546973364580083532590360380359810062844208424033863800088746907992630311393773164854731704812494396924893138482275594051145849314607689899337132945781423883381918580994948401352106483704365650981037933451310136301108835599036456116737942991830067677085398275645264342681545741141826904608469688613295144291052606706256232616410423239659822158665786273213750784458758616772736560032917116994731369847847760036062762903238203740055702288657474313263997022825737728996870499205391593701039870846212813814848094865676348435602025418519034497335816381677773912288999598725667692306279451399281106434491114210271343226527870944553540433390495533593844004315077144305341663929401204567503901436952317678953748832201567661379559836627733484473568715181841986219950118706770313858173039604928381485227515073347323127355982801147017865206274685916655419820465748296199738842218777184983974192676184822830648604738159228286804891128955423093155646544954626621649096122126159088602765213255469506266519910975274949450462039274168679415879587884729587745342743500292100208819592256401162723021808228501433859515904009349543893300945002661370373904765187455411499064897055226796106872238145382877761502723470238076742829722154695695341019895628671857135443509547140904459627141312566359117657849872908109445772099288089443061605615761643945188042596329134195493752230101789969356057547618555062088261555867550163371562076987452832218248123240974296453478449995009970794266437740586656485560292075789128661275145375940573879620300070460215943205116069890868695535898861808996943325757454343522095577070166035241811846690478594774917840044669896707548206570463515191363411798698330885278944668223530464429750928210417732336141589659092749931223830973991853673664387976964509591962415469731195701288155916128574777823933314938213735122606817783590788509008376715336897319043982440697572887044528209552232263856343152071750352675393893540165707978060839730891695796966155893818708279935656364400102104639046822216598603266043272502401580795308472668906302642548517723116481717136726499908531213888376680565854792380924685860549488892503546393700933992943599000519653737933004234407336117083375577227722176989177661230574456262848010022981399686736280003870599505158018198744006442480041753217677626868682613855230471479579742369925239541594689110744100786416333362651129631172353494103632954979507920880028016415809852159496228001089268848486867476661903468573447212135241787282202727991631822395911029471001767159072414902703016484660122515077302275119448810544756601714801616998258974877775301321030168398781079269324201889276683790860542370841986039661566314428866365154594599477087798125229535690416691986846642055640186516182563052174211166296612928162646547269945145620468811110742120310006565543969233528379164437397707285334661944385136784663177040581148806365773840975147828902197399841991384228436216916714245415454441025813229797558216210372379910241509567045351392404208431165171604284996570249559442626133669844850429667851519984793515830750050663253559826867649102912221221474967835228439866751916326992647647860485994954960442928292382733462227171642777435297324775138607738527693422850815543347504990729441479971123388085502715923914018046739955627611519027721111808299816972408938202631597546417298582929640056340622820729592625906961230122518242933392259162359084853968180131612053508980838339740087712741936698369579195657588154546678935744342300212794996997500373536266584638612341272802508108480495576611737554675249273359111692524849545302693126717160523967068530733312257221316890874633055403599267929635830148003588074981803139123394332776836991156360798573432693638674667398536604792156059344085744170961179341557980229803777979700793980738594396038587968120392258465523001385064450159110118374566741718393847521487717864546633618642566242772348657297950490023976908732848817790747429671349006268914448247018553754425667225884482969333297829978084814836025175956491402382856583356307741924116076024503919805704459457089577046105360111454201888736059831129760054502865540462469159526466994010580126220978181815071376368952468356510379066993414578577220785550578734585486602799472699561208474953276893725926000922654662217848978278421866439295583306034929085879253134394086026194055204623967172582618914977790077336600185388028609082721888423141416333168229467844926851640455662814465459961812375323979676783800722126827472470325445464837970835484105573526555588529585332554414985209571976913065601449520874260893015390410708060845664493410202038543321287283819222860438193168142459745454882091415734732253370370054638121957818902737509057871102362390711769680145643716954951692161763673508368342093559517250873083190080677073345325698900295488448859506991726739711891685262607989815833626628031014279445100694978579574802987637566411749919283929009935181186622809274372761522726472270059477493191435411560117867418422712765980957284738398619181052984119635195346969344486081006047592716436831209715672206586412668490174940974770792817308661796899419049479970458196594632929397040350122196961884530144606592960824760233821808965157305890730478499655431130569104227746771063092779210925200604204757500829923098232473480803918919873030195942051374972816515636374491449882263834337865650297578350585715789664809563592462504427939592893507295292243739429295409355012296034838614501098988387438425737885574869281832397944027991959367450200332918196633686877498287217062849343398416304844486254130224519515850761476441668786287388460067256893089928009412421921811900259832290459018110764986338773685027159298031577620381465731922707039471803508075742350387291948506094141638033548980222047440771673717854931390183714626551652463078155305352009893804662632650091387864336296924028085052937146158955099832931773162847980618747496194806861765548443417860737782237121635476382454047540048061008660823787138484359107806500303888452149592837064874737775153790814652398459602769180319363000923145946984872025497655720559700061919816978171694215978385528100007085763411497900280007613493106698189717456207454458302883288857485471261203481438309265663912939071172316455479288886491471721127421796495870267549491012960372722878238239949558742405423302396911638948688279899388303156306973546921120776916346571454704903004654077225426262009270501133785207386376283306147558041714764966517938544058059530810236689922059401868771282758265113822337345995162212198573934975885442859814436183449301561941390635489214272971916865394075821901334411903259236725900783400672475684162823459137487365155238507422949694517723982039581857149119778532322697461870414717972403732061895972900738012394299437046810917057551891772030495763920919533863914939608906702132338160490745248801253893341990131306675020476493467904723835533692794995556926564916347039047976688775693008998534491087076256308197704796111212895283495533723867393548426637845979424731335798368941300465963733052251433610491014014147225795334907326063455980656303721402764024371982675273735270817630435318328589791605484596465773453458627410903485670558705501403660159245768879195101021363007116224986697257964607623281809522286242706852316576454715167751549584348147801032024152064849159246691681760142771138027737471654030122159347804965850369512654821842783231882381117931971294817590743822554468057413855209625875401986058246909415386343954923905051454492108240809142257977210493308507608875124121398049439162654236122926462146750986473587948373158693676357548225229645721352807302583210425530456080886857977692404891270936759626402550475765361373020283643282577649008151534067239257008018972402363849072935842394277643303689603410531692176833775481677067681038567000802607227914337669100604546084015465331539275038286427330693303687464584379741280682585467660659850690049148707762889375993714938779539451645398119290288570377312166270684544618053459923920897844221173725915161785967298357121719614298979244160448467720963714928351176966983722763890645665142095976315494823503895081589465944207950633233658720251132869641632745764074194144146317742988535919621199430113744331214225811710766659527440673531894420273377583345846751479655127193783184800421864949339643643111313912611293516227931669933928761116288116313535390687408673918242925260799905983775323549556629157862948720778117746787627585640450085599021741875556398939827969751064920570539099138902358141418548303568033426331843784922533873324127442867880773727724136846125544778438637827429218787490256345968602281437928267932750015276120234125508831028407726456281805482058183248145896905642609225063024072890131257480990766843537372730980277288621323949023314998841963763517775479597130750978097875773431685882512988531841196682836836182028813065877373994818348633757863085130904027701463796548942927032248367328416310562255649128498678531333811642672395832113524137132340710055132131927109433248954664428692640921421834361401728471812547463878873634645504939920817136810175636960748862517365516245278948845616712719021532960592128211059459491014167156553918128670391753136239966343561147870231031265168875030622465007498615947962128658334141491783088745417181330917744025896965180796749852990309996634381160443599698562848770096927114874647058135411366605387818985325958210871088419679290215646649940308162834855712859748246413446228796376873090525518277825402875595263005770260316248283226666321402247650651196974646328153818864141754294783353136341303322186587440492402887482412839441851725679383455426874023701834460141820462947955625980011793173673756645384026878116971563578813535264054996222297966138087962720748272925673428030016037145132347767683885967931100645619555219740672170205597504197133672274357177723680962907850825468273266739799652828722940146998426381345450149558498141811067012614894988458012379946515367433641506686557413403002679062635351265178652002008005818925897926354283605487157119797435637216896010705436276691928794112084326876268057326492730966213271928543344472285860958397625452398069097854071339012990062934100580991046283951071813151383552230245312844335587967116625317822478428696524355282476982303894825010964538526534846858663034470571362075105835929621653998080685510597064955351718185236385297425137284018663308640691665564246757888673652265537652433890695406350750872809048128528532069893084852442766696517630155109877770192874325233432971581767239950409998689556994755433910885766917078096793288828724089193877693460587387380578336257755664173969836280599411618275744394901980792294850370884968084728916766004385351222361119771090179162814479928514255009607278823435473896872328566453460823976720085215604685057713396290617151252329209903423357020558104678095855821812883590680512736041973858478266369142810448365193348276784702497363724820135195229984667813234562380086960356313757991244694176116828550782719407423249712840353607636894890914115295596321766802951847194457550842274698808422547872282497981085566904947450770471355069108062601818712792639496855918136666909000954101981605632291720579344541156006737974257385872445532309802033698634826941516091344713972661951334566300401633357416382046290992545812996682104480507982563738833091431086339989069393270401022754731361469359408022716047846256104593649007246569432161948904555083596126383247516637306468239775397123698395134812337114008846717827505128733961129257863425286221058401289852183714553634695519144261400780021814547074989912384180504369501443821911389276869251472052288889097424426041152513661382255414425274154959210041472942427549276910466768043702853883902632308706778993840170725869529929821954757990919320465582602327101019251205415260605823336475334603532484921483916172280822064588763042672361266572201414863355780169109373013200892209384248930547702190319665081035377528051646919707543104905027900045816117857217336187520458450330027773905518049094105256821041473288747246934888474622997656174817373804699395693603400036737707246848398648124809230708185556849854878795023176693652222595927942074783747423080119239540132463171588008125309874253798970500787377904590053401151846503547516761366346752198802542125749623712058843050574348906932070167418065372677325764687669361717445609972865509134968831773934802166742309917994323874945670182333152548957355294643169908172375780208228548737441351135287134559901230052724743201345216889541350602590523597710654638087846719224599458731914766981032379253706397674007525342689034010435876315084387978929988640177894711419353944666541213921593697647213575924067450857039579084814050724319445394419580258983449313265023892875754048607406678166494255679436378375165703029602301091077670253073400428089629072987949333251525459180631114726036069431552626106127722706169817915777578133391258714859123918079822004774992189510789408968536189342605973782824175132088037096133249767938346075961071867674502214109799095575302864635304855685010538646662540022549647753051583187595885041187287171818693510690623763194218988201450687022913319788893112125972717016048405482435912467597961001100373274729857554988244033777038990821596234382542295079519108265725744660583238315717911023331030245886020041185764027102183563651778471737762076117147855752784716951409387981580612256395401749872893518211392453303944573614812710075815179802029514233529039705843230845766147327918588091102352413330920826077151122642421010633814798035758481748332528794846150960879406848411554043870012164585661325694912738923360222605952922395747084617602894515637039655585602218612222499599766610083017573858274158592987044933130501220130062546085043632886230980673346907876608141264817430709687788131522160242258448612087753878280819562100024989699454186296430740261311494707840544733698545707425951407557782890002780254756728937240130672218105062051452398322736303131434085515088846812956459782628579630717698296841131705950342559775041655193628504742416058105606852220681615638527147291415800210118178990352095124028981381593352274348487921541164393827152511592619888129612442767648860762291757227938496472710193006911922208394305868043906015959578051517202454894444540396703185608220085605059529757730233400126380284523476342002026307771009792949366594090902325160237475018238380138369529716142677799659415075880358211416782728863242339076039705000078807105054141149225238576937701211884969924555898163214506200249264169209713268518804388833092984990574056564621242917760855025631535800619410764500688648709358199684103619251660372589158376166135812643028292555391709460603544919970484246436636534942846367234195249185809368402688020255550416324583799255268741717798133485240281618713237979009509685892334648722189154796527510562295539797037751470596324864154500394139435726190882352423160090238674486041164798571399819225691096439275601570371542659784176268469226970584627139808131760490061061902031866600815123624784681223929422841325090522605382756323605198412637657480634401724095648025564294076031615983951441011872830957786532960987764668137785722861624641767805852535936241892638438226657764401916888240886762128741573861997710004292009129759733191225958588397064840447966491424328873773043715826506283147611426279863223169890859362430869753915605837217088090434032723572117888222745201777988177101690870380161388513200898756992381192786606403064190088545913255603083421683002089091990760347227791370218365720611440742988293698376031763196996111551651801516292510406838401286746031899216329080145128434086275075590463865293957212801255719209491876197471462019897765232004404843376761529295948041766607141353122802869576201303171711826092806105507170406708991545932109039158822908749573018225710591199270184774777163831748777843026291270832117033178089862109163320499728163453125877391062125543008786362834471062099445781827805892279031306655484532863842693603139104478671569010263488224785758222470887823422555178060940090821674394238065610947686358078080189613348251883552735374946759228814819585914129633354028168933832356111318188242065871192334091842333332181800352989911274875915119722891002759460175075753802259607069881829624494864990137621831877657153538518168644133336015991972011577710866681452734132686883999782107057240213552124349563744748828682090656023435605443614307054109841795368238457548830053613268402093478635485621868843653693456345763072721709372423264520739665619915932422865618854874539459008883466401456686541327819430136909440215974702738139587476666124258210850021923318399954486577799660603778396373770524301861990728247496859769117183962040900740510735100382523724978882722119784707559956588234652376728797185397185261998193726364496013187272666806373293020008564042286914387274339176384771826330343959665347783294804122616343373697560909718273652964423504554534252515639725502119113606847441485602618859217453704227773006487440371613765510144939084084827219415671477326322093318923779455407513162908492972036429451266095300458739036144682606141324781294506353801075729624427693932881271349419789874803474435440497371596783783466491956246152462947521211081246510326065554912230266046763209415630591097483273260691456398701264495339273093243688582711039234344181765216717492748204522336581499200309478862608427475978919747372473704767149807574395709845793397908547463694823940529178174764626909295800353333440666692576529738169712803837174397241825922868543183547902176654390391941153350608271841123288055834858585349009046987811537517267788904595838003843405430957427165004718256964649147492486249463676683965920610970023822987014706202080619268584160539871750271620455331265307459293372755101432232861310408298143562411406075158887835380100723440950370438766710615113815243754470077551948026532299839938693985096911822302933995878512830200058492718051576473087319320516483488049909881222564503642929069084658688737263376284662762702756651306761850025165775546777327378685704322001447051014453719671463017114034369908348180268335959782618883614869209648885787304996227675002351626308392259244318651970447741090654197812499519981754640456767107304550016860478486938396024898240986603603407197409602265327137020952521837666960963267432875014876541300866390629956578702042114450468265648252938590722252712714685709263032528019919576180370798495700476326816225145732441673044657599266713643641834336347960899194926145888657743241189111009757269733193777085142551976916898966460540413711284432703248803297374269219214523205169637239071765138582328156516043999077504826073311615524484703923702130681636466602900454377475716177508206274908417855032947227531252596092024222801337573558963505606782453206398712403054189121942771443912935278037630339601196733846237356743494637964571319183337398748764907517726401094584674387660858235131894995961948911288503490740231596972305589317250494108235088502489584763090084390616901686935704993981187401818213523012588471134644797240573457597121712945198207143003917039794268484963341497956852952603632329988005341124157622972991596581864457900228962443542980143036210778943331002638752972922974983813312557764893529955301803229361323606130705700765277028272863293961195000109597801110780629577514375675350507842734046734602156161230573203521387866799067748487304250310541126890433269599535378648015557808747235621525970636351820796050503892502994245690084941073731792232674462792564094010992788281172201731829161184002849401164676523274039102188529043037958509531896887821204055308876434584286791422373526166122829362649943651677377745511199624331849248189370165370055738246668333744208263155883750437250253817691014662387309318043038803249289410816493985642169916507327166357091225730343989231688094510015292010623661186377495147819988839716693737350802098594383048073918288544990724245661078355339150160939122027015125258108628538593129725468449964551613434310837073753589567837191300798551717149117977188772540505232258668976769857497424468296203817574673691571374266470560123613792432679099520372170473072173194201577356388982544126244277877852986207547796996993152815579689288672841066081060762077433851115029006192588096959328002091014083548780473918999720805525262779423951554730194250009676689883011862254931096026405999340055961107907551602101189455186382124723258867504310718998507779484453381025768055576352499941955366395570548511106450693729467209133013064099194677139562416963928093459688265480744708361021231510714780339836874526671249943061388201172286267269089656124000668744913783365633642518329715507771397174567121165303599961191710266459036281262645045351633366134784784331269157986918053510645820157809169995270219146775124884561840260787528694832562270555711273141088037634028833101744034081797937745582237702337161858198638149998219226653248735380384555096663142981058905235479575628731778291382686296098453869112223785510123906891714356683040792392403497677727589442014494297673690968120871398928428152446628033004465136639838013708076498579494886284343116571844555439792912412323173899327103595866138958979557184405308104432786610449588526304627855655412960079016608352847587220193247040329256055284026799315424719652619542598253477726034704850430681012320272530691816843086460470941396993262251782160467889710652555194737633081254178899254194638865918160952744129910463018458590717702506427372909004236767164902233997821630443266744566055648095160738946337716006502133140859290782176715232044520928156199573003815055847960802074100731062899753641535125560733451935524974824339172838929160276338573818248803671615218349347610226472857350960514842458347632003733337560109248675752749949255750326987364086387258396314277898820897247748602237223641062662842442657943309861576914620829943525791751489602376670426187442708530339439395040116929653227213547724754382420351888075574485530444720717182270027268411911005678518205399591118117837665298791210057758822420162674522731462947559068355682738482844484472279459800837772006171428223874501381103739411195975767346490845244726020373412568984298883958337420830187710776403242609290150075123251868701332302923891606195811396976298768627198014991887874846983109132933872186802015577046958680747903989354764782179112001951608737208026424375316734705375872658570181023717471191717118470142388538299224366719370260790628040249773966755941474155438008215030873541319771438978111980547802610913307360670469638470537482671133897263610842539923367707832665698136120870983066831336955274574267155753205245467210424892855291403543438866363173415630993321920320924554522425858102337159626632842300226972879162362694988610911732064448910986600931775762453004908338306851517921159369964110166627235942017373403746070374421363930380025372749704864706411438387399125275714428033149067613426888416104030106850236329950437628450316745880437711619806419350794997788842444311811610344973122777064010682510801481998340298823677470143769230462962102032571780740175353169716593476744864455477916772132832038840612551676020982352320651600869936274062183687863438581363919090940444424538433950580733936775651039975311634392790189458079936185449336857995746425565290748556065408895276198686176486530965454075834203148489043511912145136246671213105447538085593624673700040285714922183841174495414404060369912330053685686325878559968920419921459819830729813910598552532394737413523745048617288486512482048648025819527358288145047783150745839810395086812047472126075399730131396748251783669698318100363284693306590675455616660915471085523298656853740946442219401731050733100303590063685044800893037443579478054488407892338384794824777589358113381443112307016755482748544137287904399968335021857922939170478188712535039949591374460979689480427771260283806894890234100501465999178404060215287649497586805136705353841523108301050094880987964147775267817505080075498027704290326586958365238702949983183993051280696261596799776839971403978754313216186841651598368801797503413871919133901601407785274477401886480290074603135665715343044119797295015917372217351043356801795665737127406680484042721393881794185338673701563593628482839740158795230582910115543812758607465462052164171196999650545044914387119709862262542150858772528022444935993306451233332719564508627740813670002222387563417685783844533151793520912006755764325639948802108656894955032583944783909239721633146871796720642250903483624079507570170103241020976949096759841895469519905927410210176329324950403442647747311045258279257880308643778427455336998792243113225303580496506713153445862068419942969755662770932202926773234405940862580425308542510473337414145623300417372721266679321259540864602153063812787166479760995919728519642976694972444190880136238964548902791383354591484023792587259796117866173130824224282885546950879523892248456809908937545315162109641729591716737471696761099700073963869903704677124665185500181187444897487001746297494725575826638051791910322573149461590181873699583327502543532130356038093898355515076725660394551778376022223243904301843805608386373241477302773071516341805787765649450649949226985626296533889578043012287338991152273414432980189251193588938517361858812669750850356397302179659192854857916826842414781551761876918745809076064689268377654580406845917230032921564353648920420617978450180471060852402945008669770525304208479696330390972863172794075722478311165307914307359586046821824283920637844161209502037547725865283229117820658507359514792350351158185883447841644482627642016801177870658325673544270423496889181231747291361742784518658070203885229262805143597300174309246920933873959806621025219604013899392636889282437537900598479374987639655767614026687870816986781128803884881868839425096955633381706392143958078160794404681243192283713876309978841672048658583455448250680627165776677700642331903012352445152653475972457840361133868545243382958857148380000946576075344171543020700455286191142376368390857487342227903344261181986420147888276194073112745363762589760436898036776475336316309376655121826443722497525455651675106331392346151086407554458701304626503288184443231529915396840150448290728192735056504584414812203153897431045070860767123692107212144328630866716421654965876560050751344852433601550468075479180082877228307863114439980790527807670808174148285959126408425311316741357691814170458146574279834859919734928994115623930334875341966865957614347343956614501444852055566501090678296352889927625135897381219386897754046947047209385829359045799060996642337089404410170934549338343576420152851860440775542983485265844850356873943114738937887103379269758598279033021619174063003470176689891484690458298376147247242150125505743000493900532217775584339481239539257186308728713589255897010278057303285145906115209710499007571367217846358621174428138293950943273498769353059239265064425873748926875677531122598386049784317755380230700906566648573211201640001206817176348406410433803563859969517150949538541373334740029879675435375005003731096930464958185306205827299960479665595070005229338823112790615909523632233167222549133625306999947453907173194648003356150077421226374266851743614266164565562446827618962818824757274760836091413528155461230107252496037804372820158745485859581453603669441012155871057714068724024848991450624509213310436265121882499197193483931439763038483833876056241337073313912060865297647707528377934319607946347441829817343420004187887275425075408168574097919324400705226403271121933535345823141257202805192234949395644736049902807044773232452292086762040880736855187706861971514094718432571647769882155454361026893654614999185200713862189240517177050022608704178763643842010274296241563504437959321558101397749786249493275391212247108617103846776947230870663432687459937497776768569800735116553838590429130840700373755539234248549746053602394170059402671972259178895000165200926496254176160621194547381017046442879326056804751368342410274121091617217420632183732409715045259038594864369326635838901779574331672482272429159062798294473501179189880061271851515035201192813438798639312996878973931471843393162998281736943932889033524916655786359199637056681952622336315270453381711795965479158724521094948861406822478036651735856571709679920411719056468774313817174060997702729299228854605309514907161433922068427265715992040052122310917721703516309764627683822534324038014328134549623565367994323925828858235773291324826146121771694717935647851524465939482909274477993770483480662127608811043699420269243017281884707122098458358456897580784353053762672897796454350154944937760004068582309461272045370911889538983662187780050121365702718029521186583111544726728502028568643497570017722487945727486872680899171637528376601260131573930320519424072994415704820597143908307893046251011020900959175131368355901310059821023324692244837795118362028678205407091149657571211043087266058273516527148462289281174327269906908030005595801040014208940298811116442559240620323559920252591368651344478000193148134876843193642482080084460762260481024907507460344501299401542851022200446231438650717578572991808018315851499467470214284386754543989928411261555704199760396600002850978985028798722855469618249448996253630194252980682080994852041402726300994213563365782683909535604945317916531685085341367552904066455214829121452373278916369924912500745775008452615938887343409140850763109032440866978932137925525756974183184659308275593465017997144063200855539789192042869510068032139453760902928173488986138555011719143324076335177370995212256908918073617897569692812905402140378432830990043357267514672743882856115961884284982068945231865541194724374275456066070596090857307264960796349639988787588757000066660294913222714437207728810085499219410553232957276240524453714694081910752405467145305515855626844199349352770931318690262094559695163377338739908102846032479652029002846492487555392087216549674018487106054253062539475909835335485255873046385821990031999728419097150765055023935744356412190296366082587375208108944962985683995920644194660859451627641013807328776098629134040869658241314581549998418764150134402553143294305649436681243079222609680355915485599199475782136825656187764108658247359094110426051072982426650347622759948681189505195679073011283168208985592520730553697448592787912795370608758470488334643453988100730816990391030083311358502914470330414276593768886015259380164090792047097264703428958907794389323410888785823052278921405112892606535615461382070211389628764777512067591933856356987846933586291338654007384630479079299113391991289037842868441413204355597596035803477013997341145962805179580807046261111322310887096641328947403743556381986483546852082738752755977180109221161488274128987287667086292568653583154250254731592468588409673042889001520599621004645075373129239822918161989452594254807169526881262744216114659211165326769144422285601357684858949057559225880158389177851728050445989162501846469661016016911494629216116786182208242904398862271310953073682697443755476352210367144083252685521274817002049807018529108936808367721180751420666399266064841570038242529753931781511458005976455305716057876706285878410054463104638742513632153365247916785366124567402272952866477055463830495215098826198210218871540188400825589767179369768439307613479733469088394398568581722298851578129987222062354683738941437695784715456616293494835470085992599733201091668679802598278529383107866090201204785082104046950939771500910315357133840431409953573543014244039870981512746778110243428880996580681034873834811359048873336445429407226752863079070829266348595127560576516466188665420826345547880833736404759608075447477026862010462789563562374077958711944836807427801327180227532975905011244888199042474524801310831746890786346555156896817918885624315568963377527774779250994906458702051565762222388231600061985258363305508760214163161163976422607428016671059728677918308808341728415324513961743640309399371874104352412180869804851528807840023392206379250918423007345317980099990429650982949610589203528480671059165913300480837186074677481572661786890046354388241299394458904384141863472492596428446424119799886495365557666480448513784490736298338353809430039202552272828401569029423431486331197353284941234095349193946699154787143114985263549854716385276934139559290013210413443331860404459808094022286384912235730406210771097286532919350173455241593838886065187658096944746396980661143587672754138853560652649206019975558934278499794436777843791216159761828962181019485762112173786142361697867428293174726925336765724428803746746753009733262688802648691690216798345305279456576973549527952325716563722291641925877550100628980070920585775218941384821118875505196352439966933769697619536968635359993121071877289332252146014921537760678801830320982749010589873043656624486901785389382935734428509621777640888085294169546499819193002838325623205471105580705507588822304988633244682355222497298364780489278357236933499365755412345665051787050926844119910648383223508127603500419733446832562452441174729696248816418568236005186338672081179399143173926547860119442009766026276974465509536985594579981029748353046065136158932050179225419324108074569851218927047467239276211539421704027690525732949282928524109842293847259097546688257955206832863549782947851304925251374168228810743744658161246331730672819301515828808018642691160965319948444010805836437607120719979276551620528419250679297022282586742790901642125021804055172490672470097627210307497104683857370876291471693263395518633180945645154487939044445068176610913764466661342720829847821907653790004801976767480191280258715943943661919378230773782505541266393501506932480122336486614011246345950470633576167215355489730446178835952096042106972769731022224114843237330984771107497312627246685079629628010907339457122691500288926588803494896107344095108187899147740747985763617326937613075991604859829033364879682461434449128511156551950817327012111050886926235983751203467307390522788687411224881973621395001637171333028152026150330421477295283656273033145933791054905624387616482443703490514103237912070071730914895799585106917493458590946551896685647300573444683497766822800768594879976775985787670600545004395749516284749418320070185154993938371505132555975308363704460092707297325484482168062622032902524738185378714636308373705055711234330223347647413180255598945826818583728398081918959479100135041738217626352575037739370650173568399814581724361223188797627197019810204347107446692419605598269001024941189117794511433236521731674412240973784782713135505440655473951014888579536014034665384344069615871534836491510619865330221273647248578454120136063366249294443702947349928069069591832022031861466431042316690635882652371393302127399393398593897398185101263422655691371650418112214566249174982837732826406073706105857319948435456985836843405592475358300159881059737262822535444698955629435390919584412243013377277820584191085337223240945646834526789556419886067449491064893509672065297318539415275518869519113692112712527538015494088051102696334169900886255261998517570683455857192682456165967127881679850799716144368782480987851240147672187152885860966336559684353044902859282832092601220512202868773395429318988496818155670732720580765653324005847257658997187441760622581010712547242678586923040744654798854082904679708600686104719626765428912692125726077859680865763838438007401010008826471083875216479174717592980055638464728987828635979067956565647615623461769141437294789243506707347825057116208103776990102110023564475657105621119243689755203591746853638688453081033106610846331524358470784881628975989893332528228349964627329009645707905795424284532895840663010124200649589611821770839864374339196322114798085740926525473954920123211469056699770650347337934889104911625762703755627246748981224862789704953952195857955045463944541184632083350917230527896142386030479258731203329680797225105317274356774307502072601320205572829717550245917256288868033437986455434277200073914350810271348721525811250329418837161024548623461948866456830899023267112652850295003799915970909912469668688014091772348452941552934517112348392504245158818196295652599693717660387214994926052571205962109171376161968151814798187121134546104883682554543148463698241011833375044960055222331863290199656191625241147877802119714226534625345537109059965727160340219394922452625418524519402971448290777021758746308852457232087340021574816592224466354185643817448385746477923716077069497837395146072290550216620216732790775488823674999423777616812878290199614512305573135468106592430578703672254554991886310735815633832416378017113780682742596665052486427914639038480581178318672452335251351876757272650105997386369315710470393285909547286042917433441587636363011437818291188303475582830048796734500254400369991868703723199730547589018190163166148886759307067919851383714806358769218113617722908219244633606272930226540056691594405672417422206527265826189561107948388281902004373200508330132959554474393845208375020215658948144675581980422554221130617917721139608211932926737769736887621514929190831911510208176463206490689307311256124459598681724089345422853600091173494444437865399552897881380125594996483427500073043218007564209958269771353769243297637241269629459617117032589960845081657312133192140651949802285025209436830621204185126876952359470200279476322385799937634728665409461269162915147107015225713967245500937321617788188419899988827024874026049451545246949155245544034183705012525491997775706420463854455117651976415909244721684861759822839811151828753870591554793962849027431123458374496337021096982752227697018451318243410879556935679356959971714977892151053247718561258002524228668853346118160924987475203982439759146271195803450308837646787489956525707901164779508357538408912656937859573829893248990022483354767020683336646249974966977513077949925563263058513409552352089353659879815778419814338591897308113995308925292665834159135644372174353815192127236195253191191142343117529833904921851324239505503424176214095676743693795248714597942395315727965337543048189575162804022406810892596332041219623225884367388280806127997047804481704998420411126202656087710364121616593705681140276270918283224012467841294241308892126895858947338512511977359086832102591867823526335269832776513098380440080129789191853527239910339554958925803904569202370359067397342484004012280654480791651200199879021299871970665084911070984964807329684842211244565202620366096836773150208333159469353233774027707791763341212459284529695684881960084452908181239075437414344941949647273859497202141831813282329843351016098839410006673419754764626489209635082002847327125760857980835419968615688086515333218099941681327671725444538358819289954236916810051036543462641911155191650615343956418881923537546015336786098669195466248413925093732069895509512990061433121289086834040885860458689462102032724266531375530831738783993271588987475922999742826639720431411628973686492214665123253274986673384588186180605266604529731975058585724719796197876133940465078939902656445476457409572694276149881455872976152062278811271802415846545673620201344934758615762635044284962678198892831554690170651262248866554410555289388462060712817680577646411197855015771933408888000530775155318339433140239664554712428232760849364268418821776387774362732739112613505964287785103517324126443542041167389647507073458590427450229172749777904279242596533398085411630451784449734062243751757441593158365092729509695917624651314402570636534074284121978487811813914725227051062720890534442225020762735466800189666901599300830848513628700323611988069926714466052983482613693581065340549893973917191168127732619489225035113971934348145843017236763933895336841394710521792278770228794224694651456336928363488300307674689308655242720872405080592905412433011565704414668903317853886423622905944380001943111753417786871938803610523926001327949341945700187780568690153360769460763766756139906455950308502827239126797431749273684416095111949495739463605972637688405410219435653104630169293929674985818015090817646562361019300952257665419689762811644527565282369374567002712776907536482172196120160646991637728726258749848350743480668735508602472366979662838518222744782947388587526340384099947525804024746419831936754369203847894753977410052290769308997591228380597728712992541697710112166645942248166644662544839338479815026841791719825336739041775918822585007242258193007178347931830692945185117775320942631823746495505144252006853564036087059106152925985365517787527902027254873112306701754820686870234853574732798324618367238813040300424509076098654420429844597391467314981831128838629509930299405762241919324967776258842472598506781092233626420277999067223471590833897075983704702567496300587729855927402764698658420177477379298222637446159416304900475265986285806135646293078874454248926096388512543665057136597011521331284346290894567107975563633727073668099078822555243789650633863663483886910436413176482725091341562043224058200458299826974462208180165428909145019962159716897758013851246669523016500475887554633947821658770331537875741561021550685339414671602738263615244069962766640342578686099451356589102548621162727635113265341080076384091434825748347741415003252911453069380658632858623109779256125895951885678995832518984496349025886579586476410385830231008444071825083656406803069041995308814706388132020687401402255588231138839013759884510914758983404808825524246141465084645743865387078620402067043878181348998344166578326236985803713097389054766552217420700873828863293473234815746209081312679125820631442321225532541016933714645805049805546983423945505195269940334093477130756801264914635148467286066395421022446588274363251491797218476572051394241121497953786656598123402734476863762247956613265563179902745134404786692232515355122963255321797465603019526948189041132317585487620690097782085177303206294277657736527513484177344656419635360399790173107350857870871180105088269346586517088806898698466893751687192455400908941868367211493845145487042509325581051497907663426656061444337217020462480039068328566307829287166286685841908857592462306730710697306797291614135373762781798471428705880436270129076010408389956565661614234554684773401187206478315144673303454783393988077624378743774207237299711332169497895536341280848862260222175946161753964698871678329597749996633478426278600277415563565134746589694025017976151590772694758230060742813594553764488873323029299944840734896625723196954602533360640785015858199093418341707001477730087758701615425136300255643264679215804241243121498937089181166024081884574873800361968822862486621231135563802480354342744757339257446323985117249759177184170263295531895459921563692092797393681773869341742796180064382005773233137512723974677023492657112343733769996809870079018923089815643209632076988314237813654738965734237605178910777558598489942710269196675100719395795559565641563845076332655904191307292419642319152228571601305378398654203135503878244788903728500573845424769817398137072576841075019657732264247688954233020012700113723988607078033986071512105233494424137894771604369973986550596839569721509507583307940386141502086984047617654539011601076411307023773571803678517965847602099110660460788893647569954330156960367345058262708002830940792466084861564747040454128840936300806388444589035095905442902612471623304862319879799400440213213006179973693625667438560622718795573906213167114228574017658753502051332343701004282931147041129249896249581592741757315085195208351445101924942844176425492113412986300281832910225160736911479976051011994959306565471435603974210204071378141648416432171237324553265122763981740168561926877111361507895290943361364857328482719491445459230694304776020144996672227915887228718517510869162539292334720709602602619259399826374064463580356075784357282997905673792958546279288604027110812958018877790153236304916126355604375801222339959621506326839647104082568360247435954854755937905291228371535983967811428021632603841705634737172380608986470832171408807748531814406607198460428879033428874324222584354337956388812653867472020202552006896292202737289516987448389892312930186611212593097785530585151110750855839537045115344521263914335017548796123344640379876191238190460322392287801964591990186875637694497178976867441345814192553772770722972321272092043014860616178106513468684285374334127781901093533258934477429360257726130863816755634037726447827332251836825810998501509563543818623507666725454952172513184667689929001307433885399267048360303544623279057597760161382499807144060065290581714503944529036535264007099264019408612132845373025237280354617883052110807070626830929789679481816100563469215247311134014528451886173113996225066245859594536121944654904514945009780132917760376147006103076673408472742434883904722121938900857792889530041349908706680553995356003434922106776376798033937032427608512509607370217205290809230232321502731427653869876371249374717142385580063002896984266473061364378472397279089734883739537459211159386311428033839510591840415065655240732311355666756470773121968020177623042350185178816008843272394610899246831495546766883380313391473796934834500438616908734876457237651747234468564336735421414783594085215620789571968727577958861978226010280603034086761875518664584054521654742687742749709476368962546806845678356705644235287057445098095975138153975350183211841201085745505381171106144923171475664673332154246421859586798897896265615701391207389367089062388675729631565700607574257638286121875000304022527972329233789843085597942993941949004556999358148257248045142268908629955363116942734780418710374487313911050164045377318887947429676481260424066382418385267307691355070186939113750392314764493598695485929317563331467706886771673954444987618513504737894962505995589423440827115103880953467225057474120259426427636032516861400250794690895217744247070076359916384686512751968577894297600641901045298219662364108159641351354922090252402113178572723710662483790404750383565389992792453726132303033438544967226578999758020261359872968144079603794851011370860771786390664935866853454070343661376410990226823825578227076588787163213885672779020509286771597004762774250380128609076290825017928150509894613121744068520550154143390784823390243790539721576391876472989312565496972805859008799243586097732975469601249738597075432627103960463382926372625685209946712622650015621842205316785443840088045908720316678067966831769352976799163594101790868590828633022347922819529897600766158928009703165845879630851605874735626741990592337646098592255154546580717353097634050144068197409159248435727165744908894987779917568672514129723626914299905104554323072243107990616690716207727968562792254161539420743309933646773847204722008989859049813564848335593379843379912845181482052192484252958670469628309915689637233617304240601245621003077508734546690426716157584093635592101860204606662986599511564440886223499522332401337266658822944290681851933788905766757908964231105163001323188460781753963163530183565542717767229018204966821580435316435017185419832303205647958164807415092233507417230749818189325386320532222988886089782085222641987215708721876746023015326111220957472483539063184829742211031301669199112703524036350137845677162335370793963369626239892840673040138629664165320765072935282934829282064045475881066844346729661912482884161120739820268554587462172659392138340466252413882676278750283081374037694069064428431787229550275182503504220115538784343384767032622495217487608077728416456751112770210883538169120716400776427504748630037561699422340171806655030056035929941004547233193384083433977300776617319219948150714781066686810244699037479584201042037983532169776856963032872638648962012416902888005637808844065648286389173740458577847956054154887050850139482970763884018898190329908370378797251676103273117723028091220344650226699057948047674839634275653876438875362849638316386764610332561734669035980456192614588861060841248577304248780208430850541913283853963091702606186076089767085208683720833823582982893638957128101269487771780041782389133751680674466310991404778330133150233339500114211893552397030228106400721417633767195604510329105982577986199254109378458436783060712176676566272876411073165261273533392873479336685792474060977263944226885375467981821351751012262260366134118309676268073100162361215044640198875711284350322722902734081614204402330898467908453553606629709368429420578711664916233356299899106365432721551830004226853537707546153313364877660812926425476548093115155066658355508896166754988834090488737212043852373613464400775378040670044884528117175552352693381006365669863733996879470070426417565318398812891902250769753548670985181564202736713923753687054018739438710735488279451674982210624009821306377080606328074821606820425538158442061052835897886868784091551256779390789884775373743054787895501301091034501298409692639183292182954838102407083269243321432569900026403838045372513466982078980570530213037063179299364078247963907302743195760623499655905514726625872306848227455812088781761731784988216018249738679965921191870329901861139618817947330333370778720219451358290805482270724829851398398451375362304433588104616858169908602392561922000750563042486207678374941853358615091822061661991708810834347629384734002316876122193524849829596893134394818891419541789761366526514757332248442775936600358910544302550767200132881485778627515487550616168198802491706024799095342628108071334874964929016627198427441150945568982918855840363472988737979822576400271854446832102388142236608145854275759129811514696446159058418889053085254661922801236511331367060885616644726145095884839547539234041806193271802695487173062746764846272882827812214942710058572274455156801714780716889081095437073817443298753614318364253702484355823193660736027829381448723786403651818230597409859318686266735925534908395008533265692130441160048209643886810198299559626526678438832390158527108895779362049885192721575790277267251028647636976988110093041441493917889831897146057775859460737680212555150010064531575463699496583311412111213097355830740575786991672116698387312292919054046439848377606181082370009986808115339629848506841082104881090058001713745986627480866045076908227553118463762604262773870562275056395943599682331951042425387835418208464380958583201119068704916851666786246894330940728171946552073935016985902400257074335413897580667990386727665431776718976273468702863250109104529037898365969354980961811835766927302718584403730782496689922554563729501120945853813631753223473273357634461061596680996375651363890578521815107309999489883602236566667023879829285837824563927189807802401454517261909478206516316907186428231004471426555997656408747429740131399348059329792488921885658978528461963980286775656706774576245682890827020827503690277227683340101428071142711647615725611806416638691295143037389486378808423133943687434194952304818869341584300462561572201248536952632271329143110291681308075425282308935940622230658950379249332922782746677661377604070381943318947549200721751226076854706413276090811595175735470684931581684643672399388484338983119810409368378392526823499639963959882031808290323253757270573792819340068791691579470690228845573503672958116562255846039696113563960258296982465269344134887771027259309271367424587973278296101570036516102412394799567677483326873839779585269878088891690010641736052104700038150509749227362109280620345097717458347406845550128239823931713235467352986661501816100312088529703475398041542869283845479128409701423612947250104687700969982612562289183367490670263116889698190335825554461678944483574435359944269616665385996716203999962517441136797225434940076503853420402136372150830830600196800194629429784718717386301106672669500475206288865119220979451749706981684962520319684288964032473477876112652190517385685078225884351814093459849675871922631224228894328059540620915727439427320857637098674968600646323261903501106460515615082736878631005237231886903564611995005554506502705914919903546621883153542423206982001806689847688113305989592343236551580777785798923279799300837920179729703175159509937114584798401329100689955234104162449692833613204307892672059799734079818555445990596289003240206591298195139419509315842521786205914678465008853704908356318107195091832933674741710502757899390333620640912482194518761236302519535715588349913465130929412783060068432178041401140986611745800365280335661288928391245382642879903660627445454405541956663977580432167080410920081199648671391254369797198834222276620611023951535920526888477640651461428131791392404681407252815758031689150510081454987138683389196994843840398850352348077284880660480685296317119446948628575330156393547618848040675083852347208365733360279235598815651101704619156676928642163286939333928816653097587528234814367701721721288286527574692812757367501280769172979166683025240036705222398881592852139167693487322698694723795919337410530248416522603030156295657442097734863648945996259984876829063551764655582955204502714008356319742085434043171912460114133063227636826741824446867274126041938396507560893485774519280872575869234495134644525153961444065108904192955046193447660351671917120930803262843105515545601360670564189002826390919943313554629701977079353036238275820155304227986528046685132667681827141343231625633314005898954980806614556176753442944148600247317722190383196671533267820926422277104455038411992275321657612111517678401062276620121298184528321478220487688588004542143382197922847473667280993461161384659025302473804711215212582400637413670320645542127414726904979226406739693500190556401501025694518154470919711826362181700202565209275172351822424916258827957099410530222104867912585900093570502049556197047846399591294923549092498809739138601340681587989715176983048037080381859316900764565647621746112299825604784489425804250006425567996213725432175355070849737652078249700124426078207344778941030025338824828555648096371214241422768111247257513851125085928275157075963975255285790317494354958988377600507881652334575537091897899602085241698891024919857936317675096553356431357010926009275364695305435053632203887218628519100735411932791920040583586221953239038209702582301047857441743579586594473621441737617404120328740967324232859936304494656007966469541722687132649049035349691302506155911919821247141843310664078975771734099890712769263342152403929424621075018480830390471956648869637747751894626941532360065532173090136472377585681066946326161734033024918023758992406673686344482373580358469602041579840921146633996395862465290261188108159394394410548029336628749788600773119897745519592867950695701219997975751250065704790391897533504057410523018059391190847673896605247329037314642096227194188224618295933295710043068668348246024888714415320163816007717631196142370641868304742369038851736908693850545977529588477459639815250719560283492210043656330141927197201603286351645399617825405073528697573101249503062929698570783982524998449270852015066626728262146121597188612638233993526872021679278057358334191244723330366370138204530729453859551568276662503869257262308537005555152837107430333114551334966019706578154727600580353585366544762970273687119138034898097459158723244017438748481121124331070711722003358401974128284791015307305704338574697429961527685804674109845688188770623410238258139403946749128504800461680948434547212826891027977043023631619583714000590171147930586480868450037169944561940094587440405388418234064975183587465225449015948766943896425344373083080243985312745567919532922120180959326750336710662644685138281922189856990812193970512899770033389260502811931699331730582077415019408184288965308802558767807902311297761523121182549340516017363634618287596067677016099935176338323303109476920458502230595019474917830921914353812192953846484511342384044847420866710992124794761193457190207992387933904598634633045480593796320267538057616093449000351852499505575798686404971321932979407639378204203527864042855437748417958117920710201032394659515590692087795534665388004362781119548283482034896478927515425521770784825930185264281536902954918151247716424959026052463793863963045622803086512007932991807272971379229824673533031545852857724674624624185403770663413467726045162658756025771153466482646565370801785074039052599800015716858181796214542318857350479899117125420706291040388097024095603666373560327134923073580842790634552244746333767303984864315853322554993245235938861863333993384849574997854597360392833575128379396304857301056072892109316488279537140329674952897410137551121512603618486033072067291642838730022764520440167601588859330294373765589451978006710072488793857182338962390003764426977675305618608111580393738040344041232815370318438630724115590707909498963469140092964144919035589317332629376374825041791387883460477702121036040814154864895801016094832784602508938225724358414454065344996516258003474706823992090498637877815230436853546265092587086682919977472308228759644655180012289820361200375027910718188666271127992191282350228290750926394398431443750106080417581775036189794272014293719781760434359526160601534443078071952027441293950742106007554428015601539379196895290261083467300941982370259669041056955173963430323570714584473441969916691125045715364994982549543619307405412640474657585685708250671417117891774748039900187887877132145086737009406761550432048689860921896019285785208719630477374997221500014146701275783597588747650520586664708561839519428812054559148690288759276803132439127339660324455989928836514046322453566454480446112704361777249365449624452190751237902284063910184521230308143500133618356091266164701042887147970853304002369956747990282416820737334788233309565587918385981101972045368323435592297363831272642532361768475399512598903016913015676471632968969182183342445713586761064761531867886942744722318370937083497889831284093330413281542205437713097683156241472449912124378024269712096751737157382444484742582630442371337105407644605953633698151920194822796866484910029349626066029463210952964427438663714732724546306053503358794155543116503067163098164421506541143158298939916765042887371963553924976435567422052573172258358911122375294663576282173597267713952052462736048824714453751075460841221571043720620278936951073222543636867841041768771667875052090529535706396481742961983230149874583438782847783408387595838782499516967948798706166836860982576147444162478839413823919519753999331978850375015706809608372875005522044399350411050127655167752880852861879855211346375463444211624513227738272075593507715921537867479004401272756722163188318823368842205797626090367772014368867625433061799364942667386964922308345369663819457271790531605969041035719534446170565661873501711164129555991395167264583424009017290439585024774324919790654930433436861976144686952882147481464373456230009261693422079210939427470505426773052569007504147251256953271036485511066584781645126712655029494974871639368742538255060650451309043447248007244314105580815356561883201197305724124811166992931711387527144677014291015311183124121442041350158502912531640722976369924662819496452007296580571973133817417237194412728926690454243181782118124264172944340588751106638613360543090594445843592218619100193779870784991345101316702449492790847964729051572846737570684975591412941457354029459908415708035020658216339806011012785543523833992621118436785842454847374438058022079277215354066366478016260899501480022243886462014053139011296794958027870159405976427270291224147547089457547548387058181945150539899634486147035934624514696307787109936152857771620117601537366583724910176919889932260201901490195269461148256635922287892343847401638027980032263854227252099527202097192318861097638873362815937377787206876496011319662801534789628595905410446158495206728134864286439387315489052823758129381651186241501156062338728898259060339958449134362379851233620132116672038111961552574505226815317160389220486099148939755554751159444034227572095870981346425491283449229356236663781900551658513632844160678073979120690326819534142865933108642865038146979382699847067756690876675417692028330433292461908102430338171992475894705337345881366108458471291508744561160599186293261157670531266998541085286303220979300039360633237134145380252848044837093212835712007715415958373108670555992367885123984078237987807868920150860545920611903983073115489953527415535654430375500667051902225610340875098271459770768982459263465472709354847920332936894286045252912467054266983354711125355585650500648431342839331690413447758217340875917966321984139713387635594502077441971632129991593856881664307466862536093051508372657785028896028726690248834227551269101311247284427161809763246542169456311243758747358707565445698015692442846075244029561759689474338068433175213354359969078278333137668477714818833473811917218238335634487884728521075990424360361635338254172576748974959165122209000660080643467683565141593198908786603275872944609281962578954715603824267128071430890762374895387702358606757775879646266100629442840761959847002071944621438122551557242586775715749779234901756440940964887735667043255617283435275856037728953042870407244788470831486830916323255799801494954326170401655328093617244021303378294440667302541391767510300940698949748615943498182526925129359781119773713190117584532067178959472685508261024089766719813884359007217151793273337373104864149677577249876883096422595684868170777548873558778065580700724469522635410405846118127778739303105900828441920756105068277483509443753038415857704636540331101176430849735206068274609267844049032467706774406984490062967158445095539372576094614613455350915893637182013079448342700394171621961157323871479680930432797454501949221059649270269433415144702275699545966303296417327680536650128033758225725184677759584935958358340221911813684439074514049228414376885773384013793026652830268947495225105813526367302806679650590323405182549078094595470713247732298553173096559577548590609500161004295452874245169917333468031398477519983449417623617988824775135489793836248408577188583506723800004103881954930718243363445874391497111903110231135614477719471563017395509634942760337685096297629570337867563474376142335842279398036787351264721108112977907443752133125308237277265583686633339997182057910133496528807422380896260466506658832379064284899826793389853769714229581453828051773616209823226650517294731827387582562328398480271580043637415097813254159013422015758744119367856491393963426040043935696923517405854518551792915523751669450071756098954341412545297884672735402821219109142577879654890621521049758626704627416351822345798861016360356574995824953246545153528276183330060407274362619053926612438234685365355539982330239773489177672503839728646738343891108375059850277885830067111863946389584781575306989514103039073647329559702534230218041317904422834570455983619190685200161620806879103414686760916148527068970048913539390759273815610138129350095193008448539370641890739547832304335493218451299468947041488032802657554393553781711952371933091408892208372753641586026234772805939945551725755383631333427538827163518838674105385412465688521760967694220059683046504820726837655837205725648693957920435738544542230045433205361434052686816658324459651864937685929536563960214208469537514350930420198003158091420640781877221550237923111929924638650546020320773014176050835820404311540565549760426247598157236032758142450728886765586729847645932009121796868670301870020337663323954954949487398680664087353560843643299188793905844967087431395998490378954546082816954371364294221589044176683933422151850712313918400292364241392487838227250919413161463419230775344204444229038346824628724456110947536264901216089494947231023900761205581079521199317107901505711032048919767428489019473018472148244923502195989553260979664330254547716367696076988637136990798702730608604857786849530062125497397762791253231092955216159058245669623385630231329253321735073680114197434387295700059040604186607710972914207986254521510870374602181295038710940957081052970530361208000851394748388925367511630842293149809180459541448316622295081687831351649609628339808766083653516686377814976079740458146061894842952748545995379364064588684194275674501028967658871269028908219006472336753514318129288602919973640584121369556629914140164025621202742087918736815488758972916111342627107849215286928485248365733307563433722126087070028930773916409234145938509365214577172730513396039813800808587172544579478243435940433674549925982077992238949687965336489432132629331399934670297922959525852923639633025939256144357504436632033376964769754763199000988586641137591820509889575616424909041967972000227694782169941202335635314172817952545825439825786552608247250546940225311584004694278360071127932571024811469518809408356563109745261646389782791445201576643183041841460711111253878068245528868075368359748244806532275003924324902349696102774191948091829942636350802050884935107443783882949538589609693326928701966117515426043201794850698448364153634603091860786575894521840303765324818372617274569341413447898904790787198425573929268573993339386433843071549507182843635622413504660554046426223766160092384609650492301098173798044662484459605530268250802745477148410269105075962704599972559495977147006692399012503296916611002357579983303684125145395942599348934947714614556575007480516942344249266175682647319243625575874511432720001805332206685678267443130733102007502759171390355839524995155003617909355328492537473111861888869063310357781272903746133590155301952517484156163729101086182160461633912258250003731992531477968104436672134047870977296189525271805917055603945570223392196502796409421395726030103360789288479339434674225385429304725647811845139744086390775462146635381561028088428674691269346946625893430742652204888305530999793956585778297837149944347188568491639023011566163097667440719215384626238377892784887878049256131139373351162804049332618007646876660396275666427148671617739413395597397912616777226515052208493488843649950564746023035782005559493849488859922975129053426981464323140277370007182972815048981985398515086382566275631378445060478618577291376622673626304334617024619742444273895648241650148521323510449612936619393795800200516747789547169736450445489916436024110183124115501421708009198029018276463675176083704031130824207941766606020668929913415667023061060747085471833039690869883853253360250775271886470045775113546830849001634449923258024573404240065516172820229936064835813377972569785350303112098267152231214807468276839622245704541989530294508259288320948497227637544455230244748088792722726240446514326057556545574205301305297626490666581339501217730053346462196170498488812228894461062656986219417383482132472709127445303266888006357621934137818324342995529903527772958950130408597207111039245561303779914592456745691269078996236815971561766256976463073589930887116006080197428572356602226286929868549606974841108356267106428957724503559739748652049841316470643118732807310823658534442128711223998824424221023892940105007582173134979990961756097099988616936537637851324225372429713803196593072113099178981353479449505944097110230540966868103687544416677443410841779808036614127588306117262491424680145631820673861848939803894843641766182694562913491828996782995862311776575290239847894051780954660806630063709325088611778069753384036345884731648861797448999614913649568738587528625434318887433325514495889408428037127829036356162230898667667204945594594383498529204846506408466036576769245415619866075011706156857026032449498712063557022549416311574396967580714486080738083412159880740863487188018700334204661602184242560414181405709323609030961452937017803163155036416629494998675693152144743654144801136895027664140713435952450897341225863233080100577176375230539562681260081279224869862232068752231298658368687366667527280607968803140304056744932379489201566594743106233168883694731955616478058459511235116828414426140157868927312066602372390949732309032767712462404285767667231232653008334711086314687538373657267313129893804815746550398220776809666503096602137317735808676528181432764494751494563637729925626558515468759205455287414128757730715039789701460275142682711085232783275637077276833724621747865057871255020169240578543721244546656060908219834070271000424381174712627163298056440539768523272525393517515742088068781332455342899407830999303250366115852991914376528585140711207297733529613604695525622168308997195072115691058259732723715134571546211084987365009505040806078865122059768591196424840281752283995461549537967689926316999754369501383536545611512454694657155498125791925909553808990780451719874496144211180967638210715253674712295583867890413840727627054846980132915610126443702686405722460191989000496942671980686607815652682591478007211908625395361079433046998527741721993493120775371012865833918678593639542223939937235752575350367780695982859520815156892936100289854953909498064141543248657119664852679554632054909254839680723338294800870505236184778985808761559372374316017956536652356645997883438398347291399766328702312122893805372939601649457296750641026708027150264551062103175450166065946198338546766653825992567054814502388392464913824605613011933756033609462900587068119508339425902650500098400682014189862992306894647902145436921340967818735093421511765165724363584027726878092363641477972050292058972752515018078931771918820246026343645376863325341582435182097616727881055649765820481261204608156496178466550644527281838363571737184453950346581576759772013876684596511396557078500960793468182721576792995027365837160237372691545677748833671685850905424706539270579447096737046125762153608786353721074598255686699225768966191797937685975670252492088140716710437339263875784517856079408407986846662976886338477966152587596816276493645107542217702379484805186525500612507766339128020674649219295530283775964756568467308982076455756643192257354958929964888805637972778719632115771124332707125672687425345693253981506994612708629941626353137464713869655594711817828386883147795793855571166608760414812000874486689973693061806476501002738325555691896778048201781208677557715695306926083884980559614788732244830150080501538820835832120588553658401846288952347898732620342220577544131855782305934133694947126821227511582171511889965449095313196898969218918697054570047643415841031717601701695461618031505223184967502548736279146490637681164883300374946683313912342997569243604745822756204174285964835021794569829180607317483253688815840766880100850951208213423219310184426754243900048681930169477062612937152125188224006193598850927144960099069139855701124759915045448126574130287892702743360555365841600711010282188768889030514151670968808424589517436595023944428966962042227840965692847914156705071806156093445467482997670058892137703531156982961004996767351838439025773513657020786070480176762792209662605305895508921552125308782485428073947776920532408269625983584966740282347505710602146935404901246420303338575463009213729114757070901279288427083445143783148784554598043626448061874026702516415427589441503531637431899356476747001276897662449735015461205675225009817207927474263408603338407753624549370258279246633932979242930292503954009451067728040406780226629373332974081966323895178894874781450487189718132822630906070621517870640707915369039350544945038057099991408477703025140039461795961460023163159130836880943051683172136734647563541922486398783543807178387911265702612837524809177764554840599966223609802160584578995171679838626250133249120835535831102159928882474295568769052091996419213638026038848720395902301551742726055462102052823021671189569799896800872501492274255313389453746791000073507128324948457944984079410225566199115097831510904282375810368840458456576707685909299523041284794138760587299657216772142796835700947371261657822835423591046474779771037679643696019358449965230440975415369241689946086638798238717446185047779412200516257346051251452492835026075233622765772063690149159597725566218065120384424471061852618882667522770790244955773838606392855787745856375505040593670346404594595031010746459142714237728548023470813935105649662157887452514231244426503811149612901561965229425657148921618208073083949748960200649302980806054096821759799236380883818533011360145042582986999912197958161234954406382520584135168121587181390341834751401495710351766563055055572027911514106401850909312623662930444468581712227210726189296955206639148742511721314003849320634081096562017309990852204285336182323217206460776617257111862084811729055198140654495671512572606769772821301175973048003247275920405741322356659948548515425839242049508220567938876341424445648685667632170333031678034740817755491519965914025609663200888255458923726368465315866873228824068125951045873483644493084523118807063949617002680084795135727708060613077075612838792476133324775194032730011534166579045928822723869149484542124866218917655850000295734960980539077259836722169858523748306461303496184041145574171220867604184863937378242447978468005189304367942215217682072487432247302665296543587460791692107047520147900737401201184632395197982842690234597109731693734653659949104807536125826110571102713137958571900343114785344010637347184209904145309958196513614593424758060252386812992279583707774578024852248685998923283640589926977641291403505669139075825584330114000594289185900984821004526354022016707996659119029826063837340232962444080236956656159736326481939150502938864289575712025835361136501844484104781028258845838054347522861299438366604677746403270954212158304656729537048718510955252268208633290474279296697444368685596704422862073243537202959118351582422703999879243797657317058725700672888681418590767926665145961156375306807495091180784190128456518389494042657790001461148699922863718214685812405551788425649912446557875425305580688163900795691643594473389371500543535096788691755845334767472835813445323875030383747809995874598350533621092789197050822321470571614184379669554837270367852670406578958732996950987863326634454667397872523808402715545230233193179415775286472163700113329068925265885820051239112440327871920577585647104290330183078992060566748733137878017954395422446890081103081605249003062461384835644048944632072373367400042360139942363906198037525184362141870133190240722603306975174678457069602384234210630802744581588903987412988441481724131278255156811374206578532895315515859780336585979334571425826083690267686395714623637137775597224082135407986886904376609699307031129383624235062618279816329358313297033579772544537650795883233484428746049375866309062651146553626932050341283267774326869119898651614055170013835585518924933925336750635747354530669703134683853343059651775616117792428071856414052447606548608141280078173820055980825815275562290421538215794966917542039802253982496939296458013339541692584618657519162450044403180349987172571201668933375732787000930899061960662251758176109239827836613416848073307186636900703598585709625907739674795415420088851820163763507095662782870190711103360999166093195886369943648231363630723053307597239597423340534870861353072980454085318377510949432400182144841968909257952466454336442541823341571436931539887997198526653256770109909707745147750064665450275283725288624374203522120045876622048776359144917814494870369155349526400354069425601010455380981992845945814799097581771281304686770670000620939594438466551117721367756175638567967882431385777118311873851316592890329997979848077628168756146291650548204060617969970516943920024444221712791773793779557838291873516270131649010827738830342152790295905086256907471238547331653420899021117975711724105158068062444876893138338539358570719302867438171998054853238038770838470283305240110413482048383850932907882417149507316528705057173955655710437045572129071305341730632688023270120344368695873909410827247059712115373217390851845158534535958840076338452777169452019904407726076695230652642465136746165016792255217975111637074257221707904675288777037761523790766096985493201851738216770179137113429466774350942667516681537614920811786143353539063491640072393237194004703792486911310944239811009919070390925550773428524192066115126255520388232329340139813677880763752000409760665923644370585116811499511723302335464259522547026374483515757838720276180845276775256389941620232713975860199578555852018552221451975354167033448763645746867090812811093796099956445422499915361685654984460690655942609101998032684610951175947173834516689890184214403975601900393850960028395617603822851855823668565925999532974305230706528386555485004362104939865121162836362194278516556724575648727916839378821191689867376074420368758095476230807898350360229781186701787356702554980151058539476878214640467555530354748743695846753602869093270153480589502777967231251286147258706592630876615185037303195300082080984532046379926838573958115503814339697784274937970327049112706382698081549265845441568594022650766110918472812319692042804742186630607640377881352808683225252219455126880120754832345423037843302582356539645185749241398937511297761738209990905015089676972158387964250817604983544083310295185642691631904807924839562565924991395627861307504135016530507907751875283512953150790374690417799815874379055549651107162350443570423918832217575510767074260882045888312004282713893779890685194978336007416869482637974870488782357668113404899292145321530638625184694757003775521642163393475102189622006968105878073977067774190559480223214968612824747734649728195074658947966371164438006940539168485040601748057816555954275929978789834309715416797769235418481472862925845881517661190325841991750917225377242266985654349408577348374695314147520577683278301991934335034418761059531515995656021864237617505449852053891467970986163340983405899605003159155138526064483071967936451353399709544780062079518954162016653369738163413918643037594277853356914750544272542467165772842035093472173151233020994149526721669283133677624729855502021925775284230859063422945927524628288291244221976917262628363879721227553338131894690750865162802191335585792933878510232914766323801050662516777577266901501333063851899001815633952306472292820572596449626702612470245983562182338843925607035131684006817981580943343103198867662704515783694579135137653361619812803424590634147018830696401208432333359667658468327700627482481897881187840610863448067665232551934797432149862518868194020538466969360737679650039329652272554473626739611547133948629030730520202267362333787546756286638106928278153555132948869809916667420186647510117972524919676068005547160904884607577171548400856063368091466718050698170922661033787159230437404550687022107497333884521380795088730503943804234679651079345675483705213960473614166439438903561764721801372773435684396255542016299080722009280659169669711667838081328603433424863560835331137578852311569292959941356778115115145432760622207553159971449857708803470690315231228104531803013174592166039163039613175066683974290700594313257537195377762579817214530388207771217778522903426061497392520113167505950703655969918256338568157539268536441508595884572260919185906620927612752020955635573680964095040389604199636372764540959471134297314805410340463686789442802978656764787372450054372730895809438473469710598732519155644095621288336487796903746328135900158656328446753256928177891813989745971958078305494360553399733913282586711907525200856391681417157790511473523539524695687656949069160371430853346773564877885389766277725408390150984974190746754790295115536756650345341857461201387270313290745782459216900389796772165994441445150664026521391170407188005480301667675933407405480863556826039915130240040867575909001499006932884973557230543085635778539319243346058080577077437555633686566146048173561182671803184268378759810092137783881361269662813687948048072523811086611954940767438301781429765124275987406994928746226452542746287664801374859582691351509491799556702967457122846511597448659083572648550018652650295847953398021681334474452421197545096507139828305770236028885417252128661324993573771716918389483332592613399574359787666220922742220679920219314566523990156790325690276744292488770404881744159461700798187030860187966164188489426339757880652553601416087368683324345118969870428442893285188317841450862062068253507225518364955151833452927750596684186421775852236880238412123477386530681262452696207853288649220211332340739139578548504717250445358522798386000329986691326819343185007548306595484548221101838861799833891452171926457113712753482067213851976698140349777787284995824649911790131624858728689568626225298438714464733241307217485252081235155714474957212972401745697082483618258184883759823394658142764146343441138229536295652771190647291338911193900088444549499023819732674422439864172315047715070257844583145866751317704075189097314209732298346082133003403169703588950950842148962949439850690135255157312165575927093757877455297164020930505617950711619579203963106544669739362837572697082624659153298479966475990544867023242354642812652959643394765198996096667017477029657110725825949196233042907479339436929570830974613788660962170079939073329534395915219951306025709483587343595089899692651680446208198681166716725638243029007099538082859462013747300375978773823152142955303372147651365777570455020415079533896985975194287782957993140653875911126763445840416433898323589887806451530501654364487828862073661150441946187611582878305289920993239892192626775441206672483612255688187091082846755678132204768219480313090461706281916729192621802398993583641677626590280179115665604312333653282623276964594856521686094324377510509205056796000545027424034109655679076989977351950363953142808769387145426865708277161075820568180733388865987388185998059078012649051304630951897403791788008081684677321771141131261670832429167810861838180115580605634149523759317231137135162342137748003665729905997186301213737178004655250667360545357658849197776823544908437397622796761301717380788778796408653120717656874365961960352836170055122091636009653975249449885550347052568089317627589282160884714360714589965311123765013524962431832931655577936907873423094702781561371552354335172949752796525993326940208926723559100105838884930295257435601311447566541272439576647305709703287719127087632016709594097391343390680150742415042228189794846087150048396767183768707851734753966325453117538957837439723410454232141177244402422057866797327418801370674512711466619069562683687220117707756385716556980979979409431595614270051291472572866638743442517400918096082146272041168927155550249985908433905448656804570733601264694608575423006329384218081005472485737712518093403866174759422539083705645973916944525146647583490421051501400374143313644846676036481176602658216058248219368303516753808088525761196062463860415799523903489315340594207136619737203704101930013029484763799794011622847460282211777423775401691523935235083503466742755013082884218093771613550885118264095449855889829034114518486564059436731963102325172708634304587643980479097571845861054327805775154126874110040346006306994091842820618330539653687325268633233972606358112998520821406864377328479800773577217389251887334421073411353913083680490782023883986751464799536232962792742300356156419802426637084032425047519170589573179827738484313421007533336492671094555876729841569553243615462040514340586993748617011998737855248195194075226937562527013844633457344302181760925374029747427133238787131812903171470915788951730664324804736705214440900860596939314175984671993548403006611286631635877334195921859149179335443182881601016134057695257326136297352844028133390144196898511862201156445286148823553887234695362271218224065586986476855792419367517937705397280310898932054814908558056858141993304673756028200866460324253727551183032654688719149860170234587853797811844072904751914308866947399894589619403727923174451138995517323109358388659910774475984831702087494014455676384972129617834271442081257491763200400867633737621566506371244656180381869276225184097055421908111892897414852810542214935835715330571719941013241361653276934062993391700240496754446364636206966048628529823537839770928872745591441973398686305626943516338088915036519017603724908862884770508057623198535210303660713154842805778170232486420105265547813276993678743067724734147706769328662724136892733652415398979390628393471591892817519319772100037481191968251325052269269473484983927710246932578064536549647063272081957375064942549164574845308079947525904618091299059641074831002800678492441438418857099650194393980023253297127633391422980043162874630138915259454564969816766257734104698170412765078288712865988187221281577616939752627277788181708215687075962337122426947747504153458259192979911376188919535182320365645062768081872893160604798996513324794554600464314464977442211327260592599841618983018415117426829775670085546093481479061550964122882238677946412589871790367633837494130456417693993366393723401243176865340121214679118316563545826912109324287516004464521909387936949582832030039356337775870462698649935860792239939253610154148915169433397245029622321742298919760156413471006849851222751554037386823378402933915054555572290012191749021686333579036636922655316915324574000988306961716998826430637100388062404937420265848475376226970427561794326309101529898592667917317462177714196097149964637187191640510614298017678422601911233955299812752848931582057610843314190692102580204339074570397077640365628894526495322473578826612955066904964722839903304806484607473061091683545125923882195644422280332616666541028051123216420073684659279439684814355254008736271508701393384940524862294315975345734657980288867938327665320673620127164315757852434380029027474771353830042872656162388480504966465377750827110060412818826566618543587013212896045457676381434651280608925934865844802542771237765925549082909373685115418575309636564242311378167896935228457561488435658007495506188837239071685210698860578644742370372847278820346743082340931875272137950242982907624152642123970699704473379451668562807848872072371067429945431556775295445909724269969840557246765352398309268643555436119368428503797199467535856804318748473677888693789537393020669445825389781318862353359889763860015135625397746941512544263077741115260969726624694949188200093104238264930683539079429852623901561441526800433108808152971396503275080552272303003189970524105198532452713012190689317101464397123522028174322758000625053719051790878872667851912393967760372169313501493287332864506000237900446698171027126516014750845898632171018856418702296595762450289765789005127274937029075036402099007512072602882364451574847798353723423045842513068680030518816640453608297108598065949148191610898153482191222575181696344589292907244751996857804020158698845716050822429505631597235663541234806720542713544841772468596966093955765835936731068760650375439918924460794113203121197107016421406501651064510622689962825456123390616309212594759802132695567208615552656547066387625100888133569613918922206579548885731952562070285026796221209244217132011828150307226981057921145533780077276673134331281166739413524687420754919817478267319780236416453328047115537498322007382358962692689140942668347315367279080638234505291160138616704540299936323828730518713018323578431969660175001028446976460760040494678860972050633126531177800262898570990610686116538759357864225783081653580790700716333890792367490289028025744967544111950673780584028479958745347451954639812581665406721946466278417702243640227281138375992636931527647811901835245954149117818698996888744391006931913908448389917609276050948283312927756039276242688701988496766036356560683778963007182101284899713353202605348456663901041427747194776406716142764443430184848268217327457799452065093999954719079897149389914624034216797161800118940863704539734247440279552817661126275697095064277428578103657918860240108022476511142484947718710811285102341495875363706830486486820831833022853535395909060399020425096082958844102689713529983434568007911313235800997269436191003787673539335638452728810209153681974044697343634888097687776358369667288598780838919900029011567764241453300936461155399803136846912145589733855155930118954770030813640947892800158114012218069387397703846932583957749832260378112542599109722760865580952763061652312081445457430004281204481959043113774943044820386780204146175812231994216382898919757787554666537255038625052849364691826536490296392536536741262871844012465902387598388760098150607156257365135587597975008222710261625502166752766290389236791107280845139727212173161906986701480886493928815131812515944200478080522885643393277498928010270047281744342603147355790814715931283986125641411024310706244919978567719372090004316600017917391777136131534751592336373236235215440070777440606016589938443831067657983180627289280142766376956217398911364618780511045736893277309394443526163846756038528387121709715267588036544651851879555716490033021460190634937487631076092387472215010770850254921621791408409137650074923396904647743878091439428982753506115160639880060864350345984345425729208093797491757865773320173937058895572874520948324309025368127254740313576028839731421404703081721329928008474681915885534913455556978229816658837783609113024279374805750892823930581355733552747944448481739292414763900905100331299415297076786253223357488313377122086400273224198986056738814964053370256097781791476027219727045381456767111087117240582569196864950434505898572906359166826936753971514515893228630631248587679825724816683565595508902812457904685552585414776814675122084453400135076031753229402449382649452458835349265713950966633569389177297742566356647522547041500331445856291289838694478116132296234965704198317739957217031481813884367034765744757288969219414625745984159952154233667356950960156270473903432654344168451086040482078334137544012933570978135989690444570768216516342191996736637811946054515649995141601865321702489125316579013175207624094722609324900665659069524418841220444028284054739148748739565897847842037729642362864518622540760450608656626507684742274566227348223836803531435860636133890546259213824949958244524678706213530118765364651358458266329332651934186143181743936258243567206598323797215413183123400219008230707622179139027080550399537467193361302741348552182746646205373260707597759834500745036096120627383136245111111067361981128232574200659012764805006070500622352559158453427418297261269377111510564189734527708465490714037824133983036580400497355661983696428338113168003959077767780606660007523621445127587114520599310497692832557639207986564224004687229421686319929580124425111620954367449048007850469057567411782302757730409982846341248439415701186442939588747559210385369476147441815636702529517721705048261354621349457714605700296086149271513317538661884896275887672398281139565126281538743304773128245312327034351011166272909511403619144448921634985725575073788607513153419593028344813600999451297427426658072508962473114177905433867736624936021746020619590198786012100766003988998161256109824489237134308259162269738468751736667798161595972456459944754345269491541512154272343351515498753277490815926715789744864480476110094780114573320806642033466112541202857621197778298055008880232527913899064036390658314633642842956369029643223483489313566690792613856916236499621740044014820491350209060026775213930458106878300168546666568505432958991961918990383912060190199368924394119430352933315829576897812610387526687171848770571297243483465107675668408978980418115988522767005079020928156813308806028063159553476555912920560601005024857236003827229361097226620541090022248124103223938010056263288039546109850852883874937423065865708033569850043339235797725113340678483668224087459858390722003819754321867935112563644270521206752090609394954541470977233720582519197251111989899868535762986084602046801534925886926605380432396879524318161610476236797109148061103678227230239279307660971116899464233473747750438406839662525458603718975796134202801880447539422214984660844329262381203118906727327518681629056433260695828361581228752244123708442718178576936887057042884239891445322298827289897995171054524805536377337987844912288559300926650998917207126504115276665126457731502477618334903080069296651220838212457292831899558383014813320946320887153017300691420148656579923773892448750193136247639022383845461160783305611576308812359109468615500645379304861210759464343450707604119841863415600328736096208441122983250083850491813534175431830344453911925784131082572718628300477491464394670041186120016229544180982039420055041270919438460348870292159178967914090823041667306204954127450878575578429430176568161213206228148187615145141878396597674570145769525322261093852634119230283897226949819450915306368779070332616096239361208644906982185956277010654536798863961542223474176574328028316922651837221709967948491083493698045992163905505948127000035895979220421314930442447334876903602209365051916391666878039624336698986652116499358632907031445547688120128779887520362690135449388421641325324882329225879901021445230122171472225578563249272648749128536431630278107960729766402843639423124565376577040244952265065952332067356117047384040845493907994860676181097483565655912807972345714944350616331984266808083680946695248585936333017761325766081975582388992426701165716740286035983528481751653551927540273829674378968328815655603117322989308800445776643449306807011506005078806012796334884518110595896290404347166544230786177835141363807217915517426826459239151312394664671860448578036891459841421554447772435788317482316960516810255425929164748009435908501299602140443935792244099171296091970042415348669745955358338341676200008287976664537117665898952852931393794494250206393328579473674389094723627683482710994512262834049950203199096383848649634921457195510740728951925423012947171318963907377888137312822663819357263936190918078017500244729641522558323095759243143457454349406201063965731666418964446026997186259510173550378376638443685435083218537645753032203222804249572606659088542477136780154989802546495892602723201095572672410658901090366873296044889274370295693276321988502730477458750391709370904858058236993785010664227279111575335212845569196597135611887480658376343838168427361009957303840869364482576621903490769303915620275583802957760782883706842750881440000791892827915193421830848178938431165991179480185454064936247321010387306198209215751249192933951540009020294749738286706886814730093230923368773706545577478215146338804185136706266293182555478869213825070793918105241437343142552290762210478402535151943982099667694844630330048205315223360155222333251263268017452149844007754527340122612411107072004407965709290257798757089375827124492628264366019754460920147757483160408826480384702915006039829452567241780722225480833783362545051124316838206128565538030524790049793968653695124105498192677034590710538256613259276923314539452922340607849805703335885445719649791437509815617071531344335583509040578497159118452858407321609933326909752625159333211398441884586984357221367497249208561696208249345100974467129649854714301829519461568598766892430748965904465513775296030002786892558504994061274705677248454139832369909350410552616870587663392187002358436800098763948716396517241725011446554333921523484768111878140458841552627929238487702813297248520366333231719137121066387233904514069117255181430901479429651027773536226258488689646962029882700547312358441624749462783017582999394974487978282804095544407279015695641951686673645045412681553804112238563049169050576025148974544993533149472343929326968144062235114803490020408556411772109560929923786518704785680692809543351950628601156502057994475840042194769813069295636689080771563237182621273844975278425530436819581912591822637717864391707226281618737022300322052974096137748173668115052395665531294747358453847621890791666747812451174585210900661598154554898737618520259396408332960875518031635434183284125956731296685251477484920910721340750128683239374631522847541694002564782508703178956744402642175554167153642286775192151747089171354130461941277900326580723311801323310743645504386978245238906593301813875407684661195571359032393243347417830252272418506217573469484583113836616609677752602941925826972436763520632447742190931599134992726563207683943259358007616636267122277776568516389342491814951992895984430445822345745146508669288607230705343819313462772015195122505877380451635496941083469884421401115699832199344253563850818586425620931149111972639299401896918819145218017324659593231783243977254918628915122064699031687346251954467307779070615337860403194902054951513147526089103601439966881313292878538438788066695895670326036714975769546353874683747131954884838002108325676779739175960971959086437121975124160859612728233447769676660826056455834703627133262018031125806313671783515775931369189649822391526268505138348624396335018487328542456166308411997457958397046601026816607328492679048288077443041093856806590178377086895453718096948974390492649482029888438141940930294370732293935117266406520200170548034058150320803564572089399230045866819991613251160500436435823740551825147203106187312534368976282605708138210710798467557939077695743911403179550067326334732760549196710396496045649816923847743928111519514214217724509940732647126979549343333148343458110663238421323578705613496911385569179196315220319535485923850868931830198146145481536496733331028015034653491282463653241485501814177546573613705992014170231912422731271207383046139317231810573294382173401111523946871283888134657399842644194684689755921188774375304268777592406549569554658622422071754585965674648549203842193725778735091759450776217061696919020194599588882334148256106880235772127998890028243753349399673515560049624578268287699823611982703625005878116297055080576206496054953941320389244561896182000969774599560977495457548868720073975295723750507845134842518831011056212322252432385991819548931694099967273309133431478103256204700876788481985582063624579601223731769143556470652266450594854102722066433442849021539854555387540735529132987145795883616800520886933696724928694500317640384670768377780804894974759522987519498833212012733245101312230411793374810970103360995119817082286118553861762559070365098946725489697439260436733933779880782752737641558634056392072996155328504065179300541530383986452232104928051480125782926506491630714468108793705671206910275172650214327700070711918468369284808076115050177181188394097979859750211588584251019830187556658848337096207079864261858479279258755508939185094259374319361421108041298061590082597837609197808477512871993328425800463262654735006113086642685978888986646020469864740329714353353990776327915988834456136229406421822556149751939712669236515899270683224795129140883772873384723644793591333519612409634455271103679741754459153478005812333786683550829469163244671089606460819943551329983137496029769596817385738266590530513082218511295562060027615661915611712109538101242347877228771568470737739349998601036319872303067774508579516164602867078554643246712604292226639092298573933349087009273405485179100349767518847489664956886786772605857933856158583772793921558752744400138506430043108308286123637342598594101155712197337237117162322960399434017585870090980476846361523517316707611808707133981253080787995202002912954081453658146698210566963347924147873054514093574353152594746154284998470146666799753151496956541366960462849379617214820387857557810900449678931220175670720552633905454965947484023339440174258388160760040097466906377495563579658207969935082232786001604755106149956387250804540697298420449393874823282982278698919571556063739914689778597994490027436685994457240951978118190498653366299305761373291418584478027010112300118044971301673387039238033500228485579577045657403016754233697525954469319852263427180390392101182058467712809199883937542891849262724240572348703472271248131444206878042737782519663405583440012903125677043911562089721873688614701328083475850930327299319660931100515920878887050633636533774403268459686165645942441486910439197756801175856535059333889782408222354103239767704818026337770976360248010574196813313435549031136986241182181754141482681463629371846336396324664685723975415829708962556168213007640191167945757584480352840677656753693818354813898369888885828823036074854278161206158263136979738997923486013427141117339662232424740526807810868998654809281289452772494392472515781757715563191582721675071024794593338712480546483763467529811245431238753096841508934049467214158462967562921065179756336354201276780727556596739207353686134072342560213856021548774658994503420436940619891597603177018772015952668054911225588299683814913169268788761371846676473274431582001605605093312534757675236092523370999653293986453829359866311705455097175912765403086102319966862344001503437609007716599888951075943782095213927663824573712487656205913468246971338450298522807155168054953965803566097046757261853997835893590249956056923734661028964610218080941450336781652929368348035361709820345078070001231893400534292127859255789871079078736064680584350541047681989079463949852390272118482530563862174342005721198061671598151167624284874657148921545180374083592581112818378095150926278358044673469615170545974251112953146959472183513203640367957322396899747425733172524274550680544458204401446849690739030080883470259459035269150894482037248523618720933161103231740408563470872635140529521012400046030886714316446732721810308574655729273549286333920716286548272973005995713988760211955078396653610321991463237579614103836329385806907175901098416577153064070088554140542012490868595555542059986449614578757548704415409746172046448372821724780757903342120798979927038382100701002303248803856628296258379464703284767920261752505136007485998998475749990186494845298619079508698215528126230868507417981193785481778194564319807060699974051730138566336321970461766831811204739559087189281815270809498357914733914985325628054169652213793487568818285321770098414050112654071070561191077151545012527004181031977358557004287026049308724911385374262505173199559776653678310915465863482319898401911825083650247712119221618326865338503045583081564873197442693517366608707276426466248438529186630236152260550954671245484530262619893794490668247021759198222348691915051509445543604529749500725904026128041911326552544156645888939978803623897426619309909980641519575111608553763097994003449838821016235085351418671453679660655459816439174867065301802202850336112034096451231229187474097111655946367793995880220442094664231109902688245780424160028211965794590627449240318784318637126229903023136336874260012481126632653595492597371690353332937025937288914013849119341565545581846060975587763841930095455209082445697761849656988600491527184763389534899738201524151009243779789064270619244490187225131494970046713264012353813807674294334907893871422687803894193971960607241522111925433170638072563414635525167701487632685247196479837494376183496667080312980519657099256306734275802514680581746109458451146100746935387822837047799186170252306129398915923807292401501861163117539866023194028071224085356504652168710843457707412303932504941210206367188550432841182114603750278726851058071925933996212175897492869893917521875450942890738987115334617009960276337404799906457050750406078817564944389234090984185189953014725695409334320013602338131439342435111831690241641042416890057451231443192552808573761309370072758397009818333344895165441123732054948715676690336546034389040819270657103925646495215147905355978263887580289054083951033526063495431727263958666718590413335467090829100451537858704371819701500016964036011737647768406028843617539547982306589234509461621604413775276046125172034542587710613487604704410557763292209697875467513321441912742618532521257353077067587136077209483888873233390363730849233164663642312293844500365938792182044750233950510746126289896623638764133161969576862380912640987994268050378512649828760616630391403339108249641623940042922155291050891409854145099629400383848597521346207929007540312368313962718570189325577592267637555402630816387663802437507794036321641021478325411825425781210179080793091361606743654445090634829664749694073992065240057587015256211825365767872205962070876138537063402997194106722501823493092373116814214649060581344105427904370674054304441243559876597024112444581609251369830862732523086909889345546358182747823545148836098231302787625393193167790765863098476067936832734324391576269475129671554528439188928112664668698247730204439193145387841173209332948727053444299048568565794411563829282207989665550487543880962162495563232388927442681905981855690326769489500454974378617425780226105625465848155114274215462273905624485257439909973153057067664136144942023924177191732742603140203015559497547771800384482475027892361064157009165051674001442691287232153366303970072525262099798666601798566250028732668812887461307873169109692065388777064385690079396942396275269392412658516872327808317455172202705160556880981830320081406334873349368681456373925439703684603347543200484258696754379393621472920595489521336007864836631840937539617633893508172074400285613189643498180316420107275745002427994418811054377773906052553823069129358903121601799132328779578267072550459777302647183397843680249982960577484598212530857776001762644168852792868851133823279843816413379466918490090953265900644051097555425574158444000580327102959602947805698421458909155611136406458831656936027314221694052417809328631568911449173926681132647899127077538062038343999836272392483528882742679474937182341155073530738167667345855808049396052617167332527653417061828923607110140009268828663489431550772893727062900185534497310625127845377420827681116968937127512824364559130182685253096807696235562560650030399161117254448644770048886441301047138287919484805569435920814545675827711838635325031128878861760532073466218838183017343555046933033733100481830793596494469433315015905834976029126757241828120464167740855952480558597134829158207887581518451254766215294605186509426984631368035200364905379820528218802822287755395965790392876030330254137939033218927573782740343047515862343458963174446356354272162805902335016269641782463935713991953505897366208145537142291831404764412447539593568249111080843756959999201639511474354955780821271016435954944817530535095565633622757044513955288780965515989593794849597868439780508501521889946270979827244461268840984478044221535960941234653583069466463021511153036545248831585663903943483730900770265665042036674270331274944769518868305972228466251381194485348314810211898072167545755754322379675555784353138369290889207990150210053025412734101367834909942121612291667174659451131834230543358435562742820417862695832756733546175480861049828908606892465901579922515439935412063779958295973319233393366411170957838260794130534455458043434717471688235514018297571996079528232925243556883543971875869033063557858326289480542486457938215624963455639688631208197533615393799287302508506857519676237433531506216492301399564035003762548108786925235740335903627804078655312551045385562260851163824590092468916108723459792099035835757848246469790856460430174043149174906255328102300731061043999895681039358170122279428342495861525297721066952934275035624977022745603917404065364207927520566075715730162513046348106891010407536246315188526240569048892944400352379132589798437431381299789695988831456488494920076607201173902085662029003090246755306273974663752565338371717972871099216435326158321787999235121544379202254512763326728195234229343148266371323704074302708782267106215273400406470840376440453448789793626847691425767006643609499666410092016112521488480551650905149701861081908393802167934697724928216828087956084185238973144656820224371340596480764591187140924129728200559230672816390406564858230600201338987871833257949717097327463661650483446925900246334054739483986501166629344218133692815681458194714089098441168174030281900298498526466256482696670274016471684699516367841508312024971642245240146224930224018031992837740644115825566954883756117835695531167060120314793059295638009954965158901347969829124707160556363050814984274817225843380058952904490995041264517904759705501400512564649783087610622799858099834562855756534967417300598432336132268307367567126341223774579831193547161751419416716845381623427714124601849941441336285753067283212903826312054959048504553064040351821271903777083279426364060222991484436730890782098684811741386583233720133386572399830456283729997138832753581586715383985160031797465815391667676050253221279759645163264812939155739271462146468896348532580960372249001870059422549143057364875913923732585867745532113473098199772805221079496851967396812159789534311865269021305486070882318966037224639867642504888595806443353592484581943554237319886986951904568250899737677906526690240302722590100697680610225289504950539221082684332909599767998300336255373137235435804916346460762800301926456426386039713140942918860095499679843639961394908523999868359830612725204171526211677319704009569032366068406592191925429906760113523939989846177244739509542849545329602717688183942213066751083492269028032709185673835797242755147839991501603789953320567309602281729191555519528968824291035496409525484134926608499403963239434434903383304627489569693786822133337602655457105217025760496994111567613941990477663730528952133648917344916431249840371436966236434811089335429641068711038358888924158979046313403147926229752791353194141554553291044838693764629612898017370578858920421409570358958148209208118476268921278852760318462171320019772139122533572279690630448043185709882304020657055234928309015594946504565527324372929017084511723858980254988812613148115586775104173094680985821184824809940051937355202009938939611111344449668275602477763708327556633794921525273541004310183237402580637512358214556801594680314943988899460309482139840093300644951166549145781886219263912603805290103515767778377839799390166836043480386200073613836592888385174651719569564368566608674490861572288284113218641363600076917935104508091968527182421235203469681231321737798578465735619419624212637825393148556888706655593208024732968592210126437516703184971240146676454827214556950803023914220460016967869058618021361870817644978793205746185349767443764587732650286958738295248857759274695771309386088910204517050812262179813353888033267055038981526782220706596348961936336657006967608055721280384203434598750485874460006295094332518581735397033947951912196449699232865953899314522135358234911025266972100183621041636651541357704918395348050065733692667520358344539387824883301040409850747340794952027429560594347133729168764670582987208962623948054702214407545325478048629422377783195079484178438498285434816203812095387978824723710120325610932673296713769851061355644363234527771085959159508425452396139993265154808131101939408033650456401855803762063811106280918782643620430534886530958398668746169381999581603311484134907591509470736752016739930553472622582367984660431196280906527807927036617698327721952536569734579982294128234388893864531200797622951116688322126493177377951618280304795275793371842923290137899165367205516141512819695612422544788078419451072099958907475380567780027222487813227283111104160010168540421371162759853874400970258466710728275858427793746924241708039471375324847495482825900166449100767179540858072143426817993582193006867903254173591513180539366684256673828207186521619793946622227144830786825834437259480641363876436013774998901718187106579225696193166548296441975441076405780212611337194486373448521588642803145466981033650654949024006960561875486918828069978014149058473226194259131769167979293136032671516884675365171564882990538485827969899688653751963181016406402918397057214944647768495518738535765588298728343281912588264950151556658920419605069659736469947363210581056965876489490851969502795193181004950417092734892785820222262230371485608799058458361654422209782363943015120888421187447675189606153028570436341957038509513908668363518384663937771913049129840536682294612624982235812746501578905189712039404138013608249257746498428957606889972685878457762412543477335644695686944393094390288661625723841927349237294427685053397135303875907568733022900575157618187115870341023302043754901087281439032274663540037247915251469788950435113416806476431278931719325266649741750291036004490660740837658544483801567849546592566861805443729272151002344996947462572848735842779221279852748910476714365184420820506431422698123556600749273804225499768329385697799011914619866217232416013499492949864897612302723239465404579601454169340572209055079381608697969586246135398202982412307823064905950011470876396261488487174800530214646830317436642928471010679108412711691416167101002127341581678876249986675740748753466850211509931769177337878673127808651576790952653068346273372311770724502653274003383021182779686186880868105362392446769445555545616912292475738632087300760109443204157558204758171059154394762124384698311357968977902926512196274169200806001434862699996167854300009186774876665165941585912553620332848128659495530869936847225042247581343903657217229132945767357929769018830061722108313043603143219896291041559980089153576067191718078664008443537365182938163925052691269381616716041089459068136868986915416857863834883739673061973261413242750080539519973339843325758176329144744335258097929742943669705591952880269315864404993728998201979973764056406205619582088485527155290079305316185041122152714764648962386259543378255472892945865046738360316769169886898506617339911034382033146823709990455482232541985686725026523323392665490230822832201447356931436722129573687507695124019670507620295579880604591732565496265335948874979494883801006137754738855961570156665128386684418301090687818073623965884057327216584567775181484703532508882099796326814899382355786943022620896299279534133059942488353091205498423390005481215223055724939441571821679408400335028782034952163628901505341073251660687355066701590557448187107301658840236870724465162006533553805512562790152267615821374582834695029612088192386258444217156568398912497768251935247273955634501754009272506833009811958797628526332959192001602698546814114774043244604143883966763192701019260332113342275087155108347123197209154690758831609232557755577066851299350913909020343364716296461710938572589669004693854973293900387197501523031108429021302663848975608913168420645754979345805243806045908665938489142490201560936896725776537522856370162475775596180653048779799200997231061956470761549531753756438097907122511498984434112813837454816438349850341136017901801861697891005097924014810180225221004479579734221182479233594567861157958657809727853388424058601398468984248578233555933434267027362901142512808814177368267254697890701176888553479181685316245832093697452928479297435000606565752554883225992949854670042049306601066711782206900265214555778113471885716851763126881743279362452973599602697111476594097165580214286311349145367241352630294874041376859062402955634207563603293500802331792909314650704197859142059686965772742138422242780387724580488371289515014672431282229559183238688880671433908635173673043262208940755438835190823265705057429863731032057039839858098530498457396274413438920347819060396233133470521847702099484370439363390503116649933053647683419688776421952608129298961694273087609862971402662510968460710116963945537459116163413276741673874856114563294827086736154514410869389642880619869255868053859308477962406659635423231205424229083650194960940060437387622029570340544848245326936754699310640952238670703297397815755419330971139675236432727977024864629839119790930704965800611545388056882355877525234185917053245600538128261649526186684441410426025445136216475295194902101187771833043135253323785535871622255173822422171475735193998076933123971886456050067457376934730600112166255973658139536593928637598063008365528397798445770695125253920101798280078600353179383072789630173022690078925860431118617388149823912419291321415430822788608841438278622944690230708904675246577180128418074516301692037983305911440473238690410683872483417310008885810742024186042733246158253946575841693291475728273666993965267708526765998924228737257933441668724184418829643450434871955998451684829643253721527691434215895304657249249118984080496066529633328125728571830537374952718616572332884504865061155129225858210771962171364513166984094716566904741882309031659674563042987959371485299368453559420885869744463977890530510558161871945036052141662937738424410436936557628113888782122283038465201938526878078458467986115980310130605359153691587801142408647031703852186342666033975284263698972579153632545617260677086657850657041512347466204461302373823414250496447492399077796668622472944608071321866639549296710492667404454191678089037244741028826094620223100748753601961680649507983564036240422499225836984386286089997230037514041839188844533302976297552207937587286843905534305692246564354366712450187931004191297804782755558561239147326450126904510769610238530426503561445660200892520499568586275096559021353716115820583108297313715190903887418038033694943896495440817146908093720607592859904917063692041478104893342958294779732976845750551732954362899841569033668351831807102260778990674177253102794786493700321486761974748787978627879711605509063339924681991621959500167215631460298900549996777488028938940366455867690322118200947852689350982170682791364028816201973765652300176205850672755730251439707241066164324326278724462925086041610558916865508272145240732091618639631680761709306624406705654324279070175897938526885886739763701798154736940184259596120644718896276197217497170014198049736657629704258774056874039008709141582685345874925489382805528062405037820608419250048781221366079959826607417469959950925846065860169287320132971400604852943780202070598730197687204189930936654682440234690397042440123350965993798209011145352908678223733506270165204639689235220197604790119640037543962598417493975007889854979042216431615383284270973972188352724638710753530449687601301685501936022718030692966310721028714371661788364931650982401683479453224494708511077777575487489116068811949517228506738554651769272384908750458826567714509665586447711304650907268503309042338170664448073959684105328874262027378275739655566162385874793094776543252373162268440100377004698056495899360941138477783867201139697525549684061967131269456702604897365628907387128862660840231464752672715703463553236658164440360866653207492390569849488681751368175725196011451261180495205775026472578125881117894653956821265374632903753948041698621784977638540549583583547319284599238189248547280581310603116296390012880471071314029085191540292358574660320860740223068793224766028681105021661479288503806205716951981698252942067443900053800003629426074813711531312948231295492009625197845804852430350241574621018374849933266940747434722799368093734205380769551869067359593981481889298322665843458050852667345879182792942108716213778067555772494538353010381003063301550326470638223542647820009189154023466221260290734966792218450165875687481780972949205333074577856820186707077234154338765707832492990746221532266165154433138864203588458956146467319326090498850851093495770539131640270422589562046385368197206279609524791483402313508350317975111621621085287770132348573593876345192504129265769171686660872249535692906178678245397604932670054321811865360317977175387268315471397201442299824721318888923191552583872354676688278133877162907645931221677656611304529035839317446122367941735968264107196041946023924904733827887415566520876226274635161358964229760950295193523458671110655406524952474468719876153622948455108576492832440110178152028952039548849996063161214493572413146841041659064186937456367036475190050680530459461836249766689174823250143105476013528028832311916359938312516795342104078493710472105735515203987095363326625000944769302256285670090432561665470667612968239184486215443121231361837373836479838362643814789049000173968797532877648102160802390758597401153074005893225091893617281155083101348516939112712945405041376857868134395555287457964110098679401598477330378569178038301367308428994519403395198073264074643830623897733449337230905253714074184691744319752733480048540251012669932439322575033360920592426867281955390401901718038834012302882287596586947364134058376671769743069224732055175324921160451962109613370307665725147316149681673061393626583958253866843097922245988970286765637605339846106733309014673997565378545935151497270304344037895136665174335964242295048427269976342979680409641660373435287633404836465158578612233709923757123982348786745415986833841112078918696291100916463508498344411717142776624482153991214030180611932727609284522458026989794431529108253141336293994340661918250322844252050264132515461393283572885317896369513924755576799413211107183623708679715838136343741872460136870945557710158884900069602988603682898642605541849474284936950495178722085724498110344183335418666945606278087648125901359540646037330717821766906684712933649129211456876434587499781829551832990979735675344775402862942606501251233917141650956730707401898257351482832337458134469478171576909385173086313335032882211195948052119494563399781747432117195664980636337080428939498642405410407853218375102392542604320785441819028149831795762847006002237105906128148960756513631767849365774384579838142967448595603291508747880402437439523383306638272078999243176979766291019240014209951889072283226246816668970006143026836125816217428390547322728933824363225643619428587271169637052720403393931579185555849747611213304109803851439562445991912344015109100686585486007533320622975449652022568943928489817986538372352868349346151272527611215424885652982423947961713598214744824332828150659713625019982767813734897602749032539473305817850121490386664105334563088123413194815603765232446300245959935015638236000530106487062410239870411336635298506491146553331734059582061929593979001942927933830012224559649149805350028992166815935516304686916239192934893295053337746771601201266222998728990908349514741454001668976363498402293457136785577424902410738578978526547036475548068931639641842373744913297483507000422057290650545932831613486756479879312148454782763001101111347541986637258983323380172594501895816859159339765968863986084879559079411950444473348336356093489031494838238043878099917940581106426852706054728750569858760044540741960046876831924434494747955376583146582050966914911122714831232878859858747160822108718529668622605648544260206794695916103867796508286050418701074741902301385085664325261757471897900009228389100537418083259159035291316436698842109235391698392404262527248594351425826913329865952317939156408922633218863060723364728991367348812014942606369474434411005359962194350284408422455605485839995291248042113426690388048501666643923088733946346286224877220574946597874776460723017211527140826926690451119424581701396715641589327963411450349296869507647605061103877752585648851121353466008411614737099282191812829941866878015086140924760225747387830706573947813520840139398408993268030933691296333296217496233795083867645612853362588211671963968108625513073903346686119207354336636125458461719448615303530821542938956288495849547185179078489154038912324963130851501577271072318100193302839818873241646923882418502909713639135053930427590154532134705600358967582994435110903042906860367717319428392436904066717060935683444894070688391518315991973667880292566801661615080845301151479825832196007931652128416326238470112971497983983727771070847467180814906198218453358191550637318754722046876787566852130494856389799299555513450038466562490754584416446344190524898560936766591327689278972955073260490710119212933314876827452622400024930392250770513864545391700688245031167142303797922446350238893458960787769323667521359374761960300846041294534418086115371246299849661031203135542205239860399034672418436643781730283879096736009977444222504831288858266642544604641194981534742452269071757673298588826570495037387792079362677322938212574619654601919010494775731017416023629320248102813960033630771635656964228574345014066642976102536957257401880047377889501974786457687268436757667099952422514180828685489168571140821127098736957746802886645340655302163597342861670378407635284646427796288791635463958086025531446551661101239196703014073491635191809516194642820744465677313147544143785064158912564169560817767803361108875629653556382666251326910403139872687022234482570292417708461015180187230295198875560829077633006212362816345382016556758071933799451334313588674234181032148385381334841958290444056760403325911459288569392195262289149901452011014090651012886268078332661470038102594835411691334141495119753376364825371378879212276547077759466951787815235793461768178786053731267865622650628901485553818335753879890591913204469167908752213241449174437128824989342001354988763909375347277928824267601461118709200778958442233749145793872983199528951083779331579877121471784777482446509265423091555016105027282708130650378666902475438467340826360171709694822663960401143293612255869875368734807037014479164170876705611154219982488723296107653048004905313116277723658881156137523140219217642273639650064359190100049933086107101239873714333864538455948478504948177468710317188264524192398945770637442436939275333626971305501536485941577985871385365082303555659011467410784503140973567978612978402797769749204443895678057876644594239839939018913264441227906851755560426992066233312626261025760944248426818047121493306900501575887814137365774848474323661218084181304453878404273927566659401868874752531761346768176324494459623964911041604570507831383826155680726244721353521138846136743885013235503990975247932297482935007575052034363428852246357203452907580025883996858120259110562319556569684307777134237045302046936973999460982916992800698923118649161254957066578374467505550838180971043458980077097468651941949250817394459363071574917809003330324661158098264802137756407748487509987394892938343936733140775268199532645255042752964899296733977523146551848657352746113449358110714338738735224213230815536990344749161012589267877035635377334858961585281950840634311402448721710862997307281576028692003082514537325046026132860289737261578850870506656639615421096239517052663049910969770145069593168569678680480280891345795822262394261788492905782976903082456833902679252626037086448052149402170480201763356416822299338618835343098040975554563482309493673356686145303463735947444064565969609647449282628692500411538915001982895173059723309715362268019951726870539617103208558705632957786549356745018543619070431252407523964774108708404168894723999038101034384225850952540363312882059346691596921609654403794422261531084637458100132072186486070463079196148979202026936002918231487928180395016422761897831673688779547432343445018420604193077628628686325729763528184881753004047680567214196465001839409905522295673213793757308200338743378234682946601656270133210668821454626271606769988457784320178957931996337315790492237779459850113825998834742050064873676929394576376395597555112691133684369844833074743194079187263593187623804855428490555119308230456579330540821927345804648580336312051999072047048962648472704546700973069290162328177820455243359722577111648985095752767054863964549925729362456881790482333421143423332315025597847607552498763042646661565079473080563350503152061659014085387608611292596491073757454843221928069958798684364026216296015514667463456006341328137350951109815149021030451112481358706507054805609789649763859851794391732537470516456651869253231175398939238112637263770748162586085882590390606230034462695857739093531465811258248266925878783415529896881995851876071696781746174065273856693280113486233117116917609805792770125895963190877219731517490602104019657250738593613567258076744102935277242318398810015361617630760982254083571494311988298646819260695223442472040693368411673135264147488476447096567547056987071178185598420575382471826549678536992254856302361500337678854243666857426684207335651865492830198791454380209902787372276993867140923837612208532181969891812140418001117278000712901396577626826135048999204659538735847519099667282459208322441188975077810877745179232277154791928818125113031489938343563492168256643883086088782280502905450176721116101095570916829895204296968210223615845080777699813409485305338611709853516683001037801634268145030723745107822507056685436499356707242840690702607099603543612516294728570767626724522452631887934408583468461358891657424938150251778913850817983139100401263174732141808205218757979226453219645224180281721621951794840383140615481020752316292796463368867159913249761559845862662958432838134890445614144079899639549183357154048198004203714391326834696144080265873191640589444701745016896076314044799482981455365965142454859571833502707508105849415799175193034330867331120940396561650638012231948122814075764824286159682743311292821701825005397708766799393163150469288053990487038585566913319144913766030592102705396166882749625490221077041681526427047564992777278600401639525185582800118896103183831073222834891229898843063484167592008961956850333338137965154640196438512646756763336807421520234206234877573576627800763405150906238409012041197192359345350733024435238625024863825751118871974134141641243173118675617545868921480526417554223231845359545200418801512518370091576484090152083674244409686584644320958247908486079544480725399784627735200706321819702070158696065990676102777924476983690847640467571847604894918002020402808134309208790416545227628278682917188536594583866509980852879411991587331262692383209574273870262423413425815780035342495158593383714799986920010068561197043378445771465672256450539428743016457223079591928858984509997665944689237582114705968761418482184765735864767399381991852217860474132693802882515648057823356886367044213796454652229729924354005470687832863057728807204424032965943109005428976314230592880242228073815055524141835979231582389987828256891786042025293085221285144067130222882216698712883535863768333915777746811301174509176526647923194754133751679836659184064814721493301372546661505303252069846762606524414212150914171596507968797679713365784306858276603747612304425873233139871398021606826063383907869026864575849969896714617475613385548395117596062212256386835792216148852050338489648994332733919055523102025490608278946677296235202534783778419455811162743366345041487884146705236106560604881690459875207580597161123648254302839043621002612073324370656446486846824086204868422564630402026927343532955597529483548144807663099237775761435569296960763534460747950151691398648758718320958354260166674824145371499692663838523419707351405434657098830052083173015387005841176978720859622420371079223626775651011252533404901312315136335950225048485186009579266156858814763283146155437897463130682622216588715047085316369779951106616982077400537130050585951426202744308576854777765418297590881438122268085658770032449387105499312458500923084256607335034053404946361645372958206851840404669226181797934694333388362715735749341304197771927577736911324185114441342490199170451760486435706516208777114609959674403435284872970595343593414016698468269919601113245217803449750842515428209830138251643807138524138037524884450001807873509250455678637527680427510267554668435906818461573919555886940424884467248182948660942637172238330999164830936390117509061545767394738886796142755171031362686708614331879306442589791518715632216808900865678424392766182136100934085780025127251515484714393025002696521345386382818998424874134649842155710119358643662416573219086750422553229483974009430374441338132070295042253617757416893579580614276944722505456870304659404576648922172686231572477293571314343843270464860726873357842681609059310524049958898073082804147656372779941149295204352330187896213600510713251867286606346509857291963237119802904270007882477839275646801905273421344160347538105251551309885147167058460408199220872046580383863518638002479964567286157188699568107435063170280900565183698046126458811207569985568591968099699461115835539942156010093096376839397043032377859350168163083906740495352427641125036805868102012456044582243172552498458491731439750212138743107937785828944518809096347026155043338955553263221767996055313562243857030960399082274428833007945641675100648513789132609899516068348636743431266227070632047709685958841237469321865762375987777753405948192449388091368667310442155660954521655919271780456152903697986808477688934960068175661497294372244482674927853392695661247603114632627642285304067604918614226420972774447908180809647070203538854373877582057290941064060147506887972937472498475237228837899417234674507076035839003160926623614648658900629561026997412490540905873123252266711632676225732308579166179172822534648215243141409464044756948561954522055043115864687088957246699785598588494472006703087585829187090113270984540690055856020210818416156022106289514257920024603963986321868523072782903257221405426125921959374012771856880038211372635808591072773988406768484112461400292858780677357644991526710591287932846083226596726859655296391426090046245633313696260477712283050405805502861642133336540917931468922084999963929237493112588593263203035576120644295839984739957105138706770984275998388600447057644239415655538178561237135594260355896473239430613990986651985289652467360966146306184173545554758913691993477003064307249891290941362017570134578743356523406204212230880080905335034408792060382740861973759276757446210082119134063591680556487992401030377737626985655518170775715596023741148296900052984147996770864218999083893174022811931240888327397687177660231845493709074653564407007999205389162393434528895031725606232170375357530253952692756248230444415062280451497136941569156278915956088537695088347906355246789315455482451668044014530389883672072772625019687284009970406294536183453914327463458214192909318086202948580235949702116556815439775855434769974594894857964929867961140762926642809853587472031733555480382211748176853552724730516802252573786488847110046841355348204020812036939520967938377903520190734752874967774041593927202077646640415023033736327844790415110611133969328571704942315878711912621144956614221090617093434057684991462352205150504493154946248064254896208191616926360337645928146667940348002088920030448255491107101684318080969390856493558022151502742535867608321853136344864975300051914282740582544231083705191724373581362085992536655716306785285932099174909852389928131149612969153550101907477420883044431069424449741746836284017418741721304352860386968468650379142854683832982609738216678444439756005319355738225488462655796115736151289073034008750549651548751998457493053165096623047882052273150882204484315536824811190384420286092400337617706327603133443760379055603935494507760814559325408995101734639265743283551976452669506593398248200421260922400092156114419854498105646953950455498758178133657118316860807003593467920678126295638605271552006402796104596877876252463672007892754926872134503418069764422133066045422399850969327586004352790290678177743180588325689195233097881638113691753191604687138336463057185832402825697070503487012883361882182737608982813346488267982398943273420143830241374071683350350555849601453306177581616156609542343654588024017929611719338783876745584559261454304840792469140573503090381980524029226557772079009658753745657873347892026845468151982784264439396718279464618051286173769543911319975116910227352395976961388249061614341989836189319054481996569218829775210956556128974352269375749078532666403035656235686979935930512266682037334808165520911690788605543301830229679164222271410381388283792967696346345983684287724848552139215328726664370642111604634024670524836809349765954220220986819298456704112927910819523801382070721130315412861323573351325091644266993545520451584832231122695971266330593986429760734434818793509971948841652144112728640391445450462155043272583785429475217042608590153132391670673302210811719698515397360274701730094869751873649402753423749334529421667625819917958198449339560027497284557185888792129756550163128470727881451947099147278877800021976544614608759759154857470585510902184525374330977551635878358528266944085185644689084766818087859470334174278385912136132530910735423751579837705115549572721354581788551598600902087613049820351165537548007576292739586414758229479039395864851884947759545617787086246295583229140346585580621554803874052139513635569863372988528545773099184138118279741805932578837926826684089701980178348393427740132031382853630705000528280485112270189568029041761013624474219856707069607040037787909974234273584250714575826551449394817165478797539657080896422057305580155974932193869505036777314233622183781292402863204147467521332360646787968339317596595986871402110154726905392646517730399160180677664453032908623965820110509101956965484997700514110800745533504484730553258823914992377218362115065993633979033786148118272317123057325812973031444191354831873713728441351356142401343214227058483281143179940426121313474112985479811498903567525748061321418670423282299318049386557124681199102946899885266357249147310020323708713741009660123375824980860350831753180692195883971658252332674402579678404626566710623325473320300581902948804192895692853831148692684326152731844797715628081994230589021279869313059117587815424321894431241707837485722520956747933811665607017407911825804403598596787070218098989515914276270360481794837264421080660702877043725007687349626163525235260961821817176999177635337426027598554167221297320222331583038756805046890256071965669820538825907867233027660812341942150815886014085927604120948349822015851777224667099319227202450040574196365189822426493291977384702266002896031772766220447034220793248882028519090507284373654430494527016024473064338222452905311894656693680281473122106433499929900020140964114120638415280623327058802365046080965478062395575446904150811267361119144937042951595037663465584622817052430116225582259949523858430093428234737429363433617484489290641451000366491224371117795297649374031564769482970794778905528548684311053470045001228158481068137053328685762193637293030231343366872092044871631797898742470487395385083319856036586163267744841051801211091526539956273772246565750213684807672931300369006234075583783936227471029959854848285595883725494507783003891533073908597603326159234922699721149999839558715770039075100275866056284020699439545240687168017824414611322789792906517847765914470090224913196068350999143157865561990880061719833231192997955662296868869523671479318820024524982793527569115542890953338876434613857372524429489583824937579635572179393085927400725625456763486884949901168526500887324904271860031258735409754416888937914981660635711640060117745995903153492354341046759291035203709001922357708176586647887142052442448596133339195456115928802478594346791217027127549252439963273514847013178760538825803530610678551384324443555744617433486604278859959325504008335920626890910140437175200458932640931774789263280524984012824736050733043458434272868917033812448010122613756529442682162857497058133323990007972286990679885171322393832306484276445690884770382325170635495850020411181690924774096953407856664899885675735717512428793490905192726511313751465587101603041141255240150476670932514162327767786738426942148170865655532613802210992169796854322500779694075074714421044365742926276418512800529278871330836456432955010855562155034005055741946498757843978141762144554767638131561382555573783880799038982159395400105314068903413107789379290420766677615862923664213585146871960098070459986925908753794163089154404702166531918478574282003509995494614824089483036309346027733139835037659907630538536742394861291457307716446991104558056653192486825244030292388315609296140624744604168998624212870047297693245297695942524903974968527130178020957771317586377625120826224361048186790425397142889452913942467262928408288667497399834199043832449650682234271958710792766642473747228060761316204758421837190877679657939714972495177942829703031457813736933438731785413202076468208012528375656564118423935319387626026293398762011052158297819370075365446329828788896506591251479928574975146842915316181835900860748928757536249949026022368901683893439292049356924897660964604220748850107628076914425934849443289494978181174947213781216738019487217685872898405011590195809987446732389232931969197178497607549268888810735959063651935308740033597670610804056957116988954978292554849090322408586563365904395529647887896389544196800397395926603453670590066707771520377807851385974803359902907170751055771508459737448068746343007030624093729290452274412399057723582089980559405672909403565416137660235743712956983908772445468471091012041722436869345064632051671270880351066816410068076186000389637998084343104152181264652335323239551396839350099737449074214495062334685954609248257490409835932416329466840657900166841105975059311626720868448720873515416860924619317470423487632676733718126396029554108773770437957902729192682873452935802110605367915234237826692680201867093677038317598854037302503742686528497883597099778700272464408696904220637055101302917561705159064386142325064997782646297602170709177417146172643835055729516028289702314855355012993498151389513207212757669042794065507815852950727400946345600471514773090427495746493621431515032866419458540960727698470879623317612417540359466840685174536891720216895278842989310337999346845838520067211675354760002736228658388735373308663791999081629181257911749444446615034549571782439234730323962324940331521287169630485596433030697844259750271361890587830939390267046643032337302407669427448585884088627482913595848891872021049909379048672919007091072772589499294180355175566553912025299843671072249936423219460593488903183572606290975248023187725942910192734609608183302563869246483840543656633887883293431420718492321973742562395690670345177697543511652046876617055981591085623537104086508949567961347762352113340259893804180774330618542150692008377647455922997836012349378685956878392539063395640685427510164217603173828997538545071435932794372008501724458124240794097547915982472060622487191174510597607237081376401596345819757504617715090909154823262221516845339616264897010474776277024753303971982888301108793575079335110599738828026905764811368016984918817223391490871895869847575582896147560282427576476169352078477700893002854904354844422310351936798087174966302992017588669406876239658542786358073993399582146537343940720762488063180888419755140832372350727876476740513655489161332801031904149510317621968395431870831147289475035513455028892710009134877101914189401333207417355028275797992671393785065065571176220484545366278800700670020567653787270428219586650559221926835303278664002765957895178046672010681562351047765436258182160954132495832348175416429144126643183936379805839870801467468967027773504522727848594510699270758671959162524920834801188511946950664556363582331749205758353955726794118079014235498926425364230161323436069811401340164401984971413164558240917514014368449152854323948465159882926446211326981202260311023192533937223793749815513684404313628539543042301900234964242597217416659887480455852566316489460181113257742879541085078697949495248420297042454903931023906528254192336871017162907218047458721036870591989003919328557173079829014727784313112621253449281930197936414401933154506547857492914882538637457673477151208596825926319059353003154278381388588530351464691907511770061714261253816341920351628116097893188424317660767179972580749903008700871936377601053559844841996605915322418754428684648391245402469712184965642758416500173599829520844910923975626080970933089656679495305647578132793193395067413742755914206555978391528837579856693643481178341636181426602888648129713921457307840120663766699209227491241710756565741903447916949106995337124224180672564990275036831215965664033337005718799634793513350626078326245018430437864552649601642389297348854753290119481365994033797167844533281043137580964156665595582203443199616778722364768171478671479866083967464669734667367835906638712634359604472325179631179974902790984880718088505541217817247811718370034480630599853197344641436921653661419412767113438639720033256812340472244304296138017866073086708595737571932035482499189975981366889114876150384731614197852279741385369986201762606967623296666395588561120035038076698716969191396279135272028132820419890063697285017393892623816780168191706104618348689681719173570806202551056618844270087597207335329963642526751737080905953585774468598282632789597743283734913041662998068433451695319273810748105251176195901698385716265355403233148059579860869735497547771582069995286404703109256465559238172473690036772308527901955506072939473777201362182915184284421761023748980804697475669887603010221599714969867210776828210110635664984482533595024630472819531706766674172715670909789862914546562843936417887165062750069832337421461886856946477620665353056022223381739168170101991316315976808540155252878965723330343227192360866218878759370534371275604295842042478533923324183250826462952633231684763412926555739237101710673593991008282733309296129836314339592616734289717802373050214910502408265368605128341073964219479946994077516301408110541864919996711198009186748906707661611932888892073902840709778166357910419569685422626736225972978088699086609661136477396238233889369825730212279351934188712255314850289858946329986099381381955726759844061750239426783288414280912680631714677415530363361974428980755713758749754033738627528969767402448848636834165253661497322316823276629373761333534867675215571453737690747713505869764833377829957199975783904917702849462768221239305211271490333260231253574314411476535604386579680226474021499147049925069710504110330073952043532088569893836976628052537548604794795469518156081260624497027461087235717094569430767234432843347953779826924892509548652446250692399430197747254681021477414974659283369982638797188606073203947328672603801260281368585591553020808708273000263654448518234567525685312573570882646352174590053873655165921430078543563693233513765386290358931646111579445808902738656895364600518778837158783148864573527353489399627482226622415728863089025493628334890171913922815977572988794950589590984619074692381117067151193404406189100210689702202518825965644706451972876029193846410723489971295651616487318078673880263969968525466045187144512492215367254482478142014226062672969079196976000812725536758190072283548094921224663291513183894885527509830690547382247497822818073155362474532115731200108238767360917225678152085860379821942943552615509926324017752022555715655535679513195154481851995455783317432463385035153205793949904344444907101052846863421797748825695284250894612375577412679902465469766947333337866667764427525539424049523858342520868125331923417826327419170558019334696163621810575481372801317808166960666744995221405015002516852303668038621502140172255601217612969213474682839092355204735758386765670234915665479629786670596919659153260216564146950236837500951243963104679711047026924759790365336482237476679018203870518724292435810863548286346457279808030841841315851240344542347233469805201011616870825403472785271027424381662711987927389611189930899205990674303920136216202834183372388565689882036475114131341407966087713459993245218308078688000253125639528186514484582063569985515338934966760093987834705569264785378730083716800983936547929124050212071118683649117443448999407155281055404617615030843975314691769357121332541998046321866256753935963839927046714297528324416742270118892698797813882614050700707046088383080336471525117598582809056723916008721094313708968382142415234001913946285012718749331948377846203450176659041310786979406526364199466868954236722347650892835394044527180744782638399002394200903258639189105635866829783526576496271406094659986595236020260666526834308289744438318149597078680491280945793865791345961106672092708671083710577297853784379778473037329418907852963125830210813967119429310752409899642028313205561316785031534798976198217367245215569768072760270240912868038385812012603757946441817067204348899957052984946804517056214567947202477963356568960866184885751559745765851953323767852155297297997113661151159063361199966345957232622518637361830936544257053757622046852382113934853234798741232242383467137425096637468772858183905400155712543727377077497800952191067056645526382984483996436299705207120115447725279442894332158892180276000882092216420444890011540255792042466239443756700740958621979642275571679144955171435785343520109493235717901171132756786542659857809252947470382764845064032178093081676323453086850878444805223034942404877709697113760540627041293840953140669594538058938485472162396346695730636064205848943214913631435289464275192259045538801294717975670264305050108652615962280120969690359312967104763953366475481155026528605351311408865957468698369235935320570035118039569697432193765140660923986769422283088358694680161688358680213504798815300726854692400660888053179471726221741615998502736777398596430451520431405239263905899153137975893916911560589780897041146090407345426274147112584912859893365945342973661664945604084530248142253501630051726086541958811398868722488678737408548238261725131366295099233885975342870849806159463884973765972736904912815357403211382225104552087449422388966076681812227440615757025520789510473878268764945889742939409722366182852164678046380777615181371378533144118492308811337885779339877433402781653088192417128102268634443215464870289815320835388140778169237382827325558269335723428985832778717334585371682950710976228094912682339688916121678519035463650171140329364961203591067395918399050313201098207804032095197023993734159622371715524279740608618651335411796328345380137461791189018180821047263837442813508516655237460468554715724893223802186465833536489552623689616317500202429032752317023772177969755853759969656827355281276108087333299765872309235350558388586429361491467603870120760393771976893720445036296769932603238835981618485402678627642012964833778635070496585932341475340975184880369473965175746909180736790497980056838453220704072058769030688081851466557986100116442836541766736137518622376346636416379259659058149109949297289819216872023448278605964525089887794120138591743224867817875424726333740787070478526948523104439176543871504580881668134121348333115912275210745514263110870276031320178201682285192879105602992844841172095104959653576504278609708555006636389968315102612201712958532085056350992276514087705157394146974163801204572536579158245969218507441844533114183448256693564508718617840273933793594743142762564814877550751327951900742196567793176462105033488930912246934593942834787766604067888960141727729586793291370479096514117912046015032639765518783590017526083278215224028807920228899989820540937163993264446862166630540104399709579529345145817608683225896340112764181210902719538542708821671356321767111482683956612502748364066609021773304517545956207555392230946296092792267665087675880422185132621029233846915660690802130992491582445411054472273039560697517572473492944545872167907690350411995967875242010260985624755437403527983312278227302607949609496903954702022960049922196313184762933193043016775078775769625284260267497236401714483796639364412452831881439273657708753295453120342296333050118912752428820092688053582839390114776765112695770316086022058363602440001315250077260735043932606458570112831315221625923633825076192936886984626803817784340043968952890364756434030048273498227335364416121391322739478984852841910313937810002419089658453792728872115909355493514207827694531556950700689593467301581630397178731728850366023387651037997741975202160352874851039661141251884154868966198386624087871638892667423552976181544833512899999843905844990613404722716510620863413119832102784756484823150550178305513502410715079718718505337344187497529677606227622470833381671701121379618987430873353045750772668821837222409949773146968649292852137606267612684437237616812325085981434608055978691579187055421264946782923447920236862039691612746989116812731832277020408776570364746266667844985948296932100442765472974560002029105239919390840411387079677847267746148059140430673222335496917624467826045431270134344484638377848001977462124878095096737677045297031378064259242551866233316176202879823220350777476057556571192348731110257290273226594500672308586379075986089116224190829289028876462146921393186805914375297029979879120647470962788810155810885520588811611605527774907994385285319107316072087050234441472997253717975681978173559711031538913724722417060552396966314954541965707038315860874090754972735333366603920886350329145366753252946949150789472820071954841604389135967211022102053702245513633977285924486826717407600771630637808017646975445524065762761423898545000501279205639184620681357976807511041226438729841546470629384229610133963927268545904802579022739498971391426511947218478942606470178112140218036367302293623487209796720250483498016691727272401179283351827097025488285102933984165922332490301047218014615160305908356769509297892302899389835146902634202080486654721237304980768019631101759581288007466081997363341476190820186530814485176457903291898541691880170612475083581175948312196514150990581885585980288055545674840348389867707679217518563502340718796139807208094904901758426945553769527326789636361259508543147685827150852287153083809111130110425463948020198725428086760230855241128063839604894373656971341262975060259388779491921988882049909721255761607726767813077607048836034780090388314486603430978876403096736305306906416466975754042486533380792938541738707643618865698714408996962111357597396371494321115862145387671073386769014281129524792905998114524434854666812604834795047135832205064829793549491235166579837163655495779081878006741287451679858428785758182976102091524398511159961430819621125203894117647394092245913690782590316126344329225947389547357735254479203413714974745830499500497384773301916686726100879956821052127887193279509891114187975539167964482264228788745332317424087175909730055732879987376443558976863767168520633063086394325443135677997236015263461340682908889993397740169428701071817380645845067609462343907785313951498578489137416029746658538637543154827163263194123034773949038416534620792649583267038096396594529588867998338869693689576210498354910998741527332056443385424155032026061045313431646556010027843962186136277938421506351737174701104410256349271815937208053621935667081063831140205225181278457431567239740676084009489265277610713260400410023719248315245771518574730920881849816719808497500121043427407649524145224068875068881037699604967358374060662478043667631679687358695048714721827563680063480814208771739491765622388689526693238800625879647165792314108784907749303754628237472324843132855568171757090720149607120853273147559656811745075988483402701651350899843523849436719803019782730719003081170790415784036376801651824878322076478444553269362734254093315076955294175857005606926754603539268811315426222571400746074272319836382318459897111193066217847086416916482231535777784986114308537052723856810725806276301552590232506081988295842408137806916275602905677649184938454402076569825135005719194087058178971930767859709992876206257484245396334226262021514112385191457438786017992714603473257004335559463041076475138081849852281549497669931365096182216791742809056272794795351561306222203464197796220846437093094391432250872234110634669767762119919882505038842368517915093121650236670816402071866859687315446515784219171018961667090500156832975120983391265184918472598345719790417422633376302767364145395149416173568979777121796209685130680047430442821381902829441170205174452434988622344783575802703609642440696281829055205148234573607542130132303876743931112286063512741796525702698994284895605368423072688338336601420519843655094445856221123556195551713197794541176445212771975985978888596380656709090867595150670574047871149422716816737766211666566952594100726244975793312404409729150690333355273270202825399488235112225420162125048713255855343489537923838296778755156498636888051341404996294531268347251425134041263262033203737805437650244390354259418034132382466859719809120016909790943515056101521840525335559298729607996351786954191179274220219758631270642389019716423912010457175111275014665621580153183726563257316692643217738165941666428298249374761992720143055366507961125260879949438062085867526532731367405740363896551521269819322475308946478966977547145523869048211394010687603375460832217230797993625087929704635914526636073623930095153138715107063131811356554290207973806414829424183993669984644250933100332089017768038124068795885097269907237130024302515596069974757870769118448610305960826855642931537690312899173289258802820980866229446365115695143513084710070041522328072330412899094356465349346467676628738066858805600522621493053835529284767695993624878172889137622538285226653101829752189017602090985040842703458410704434485169064675882709394336178210702259079377397548450102342681309451340306190521297805315196112214063597893429311727215919038953264668967606036648614551675767076923510863069100202770322107648228129180127780637661871498366168693330650128202699427774235817872647572783226489213312829347545666689034764559160990395525647874717966666103752383310108013053279265248058538059732654384279421665413820868369002059871663046191901966015480817603526256578712501257656734641300896862598102847363451242952469719595274750095666108938098508892468589142305058056038884347168907421653656152736651722038866246779079901447977547434816897990999744218424336508812771366701980419106431638221177256342763932608043779403396675443407706164869566027812635188193815287366291406405804347184424413347476664399084566714905323462095333960610892343760673956337375072290358835758656358449602782710337010433926005708686247084500115245387127874771682376240092955751729774780364705465929590138371617502885819362677434242262609299907472058804816430547215336009479404936976175381514088727216074847226610091315186350159079446427720738420919487502482257561084195735139906029051349248882384102462388976801659360881312640873806563576942006060426421313599868373138557914986520423308197313855468398929429851021760194787657722356355195121627115401973836762359308921727630243555292067312034145675625504260883141579296048129340516760796125170432687753987228888952819637657077290366410380938283853146412019280433098092224913327965833051120055659192606194760183194471497978734002294614017796146971030774295475434249907062157259433594870424630626387364658192632135418836897056601797914005992719473773675022165719471947691664128223597214570497482526770158817417203581349865214671774702943958058892030263863853481170462901265846798171379343936056822518058240545289305139672273943589902733786323192541083760621548240548929041534959046018060645963944334894696694697905801850564787708871952832138548929677132326898688588057511441160842558556920436437571673852276708923390602433563867635995848898988687079941262725078303599699920383716136572538456518692339342575337540510540243293578596447049155558493455781496803143999302701614358809980425706816457169644533164050144778968856400517184511832439069875959616504607005982184510617172235235437244831859211766533816056899792832993761889817239349155944893786681105915890191679624748144598188769106631353329287736655916904352830333927047547075552911861767283139358681779749909467816575404495295108564342330508794430792557165275960017926005858711233093630058374051185988933871085014550382859568816130683439017403769775901314386453796902657076045877532552633977527432093859465113829210216253375500276015841291140278194781750110054048351968766375659540608981144934395358160594379905624069750578157399124151861011174234470487769682772096048637139446111494037804261877744700175653910984277897269633173154866100084991399243685487001086457150732863055075706282535637794988201214216339878302037410052095572309092189409813575804622514777695727687974804565835846538690229601172747601029723991706266613679869068540578614154769922055276065337740509219374348893526503320988602009962202074197369885006965895472161919781504865637079347663982254377252783137716192489203447738003228483271116680509974450882374668234596186656352558411807378841204385843711208032069146445177195899635152808825622656550242892892755361213581616720700039318789361100233427819334986590001016473171711834868578546022417327900746920979174060347697703900992157869272585402971374226271285240050223339366697379944397910866816343007929108688892216813045401708593010949359327759150300641533438657072146718418960920249522005355167856662684774987015371127832177277062496252514304363243806179863971796555157843354245031167771316224771456597729817371163942773218983007486156724032746515961872337531695549011955210139167709595642692186150800746409219804270116759091410586021775536894817584853709763813229009826832056609024857445364714214322291897102573654595808668487901258166079231347473289492887399141644908518988404734024150045625946898609483335302712599445975129161693038517333797518846031951689221346842973418698894676524331835079927182587063688480766535638571925014234497633342712436949907591601838968995075778119676140941412428662099266830721656833414590296358017202964527186424651207370043674204578191939599644167060612171531978995046811649433841444284172326965520503278453212233544445791220680394907300169862186554522981402112988193671979423636003261251626717176165214644667581239761749471210645101605889645860266588560865422280344980576600629606567939569419161880346015463563819813060778897112672286990651057488516055117921283685370229982161511768140616752996760367950599107191173791623874874764074419007610762665643405503928751608766534102974509591373377652658264935081267428098523319332209993471842573776323702485442798408779744695835604576825457423309054930852321315776995178561370202274078541816040670084584101705915407722618845595621882470422072117750667360035306679837326384176892315011526458123387029237961484610842076224710568678020711707367009855327080379018593952444777682290959224256231616654759259652465565046461218916300135365020002882607178463074781039481118754225363941031954249249669158741370394080589161158336265503309248048283096377387464060565902063071377749824259285920394379799662127407701506872052349958642817958107234652128107102405965693266260371493347276329027183989816113240612483964719771794300544022556304403630719304280721985355728329530667581441712889977508193578028417656265883811387535105475697242096535063020950121816120413144619505532666548746474135881481951169768429008174838349695955606040647896181002826252632806306090292721120931854756514447844558334007482297009665753864022341201687785889517145509105625094384688894216757890995736902199121358995361161762059923247242200582942824818655101894138711275059666614671641617384279065683428152865654125715130236033843089148888166295101397658981730831617397830325237417751604568058209111082501215693711245462462659965241484443456060225100401612159010654400832855296548381386839568338574300255262391795706636451358672835589293116969316333890617676206824202946174073581270248932981413962180438220970454136843021644087903169157487780693368931835461059433683615292461190014289678729585263076832073816660811584911916559120764249053756089011630955183000952626971563086446649088442663443688043178274491160221542074536754234251759209242234034620269190217578367007264716848171222693648824032673988196368692259554293906934373239009752119462517963354717212830803680200443913473645266943634060453598264854204126461191753590718346117549082671899508336138831342718061143100946593447936286307252016125657866641651779730475504138895630841413784533133331772962701349743000762188983900822638397231579573630668834704725232418547108796710009689486876585915957035947527152796346696590380759039935505168033022566435278338459214090789702952513837837762022268394977330841164960029725402666935355866941008109550291592449478319174893226984533632222096898676780685128911107831547208000705060632646325960588861937512567370736309780387712107952058531036259162038019474492623247708044719199480384879514992441295185947333264023141341077487931779196453068808278580993723589656757836475096924850894977536025373950300215905696989877337592286539728536626862507004350185394782357074538935477475730741690478584062811422715402060718507549460135241558856372256015389924400208391913221813186597462086968648780546572129149685764643887633941827851910149711156869316653210374492020763430180166032215330263445397039010293899738200343686624684736507885791916236032088828189506442239168508833315168161732782601848239568641382847233708856466447085468740006036789438686356618423262374673120029669172041179971314924352996220663232069641544740621237978974399744167995245552514748172655592673902252106131012203514552251447692833599113146444153731683908700280988383634192220827555761614517399857080554607148125778826903113949467323955537862553674920756368514252094353554721053069574417813023446102371564477120059722204182154361226502412772556348565047399343103565364419984877753265083351576184931867090984969844775085678824297977744204759296566692557376216505693763290266772498194559018755696998906387336340826599687688152350771614338309999955003421336135764142494548153467046856076091650894027890025482513022950849314551253262171309224420600368651368208615366563161765167170855858259593218291421565451204049865392585784405291965467452893441340185276096579863272068335390078878200849045138374020584357408234492194703934054410161542649620716642170028545547948240665859170608485958495005455491985865879019879314015713545444297505443609142886617657390022133480942003965594771255922547184505541402767395305773920723315128558163362229582927332841830659117435127696205666849914796342002837087139362060559295589144944831530439307823889596939269055540657000709517402983183302342081629438492873311792072187240923522131655216293199042732388179683145805130635682385506716354471068817562338252592790100041734379702091734009200229255479007862814029362932337794911367682683486780821772489509263593299059506962133058653755350035445456258457257572482815427800649631305511878322832852798420693177402226087802116050390656021778398748567404509049122266195524391969540785090088328499640709340492579272825543075352330778261320549614357687798338203095717535536407927050637552573358771509228335934070992433996916788045203333064431615750962780612050047855058806373107689237722344901977365063827862281429390446780694057190302199712956527244167381245595946693212293391309260481842612565235260234725888919995839790127292822374955416404903825200584801385661351660591988850540203142980997374982021971624537079137714234960352063917596610955009682246894970590676212960832642196718976967389347669334981950142673945667907061260906702365080619395598774138167922647001148531673541979276266576505803820357455761601631232442631536973000058912668340316462417227530567008851988605502540028241654094690973454235774393806402308574444313608550059755160620039278699445501468122603323594385014943144625236163526402020766898924792199908546492356600524084180874469047340224284529831534430499991832469619286531197187395665148671112913234331911757556684981102010656271386484892225631300021443777645467959619654009765317244162483370284225593343561012135475250683385401121006611038928402008340563685325123819016721755444885086312259186665426318410927101348692159099936954333036948122993601671546106702774579867064676312748697050294408535412767543397648960809209905867814998715251767716977700195872627985909623551630042737379992451994791449778499412266818066582047761794647705690062333897776082202993229662593814482917323504397860892715473820101866131899183230548390812341764166103984158859789363602277739685383729814367968394501812552820425192961840935908408808469620189153577091136424795420959521657082596220809610612598972047463643980104807711963438238986237618177750348925381281520192866382741909599228249731445701709005150374391907239825568717531957792026682558850176886419227167319632741485733601900795704958148898547815102859763541540704556360970911802787531129876472288678190989219371570331539025136961190554634423786208027814798896763056294673800732176167509269871769403931178367682927564900629212363089772097306378984186689617351470424903322558197582693591473612532265736894238115570901159420365490714933695262324718556369754676715803468045898112343979080651286959776679172742256267336211341742661847652794010355925756063202269135740959463365727119211986723890900130834883120191492651232207312356274861599878207032851427932612870919221661590240211888168235591542298437618522513709883327068183953353208115835721317389328028985908620819594291088990878791413538318304935895435290338074960642114972194323386200005129965392918932759483493378434716033723582243826742454937401838072298211389267359660495248480110907534928467756458475102090316124599043277055812587468472123489717485140427718071327259285718517450407945330619365823681536294931593214585110594620643786871988834823257027389068520896179208373661476739884515180038704207305003870861851591165686156054490001486586715748984531783186062556603339102905671585835505991565274142083067131776809753801718620568422988207652290776622096213393804654954385231963963698491696295405822969065945316429493302965652471861013957583090073397780534374559027386584587711899817223617341769154526033575047516818175178323395042957476475321648848602866891186637881043451792255627214843611803622669000853298979908814349503338818334718398487280483978887077199433107543361876717609293134580639052500625562603442918799880652040355581585971447358469865702487227171907532444550875951584255890133292470391577729195633146087017093245068539033489231627593259799333788455077414416041584232909818454533518733527359185025507412881505680212776790380736900461228210559830438260966419402091529275659103779353908545220158183985743610553991722098823804269304941809291710959533392433736270908028456171926959788204597291658515659596664225304537175587258848019985024014591861541102467377891377029483515233727127754803369913062280648655951336830048331829809212420142185336299971186748521985387918956240672937370001927133519154657653831908223170487912830199890661282035370229658754532730578264477785824804192330272137229822515884078443892817874653214775737806213529755100213795116663724927809234394378492515682408476340603195819075358904055816409498831436430870773529492479264808583156943245204615241121312282921878884833550175473359319079469241679760447706121646943206262520391701530244367991990227264652393097677524818905388270140745311415884520997148507486964994554629445893632272928766131193491882145063753410653927675163114139581084607259228118610896210304988206135617453473592861627850976885393400946379384588285084624661543429253114313074779743185241257431189779976479238534737360471031700981227566879462132160038533202793597760976364949997218046800033762891754534408650201796575313272395964466229888454105076331949861128623864743330188728036004058778770576335542960738772505276651437439157573551070639361862758785288699458095765582640696043359384244323530371120730667579551250038997792141156177992251106362048359088641639251773621732615017938590236509697558151351245978212149537699017686740133578297652683077815858724908382475977514666796132612965343344252537838513669668167297457178361337981286557462428570413682494671732054054593706948464374053578384428543769834099661151401132237926629716513371835038467229173790547328810817091698827905240982215233865098762639152076433203274409665536654616649245505432591903779055916973278540451949524874868126496827092142673069664628332495929301820314799426409826333145496120676840601997992333184261760997753815881404736470589890807818243529866622185911727869875726751120621539784394586612878414389879140254567484464294300296428816053336114653848163732234031402519518203373539543155240761381007168166945048390471144570053544933140676766755619646539565097873900926761921747438342105946831635482327820683716199843312157218577410609226463043484268774487206336860849174568819313886988260125630554896571088237160624984068367849192006788613444992894513556284600489214294732949461103701383816429483391908665367409586578061859993773196844961872784011220226688935789609202585890763632567132384564150711939742764843710220120063354103662477624825468130669170742586623920797568723910713749802442875274500909555518723298812427501687475868857079000089461406818934732326333070387154304010173551650101764541475294855084120137643492551246810202626126154881508405966188416576619875219478822977424635204723702453102882119467601978556778610340940839873402331552557694792816383049815620027012358814489492243628449961312161831662148788508499614584473417841843525113152362097649079872153241403185072096739265639236004544275075448161886314899877402365921827478727077662482181558343482862827232259420707433647140723112396967857338636909508597819023717807549423504416170587016421385212176776182709165537681459101340454463409855733609380221293581038910360037452054435895835243549625156734451566334968021749236365641359727400379376637502404002195509315878466070430458662336443230369879649749926894714304797998240635568711399960466939568363410267690605885876601079703663954099878547316866405800661766424327332827277989855292304254272972800088257719253077545053593514967129736584080562610714040178848208607663025763486021209369889265911622631805016951337750360526404637943803529192090300264092671570561984565531535380804596686735862885121955933029659565263790535974109213369424238209187822080225867350617733055080491231531527223818550183617608484374267671007404001374473078141542928383739205111753112653809598489949137636674926055175975422115726298518749264066726424736174935386930861320085856380266329039540989862723942965947644015220396715884787726360175169497591142587983248518204228916840416067195000770153181629215856402017007426905213807603665539420845586396570243500548449245084159051629378436712949742961502103380801418833593573303315822305381636588882473734770739056517718030029471374316232426199911359145116087987979548562838378791082465351784924141999428192428159295185971762763074043016142079534904491356990922353857477663645264559250514295254426668480704779111741836975410782963488291594360052884595179859801050072794949802496539266193120484481207617594004427218198273658749941265924207726218387733489976603628923107920072202600832382684930124873479609510552185628429412704493652306423824726083832791863141446807826366013827724466044593907926517509189935620081815639159018891734555740159532571589855557080102914577782613151801573556097787460144525217321375530026575720705070582979603511130793839527720885563305142269981961562113175411902583506538644397497622571455637773258095018876483950554803325204657231293633025005685542214287445648341487121197722703633827756727063404554110973907956496007488541488617039634427606953987061631547445452332026128307204762968740527051527252282442648083315097396215607742123880606251971797035294181824639917303941681509364116816116461402922700078730673712154418446841788103445460953364563991206658918827821488635886570953515230243541517123834932728950991520147241110149140644319395268258691673881740555950441209510501214434353288539977408869796900780991460102526728772164425962833436571138914663430592265160863645893416531440988952894175413574829101743772884432758216504566342211349279848990093919943438280730178945881218995257027941376415724070073471550489698421082380594892781919004622388775515132592190153913536516446170602170758992936545371247069288164951119005309039477958717819078045284884569553801824568584293776719558692749542526251652182886157800106919766817184781513540579382902179036769262245383187434510166488421068764415652174983814399730983341688376730755265404840495215993233363851081876560206168038110936262018599139525568067128138146627476681775126373010930731456799230393286522638122677097062316426177109060463292233711605618287199873230151661958675563573832302491423752164379523102222373872090606168950287948729673024292039315845342073524805829654874168236023527374259442322568321726699373974567269351257340436349660348996363120109547820423739124168150238660070891095562123327297066657910023894197439150049137125686585745898395715171112866918946331508764662247939776078791652242425467700273286791278403059251456329706086229416861993804339739400851882050628775348053237556169690859128976534426733096232617303953174419370339312943037115938704481301810408801230355776467660984924100354903028498076630958270501900856178926836134235751649376988369757427792087904686258886775230567861233204974877341131491685296116302140057489517726660228418359902372616615809910499372603308063449014465539939023395140858184316214002977097839104326350387745694143468577710278725624208290269871637728835532484673697009538454990300344648111287558950644706208201934145010250850429846139825512849119390203873069462188650821883150102086899789300360528328679237693670176760608925124117389952694334262574264355260489893651208002197970034432751479261801160247865128685258491813162093860954292343823202541866209724320227175107727975239376555412675091665987475392732004589224650255327103644366444978680461464205629175520913778557305044805434806209470171158859002215304349938283358306465123135106227117698899137097185528833842395145743151728447390860136264606567679159545716938656031019796209192276749272753633965085048247332617753764236197774239789001987522886010038036791686004126596402308153493269630878262067862989048094098871216132546917819959882182767270464381998548208290833734677495066536904123251182492843774138091263376723152351215393792429080167072455248471113140570407592707876364641440870356258359468774279894808019714245311562358816120980192229819956728586615908757304690742468397398929308515890776053929063504947254668296381844495006614356587383733907362802049766241381159887327982025089465201451416302216112360040149193010357891760841595495595903696762116550778405126876893024463062965061798285449727245522693553353264100499604070442270274612142322606995180063180578269238694346260426919442433716537914855690180680498717873779673889121191156530041462336770432299878554411951454422528113362364605077485904320575834793540801657380973163763119209670095219792724343616237156083348378225718087441251889056966606027647295837548745830779328091988265433378348061537308074983036183773466590488676413671339139947113372591359896526518750987337709592611217937124527912357806521056150093509595699998023402268395873006909007307891387754533739344357108044687891547208177089789827232189787613071115312086369454464635252967894644218449443552161891276516945031752133091088181707519916558785331461756523734599542143662941265546074777920357806590213020263599894154188159908301280245164993139505555513629191722198069673389135300236992210491083043641092309360252811773766470657652178905311816256874886408863720327291988786757605125012490392093319300185907721086902565669594964404736121254109762540750832686720139280737423289048360599293961319016544367937103600489827101389347050748140926346897648446118147501903481593780068831847733071911477916512988658561273352127081173747109320730328541951297295901835903905021238633761987288026087638590134376999455405314938595860276363115480487103671605797062042584378748723568471962180614598500809922024934572834848610050037671553735781396677529749664654025778911405973493849485980169381101063578255064040901911379182906152877919438923111137966543400076924572344914448453537248031707185744939228643214442873036947172331360652146268683056417507083064308163061133344715231821223470492207194289356267885031214000577545518612020058120535642404033741679799333983074173463166098982426377043678115200877769723407921792444868076973092808185558151846167346953701878034713536888827284163666542909939519963128508344797339761698154339344913235078648420055271946877849568355368647696105569092949005974424364553741174915522474157376728354199578537593146098403928513451008165970000513873756126711052793640671815110154070387321124917271470071850260092360102198209878571434081939415896977077494061062879033261360179032864564018816887779419905549543366405183154744500494586664768548314332927902648933121131726811101395957966962026244483053430403138427221268733355373837200753520046949462126902129128164475479203581982501100060464329254202500480470898755244519239092554887000150701736596029103306470034515145468227126582817271031709813513111639511267774732567742664228579020459421458882536385663323882235951232388564733488260285716195650765528257051103780419080060391252953275020240724516142689219781691773821011435524331709521863336699103718412502055581214094596386288298734472122222821272414130494703518750822595990611306899197779315388453282432348811006626414383012875349637643921217373638947948016942738216400737927206538820336950009685228247002983402836819825871447050107621694731168436119721626717452759157521532411326511433921034308929079169572865112955487796932802719193919886615154171461781203146418031988928169936769024238259342493196380269564692016975899640619478838608595421999647387400788943315229752636102528416771226850949775373784753631297860839644605428603177202929655587475632702453182865885143521519258955667629363817319324862078107245101087841845574343661209624064001049361388697859542962755553042652637725944557852630180405397590335965317734104511150685529391950068356472823718757466374038369459667440924285032661839402802935540607381040931310292731874614559839376625233703216590907166071743826862283409687422816449820083304776757012553113087736773817447042362795620648397904960337977758172111063179895744889107917985283513882576094325807426711750992746198932099838995592626443206219715198574851439301797724602533033360880824757857671157773022089373728928001133369588885809712828005055195380271395866533577601286914216814805359748825937340464796755387291996840837770587504125758947510194007991274977969102956738405944745883624945016308351444301349801625139285089195929042594160035277948349814350907896068001150052190414971221097789334972103624046867634509063095465764382215644121539227504893068522524858741640262215755447683074162323656054402005833144962794288951525411720876267426944141788473725666168113879482922056176503681693942597979646749807765700626232219998974520225624836865880912780739787351413302304192314203648246030030886869928768069615570380914737050033745281010005494184075960111611218527072436750039452274051316306936526161526646835759505908477176002473533257064833784330811285445807821383160879947703216843330535420602865295970533175342492695557646206074289451106771268858978940248318595931308083683919924473803985193527081251428786519549531543428499357635232324943910517926605531533556976083418517992307437864622044562702160813908081787503519307547334873526343869265784402950818764861357887896185490833810410145032447164582020943461718841303364071069187065807424442962510096796547364763262905649945142254602352162762535624027530850534350249581307399407014380892179698398668940404581482096195542889578110000816458532953292820847790789231966225173716704879214324160864838232791169164869826700258714679220208518055010182072594164422495521149941991751528954980560995017140927278054890883232047765374910718672683554505840051171370642354341943551097211681701554699353824610993517039917148007258708188971356703534936806600163592712161134490394361351641644270260130689115299471707062409875521047091051403120422194280068631119986176588656541394352380072224259533001832576034444852004980377592770939485996898717261794635362112532360491565750045151778977334209106025453451307043743817898182235514436725554972054795800883745331701415119382264326196819598474868998615972764163217547970371699928643069523863819007476034692362182320033545036304740454694116541529578372187356957511248975305566603310701961178039705307910939882879084341821282714960687599906159173373463289921030950206641293963568647280705673147751253131205026842160803204208523809456812690809916777260483760217687281878713196736865486672699609431327445588401975114281802979678188804038684034645533971677053558442467312970566455314729295184333494440721323372943223462695760964462322607364435837815140137647259768277810538256273502988830904558547317379339320656219492340733970896523755120187742266686035865148862295626863207414296587965941661875446006136498615776594797856738236963992329379198682786895967719670366661838634855137196847070963539239597259661731009812988486942784769844260331446788445186645606486650322054674298761557426037542617766057968078618599293940426523829866836672561369289319832660164469613324445748319039158496960491374973065352004473931208296071165996337569406929870302032827432764510095126835677173275186926276735765509498449246940197581410026583174869766255125872284433795212102144280745617777209626522894602554060600860414388227642963375941097630181427964554896907028457513955699960693502547960799479259831584299073943324209681018074370325925572548912531400367647319599905601595819548448086088998091765744745253268956763422117093128731572446344280756600304803636007824001477585258724990346486046387796520320402110158800391908128033814968560779425075559327902061177086624021017733333164140420576308469663807008704014628050750929171148895801170892483879802697971835112500791021730261323592693857231953299917484654145658583259298803197701762307897818878280170876403905444988435430350346403813978646863552953818311157076808611741619042981455294645845913855654919416815478719855867032600774921213963998459956156999349274608961546648347223673445389430464634219013866649474867159413574023766964573173597828003041944208324130862306409448753132594156676337158475042456608647651696854477944035410646173298386869162157509615430987806710438945993820996797400647543229329349904513638471419168249289784112579659181800431201852107744186907119649051433641833897628793192361703919445812717684781929970318244842459807781924304459017501396054770414577738926922375486412518587536157760623510461761056111693502006990976873041361079607548096616058349380125575548322047351083197863940045776337012571412120348501005144831579299337836512123298618862215373546770808569116438224123663219604256588351548508104342584067724474396663392383442088106457412173686632496147546553269112753120087281547313941947574644782314312254720134563953461995096017832434149028482295386862905268284222248655819068203103280321305343263456169570256626598388757696272782485089525047046657070685821179006210774339626228642012479055084629934315497582873872480854425866333441555757152186609390808542442407479303777993055811213482711886755474676259805525730814664476990942346941349678350679877864169812889590534504252478761121611944052663113581700614166776579463237861648403930717737774591398889102509696861201152602915554698289601569242577794670475230263984865582397153015325887077604942188508797493401404693784442730522683403603905310123444592384582701721091639516565390747495914578731002660662041097269236370234176063712122731844901269567643196889846720442674973132412532381841692838321742067018584684761837599804262904889655626781803906872551206433532038678945837506956010249152134143029399647970929989435345375336143393369268529390461203323044772254577904843283276587345505540875130032434491380461617193257845294423922436124088617232321827834101166707636665789074265772302292603874141187408461883417393938468859520128226749810442397623764879648304611761234573117991057848628137466295902046902781346943713099160131870660431800329925344280306592547119988276774247358644942633148461622801550902846840731658890086827595660267159939481993969758683033767591660069260517965516407911545364528780142055778072431942915219084175469491657259517447666064485190931843380720929936727066980427803265973643103784462678731985361244368673573060620689218556360837870839544631170078186373481874715465954103807686643576569382624076143528574417690011180801531362315739676738518493838984493754615663157568954846061679780482356083843073110722999498939271709196708940846525936253386449606708655179071866268734247739872091302901432062627415183699670446299195348208003434157900225225633734319376396008092409965704400981237512771214953425085062365797131235711229266843588290437158238276177074187283937655134009323241967992152435647536388148988822706081027233187081721987439412651262599326296499496990153869806523467013283199860080941007030426569899917307687240275584078421179421425570050194159197632735085576682409982152374737963669727946793364727149132415547251549969497166844292640028496159156138337589845177240649012419870737457034070298405697683649165038835011100431509998921370221433166378431537027851258796866134907322352765566031822634667486940354645976867013570555111549137389448147157833275957330572601486276970753821057328557782049483739900425155396380568879049273304006440701622484880508952465449495316319451536463925563541638267500842558862803783508477575683966684601186193821062288255914587643233435907949791926123622478053622051199089040767493637793182920047744456314878842538627243869219355893187235566961134439520672721145521412794570605087078382660732432219612312024258786204751518189405273866485225870182714267133001393115386230566546446457808782037987700793644967447478601105517331426058400718080889562347271705603036890214349528046733059940259049083372807981526063156539361201691940746030538489123269052773964975284081760083422905452414542121245305944469403659313745835517241137348797408743616322101651660357279390325750260406679371228988578097883186522072946784908317553783883787753570467587742363647074325559457587395234101678465100439521293168637452774784415936439543566838343347446547735392384987215958679469655045806091772437448172353334591897466683267418553886330123663036526008981991983081461915856859961718064505892129605228417298913632840453653544051814727741962091817222244056395422765038862285639842438498508896776694196643904390961170911613297490366051768385140776669397860819338986423722389511484574636688434026837438741639183491108748548215112977733308311965428496345191454883481986487968138020526547111369595648022428608050485035901803597693784163130413438542665705423210214129852132805686368595911569445167616637713414943186703100932468898912421915940640660916584207286697361593004215947474819306441042822243633469449919289932253966340860964078328555214241677975296949670450254344281911189714341213322700964316815145157960568116672452489602710526191109597825514631374272826872060603929725462902777491653103153213625813153832427787755683967314771947329770279222900426645015133705039770690818004131287430487907867157249310723801657961093173802053365488853159420962036329856976135854637527993326583189323699583460820679814487195060219014963457904758241807015671452733349125422228935212808708111643864858959540459350745780160016997360110820781637655910231283965678995636114824699263109240470541148570461555018351077406142253668530801486551986449262701026826227416735294699231736141202841032225279289696497869605152542068742101705578295933350083016139493774472117783288891552965455195448749287434988488460698079232446893234724728090834579420540796983585795019649060050846665463708182922534362485046296820995918341010167222777208514910564121126315121492563522787000016502458345909036526669111645171506614573518141711281800744161386369983798193094887112611878145485731375860742547341373363727374313611911504602330254545464739654763941028644712634161899132178461189933760486752748886824215944335902744037216229626929073717286697846839526489117168055239930035533100340405644582854169461658358560134832446702682368683666557970771250284888053148660380795664234380033512470698609935545718079210794495849404112492537059987347353300993143972550385161077047250147381663692520793153220619795594072773921119000675354104291528196606131342174337851396862062974574061329978333618641395647687412221704301466231553772075455651915410507535422716253009124052831417068736677557518270498126110186405271627026359973585026256841136291660896314898385547316120680491795037662753948945014237114793458057528002018437253226427510501531988028070399395429013156731879654132656214898015944373184949513707225731179866437880357471878469520823567689624288667995146413604587265763878744425339468004422067874072597030168021786720320056672062870105105768936384610386597320864960640813241893773918669631059131132162462376284350493962054134816537909650289183495004773772933045715192803690314392504228396891654906076874950951518821852105975301014767670542774114334962528410141687709957090222251681650636449148657474799431020958284246512201431855919507987948408150526623271753419006935905876064784258559719104413169423520657496382451341894959831540508395030807095050404662512232380852612087889206628230194122071613138497386569939631161222086587714856731203935411607329491922086547456089823469899942120398084451350758721657677503802120110476342333052680100165924102546215529969193061143211614766710280150065755497420557775060012658100567297237696949821412032943831206802300789362025606136543445109360199578187571739622346411500974697570641420887761457443405147912113504739138866138758771262235197150245658769870999994326306651252462141131362819338717247217585124632176021642657365736325381460001571728534533482656662328374888902013572528499719671508008690789698231027971626287687435001814922933861131791061303277268031664008157168953725609004487355487865754263966905533391040037410442923107916564031209779703130846944626586165537272679043959426471739289513828926765101029126470119001860758413222167868723751986580589838441081419801696610960014826816866751449384504716667187685056649528794459378758368337751626611772631924064806830348458622802901594069793560869135911886289221043347887579006993145654344405769650469521925402044880502827819730430639439512012636789003598829261235625868201474481999716145935685104119326742416916721915286620934990639050273020655087449084736358377988983261952216844065816415485135374874174099742239953053683885966651165607817841363973221713234118945413206079609771408315610019906836836008996263490297145770813633432047431564902197151311093991558344133370661275879614075286827744345881825575548506478249140252722693967045152242349179943375643567019314987166404828470053140161794335234781467106214376868846139003325288269156315267156873158931156876369681174516981013465309409023575723238805679553082118487952418472992902127634990990774206471347403879077243020798736836969434510085305831678238687240012880539984577330613667664028409848347709316116717895356639130129642485572926516111290936846224897492682063138241493322249804453988408514738400695159463501565300313562670214133071345183206612500780262939014838704309917080815780256936645609955057791372353745062626612925024879689638061778379254143558388147692992589678934558716169642584325722938143418188260336479770793422948699607402227489085260790987754368471395288259704121463529395879714674281197306459574163696857129479285939871143278499112225809562809487530308072602753420710726851015822204532931986290975435768227464348788447451873278138667254842751394382990641693344971283662442333966121999346531836684878048589862447834124818422956565625790182323427851054041491071931328361062141334978960542633552855672340468986591292748481936261184176356739713289614747153191295650611666829777257969539425874454141293706159695902795006921758215037311122329803497882025337263601561273963040457926028934682587701448667483059006403125238780216404276733575373830165513043634396969207791754069037752300432254864445349080243420228360933104871953808711281309613405422228026802896383590502482919789137053205652435678974497374286442959466157855496863862420625778986333629739464337111969868409789470334965946691406831090312127588978675586879355182514073516221803607582029712217546189679639487132016480214762128746524067122931388033006389979254916950826112104754569766444131513191937823935422212652528646771247493778031086372215245735519466533576075600573025751185916394412591915879912662669476266275659620269951880003325689497375499407708044272037377815631692662441768951619832065478324680936630470775469673918774974585481106370704607464402292644522695501215244661546754184478800520883822813172865117416213037683826450776103167327629346668031243024884033654926870921824787572210831396791370865184196912338707220755938055221614286419119790294052159064367023409637097011806729911024904552125517569864416955216203816902668622737360765668335624923661323640924248605901168175543472918651993455632700650604655309870351528815387390151429127778938449828961321486460565541707929914886337343574373722894824729640311953732847399017976956600683196742010892202025035834552401353680059792596599462657484055482000794155007148239793433513722664031617617664373589213951146055143335037301033105464449257431391530362342243811160907875283074073709359308007601358256233985712355809762731832664227592248136262575670647329064688873267608455860308437259557088596537509434522681926604923251022512072412323577540464538473997137174834947642331463227713332276744976907382513750286271000071862843451980014902858651480460645876159972487056733914618124546789527649673941493914742542276805736824445517231898281910455871912593590187087341143304633215361961251899878605075147807245771358694730626937779323684739928573359305548623011666923510693210576046057010432304714396500671203912815759235081405780622609455594805414533784728858698868962216663113655851034751566358521381515743522721940577452456655212305779870276060760362058596310793951908497981021912166849716422476339316305301312151713935064514210301409946210975646911252372552691650899262614720127209539938896243563431730078631659517974957310280429253023283170846398875304961719733085287254289387665362970099440212082020335789555556004746701770106956486409730996731450142637491377323733186891027114899430092922439749972871334956585992320976029457175822830038352638629512035163711552562023281183601301605542086925178067347273008157359239975882517541353663766698869829070422019709161421924115994039561981077133236787421564795693731468799445050433816465551268830952413710407116090959092697403540778251164129602265409297234434860258258594640345984213107951537839282720029089879139092165064251755027739062833077864171522436914263111185990437024085795310777491151161505224137294230547545489636040875155912358841379409705603278691391999165694986651951929578787486013103716817125719577458112487154519104990287773359549907086013256404920754394769214244746456960253346230499835850545054282780263481056674187240244464969090234139894750046110451751394694396541650427333756588998054383845825204985675663759749001361171975283913070431682579669225674520252436358268104691718326139856219393183274688506339511263232455709479717614708774190142876936822531930130415181370252628011878843505062878882002244150341858769326066407534661898995653475171872709792334051683305603892460054412656047420408596728459138100568281379921242210909531544603992114712809903829375545145977068374410483680020408110550744468338155649539761768985482713098786347085135058489226841997298415916111349503016723078455788141141128429616667604013133895875728395557596254836335929899623925381178301728468659275952933468918316702008207383504174565185613964566569157661487286660247348183082049565405967194616397559929457159402745158595564848060769998159637250957683785662508154631776216886144741309878924596498611953667239845861392809304280018515586413990541566014153404343746599708337258621532272815868522701173166387664367334769107525380291863405032472097774444440813402264046997887710484760053264017511922570787407939754303927053699254280391893981806514906988085848423989932140584105676360059955870837900271614291891168895082514320994240734833511830487356604838754917588436643548542169097678654233761187240912020775733255402902848587185422928310503678368367601944782736650937718474176870684815876136863253929033460375059847355426620803389396350680651131663885224879434478073613025301083335474200804292947418100365509651750490666045795864081865785495277532165238742348383771346824064669899064322862689773651775146974766344548709953839270200188996229444349456602554148277350451122782208668810349220006187736572051435423396348150196727882086231657268747177198890390077700150874655964784215594243101276794699729773115955404006642354630603134885328929259741424499829387530029587948320225159231903684672453264430209648148060056368695247902441397938796975980181745829086516870478086409797294021413466652602310069501548032738541389459273256848792560794752185149227072882959761753105429931295694801542411579595810399175234706497633728809689866654327173081711329754641214444505439544852291982695446958236997720148175913030551356804019984800307210881214375559828940032125962462611245531051718665093223399168720599602138036514322099718361657711141563793411637426829334737826502222065935992204466831829195092513880322687797208830730139191704370109863148978324865424470825525863939414643045726546398610311746208789735650026838380575528164847513996509041685082953455587889861778082257461182818385054513265871428008596814954124819005542407616321063808023006732657285096490104175058830862949239114085500361074431407138697776624737309177141938102842893425949044806403620893439290801696492185244025853009004836609511674153915382465735014862150057044167941759688530061683567507801855125361668363179284541067067499919838380614283742709374149153179562302314216486114524458376220845852367350131286444964580377810514285202993207878656759806339786936221236879503030918552094924019814135593617360603069089247392553173397846305481002972996871478387103500814993271841325314441100939139116506644298433044100774329994703628734409371363554507160756030830884087119633703605810853947119575437780920011533891653388862526910151802487903970181732168929102804161867052866579149872738585328632602316963456973989180458716762345077932582193043602503864537925377654085947635514032052054269228960944075192364099722655126783677203324163119992375821752862808932072623931533108828771890818921490622624725605211375185192217420394474736404208929057843731485446498041495952622081565656332753389818868925017536541325161694365798306746075199158402407433802355117848065948803467222106227412072009027473820555975958300912613496039103991524883944383804988279586884315461669668054002249181637101699043684179567834969545583003375326446622529747764246707495473612014376244113935095860351565523464957955387396254572332579894974233803275782799141508275556664983482261148348235615676616860725122665032785688186697466683823613505197545532378928418277847577182741259281302681199110176772519664009002519199700939613681113148947488529747387431776675968224963886276914363723465716151302484191436802027545635103797263146580832707527425594228563019290363938863667501783703664875295368169100407008083060259187265443903721611173293388484706285005710894442247579670976990351535782385401366531722486550768694945377328122124722007251492576943204553269203714113778482417974204088024253457572366735648247475125671204950958983387529905881904553851704232329640200738578196185482048968032068116434014077687537212156143489982802321557933481143179282259243806849982323321308698270323134209786010831863690371536996208563673223709221515413172652458100490653035430351879542883689166848051273441932193524875715330898494402960929296840939016195650245703999616937790056101222897463340762942250462714066396804448047978857763209585539845309100607331711471370350441936062884475961848786838346088860183265899661747846234139007676680059851906552098699798121883589803164374095896950037054925739312575427609385820833872931533649345556906315967172662996122415679652561162672309980793938696050078093127854089386288283338527151431367183091672225750084363951403220902315314153166477936053056287993196293260347854649830463722627909474390869090766203693242318375892631136485837971762497070142428288836591459746482983459103936949151579439529186952602288734396721995168839054986632896795170659749873744234788068917724179072195072056685840728519597979343291377770308516954224885506537177968797926419280326633726170923877853677950901951105335790321142326701909019003717555006896784603199914443569094131296448193948655768398713236992178373756448012128743637565274226306382973565918003966637360210378631150591522546177314544234947226244437592658376946338621031040637592788093785082629813826942553642897026340363087261483333391407844145886429110114108846633497402413620120942564342398891809503240975066318443285353540849142190727205511943363954823505269408810712048576251068861434406926170238750644997722221393269698753145077812533705845217372131104696537926591272195602967687729476250989546860767330312066539248266058842417430975113440042378019754333655976555743411956009399971777059504720989744238130046579327251362786659009987603292493552863840214504821213388721101071486088960656325590191144115620240530440696197656179909768748687751252547683626116652725473013927838138776680395467221402532201843872569039143518330439172769383557980207572322935468167995480182337182722161593555707634571676450134041208397619641889514516131208375570673215695423685204220822121937221268735952621027217884095678260778961984027374570908811362695392408829282695939416545825625236710762316968508601742069130564016013970566372100360492234524775418329929205454841790051372358494193279369464435594670993119746850483471240071415126968573824733842069301830782479495098044445501061766923346034494239906584018601106295392287584393954662613216653567211932551020390677264098928174509052096122127992082376819457459756389068623341230366749795559820236869523506180786577228261343781357544343344142199535244242904824177244963223701534361422300107336809206360428265704227880376767456785103691448455499761681836321391931514772508841954389125799613354577664723754597035412257252130468773344693771163185981869736268299841465284013852646887900257345659178032546153069664941863548023880307310287665815668148223414081866730152821456753801056906350603802482206959571213422742884436177515743646144312842697273213108098492464383572999629845045731000730033758244363814818459777047427088357322794822525907745688073371529869436585064590525880793148597236724367964584417991785286303028134562158182273204374769246498900726969998017213884126499813676326050541993611886180538417348340530564241839880532262364740880678556907674632885311103286255355108357269913563211563426874440309961381403046242782723297564929157456378830947922968378842050108883393917165528650341890001738142280234118348709549572613409913159513398222711091559325131573865662031494933225613744804501706926136775930628032939262622886144955013067578422317877306588022868431322880863489609618773756690589550815218407332420999018492227323848576305339926927261259628726805300798259710306138817746946936004574787719699986259429645277878176638203959860260946770161156440138014945864037547626223754745705329681723062284418097248764553809220056641320207468940815941495853766775419679683424310263577370859738051859436855663791429248817327727498314394530294400534258937427889356459739931742021304801617064871020406722291797292671478380675659912874939016431931696597792857960467998857737704582099603200597157223024480171938577191489031910728346031997689626842099698234643490193988308356426789230612327130594968821529723808831597342177931873050771651347810775437939391484528590454865619810052776701394530476137693597948880835055348801391620158011936856862074387342773047617202118367796173086704861489520763116088558620622211197569738817557168293310101747554895748247462763587838400878975020949897005984312345302596831752915751866852416745594609506484177710790108682380526078784841277912485913367801452571887888985506449419854913271765068179706003670221889250646650380967214089361315252837556367888201992014267782651467870122569797779723681910612228135914942800252706701881446345549519727392552096864700538560490443555296519763308391214892103637410200631235403657840932348663467227503068242776010283699973016771162136851838056976600390352483673824818233574870088019289134911930325331799226143569684067674937993135009694501378102365108791581223651738967779450524235868001763672883406496517156647323898968277469759193509476317828812819989897852780746110970850717668095831436935863946385631046513836715711908950318693235367948797183285457520529469196090495338617591421063298308232676546846535169196133943140713521601756741464982556890852005838376142591693190166653812869877830311093061503445871119376038762389606281622220190782563180708949898035841899264651906764143556820954950956030118586208513819360680181655361141991768118130848829674252209951999461441535774672350930363912379881712399297114631903737501231053673383612632984626715325880934522356991007451819965482832516445085683974736147487965899169026044404284702167070611647930584935963045070450546872425314078553777326691060836614756989340725497525594232172597381360066031616287823070415715928659406484546795860008926472428431153021259998869530010823172395845704698347017737563108054015695203285664947217332619296315498496179697011485730159840076892785648892603660570085258799750642928402871832727368581965152269677235016285059999479756353536472154984940329572101393314222861224056771543501094705304969178673873173516905149662415037315070659964490407235033203265739387528345279398928410364526711741404563595078926488243657291838626111497236487856010246359035408893692265968303347592503763339767751854628058535583345335466648214538079110723746714584460463535609804418680148259884225644512305659236356508834839855047389120123565556574718583321588108690172168001019048207306457651637051755409103213258784855097448815157835778263307424659026916289969109708666314912681855462074433991871567189068117344526184195322850590491971367008009364331329718869832758116081587747903023525311915224975407650998074364013823797680962967088884362583170014121481876917114832224023351683735109152794628634736487968307915112819263665923354697559436895380772369381065697996209292394811222659777303624317909746420174316976007552236491078494771050788704416281581570971293498499013100009941093662942313789222146936406432657645202756560304189980126742382855366021945688211173541859414805403241934471086536728749949243738158025619786781157999131501289035546401457312644793528615535873285396002327921934332681383609358779612151759927449529313941442297626778629840037593655940750522208766224832100898757874331263570145641961558348633226568417077068330204042247923444334994625109304356744006328138168082459165470785754114367258518534840749838885462557519994830120456124124015563033552645284588870176774580448139679704155683594329540130869894935830964595435732827743632617225105708354093076879417187584982149973075171531118685323707214027161535351771809146997274978468628972029409319979908111948310832722120738487139157553586251361144320350381174323125818666804510499880804969592889091329472477972691314910412779304464149137796137804643480815816095027065055605230312092130651487418262262521154258441580095341340630613015145127700136498788407509284678521744888165290452088453567350067132360524519537653480077099826303862892662368394126615796765985718609158574646936616560356539282594921232357060375981233684740553313941637865421223868078634154622379144313945288664031140608318121191672294878870304844670034526659736098707959279414135287202888845763319367195167914141858841465705126132974784817275374645234554427378327474155921875177825055074821513138846049683812824629227122875365187046087225706978665463556878310821753131793898277300313913569909661693014898719361042737508108435108540611659232988622560513258250065225910438508946216819999026170956960658397560404161975840383484322341024025295591446521785756780549613636426036560809609102274478709939393921664578727736591104158364087742159524325608555603681981356380793890433918581691638314240322901016401470733925097901392874512900952227544190295893836433164994646494362588473601354825068590057055747525981793375399669828337404745239298185588061112558693035503040004600364669847191451029037923883904946026370002497980602076306262026337220433067465161645251224646209384951814785818172572184578920287799344641798716104604418221838455937979616197801416656941102914593800458697966243920987721821838700390676797701931484723018069443203814916508149570218568539540646345433231992016103754893686759472531531514439555952882103606414536293215554147588221362481691384781186427764838390620360413245265184345790811873841824748548682586707165659103968573981464396443200930974153767214214056314780159890118773462199396583480571328905085562802190720681842934770838888456950548641316021412945028808628157389507043903921085457130820400262027986423880691962958693054795492255365034931957136204128401875560954972361271262164827121849190879662144549102074710322529175276767734611939258980768847846125739381734357178099487416869557926017077878423448919529179580129919728777191149091440732968747943103898364619171237692334990760693194167694271935228301879520696210811047198620692134523178173210419683931563042346270674148677646204151953865810651782287902681525806804806789115483710336797527946429325274834160971104103345857642928415048129730469546148237732182398352287626837133871557471838126830319547705934098910929279893605056480535323206751032032873019404557834957454911514597856439466780122208321568934366169588868098637844858049254403801504301405696375389046007666452443893935412827683286754652693295569305200325680668496343975636410196104345873283736281430149790638963202717651659898717336990670424518713030970060158280659169464651109262914823226088311982913222305317460770669254058240259932759924964344960780990605131583736788226359112579681564581101909908216132777172109844461394981450156601861691927457395996848917896338901244789338437320873087335895911921173462785281249219679991920183088286646437732279279600658820557932390516614570177849773691788008621238981933098669884625894288650891242891428887901940405288315224248143739542896225022261049468126940471972684066500005497165898263571730970348040993029645933819297072075722766548721249624623280619465581928853891460448252761762672871041203779521228666173961199911020858383639247360897328116578278749902378959329251068027723722802790776527074561311712569047876110108576562898634394316848095442230360328824776845840775443538305750759246002085833934864614896361652044515367963289603812881110437171368501699943286417197418089271505986852815947397495907106840011347405582530313440594851734151498229315895100063194799037227383127822512882070167043278968790923774538617428609820175356968742476365301254556302549733218447656928215655333713558437596965030111677226470707489837922056330195981111152754453225040145353256509353544773253746576545961034955927842264674979021226126844467626896620110490922049962198489711607701056249012405324873556112769174042810433138227716608749069247772235688672573542862860411105987750164573333912179569583878576064358765849141008444003900865695483416745129233444151888551460786230445016443536434108205794552025865473172220414626925291938755447755376609078588650922781406162339272084382124398303829768290282895510076504739606725571073273019278027963381960847110366548571743902354200063431392730705489916389885520236890167165055481550320671492357418393963019985911238076702380010324814492346534340852414665062971165914611269524623486755060071177202233716288087350254475386638438373070874007799507777608644224408063314799914870124937576053798317070502058756293790967776933816314303631891265511311844262111497568965768223906968818693211617045453357038739545058265857226686810047656457471403994099804855396279830272268796728766598493755292571462770563560508327426103331665203792916641125180667077468354171351350080534522907941071800335392454308984040186473759303272486469301837292348403895462742286412821572836263218870462273043603548006878308329409097788764931851729028180749056094876335780545989836267988806192795018169691756048539850902295628962080380964961371878039637635529240655714494409739831354669599388381356906441916896251392648683428021986943676935966123076074314266189859371600617250003691250294923063494852955026615034639378388583104267630256760469917791628909352072303856681422292214158539065879504391286586413138063261406310665169513052820510029642642790609870562412131642341083787703666859126661970935976141015006738461030042803412426452167304968336316445070203551161949346795151140166582514512804574362855344850239976947458042847354981926875374296862017576141911910986850991742024680575192456525411860955364997022805257449683160431241842016915034107159104474597475827530775603638290310636482608127966705946179178685951969928027295147009811999930531410598952264691601827085694303941505883159934354053053830274271517036404949281925160636351894342844024223340865986124713651497359848426090698857465610145469202965737539385338964399342338058243737473883922795648506463779895680992734689376750916744296646376705042759002053933113547350998223002580026318214604065698213037372411890783555750238901656734886216966321090230773362872019531246230110358610546900853656099178699794413470355197751344930597889319627402059752785390649856979460435080268002428043720395142385032213192140882690163006641689560813977533794846018331795824715858930697218344650447761150158981937443467425535340787060318076944271600489981060081518143539700938665744655037667468114395041382899065811701989607395528173854157950361251219039895400027104922569161584844874071916464332265212095229967575048182898856256955589276591882119171170060670370477376167517836752707165531543843652465439495596851806615985539713844727958538971615619923475828684444712876950118487865046988656496614775837362918828965170528100729352435522528759989327869772289322954071578902004434571847379591122232387231125602266878666470982742771511151508534809372939247145106227400534231686682437436665354502121524007209578985061201249403485967961598571254842893660467784743310836245838845457500804713496032170539296539022715104095167946995728953875135403954103274024966334001470751884843905065691081049229655386998523068049170064065212116499470487617548515309632165603623704886120746828444698238802210176666569025433209334737927467190450685742787759217523537468128666047196709229817732496720190803492542586126811425898579559368073146057991100463429000787538591230058957490834973476237241188267668376555199132695287953502749629798249778412009979043927972009796928019382860891521355328317205749293845180439671863396138027387483342024827119607940610538318650673993322443190891454069460544218495762051138100029794755206285672086170567300656716330820649326331474525127661872115285396857839956093416450705325033236065222652890986548196191509636222424659337610283348910185640452546524606576112496111256528792967637280514315859403877455628915740183392943049249760014013983392979808407377021870827520544551461877499989533933407266339040879419015726386172632099064213533170062120241841809598939335847257700916986787471021110287027111781552743914852694177651163745396864100093960187129685887622049067574946744966251553306340692910859230643827397021450155211876738492481006198886818013623245991052669426899112328931940194070488553276625941904005126585363759421324185652022623745953372914058496772476643464103957957430319836168575064593684956831294629995378318580045061218940205128119155380808514799467748680987165331774166223030117812705041625948018019432517911150349214091370261133120344268709865805434491921280889550925227521638228120822774067646425339101185887125100273181246083773427030792654925051938895066779726392931361428099154153491158616534651065548960037391153749013051422874789313974168063216514288725712882729554479892094738245018229611681427057810981781336401436576140877225124183166773214591794402932659407573602272953454986040246378515429405518630496965647402720666841115777552838375418199085397861669605375811343227815689646982272913823281006412623604849104220543204352579790237983091761738053497239385350311508191914006442450251971682091111358856021211783656237650489248912471568259141744032613165187166881766520950913932971993377501890607397485323828832082517380918091301431374973900689578352608082049244317468720012002063440440047669557099541989776035617710077880692884205597860728914684706154681410589806170774300816536240766953239060267772031950848924788444124143508316957705408618225432537299119402667387470590498357309881276712732893812293422113288474439740207265299956932424886950860915528452662557891900409469381100303280376024919326025854797584348764401893082807950177087468256195672760579089841756029595474848525803970905576066333630051176051349861555595389418925732094979819768301267996349497634667770822365948305926734195782163158164157673166738025765848337177041698919286103954853376848756748790118743054449584152054851613503775309294297907153412110041259432827695364563299855684392273022190253958936716869165012191668952328520285583043600207768744130753137235181571324054797554895648574058791282374106632015988513410553352339270993234206906870230351226346067746280623323546546621482053231464380776968664297309094060090006236892076878438217855942464143160291109541840883614535585901285902770070789223428826675162953689419877867122444714176507040963178759170971420927236261626252955998375329276326957276014479147601140755459577844945063866767181584151631901854010654708035046982539477191508971064638961679605418735654991581714901816483760086644842302981857303987562753008374811084502133463487182449678236858345450432753106452502163777407176154938137374525969020507293245920500800065752081796584219274732239504005499517215172334310876306018929616668636247183442318133934986814645037405495285183443296446471354858350834332315353625408389152691270864662012964922919672372916796787228278957540083524062399909881889897027115650077724314354217640507343181539225617987271147440619544413379003151558280157176966514156252049416043954788704244270138468598703327392748377157086751220288616844807819890614818632874609026227937449444537016028229471261677078200750902915760297075436959684389371659365953383588677438945382000939176248532613772642604068717367620524750693049557825259774701674163677153881341293756052820288110190512248722419219343512797118882339757906166101707856000830650214650508615640688030673304067657813861876764050761024885653081335983735205452146788619354348402819794715454050055927779940667976107614538006282291704887317849542854245604562412495322384610781115243431416953661315824253898058831794161693639275912352623439922547857142006519212227495706818697959648766665023657393608990847929822716513989439026012129164693667214343551834670152985760929222085444019687294302465352792667511921327841495938701731680635512118459982491505783831074331492914327759125334914396807603581969601395385705949552163630131169074286447988285552366608702117602801641423881056547353980566208191658066317046203658496726776125702608477037313196043924260930643411296228403969376268975339035062211345413182860495540874673894701977524345481312297169454611054101097867683445865085217987171690413400750952598714538756439610934754888102366582089975403391750935903889698357241301640995053805707103069904652985237831171408431393370358360300336672411320296494134810298529506356779024854063889761504310345059284559930284545000306922554052522916253680251907367794413786548935428320623852107434696766285292333240903604229481962332523084721667539686414123854479355284415349282135018901357060358461677317206704579078842395628962629901298681176450476631636256022601736468256130472371839342864262306108279634876686281053059193098360551605115372531952779166959639222478819887655944713809722794892264429493834474916027115100928477584132884402469886368983285010068051712986887688995182038061042972679998274365868641058545764632002994069006735070239744324630140717698954604401724425408342776521597482265120037533687721343490564647537370036572746816489757804211498187004634997764755704586584792472370720556732094295042452121591017609662459233868725056643402586185381351106638638101950523272767079603738195011954668330169051084567056445491196577849488816616052320612322252117429390899551803993216026860395724444830273205252776355315646031178319713461625104901825027071660211878737540356213252842666391784695183393731768452087347939648962675897059664338232653298920255286187852465492641687802414913094844379819148712561978379655749827968045823215151241761814701311541877679484687163737801738090430005656280306115054134543183095998937011656556214528168209229130861322512124705632467316235857618894051243183403062463311857983450118977873605727435329786341600602338658981807001084693580866573963547642369937289218555747909292165096439657554857271726923452441533584252643780234509643501236929091448276739280206247291581893216368154879691312017089259478319128829731593091619532588975282270003199029636445924941877854943039521784879023669698826674455249502944132595840601246535290458466787366154543069148435539486343429710657742622645085027837433060470919455711880587408495680413098672598608287479457664350190120841017591843642619721057386869262889137830203451196852437973957841159184583546995496362563034501055369446900929256306338591261684410719128654010456771193824713096454601282195220632573946325024368971492684433019292364644703575884050919571738693435145073566796995781459452957597813278866906509891397042719732032004682065234313167200429669561579996776297992592951320779469538937525043280157158511838382079889770635633614821584748923375332443613127324757072242186029799675160658886168281766068821350377853775674792162607309596373465903319504237081635557853478669524063588355450113187858093508358913742407353207421941227605989320203693311940074736349815538326727463777721912899545865746538079252868011282166737446067838850822217124100479343470714605535086626055682813367847565893886237436289669493420648047224115844129772797052215725274021592407444980250059158488833668025084447254103047030210400413908500700456661978938746138360862184623189258545216070638936783477253269005056257185341894673745601583750272504269473674885310743995348715346935088785473013142346044869226307993982936021444743474022372655105920747406220727870713299918925157827197708172410690863528266681788048132885408447503982237255617217099831447115573059411091157880340945498327486513950448321858670622294679878862951767546749035062998070452492248185742322135214531877972290422913635619722417351030952178540417221283233402680054570624944420712999322544516894486415432240000038303762611469793229536181904747028944307618570311305000300583572790391509751231794880503869463625055843367677547821051253221479583813214354650593113490600372325635629630643239826770746971690440360719544588674908617958927075862696565464440536071244117420807343649789975250713620313656193450394871035239151680441731769421532269664753252919529542335156429779858079441853840299225847156309194023576241759974503926055684686366520449977734162498754331698801311957940906761713059873911087250420247360447906715366624157238749302413526096821223985511710816220283984937754423058742360738161818492775000920991182026123698849250560653420011174099519424458513272015506329869306928774472390375507827604816894015912300830164223417712131583116131401281003527686423220630574470505575079677972755406878512375036625473411057679161595128398575824395058148342122963402713444679135355962494244017717513387726615126128969858663943936547027200019810799568576039678995065949202455640906776186690340690249255038157302406163820150159754564947785321207785639561625210108060007931273167091716747034143371724393965073204447768129258715019651478696036484416048465559366018126965149867955411334971687729508026411605559957212180184503210858746167540888802516712081375129481820887175663537043548095779037564267302885231142425837514579137257392751408104695620628576478178770926744836051901874430756915103913103358815375933145031461626060268353675773041238259698715525408925013872243376893804436837046868236687120236160773728921249599098310155435800180636583900469196986147582399522880159680565612276076411503318793681745100801132173835752982321286998862838043087436063956683876568310446988652794244816487372760454326551720676820732572470162972741409477726191864505016523153345970155294361666484974291128912868510931801232033817316178302648877633825250920965810261430005809904014095413505471554560094652754278830301727792187114718258993019754005419474123691494338296309008894230001045337237664421354558859148808129230053912074572729232346406578590137930228655602910085806384728695475131213726093452859905380126803422090630303730367551830423949558315993113858740338873845753707214150061710420157151839098219921470268886728891838818052684545938160094410410293317621013412551660597864672821683408164073222830493645202333699905448501826504053311174791191066078431521893891656794431207384827098152711480859593472892265324617449276789607737838389261075096386881968812071688695562116003832552686538814015507342823475481851445466789221588961166451180229045672421115927442238968834403066750689765058350874240661845537523459850773990338895724664010045939028886585831993335916164422614031534874804941802207521955840186310094946518207567613086180946175041888757523910131350308802768522962853816463132580601099631073310676480745493548312572761012793698704977619282570151102741238543215036015299809800080884642465462664534217101516695314939115452323210837946503321173041110887038394881277668943445113188580603969696145679861101757738222231359624578460915824929924967849086109887897259009944388356440500605489614086305225842245897633597441447517870801046737956148392001682750620278379580263031618768319255627923933710175844289875406064580811462239012124471818990432916065994261509946623387989588126057268024090206582857667563891788714056656031560777387691371098460608971909526350205247030973052407424301241812403039143589604819879971132387130701943000209737693357623835417327222027138358216525238818082740324345555226765859789926422241752540584944942863983541976723759949314000618246175181704827574309839649696606259693371302793798643540931195284134727468987608577909255262280059598028994180184951904192891756214806718463378342955095731746899387475888700850815187846612693073380804275034697853949713398108403706661806391465025098198186094962822171736573831421370913408642356091882337936474148467510862628973250151186543693682921676216447436259453435201706299600538424362975038209060491682422693150548058095223234349851228173332368237119138518644077901137394708838922394828501319596135191123593872207707281972125206012341484954156895272157434011381267910334763339377235434092469698779845114243177512598991782644598907689684944846353367267395792959176214749643174975838285633062573000488535882654172553127235053819388988437352251585675440433834331964129941371238667974569086776216767393853211597554917395704909695557280182582597871895162462527867184880774206187854617772608078860446853463466895072955193706213296007446156409746776654273777170722357825542536245684921633755657751431050097142664944724838188335325440504503831819574294858433253155812942208167775026243440273195014996079595321216447194962112619024210702763417277334693719303389104552865353729649212412608599383266762879705828774192155170681524736127110069401146213478810620336018924736478663857336957416137929294330547373889599699481011681323680359471029344175718689849326970307389060994494090714725404442288670804238004704885217987190979193521899816819452343149925931528918861601718712375361400727825152372510437949311827018604248469531322943247995250610878275178296028806339545154280850946503152482030425495709042298665355746834545277891940468441298663228369201590614507871628137984207895036676654768876729963843554431340695431371538815416803018119501851041077223987992638062837230377553096967705449146517018076236675843942214277635666669334063519460312725359115708360302739137677021385314661175609718579450457092139806850977979009139667521121045061081913755490865719401598063823991273077528146805098757733216435688425310528679186865948449182938821506358441162486096739628398997183020506145304650451931802397799981793863377537987165307803655654652772614269308985907418685157067042086999117894800965120412562504495723470676107852948637255637597297790121256480150748496457021251080096903265357735565165372980886367538696895973987990678713749605322553298522690701323101558600509604679469032284474734823958545947385731266627007697506206061631352203071665924664726935864947023749511865183340228769607132804315515898214555195448839824599868417099378539791594714188615833144202543621780650902238797087751204803533091379983523863244961620860257347618908664215437059086746294256898872545801798336995422388648784406803764769713099314888577340632955140522746270427063818290724972805303221449914096064474037384348464561809086191741497237457079181401210747357345203385497887746702385880882308091415762475907119594938480090788074420228086448481994528090019818833556126832139833453363769998616475615963112684687692414298181939422029408746393481767957668948574622456321905648011708366932925237808174628045250398045196223275361661052191884620199423240762611042857202833887717329265066748077493823305896828864167237339384456365855519716478680785182895887965130697661471463688638642539907783669757858108717237861611888251120544816367072102776949514219234290006832023203790582880234683297650178586508060187054155017984361396247490653163785148524835246550224975987500480570191752667979885367012303934396996965940819058442201519626695361172309410307282975460249070045825024558622234742940675704391633408768908753587032925859530822655542487692928332820225357953979526179848674207580095333990048556158107075394665040604128752774787720390953707752531050452700252208081381045653306929058857530913915613173795120551685869529497552092162548143747294994121951193235026435436218852385068033437079642016141625285169972032673215969410614404502015703853635431762801215919778557365632979214064570767664875458701350416041596907127322548688299273822361043441623671672531776064367173213447473470365707315490369723095196414992274757787235355832641667548449015612812338741892423750385574280665551771708121023857905956523085888012345594300066880112393996971592766937816101975614488773439881111517177990938290881729681494144041172946449880810671317161489509466080098871241724317326801533235049059416724313170792507885480739916160410262551730896907521897344317801220345170024355502888815894274397946711785685658800798035452976643608688013636348123000188421125100379745588778130730272123814219308817251910478950074623050188302958783450299759982728713488573502526475366081671681822189491465921201486035394412102358036066345082132573191860636099017350498293878701358268183935222587840573790288296098520268144356891886819251581520930796413744417405207324901307159002865900938753067519646588127596603118202361934882940045107895574292908743711892050112111383992728840225967893976348580523204787445728474289604344454939563571408877823189645629213134044994819473363270314404836962660462884943799741780723559887612854390746453063725636052038576127638737871605536040531629446758380899811986436119573736534785664797799063140561818733376354852654957902565920264434198160998411061819896752662775908301174136059914558797662037069910921520552097586853946460949066169211348466536082969616601006345864729763852077673336282701045510765451515737388230879559378994067827887781745945084585691234829611593117622406828484576203462649631875608347882849464219780797186175422999248345168605751645746856148303218112746521059903525922003221440273204113391307358481939489143574418478019023892830695079975555899695978491044513852933386364010635066478068119790009609341279316625087593899458457939268964870216794285783826858322930411862664516910310588478680219247318398224827178800967604908774181925093756404334537395603367490508836189158129445190790686127565495129767259896103071374038310796284793868579053521927243775408372010971463734538064204367548560125274500018395791890215692859429714472155695162678535931552473770607520213608458036832248600686235934358661024239020209094288288665417368127125430975566917769634187771598231572257351345334866014467130683185548576724340271357987284424334753118159789516706380279052127504411077945910486718622401154000028862881908679859503538497064767543940378196669345136312573344818879249276792136091991739379758557722849692805832583629482361099087275501060815633315933925915042966965839539009640821847096687512478211017318551527365985122196442464124255654998424167746057002218404773615108623681634334548946879256799978467750905999953952335130069235206168275019020313071769259295430336058966192330693802330449091189785143946702811397447393657517142280837182069842991930574769696868617481942195950220097244006675778919308689108937714538117489686370161691215897466315675818378630729810299904681421620542095904171477900670608024493995082228159898365852017737351430107812722284460406369618257493750947791939794906835382956634656244843292025825465265715718822548927642878477704936143629481654582433252594359195807964449401578084235318045007245589016215756786510131178126770015069633208931160814741068977638926613830777340729590307719030839638546763262223626862776678478408452948894883521409189659504068405132373274979771925237004625203743495699937619558226790418652962569799317703769906828052564725137871941555186999801834935920538609307813094828131022058060074208221537338380644592803461636110488847655901115434234695296796258236378249023725357376591037926291416668392724067733281752059612976295783659774707387506881697497270211706323012276852246644267535087912861817887756507634470815062917767445590119249438581849149691081726127130011682024313661855933395654916358827358646987089053993847374610269863527625568223767116774227633149218534848320049655523381761117616681274887675108625439450997915938294087524487691256635737837711466264661127724998311732202530184541633198302895282631868758469284594087180211152297935588806323593522896220226220091086662110934831237459164347773550791246875619998072578789429612839254974556765029277693276288660337159453745702306690236756337417416527994059678201778135183705551506691131644160647651124207403157010020661755856527079739091074200042906023565984248914870602663566340205124957355772585983134889610575475591049416051547337299339084274400594809767314538998773176588611352237297687456854370384317368141621185232076333913743103286160681229203324221718663101353949903301936861313371395798802249524438589779065076829709486893428064205590305802624333184519306788256081759123145429515389410905685725404335174147926687347676815685265099352213304007118276296430318555101524936213486375298176673171470117106151749930429935277467520519536412955423953013831935733039909034041621804634275566117866917304114563646692205063487090395843432722802687924095525988842999729766039933130372625647543939379431701061952031330146775825721276919175474327963438563221321707147087847177499077043414212855612335202374787334113214377926275680690082955023615586826587772017964626238780757842191000735318350731616720570930719339058659729061598505597087621286863202653835800791686395641337070508954478492162001617848070529566292289928339547999803387366902977752424474556770653514618682819982884471723751105514686213009903457895353693959627349194091449996570715587216415370418778526533991582890635371657154368887269628521572335171028722029321316284603106161992864475764584813153688830124019369435252567749495957899036484588807101065025177069976934796844820102682735802800692962307636263366437600393731217124255086603990891621086973714285524574174011190443130357539460661416573062739397218943637759501106940125395501313099384056117118996398086990665999663005225948527522349926685840709332120284101040345826152406896646115373136153434715540170403418488090900406872747979596563086704179622472755565262534600011710498566805229641518058030494953818116357893249497400666492169627279058128317075112696699710595334869345027752218351379787680758040660084016548271024965198671245092037610794782686811144778034054852567122984135504999238815801721837690106786805540868723471237240119784891120027970748888162668168286483116373078967367661552292645016655322528846235777500040978262980649074618865759569594548927778951651981646803948410069292127573208209224206527348546983398298991399559076783681534158609508393420151640000204461904307917983084215771050021685039378160156418967772878860710754937613017082258833234662733656602670535779417362316571653387932094436538068884395997111367854420927815965108103759534476501276237606713505220524308291315687947744427463384389613567585550910842503267318214085072705576462831518566749774089984059204920489047245910014771258013106393042147067614331991112705781788548827582116022947237267873487323575739202183590688637884760203774258032118909354781160098325451911042768223421757430371175223636347545430227418964087558753461733809744183758604981077953770604346108013963369375100600945236121995639658644754015461986770916544823337598611418767031343566058371235608864326015470244614369895251264462535511990561284404641823032826138157347997079263982691321680392868084356243811204491230343236679504875201107471252958290425767485316577527801180449035778392801063123139736783937907521235970880463970825675276559503999122386040837347293102814847424392549951405583690481617784793288932962455888567354731532246377511595334575002293245777830259043383097056534738585856406497490555015994993292592417327895390868059054210951883097030152034953928762914788193303433771508929089963920431535607128113564268000176692511596856590651116965001095489815125721617426481748393106867564720804134326391638620111672614465162679148631126601234315542814484714465212005460763542892307199727705146476283169927779570564058829322187926519626902800497013411787389849893428908124391982287564056385609036412932297773512451093444791866937580910582782640607205230431041405539088139468457109094420362035322223876532935603883720994407607901255132413369912209046285316680031809817773860001424909564342660014436931322510512776173743421676739185289476346007451723942238792428536488718991600890528104363871269317799837660787535731085757405619021183099935134388507765717698684385461185632208611828308992578570436941670884503011177094076505065718642548075853623925871570071812414972236769945082353304443221492086232742577161399175230191857077613242629727331031471742914142215628882911736835736666919679358254852632310868028932520428670108954648788378002646669711618109754699236384625541481523371681584276944884008222998928491095928945385932283582963439890582788487008252264489551181250497747694740173306034965064088758786697763451466128184665974866539606379650887705925318227668777301700292092769988774555227342918949230551646743724896441078667777986784971167870407288010354442046147796272232925638750314435985207132022479495291221923604653461616093804309658300209779641804292282270876821188650922550005729417868932434103196395231286051733582591145808153879655601879336749113602757942829758465701229189393471982477044894076596848897912000930082153001755669653669249425835446742357873959411319623629119636090953586061303971378107532611964860303302972073098164216473425021867042395539554290159599711396522322624830639828331155955939871742344768808858202607237604037788705387968987151365594090879746037177808712522436387730199491520963409951746183231759801797923902906288284494450269852961769240009740823204432178869517543174019957756871671924608941940324615435944291235244665989810861649837987277440450770803868456110866958557913841315993236732204136956834618227515522168104022870546560540743146646181439648761844258332628563384534457819086950811265950075874025266381799920464498791903015504850175957322066760366780319152222565295610409320456162694401262361514640599850985346763414951640752520905780768149991275587162830790141251041049917509095233486252282179045091968052231574250649173937210681772389552098336515393072786358631969027925847482187721772276191049981859623024936888791336494503798066866066888488374362203819319144296238494358819406779180523421550793937723292776935461771396987393416850415848260445498815550683083084798149179031403347636117455446728737232270731950336325792369358789624613087476761307780878512164954297809901541535518039986660980521360873689827095240252654283415721259392229289447644397008886435651675835160756290088679195987318074994927657152318534162005548905208319688488058248398668002510441727393525206590977442161559261089954259260289271957062715373351641660033010000226261983109036784632466823960923765895639911001751785304624714958062968739152029639704648362189347735617323967830528973177814970244690186315316488873576053945814017938683746662473072209459538151248780057958735592019157857799982512426378738108595622812424893827816075647352542337756926964675273056001081274139761640962809146055438647388204334819430248747338992246974856117592823041880179156045047557296789939974873341371620731270667247393812064507157176284633160655443282124473955276284897836877919168054834912320712630754638351392762464331735600403474412113054996654275198253129534069835265988209123198778956621083925517720140280313762212482561610196444765459625722806383796390155386192477030811996599103591600196414596646980401095654612462917879103127396462524925050632998248484801023268777350644136232847680266927608886243837639298142662819737353190920041243903285374037809608223182821067358740093926705255695908298165808670830981035228798648987900483617793854073708165517362867734148810114224834584791191978099892125857733552437771604285362462776522287154623203304825887385818470556849815405943743797794195951994293263106980993986687185884109639359805777272119218475452596835849193091231128114537403340816568546185254693568069348083899525289546087413475642705163736210277966331461236728063932705511785585765369358230414022236337663428721618880487223473390203270941450939199889062162920130374666403724306083497559040016020040016275931621143491033210573865051770500898315075164656692586598941679510051420758341598567384086050796289216764557407398568888435980555201019090913159724019533168346935625247749872183537237235998164173603693433238185219133772022609918336986842599659928693723368398836549083020895600277588423485185841651240268576081003954852404743879874969068649864196664083222216954043517028959384101805605040340701502903819762073753125877212833215768826962293564873374367174061435732673578049252082295465625893089400469323546056558164498196784247168338198085060088129886571871291183211123371785879558037831466533310608591580620376710205557062467317340577135045124004928405265070086093281898650211874684651915602797796234672394804872613133503699905946616604790744426583049520747728051369935159868960629357151920157220336382652640090213376313739452862749256416458585612103871883407210079048956444963297735032735029482088139993346472036749963798686109159886766062288060317286015055817036872128414847459927303267336808493590945864691356432841367520506619335210238633976565610111727783540529239684732821969219610781886389793627179627696971866977045278175487042456226478409238001561260979186085359877844700051111371475287486517520005796215841102851517724051596584651769950907509163278852808509559532430033206593777369157712559450786138382032667173754929606125977881200869516787386044408709716818001277383673331297783796781083301499900163248586494629718290151482986577943245601742640032811037922235186125514925568172248257593800750183092051210708472802007730285133688725252596945580453153293119528803943856588879187013798216771667960800941892850116014878008134099267898839829200033619911560253967704935408374702264185852814372704983451243887667346036299184878807162889687128681609284324962788743447431906250899570198910276270711668338176271576259198047084554831224173220031093824748383082440694523723825583253057840808727326480215408318430492385434040959591269749417623978602825956503491194688012726661225389401419767177187227233598851967662773914145430482820847946427979810513109018348390516166764299030926382503385085642550459569076503275554233868424787208895345824215422627509008481863842677151367413562078042083733682806982283291403549164220248995671008992694546859977456420554806277664201299098957664117212917815020598937294468402294339824129084963694497444480782733637221634414623014786096400430630611106021068817046540522149816142709395877037030820277088963731870708728357433809814718746124855528503619971406916796399519066812175675586903295840668863043339815087481977622225018397104263570112402673618514308438656448909305814010727160429389063593645986734924791358396023626597847117002397129021979170214691642998129063761127488432944909628196384050173997473892076009903116450098025600389067998350670247119893057338041778037759720820554716776069772537812588848367706277340644739132611090141962676385713069395273712234225831892708611688450469297476079415778069564210987154265639745221982347328164882928285955318732949045525498295374819354393785775264867412033291089202706548951299507669912026135161046088928442832503839275826719678046689376641312474043447221636034491401668890744223507555885837515687382949206873303491491087436432706680065506683092245191675538738501331506707824935880532203047293079290369233783366399090642906095016835588278408383033706681334698149628533578144157750759894267052088069131743632460017926335855779123669469015065776607668994620320970467438253339127962027704087069373921525762630135172662011443255829048447318082847563467423091292447478627827603745370880358666047617736657301497599803519978646708497850713038012193704247229064074858372767121205177219128865870413319242644053770418270635223278584018872752760960973654211752482206532358129030331538234147269271170024228373637348364499202613805524078065952731250217673524402800845719837387222689730621730033292079272411499705735766394180603691439907915127230718200927090245516185272135337598205668455495709297466699876398711733776569940141672933223207997026537547267861027689874649433877356443421173592723097041184279722817520429907128493096121477852769548725126722318537876280454645619970525748792720480631794021289102715076170199494731025175679695929074872310086101326911765221369119722478970402388540069160297177899027398697748275455326930393181982535745856159358691702145695424330804456409288036314866025451100063497581915615586495692023324101077010613713994266363870836977402052020709454896489544330680460799904226955477036246375551072012345305133142965664978506819233757974719343586799677031087092299271561185869829953360513105003349199779509568022375876259821773613541758770546095175648917037769206159167630675000103850083415181568701120735168957762426971129534798444467235024244669366513995159822787285711842116485149076784637316865549849022382373164379415337400210433993242102250387612792226918001431348664998754313146232430926867962270319903120689960350931185153294556371374794711352607312971021191146673491726170900362962154162836034708593856603069417458015075151581731537979971044330174514010959638800220288751524664437238817742865529622096383004723438484062824108046761644367247164184042993197539977899699099066118716258721913213679928745481324142362159925379540955127375370398309114136261135651544661347240072568104226305830972691569781012443347178829551290669548640657445755778348314607015986220881062620240615194213741062619517184096627403840850254301791886376670264059791943819680718011624427487723204233780307429763280742670037698827349493692272039764141980303988870176460636558912114099499307977168118228151529358939564701137149201416974942050284206665771142430326803269913607557370833358369352620319807914513791334039562967986711567584421323361164214067162701440939573839639412858264012616492213493748104238197782380417655433526496990336448008359206218930917462970969040225487766308962183446674624509070398143665793907860210802446053272726830233258221441265874769535820110449918315791037120118324842080160650370166970964597163016760408488110463307499286386535337143829680459633259017292548370299650744875687839686607510543628101575127569014666885941321644911822506633452384890663388886458057299049903304464152657714032542190125144802886069876244138110705036091147646478251557565364087858550904631429480671016094560510022328628422416553380844099752260702267283814720218505314690304176633453305269622074382824500851588128415878892676381977071191307984206967420981148160206321234702062407636145893344328996492846841512459263267303706031708564584493804326444309207471870261477582630001551853167180791779398377365265950392363111366167624088068110508916697054173541549497204486256237611359806226991220693623784725726895205930584202656375877313151380204541581507862489787382142797948609104155154717710210782830806722430732130008273621614546264023341949984516689744971685461917838529588219446017683695608189229058585598858844142964486477982831569247896727591334798995422260964433545302133437261608499307229602146625946673186805186671711093993039420855730799328019634659070258876215798587996201218347686391986867318078354923433832429443421405986549857184920396797027520102743255252543914916911006273611433631705999374020696269056731573289768434405254644283455010354010778565352744125207380947401366926706908828277146523543748861694116698860943013910895361412285716818941115325660550149577555947738796341322738116075304932019132517809765509451825610003934399282448865110993596226629941228654089513032848958117072155061451573253191091015515499938019724378843276795995399745297364177864918402421045657424621683293819824069458194876351954223382433399450825276666177553211728418688719522086984270376948890722984395574170162345234449257625958833369498351382936413127012927441992678096659882100140957739374688942989408115132636244160907992056199012051794758911457343094907405761796093406728319871431004735382442580429880550698352387053407687201725440153054338027521914496468224777751774886323566076888421960132379069530929085624642753669225543732300275518051747184847598098727535307646962290330114354562693401218138821256792734147051307585908293979718783396471966395879367161058472598634634851717789590166639635746742534009154278538997461115737623507180683928845223234220424869322660047352350999117578382163227562042440225501945760905975883256611144168430091781044569021739410853466895812309813256120679304278200116659056248323287031848494622001136346684586949987612150839694617853675523010973803143607595754137915675425110430745456650533414866950841881868537913406036449099946001235765279890378902148388315418543616110005064572127089641769020507475710157247411809813096609667243227682073913113376434209868849941097338878439189354248801068026721572104215847356226203634304127297737437025559491344520730586908869497115511947112865199121994903042201732419883623478240533662710262901184738321918717753700979313284930073419633841616855093612591937907582046316355905509942329624858981574497843521704181461617830127587808437714043495272043433110855154791827209162463624155587021586065416445303044326864477594971120989161927752819960024925274462577372901322090734750444737623021327238158631625050455053388278692094332767476145917397259449285778611379304408693111898736488331587027220616592013942112246283903669863852802344693108997756726093677957579793542970386594299887371161931824550289720914768855028637163458931145337221053225395007876938866388654399463285252323686189765371595659642303731639272528775348212134161223464666035654171960691510593930277873358766069329803640526535704451762572262818695966554932856282201582940646666242960274596895529511061977439657732089832932152462991410827331005604067539819776100701375500887849805571708343037597175911383975801599792756575118521255318876395161682940213189543601256975843985578396114047137003083107478522574545147041538846483947431425677052914070090286451450751346772050786077564153558169533326142038460981296397598924160640995418866872621152222483600305116901941437540870378481935845966498382789179985880940974178099345421947466916345289883111207885274390193207424904091258837139084969421941570967275583990743571874364205975078030364075357593232352273452699401418333948709927865731506671928279610420504457815881237844967606672847700230490751353568989711116730832537568456263712007140429415282243569422354735225292259488272963663400345500193669978329742290348329496160624698129928374924859420091195725198796261137912412328020928325068523609309264511865252146235868112522725255814926673203712513885781051505003956274252855972773047752206388884317840358128377377478223158664909958835704493900168528224203532823563336220164393935577090762403890785496689876451832939814641913570909748961479250608808343317112606387623329735596421873526289884600001080453219612608047755531383653580245242668884920344619784782560759575786142438478415663911109805640326982844751629422201516203395066516193451141341436664986758193828497829089893838854380990887248595762707730839276019235830118197042136662213344317184300259379954948949675399885888449473142712908109274257921065322254463168069964850179438864485952332638524705745973952063392098794151816790096405526861553400084146914005412706537176044266304095407963025700214642145200686051938322910164793614612294407480621561326140050582845037241940758249963426715011479182709807505501421155847494963826006594057276991335895867126940925034004558253342317989139246364421459080620633679236162722865514707670175146363567480150716217803008446221104451029080044749070458603630380033843526260111492839143512649194055629258553517386551264627548376443679200095903364812608027122875892578742548879114493441729881501844850929775986788519937442364165520448764189935118947611460026624711074109878865817921261861165898070474960131683628418304026517645051473706075008210737819624331736829958109515598582973345315460772990073203374243209932282176533088381215609548583691418982348034443896473148461220649563783147246238398399416801693529159383604427171894262897774774202767398999474691652194635055483868065213107040408953964746492670311222818746524424483811280806341873425099381636718175769644657198287266674178056758183085722034247016808300504943891903808499008894107286816948775769045446448981372738473186881315685784121328498839766333852474458613053279784593342852242459142801046035521021947389824268289045977547368547847593547821260740823224121670638362765519560128689263776206619670917438635047730142079656841689870140646847659760262237819167974316548440298100326403416309350781822496346276009239410404245564356906461105577074182684998791355981351526134005659120388306276639922554827870109347276383852631470512623773598655653959754355338229184613298514270351112090014732269224188578908301379641771736711144004204904265391205822370743135779630763087393332748425535237377202666776879533217845671579631627259047269796110100745930007887732846761474584578887175250033188064531033364523355618620300133545998513279855519168586130822000625229882353585529794247248601070109280026428159288073289016954724052118067629335193770147015136830978719637753641512329841062320972923982350408285183068997474150613129399188028021818350988002090983557741026162568019878863647020704546039898470463474186755564395566522797730917077347457768983708705787951319304742832124348924828188211944746196830197311882689689694952003285086580797009293282132329760927082073080953470366653890836535226871452128469287741602392845956640459165264304522175802509603588824199322931511431681465476873535833831115117555288431083165285364189418043223080218602045700506579770140144513805246810826901625346511521734145299355935371874524695108199099910239111354503628497761765647891538707010381539986785354430289200596866432884876171284477442077254773233301038769287999378032519058013029016712220048528571976466698417855699710686018615272268422923761683318954840914358949130663800483678733074583777433059963415331111365477610832702960219814830451732960294574894700227890684914517384532459111140655841380040704254725565550859117569528296228030089727344173570279904921946486648347567432678439703194690488713253266411198218887362771652448891926542376345971767496680453329443359749294483374489085780058307587011979693945260210590904626405942999509635362306961180611459434342042251891266199473099177242947883510064864564457232101570302523836460823281878103705169411611378028069628795421873065893404364118634828295473558614690425501909435494828067581914647664199284033524902786439693505000744653601063201883302106577566364752418817335719094229951623983748794525905588982362742396222660638690516952163297181833394145748606007256868946133953422306118562157188138783659412437158782722370320776797778412117027314583489338581444046835600687294016334466616071085041938568601964323044448318469220341501351577711213211505134127797286284543245930966417253340869916793046662526104135522184852320623634643423581982418768528630755121313234622185288986091460053917341238236122323739781794625406517506803679744175643101202675718454463614726395527222415219430207857662922025611759060038712481590933239649570559000738573240682739936067728116360999331336453492925265557218781413459309046731600243015001294086311196058983524469931933923296148806749394864509987852633822044929334193946697423934207506190226081227672951669831851227286132811450568667079888809577843405537756403131968297231519247839699945982433278011679810158416753912760979368075131236750965547533541498923787489201169597395196507589977424166812467423030931920190053957107186860794171867246837309283282614953464687384949451808120454241379941340530733454351487879701733991198016739174970780700282976889064309051574133357076085384415200676719553259141268330828136086286423949226479539842113856003723348936608890581872161253508282979178188021084886480536620002848453938306880039064696094239178839285023135963494183272328626697806969755687860466662182303979385956722323927183329387107872642507587239703341561131992762579226830929470041550377877914861400896590197382703758593505610540920793313547179022618272019439716041821798465178164521142194421223474476580119039625716468892295438796882845764387064989562586220308476453846204034024541682484444214547147805615911771032758271758107577387642484573962395444708858088701378728825084213342662456144995476641621835847923320625952321789420397087098554097601278047255644901766379857025449282294067368681822203163152084312927409818507588083644709276732453197473864480456139732567915750868523392415641989209702843448300173791670064803175926616491742231195829236749110454637463076541042022063333378122787912943628737779598512750342557016186653119524253843843643004231573930652107974053825285335276593857930149714596829451721206447162765676833958970848933976325687365189174443974103575838495841208226388121675395792726512159992394107724361622909961757801335548887334003068389264235874822652909079544222410134554901504901840813966971417589655477537400321319928357738031825480277431507559631556310459083792175360284445781227303188899697651413215283282802495058081492514003976451173559417547490636316801013482218438666253541010880234698178920614796482897497121970668777591641046789394094972047487516024332894998721596060944279689137794358689288619475205139055067731371321688921679093464858659578901453497689105617274660338975384973761284525666566912184482714151464832231656517471181978122679506527345545427258653882482539231376617377390814189003870540873526825388959229229939327379632079510138753144780623853811360423815537659044829400080465887525753965158459669715893873013536782339652573914211039414923654950039929275049182286935063432449484602576099381350447652936185479238336338196559879030753990029999664016225577915192005420222463372965282961249574213905221094818106612321281843320888235766774922466445196001104653085742421359978913935303454799861777684784931805301453842197641557766680082986622556562978529932548996165321804630793003267038271804936451776994891321754752718605981307340774978916547502333389495360027013746195384812730102516183041649640034172286015561022545816016025325552109673371807393378221612760654695750851951817407334396439905232502741408538230133751881691751964962576272332322560681528304561370985196006174140501827379992593590722880882551818485742104699955145701128011529291208080761893120780174631456457925688190039411375959175349832710319850015202897275585234488071944976216950993162580563344981023980055935599964753768199317988187536408522736554015208275773486377303411432084290742057747225177675834425869127402588559732719825790995153733143457295942961374373192658474261430800162340271075006381694259050299542998216380697849696267200862953193561967766640137554495279325039012858693489730413779304350308270131229244107786883290083273067882536204610748950607547242788460382748018140266965718913467060685178675465655346110582080929940561123202098469767530936922381161160511269003922512512298885303490829724647918298401474781272232395600500608299521158030875997607412306247252827004339330778118868860209639743000321995919973359344598583432540653041312338408154439886346937603493061368978455768781580952327882130693023528510744626757955611423108664443201715078408331856506723223797506414808205652751848085060420457002182740561876796290766129035462138219924065237814995206560486387936894929504844190677119514285424296057834135181316547645573546921370890035270154075210474167646769010153532094043382801976627827570168286917445156853160304335470895939337154258516413335487706378248997089089933681358221338584341442120661504766747129641106935043226103148730021185128240478544600608169480968767186794873579739286312615799009853293110125595058475841428531944051890719088186715023115940169880556109094983984235392840237299343488328571172383637243406208539857874143442458977096168876752118255866670812835446009654745355901975478839810366245241985867014570653155653642311981967018790044665105246381100037340830658278902108287059943285125772726103624523225037162723703160085034661599945568712431582283070815612999861722440144982758627613406945835298315653313042384477087518530410195455414760880717602504556686791777489807394709269709943592459075976914408006310446640431267915669778230126732973885739419133597158361679190892877000888327641790870514798801224671616643376697524339869952920977304116335653076064626825936609244083932346894272969142224746531166609201765386921147102768594123312520661899037883605742225913650100852436873768863123797373648563823534306532033403286446196458270923326648737292515959359546164534776517515134200539156312520767587201064035503011260003382070573179267155614431025493536729845651579073591452821332570762263639460396311951012250822914796605215776861360698966408432998223682713535939793308347294458545833595302267453696404330275964335914147890247187325480709742492175553601149439699214939828724177995056680326848840345363726621332754145349068915988282764910406078060534970688958517386001653721719428089906246015726948729909589802308695971762733771431566298959092394172202547859608257307490112297413006763357495858310011044956781106558000712263205281850606914428783748782722949410881085831347285637635465097457134627300785410481454997262814268020441642240759478908074986604614184811118239672131546602013037730769340948189238043192474430060517981550879387558827185697175896512189176678769257977611406705888713433999320110194219894361575276605357545642424630333330345091279101820807652179370201979918496879091272628419527169927199869617863736492230919342467828793013559056242693341655042741768218145448515427362145068810936425524641302866061976617399870360427281988926461108957923069990927054628623563823663502086467568771614396311251522856494599317886381828580123944513635278404304918612722065850321841131987916334285635835746493708555356360606216488336348511056357850650037365018317173930959938541241301609144534397997930656933115003520410739105355300314541578778325697735230510894450426521074246973625221474154756963415845727864535602417573139195264547251046125683961412720919480246895757404951794462374864316875854419565402778136463571117696614936290903746569297786592881995089413178136278685845558291832350892824558972093629748347952287139141616661739042328461031772669217496958158628154505314591393737407447342235146329848353703478509061857563964782102934471395355866231783837896720772506153168953158308896907300877424694403448643882392131536444085775558785011827411392271694337199006806644289214458647116883198460107462683495250404936490466487640280153287822906431014823598291335886257501659841929015526618773546717089382190544980235605084377225901327882029446730524122626476816104643802545802292734764901457639325270926022048759063035405013108752565673493775829197827447276756158065084430382806904182171706419320988487252177570318642702907317814771567120354990014746730178948946935952845176314220454991655538145138554461013327587553159711860072072893051065573689998859182882850862547134311008782678261543212489930753267684631945158660070493446504382117275799067790922909720374628611245579948361976026128604400405808936349001960482124018359695762380572803110846705928038987054721576100992354068648844566377352152820183776874801613755782075963659901125453054449901923673970883442154520490808124479869453756345716419495659054441606387599443995733811721236854866397724544024043905060243361518006811437998608603535543582213599710996174396227646552148345329404167656443792790023022565910883090301731361170774421750438692703999514024559841395383857200869205847435586770013690263842998152766966430916393637089875645481860741455778496045787375927020338851884498424503117362711036504118216103017309874913474079086851432212801956272220039150115110328505464132189269538466507378855165845982231934927966902005944210977946699094482066882616343599329589080834626851985076286997889908526188205143645970222070178904085894441726792516334165853390897231942276667603086785152497560231856665416791770235155942343921250621891478563333269082466342466275812793488772127149955760471885328654423563644191801149488594937941387916180297352846673986949272927621477853206913949084414283422269623821860261161236143509287836070098451554513657407744790076407517679047376836778429789442182442241617402350026683451016709016598129217424338757854726576285735773097118701826783115841778188470464188000742668323341357224874853226763759977025137882627183073097655783329253915704087231198987276025713106752849125500581609305039543781329610857307681777023552240406657381230303291365030757707209336963376015937256954321516681667420764189801382424093748668907520896311017677528004580782270388434060012520020787365372172075303940844285653944412461320765883528629691608191987835684659190628969815147031385673897866112722726435969872754010088815316695572963391414820250193873745201420782992721080601912215402237472968249543752531519304529915941352509546951005118896386218254416439724042409369387489395447956106785487836501224699018984737158437161824961415222556285252125223317082062711278788954532257726943438270269634227169890282741258710407710336257329354533551354050790254769208755257223160197908226999533906169290043991864020748913483911082007293411375592125436494922443976839098937205306025811284297054640854767799755871504798071474395959901018024228444902783332481582166803874995025761901762747301922386626397484339841319108696560397729262210052035311479573836126620067883602254759333146957409281523631430549554987678563088192626364274283148122580128194906679563306259604293733162620693525157252032175979897788398933690356297221044480978202285063493246491155367752652921443350026707913860661698580931603968593015878018698137626801100881375618895951158464656965883105804974341933562147220047768188790531690344477905799397793857822949092586795217754845513139106495692962021673718191181166120754203208848547339894120962139342062192044271634497624687786835115104931966283276608954991124816878836015695256581529563960280365149489875854285616825011770232648829227433810394523261556661363106792159978313785216570473545123310399725148977580292614613112714251769779180461340340735061835100842427506340700021117260894073374946388320074278254600916613809034809784500488853532935211700612169867586317342621962018479407470585188479166992012071327928067738097529997410622202655186072402241425030896592073455894635471684324208611078461974859000881349267764106934803992319737029723633472639671761241486984037054784836839192623543117809466259815611977489668102392614644701032969789439017213028371129768115899498831870040305795224401666591149162055782193611706446619408716182974895219526667046976823152043754592828033433537037833304536856095111531209890567656232671728280828614064835217750509130994421355441695112443267490426131124795644825315530470367676446263329243117642937849952215961556554986512932062307458444946078193574439830749391162622727275084967822721678549470821718815695060361661364116189624256309752584913383686345579869458818238987507293008217784309841591447086458694327129614337227018034727620714746626299359248042077235811188342076610250354262241295445080195413598724607342738456745387046353434876428299273357011949859181947243843386549776020413893232905773365546090922108824436205734338817966222928584154863065748509439955297088342767024783921604483112817433851618663142173604029572715654822393828438973278088886764971971060528984877426851144877241525904359950586506130553814959521094109104484123580573274232787422510069331869332846010282147713015372939685220067838271880380593382863827362699467691235532058197040589918228808482252845732495330041959059832441515090979464416509706603697932464535286481392136297948789934993755439965662738682362229547576114223449508552176762873771590032136464366017026232675175055599580910073429881482330397975408120735982177127837635892749777400879374206335683323921484401387290635240462380392018245899564332037941579914343923858055851162806453978637059096020274095948273289766109153304697545055776239526001042076540944164145642088198420779712509152246793127467344055452211116469631912411825046553266333091766528919637366571099390428583967305210975461566320316721720702878016695606553588044960615168484087962205061316701773496837516927302501231313854114708679099829108165391768176927690130570628721819602543287996055011764053761482674957416692260408257125775963430280388915983122443004088179246883832492542060083537013720900478208829238255268913555851223517840424316444859570832950642312391425407630915353495157526555612233421686629718293139228759007203889318383131120084408807190261965609805355375928683063954072890568567610176300286703061226043352848544328144615244954126452942034502413897795570363879087805981229673533850177816989363535567286347056635158892480667980544770173354278185199151888831753940945551049568643517656048130683351186546881935052984350917283716199522639376375986387978224036610940922888217495247865906156192273368787583636557879238811640306206634045485862079207941113597978694154200161534435317354536247076373305026859176503108986408911937041966655818990297004726389503854529720489600637119715588996483057304803977128741545273294304537869136324184524694307704775296494660674738354860535399421056382197743198048880389539718845511127824818728663148107922835123016027289693884977737354826942195900124802435186931985674426639670365156329451258361128267132657225111177696249800898184929636268984297663439248503751891507936994648487945959518974020881187699207147075405207708681456698594808634444588988491990675836502077646168352256930641445273302490394304904170819175178289835542775268131527451840113150361030874614407114767749174420040727955299516380461233776292086633394232933516886217608227231159861783407593410910692105084870154572290481069303195463363991551103904150891928394873718927109497949210230664228787651877790271973899699249912602880855527601318880997448491788527090706891993411969639199365546006582299485678995407552572811016520860232074161346953984372672730865198217987973953163119922111739566906628118697964250392074151737356313624751437979847521405170547901898695741553259000228284374849603382498758789494147267777477552973591408814362958321646830240189251313351763059453443629038142959206981366998037426579982270216310162060021932903201095500246018443928054033983118997828511665362180427448803484176513987588212640781040413707208389784356486274545105587146427775451153736592937488544449629438410445989635216986961237444332776192881563750273164974866258839752166131923584857591016585729121825834733450428300624582479828161022555100705162887108880261493722985122922751948520439015519461294895807158769468247108324884214678954121886330375555130148377859990742136321518303520809772384277219634961903454352118260383688949933410697749922350710259284403980797506378834004839700567964725749923914377009248988988597684182387896639116162067652659154018004445177931987504879822651252092003862325748030504147106510114939669192844739846237011677568907136422175127568115419186146170395873547729307977571402694181377033318744038407843930462243922743595006761526840117103842823114470934797191667933192974175268141248313619471452724080576205957195102644629566623556529465111316124228582131957686692158710246515602814997016456292650611539947620824520718346270071324652904025470525607918995993359705416317246687681362977040025252497246105303504043096587340589490116720005623340864034854172158055659233891054693544365695846979241246575654385460678281292993717012892039196446398990663380140851944552343374932035976347294610416507592251865520635996094564304627277058559055288427728404172450850059297581225111788623566174799937262960051850164754987306107920675354428351045468385269471234088788263309177614995364140019463210095112249478285324294806099794178208491454541990258488129444595658686706655845138683039344859227954631337233787183159736578002299693620855835571142912080600577721553105698994645123782136743805056378670549444842157302472628332059183980012898875850857608793692646483612785768704789900905325402242173212790217284063022614276329849426288658364798303861671888849995651211422917446413807397717074534713576589799409128948247193229140058615985229368016849731516212827888103709045975792036841531174670404863591879280291364041552986957709786857090802620287680866574992713173983402605679663273160630983640413448208973237916768771617039251716388748343051558307710496687644856622603508032758547172711064015259198934959673470833886111438738975504728837191165680099727241566482524362058811533929503576471764118085244937711861603804459887451103155930896261190870119201443911448897615644534404086585609812351546341903489232733141672514116084173058378293948961300535230970405674146678705693223071956812405946927824977005301583608500377860543822439526007283983836871647933128658555525335050652120555821873794864750630270414082323516226018161476787216254493882467902484073640268152449825183780900673485721035362263491487899301791747571654671115220194609739544226480847882528931275800312855433389732540832475882554279874731631557989771553904537843713349125170837320362076180237704096234986392373969827443860193539302966242096705692083726907423080853726362209084026069041423575730852787755230051328602956716837666000273546788937765008743564067416560602545719426586204404446925267716548388130300990942516509872641283132173687343584291155994063278803264770359397335351278173261593810949722685755962994356056029556802376925133947722057960646231039382382972782664663142866952712400057445766566511318941961446796611177858516557901427918010583210330475519182513584419030004786906321942791734747967311787749131347733109318899996609891898207393784284752272498458011868414022831134732734818772957683935312509790540862232927907075971094055318341705471352762353229532870145552871391708840040509920791893481652434117104659901648289948302433875815509216508043274863862654549331226088027463818159083429227379443838494053324088592640259710627526211431980194664931433294779622447067426339329906397174226762070522101631914488092189418383186005201592076069622087639816079931767247062562669959992346006637823387579488971582048636700958304669461729334046351130612765015114687086961466840804697254874473017918449103354286755554404920173495973299720521572068528753986853751045189139604209388120204719686297420337260132850205338769284961996885619019998080584241023703687616790951928169608570594808268520976741504710621152970915901440040524932278225148857242980553883698807119751216277467365437413615392166728481794745323873071262412642130873607799462962372882826008443662947174778936212550992557812445353291894560565409115949079353283338541895609459671723085725699883028365962448302825113537765427976972346495511715709757143112287577321106637978336344618953605838147939787009722348299764493428719606042726545583936141295880453814483272149620152636853608120482798220237436181317950802294706814367780356347367375276124765208316552921191776179651047923729808416371600426093769322543642330798470160742230517572130271158211674328544251543790393489429994161375080063219164737414692108039000687958149847518920716529389386201915103943874107592809989359249070630041598880209332165284020029891047515369145659618637314515398722455843957343731779054929739327265965712879382767076332109585758200207302657255878568355931709360537693734126015416184593648025074322368780008210018980977033337615161696150934636577193165624739865001789735732126113092960879694509410550797565864084037464533169520712667722002488334104114830667415554786880608999948645114456093068999780804017067466252412109386068325840392871495168093194033915250116030819498262321298448469554994597312427550322251646667453434873416809557814501199674729284084035186852147200014696212155961397630986157700373695604517804498304575421173708590136031058553216378682542109819729215211908773905819338181309512589395729632432451340509655011031801980661700943167136331834405408268303228850556902945771279094873752546227609381088355216894179994443605867541614060109880583114624519985977658090384540277490242230764588470095884147160064977373737001393012331512546909838632015461746114919174560802368541703707261932581262113553824214377021118087978880794202125922217996436889729470153124260315458534148605860314169108600447042302543749444381691904374665858316621442437400725167099796783689669854496324987652962983862921918693800586956056296009789702341444697498017488274218164762076535391939133739849082305629013712535948356294141995349354728944468169992422910052405617300720321932304052432477888963007471220103198375551422605703867801967987796248879665859425326215363133506643692671961983848997014821876439610556799850282999967401276303694240694081139933359149432578027060902619791798016334304498309196655137849494789981639859678004062145269726471361805876077487506896730944734176967106358803794564053847359732729678821821963768661766393483613554651957762217832164161109168901323178735426001701889533925423966899407190673828563627606531948846497620171144272330724955895153743043139148443711768211600520405530139790607091117291022899894709140163000242001584084656373934269011448646801344745538058475295738168376918723582903704770301309985392578358426453976214778637920461275049636492674612624746035575890891037065308481640880507513612577380490999626903305708074438740882851362807167103164581308818786657783732106635519813231555956163467812935760505492928214258970316681123185087978240517979969410294649296028342955505098708294135879069174365713452506742280814457663816447795366681837362893865080644679997731411089918154842276075951264472165671724988610615871818256672730220117824995119350613735766318092551972639567338347802066813982927510366136847622905602126070589610226492107376212862128903102588147123916779227299229813232765612049484408728195121600646183496087255345219482075612583555539071069212866219720848826784730842115751329488542130881854454273325068867338373719589533634877474823593439720898379074366373684192600714351529465305182144615085865605034688154698827899814842769371124401358658694424008205026032371796570980600425056045222011039796182728274803251689098528232972186339318386686308790422097917780360808925240066424825830345846284161480473528066622836809839858073007974427288599700840460497508162475437853090974651301254719565262309681461477819248100669077962379835893792410379944021798427159768768063295689457519932005911700363933986375779963037351412521888340363292844350482335703690413190440904047738327377943983125107051532764698142885660847460803504119540919503538496204480063534428482232610458987747600371767183247453015831605998572694384331993206424351413534735223541077738079871942136531107102417874542981924099104724691273851639580776912833007253089753303639851597474140836133287499375089781900869907182338640884679657960504371236251021019396953261343964388199104816805403839251194509642570284160214391936456799719956888926910674630033753331850433576634451617211888736357528326125087563000279485624490280401755607112111727686999223658352307716784316274032530463305999587633106995468220291100467714198841425553135095280100199386617121476487751854305658598652567441257861377310851694304031082505583466424841839153210676058588573475116170575418410473020111840221436122626167911815195892472119302403571754478606098733511720459889423537939880250603471785448332080699268102031728107149757837574973894619683984333863437069815337791120585684349570842157923479404894430431390401197998044386336074221699791417200383648479874024173231213792744081369730711299880467349134243440864728016521446992462702336787679874474863056575797340710617972155151811021705777406132250098869900708520019620373083223895658124352893190640628825474018024158190936049688051908838212446881895908209886714018238936286370635082969959298452126966849533914674616164683044885313563255830939739602040488884391578014695909136413597225566926690878245608260947874895628263924298740576846161648521129912499395437003254360354475633392780774165167964061659014457136106110528601703329316803492139997372870303045815739971835411486656449311743306424918030145938109448090333015531291481770270736615985763554405657438605185667121448184967557567428663625926242286359181635832929639288610739862202775066351060555905894041789193637144407252952340703216333931140326067243663370034504036657940934623766431100557236679206694660405437904808296185259953264284938685815597220637052002643071807733117905231833478858295199560890247321515272736248384294602082706512263502488152846343868029673957834903830982336889951062225769308917016356768975156140796382446504223198771365427523380808391926108096333040196539353972892151382919534356377480127758832784031941267700582685738773481460387432652951446767901449657763075630742223065481402726360527716020532054603446848335136301336544943009907240012292669823055874184771003500916810897818828728860878549316283851686034698540257521363251687786217261332921334099371944459801802956486638466462846188528300420650811105431290339237948373309539212709255005138617590463566863334449586965235895027421240696182317247968873255627104928055527023586239016574399729569877935537207769459393006075898238015157786341708359124553439460315145873590506971510486715594679693074833938236208062937671015023683638100265028164665791662138305327322453905080297741723748543370893966661225593178373914133119403237692860863234316262520696868557812754148026090890537183542509399162092912006101901615966701080943235880262985861762830854313599800783617773776707567081766401447256741748090312255489003815426571757859491706717408672143232637970143400745274244891968864100281893134752560149556702512779163208618664486146500359848040990007283034906321319901066074660679938787660143586033954591250051259659114992164928801632860482240062805812345635285151606624181562477886685715212957096061745787688821138459585901118775246646494556472441200250143470041011585159893733056088812176777564029295691103353563555358510118015586890331899643808129539200481300301663599733773267296880383933802060689732891104430143755294244410489311026674442731201705411448176324285190163787431787987746582296452829479181727179071327055551135301685316900472369134282489625292866848126880212124417258398476780431905389581977034045832578033561769272394311085412935445558567894330128000780145901919969873768644619985386298844541282944019668639950846967513147957224591813814362071701868281257552099757555480402821769745774833268905861965804747914811751045677733453419135606800073577573178349757608500366451407570098035884509172742424856952945884819732686279575628434801601468097375552917942497160875336563311418229190370846881670445147732425536452543949248590703171786054565069341909493305995715409500334688802630644959635638088833572761206431923493254785765457527929803968964991482046319959243211228473047682092248941999657398634237101580208868703455190300369686621657818732121996791069076113493565330986212049236746715053100174297098468745661475026556887511373175889181251395855009663427771434800348649400257465516817907583398220206314855690977350163151782178258291165691413777654088958313572331626809402058174528314062301178893671831825217028671339755589323411259719852530264963540732248577069366891447032838131665596467011541588976703445861492402325708790830254385778913402043419097433167302780173317948918351264111267312878214221527461021154171389558745696740990786848309955809746248913863330268880196008606275536462901229207286300343635511700986402962148710970179331780611268948708598971350834840969115019114515433242399066770398377288719730887862735199287007286116390339078194315461702958651556441616131150490051094991748445987933602199979661721352655722900753589745389194963940996228120554426133265812126961522377071995334753523886577572159589089150453332918751269435697520344547522766957300052976300227740634067113651594987591431548721213729025065457347499508051179417388280714053083151634682463753184232059456041450486783200463250557391998212099926999528344893340938106007604836601216124494796603503770810611522191021222902623942105661232453904633332101742413920271332595994478868728365441186822856775057916566787585531782338082376775593431518964345824305664738123672399367761318330453505296202594230352097291934015859521095011209944751118477750538407841563656753845001732846148434274901351075465348528006662899777996029326238329468959272350034494733693027381052149872331234249903841425302239787943382532287844781792086803511159979631208102397810153971887748889942881900631006702592982505504135739604392178150471644532082329897965344366266319685564539244020173223257548253920226113406941119351437604805305938772492084233296360760076892694448246439840789428907877561379241831632015356608379372941581505602618172389592815357482419329048247957175026905074403083726792327638723404497536966340334735534339561744606957756006766004472903449102101336934759427908425657586787998120973079664880394478255250973410557590689606285690242371154265528064404868489373376684891617906906685233443828951183128882974711278178610806517209131909742633979229211975037007991636029356090496337930276706045707587478502313335979711082566830317330818432888521736034718290074530905253260857004656688855090234906468246109941476313127570415384196959557693841262514538598824558141123905419150741743004071930178553079705933176549110916385307619061078356920354024376530672126957214106599866229732057108561874360103885123820436273387605158103879540746650252536833386030607655583146332438807799774242788377175745586887614999866089391703878467438754896482532947824834872375748891132328341249671694120202785098168656445810295180715072044494653651355313662973483310334294068121117314575589731002942638954110148439375033585766157898523573750342550020852440876144947997202833310140507723681889120536101635256610946619755272402822709349100275874011679618401468411832761351227523586401370223064322465074584470242566509395980027592200595945990170422999396386669255088597959696795342331551409409862948210188193780321568931127325435359671181052520438152037560503770835190337952169478765314525935989354855796818506316698355158182840621306777943319272494178988047264190382160140968698565096448663385272029393708128626868207733907839578553265028879711360515807627835604184584601282018377993947202939847420695851609515022083111071067919596333087016997975136326506562942908881809299119926440243019543175905654467855284596590704027990410802587344832548044960200670089492716466089871420647408698112787030114504861591474460872732858173177892211488941609418821144998932624347484083656715554107050683959114747602749859139768454463976288871347141484968208861413850942352288853424976308862839982600421543452303916749029759159241688384877472086997738893362451413378710389603323916936017591120096911430302050060216450145383408893125213964152726618472637498392999514676324350044120000706191674455144690190403405262404542848375299911788504275843751748155679717025310313015770981976867187039218522704914302514042703517092342013932743847740166724057921935301249868016421377957025034052471349418160366084538965157451329226560461215328340798687261337248884145642626563447777825600298388323534903853384062218568873293140807354493692812127383098893776921200814878936152290604963526958184544773010897633347535380337739595404710944290884736254120977485357713334589871433390999315314909959755962391177767834415226937201917714822449886311771108346309967483824859722667916572908271110321926881178316392911885427115389815995476234981733297297924707262033102449614305237139386161690305932221348650371816662847330953922413114521547852675773406936645072487610126862846247547146853540013085848226026791183460057752078350571882754532522044970767893204784643609658534045831031033007152008113776575366463342280764505680072067732931365184013245948198450300992151753655297163552862742326201408802504634183439658295805274276499998114296398843599701456496421931737231974896448963420688571316164150443071437694764111857270019139317130282785232503040298285299408457728347446533314284123188272396906920582500601633742223535371090581040565459956125785178976063199498937884176309806739592697036178467272373697030099942520351419268508309991501994844338052809138948101753767956806416811372088149335499128257063839635078219470967509050481747385514621268345621621672503037379304352156783376297026790784314485257686755900325557523180993816435703057488841567147367943715429127446714980963222840209184529798395482383279647299612664766897362559350761000700849126992844308525277236112201388876577949290112592844070381236672838122422269462765460552577337067977001914441016935026810721114345522591106660166612792330609300405611704210073630248523246604329943071712958927237907060043710863750588298686656111003709536852671147409480452022264988341061890874907797563971650491308932744016648651778611578753131098717371535715818664265124640375624732348930469095592428942932835952819199087256845043153073642350696810476473888496776292702647216266821470797490461881923449237382606169400025330388481783579520960664379305023091268857657973591619227082385671358831651576667595955689540697210194803633159519266492896516571801201616055630923624555684858110623135300102942851774094597359384575930559113214493805837556059544026006721784662597474310912945221130454789131966017698917089871957993810727252506876652724919434174970659735398227420340698421920710528824341229786626214841140677521819826523506836802844382416422820752381020460270751842233962482697877150800724827799269656341051083495793609938488453263913045921469321871683710344586760841779339064293301440522205793180770847066538265350911306095811194319911958703977162715926957090080997704409180337301406047245456366931412524510805666037440129240896964726005892699012316842492060017582928730099996228932419367120413318860433125155798227458812517406122145029552199009690402456857888651625291093089691668776173353876469187220071735098218251489420969256900181836477539886826828190310343525333152842023384549170923037557794212725415740963337509841462468367490556676351563474552778340945359120189422660253081316411253963379637695629819969023666088735092317315098050457710971243440145614387966725256626762290672019482041372054892293404730167473739183674468177180816010029378882443129741202138737767134918215636808388507555063980762469474750945813784458069236100852925536664031693122243180417996236171514651657382682167920757407141243466207734223912163954337778453597275051597346772797756698590806917334629299041461122865997957703040332560558602315907846206035710553201110182813717340857752176424791410372750898266689706811349098221855321429363130934722586090898348548223323340727912714255528197863440834157087017059696078477716794109530770193223776244326973315773805255961087397823984322090983477964930643036232033960989262483363295093392922851782766350000046843296695183348123877794467529519522466281583309824473788031674280959696706859497003131941557100017293554737646222966919569285343145082079646254408984648162359190884937425100709023206287956054561688658376314752653751524008695159475300093809043800044885145068819841290270873459664094691762898154543672778584158607458328585512526392798827706534997510844612610986238548313142151989199652042737849662647546881449312466503844816011623140721769704736096747627736523354439487855569998085999502180873721534316640984698982355284948675127736880010944663507708571486348656807025126502095724702599485794480266151492926382373639683801199454487318478790352597268784113943215459822697405930579743604501379021681652626683257619375031347878553456590011894356033734026282761860014252863036506416879915520798802227124260981766220785544132315791029919683376739017116601582876749634863068741056075675649968785607276271922684150411789821149999091919948832417518841953152016983229923855097618640344342437067006028339330029699230860740696365942646989996379268693100001204654849229698848943244676174163428175724336309473535715408196084454901146984334962180297120727781962311692880108224987971959870853355482833553913728707318600298233713994944581760004225166925660966021816223750252339498275871322517476273153555482097259532572381228502968078351675594250939696197642872884362467172763352039580708814282545346868273345307542015612370433434852302575288478607146322009770483903474667046711496942894687994753701690034718232031472089413534127134177897206747339522370479277741318390701955525358098830862206872292994636608228895327699672396775155379742824711867166784198267703265865836368566684213192228497222852940839847918584808849462355573084973094776250803088264505626327667926143672149135570561925120522996495641337731862071188569852473128913982051717152312640196972871017937874423182340361878990156331730577140182605615077335365953118894969199202751696007530649674087374831388282186529435069937943007947316064582539948897515412850805144451359859319614001826451305070426772712963792647988343304369112669700242214744103058951148622262692522665422006737332754792329199327439640817852266322671178729687330663445112274444199203376276610766964526557924518949136344558842417576583928353237946596438819452536588869032660211092152223544578398674299583542980598235592720951318729256583794612248553998301102938085198034066794602861263765259793870738677125901954733450358464399650921947258537205675449043053113878729398914499955855248357607663594991040145735710335387765002991148950543771750199432609991549940333185393660294222808577201671623090187253541507374897270414828683060552027951016851096023855797020665962691508213728635174173734505541192758454987577620827300388158741801424322957274690231582033270340638103783585013378255847814191092699476197461043565553265275232966182464199083372623595524890425859283944206009412285819812636045543239057954028608813811026882214359425837330089039783869009908310171885931360500666367574898305743199605787726179785930823260560692354392912212839577243453090508948860447173545039045206284361192687582915771899481163251834536067732918518222345893530671278054384844581601214496455567314154942355621650406276381067732409460959521531241233705967825636294090823463169618315246316283762969072523252593029760440800309960767971558373867638487205426564224856249770979645080729803885279165255398844305212327965548473029112891130921543604391695901506794033162425925933978307598492374230081989337448394535315912656144107203032036892470924847681448532438587658972005139091154687827734470575184925998546467347355598280723243246451326873696261927888816057103167489544575030386029617441426183115326945453238400277254799536000035991360453389326932383541719406030966633894787311909426569075623194944364259991216756314464329957294107009452943453869550989375147728728508801579537653589117745277017235294730521567372263915372298707195309634057632136897823384815503700676317309358915811036580160698261705268168750427970359072780470123783032413368697393718038276378379886909187342237336375108760768093060370372453350882164830736974065828949257912403418154060452833321760409947073489772277341333011606875691642669569010608408715935933826031377126223847966163278066898992926107230762809185441586449684087382797794740518282400583295307901737675043415243479954224271172109804929013699055871073003839183561330583883139204611100413164565337135599179416724857280184934511443998672570783982166871760011575414552768539064202195568550309596849839852088632574303635447926642608268837206759205960561812987523729899333839505791731079734531394395189750583096815671124579767500939700671674240840607856164915899251479502238998331436669998492950482167657602719764282640376937058202787089325663471154593154840447192213861470561824461119131388512331391219967157677633839356348403371542829344978048694305480977990307808496459810373824485880194962731903251852701064902676183803431035343302308143834583771437533875903308558761683600919460877665077683142868642123655430350870905253055556968580271270669876009405589830398201484611636440323235012545179871123433529389466350219831827417323837304341899738309486717887713746535050859473041009271621098803945017116666119130127938145421731881887522837463723990461309980167656957637534512701546807222224871415635038512842893039722952484490974555019286210261427472608223726047725917328508404531803506702013005899176464474099228466932704376877440640537771423468051511426620981635653943097051176541709438668997068850821817334753062266062278159949227477870589503192201062131224431083856288601233586696755845905529524713900831552521576007495758038081294413862791010917066624581201176779781370409504066505314440752229011428901821267890133370180331771352568802121700362045581431394203508454270889652983561662697103728780689043707563471774756381493007571575954715485050203380747226835655700059159839005567950829118505454577750362486713825950204469995536872979184348277613831522081098031754201134613453227608959826612649221327990087747984272770268764715754868724985942765275381406747023305420836155297215521453758703586293340171805167541338368830568446211160983189728292252731168200771494577380733587920148443226492350095646995989014280798873573808710475572060674891135728391532736245015351193142811076633699344225720253611441722165179911562758112822166039562004556948846245583778305209617270530641320272356542490729331203021941435676568340190106953795188134404198857671986939724713491513984024407511127007731113798079854725053819937412787334210446015350583768940554191127785423760146696257733305119902406891578807081220097763156356490778362108568435661371100885146458127522008931075154943305140138826455463194099365167851941611537241188441164213906883539037579301616090825615240752725061390114295475375078687215790589523863253985711683967038181292380547949180263666245377355918746759233826978168255287195211675037542538642748031156289625994749847315936981878561033496007601549097991271464295846475708509285973602197867739127077950866167723998987588265849801135730439670015338609606953695292659517580974168056773140620788339807825242759121413509739745328842345397141877752041676696902550480146034667046019241794787320134123876885912627293972785737598602829195549105618321986073383140112226301080567794636783707512487510044789153431484514182453090895249062673503733512967939193818047613233411097467081088258157477116008252992468437105075014042858295151252646895833158767513459148075140281938118209761192916593592071726492283901689054946737951238159324784099735744473014156212882840373116008823499935092041681572993251147256515300524132520794372375490506527640422567033449272673562237920722003298679192318874286284450024078078998323670302573268424844028475660629566079327418561227885049882199449294781709975632204947727901152232828183720539895388928910616914962533147921669517377733392261650817537191760470068785904144350800491798112063937649603818889442209506438982319957431217883935400010433156205359765317143657854477074080485853780822615875633760013301648101315330785379992661426098878363244331830675913596290816044876948338067976135976408811843926163368338594150327532794565286414708894944319137904651808331457331582021127341963691296845708809902360406105363476972653673864403962466104044039323378972821508072076518635668230804539096796633170456914036341261839987687010263735553769665254523473105702994231362563572114939425472760412896406217796846968498668399172186179769607294650604398627623351869940670086504307715212553312025376855466645462507688196569527653575551380708068912283979425692213491584640311785652960230029535793472698501544636045360524227655352324910674923393355133139020095234084090449758895983723795095943402554195673107740086643571882294241028977599013588814827766192048322743589038879129264175790766311544771558366660002402037189982784835523798870305435876758229371455876328598334708729168437731988104057659783200727981931008434763600242460581006361545187861556398388342861513139402180949159298532895840572063604461902154483101151852101368677649516765795947975302930601073820766796314574939902736970478145653924570998579788172695826348069483407885364673379057874568411955823720811682124693842656858365410133170180454926987872489627804380339273939170547297525867380600635949141564581286554110558490948782805069150323400518375043883429721608605925775990851783799915987922434712292499821865089973378214734086934716579647744352021696823428388652390274402453543966341765733315620479039534592313578862731116772256895415417816286869929613684790206502555335313923060266493265291992409428600828439076818856141196774585585250305036605739574830604512867167154081605137084241937823060524206287553149918255013505265900486192919675163710884607411090507841063124559441782464598824034784856207794887182125280767653853237217860048916093479590528014934146496148716574603119401868135507696949792290868971466331276095649634286684680641823478034001586657292450450873431860033929731726792724440477569939484772444288664421846705308042370167265885611858919122480902086627796488413790892390578567547265630059455136250176332228265573314755184970970004319664107899779723554822834783000888450328691882235819025820083357281087924354873454593492922575324392233148348117922580643154974311688277199390319263748207495073145361700850410601053307075735180548668455883664056254616779749339657664753902628764340066133756928199712201305970466353958029077630466003598415157001515073350988895773756369498721634410359025058545854648583117390280584130425956325625472561840784929942205970300984230130597581043513440920093858872209737755196050214668362905303589677669911978559299345072074854050720041029103367459893564117364659508559301851422689111320296456319209001294604217258446597467540679126775681743721049831242541590945048967170980705099441333954687799303295484677828348986542676031625077944283247651370763308182493901659799253316316349064074414245222111267991969718945082157017656705654307361288770979176456107372519997993902782243622260682667894810110549086680254205898654863862127161988696879679774436493054113571516348082251968500743899149958909608480326871348167467787549177373650159134998062439954305173484327308675979386693604966428657889520801884202191649804666425836853816040949399973646812189296923428537953090433244623552143556024631423857921599227056209128339973860545508381707469263126782663145775489599089011763513124771319333724988337088954932789965339770462679748206538790777241744532618508693001441243232146012758692564699774229112360380767210678548786474393251273642512445184126503699765558110784052106947604782579841019960545577673935169758585163193744075996980188427568749029449548314113652256744240121774347583135358458386049736245882172697622811500238794630583654518136441707319327567069802094453434399893315532097320584016455016241322795642580844165081418463526496942945611962503572342387313653480417790632130720092761034206978663639353838750521590676405112964993752025729073451352221421725897766866664660950095615902717018579943257470173133659738643612963671681549536202032366260918570201864527593489760524151057697151876299101548777345806772327722076631305845219981622447892217817591966664590104290546300467052722238808387695596651029206266760437859191837469178482594863121830368055028096845620484803141444126915629359413276258001170456987866966867619519859813576855711061202162720801143184789536229306237515711831327392615151177510992769560975075444701040637910223821216120372991261685813670933318179629146098726579814278550819538237912868406474010544184191769180085520149548223154601079656169122875585473518416938566153412231574809293567859885148832116428656944652400985235587916456140935480966452516403407128630152199267228304338148983576072822040367187920014899374642005516207557068044144520357905962666349307301703005933200977762229823864501338084345068199121263040105697107436513457294598380165188987193637014113029550999623478820369467787246486502528638927129203492736394284653897552510769624469454751561148337114176231549519467281930808546599866019683133851584770733819545060672002844505294943393183883202934047058088042011061871269094560159693510783467201697719295104050356953266362831058556960116479351550760167807752017849649115107697890853523903167483199548687369324588969234530791656189388898461544749894231285066397515998183236930261725141194972407774139600199431794729873706573919480046463141608601870449726883614786489193289748119830960060275984785903556704945485238998850552406558878936781097530800860198618842430526201034654268549119438197508939193845265432083717019968365242283110086835419877788120302924429601637825251681563705212980759125758494384487400879752937730151414153822842990124939601884822496251754630368307834155550527596491361413702909811948622481878344794547685715178971231624397779647226742858355471096246957967960460771682246036303655654130332792996194575491487638281907122788466834232558303033019108503619228314429659068725702788040575110606090600963570198811951028234775334494191008646103958707503470111929673584388478671158178471049293639715886092528274283732033711986796369234694710868210680563458145596123887665233461848822494626398626127397662178221317561370586723970747943931885599572972827389796706746163353781623076333640898210271320902528263840282623428709976964072423059817255559450474485817755673091072842842799165511603006907111230706430021483281302811799293623398581942821512900784440983452704624728907085139408699131838407753068328921098041343877328984518853416570259141136393760035265825812750876412164139771926694232756440400780122648565235375571857996955772862242155285216506879836953855047272879463043359070087067093121897223080398149801635997495168407774185673216215580147796510808511043431928202235583817816703662050889863321284250923190782838604398038871654032948341659963998243169723050378671067007188707040215319105996334074658702960294617994896467143568459466132765181888951023470429877818617376784287956628393012567356126406743224453223177776623228068436613518122193435286833958035043247598746978950884059721041943276570760823664820921195778272442179640715368172094567834883338081174518940078775627565949789327977671094900416808127736841195386018294499254035418150884190719624418401952365513185497432517678458861332965078992162169699059836718364102987625385409950560580402671913903344513155196776492877279947022467362991095874348007096478558446066497706150904268344351981238780729701691332206749816584321143861102997006011226029983504144086468323961648544669592588002283319107090026327575065174203425574180934719383551549602191518814001107698291568694079601642343166397318121823375688895397414630043186294624881875365779584524010034177895556001506671766141898829721599164040866648307691105359464486757236070515576735422449548476815167815773210162146270329685947054494168446849450209299710769805438363215347802578510897842471494628269960379940389062725604431132559451432574147299112569811519087438435313821249465129108944479894031455369416398092726680631076608149827267998287910798421179223874065848051550174399739240003095724175194400517080615756000988274003626462246509996170117706471781637423263413134343030748339966794807673047036850215970434933927902939570150936230125183981800062149827695046292334760370942226725138728036978512703442471464346009487819463350952628482273516488475208310666823109617025764070494967122049272782998025670953659806547227341623870671698169977032380909058611331573394582800505392395415998666362266400785104452049454240942416141056191074392218699289659845781055142135888491287134080464173463536882997171044369913963521817957558630268186187261866007856832295952439110599176822458471293635051946362135426248791872695703753454904025801170582762200692016815778507098344753721446292384900896019228450147465574269501670815528953506886365111903999548135117118065215821904276974787696039628850231985560370490625162352747486420245172409271717497155430777917067272414393498287699258590471924021748214901371406888275177774962907941456465639569689417132616741996000951159369676012402596607846994734085624110932785916148553515258422598883887494053810735452034314290124835846131316330198418033645774235123243966072915085537838004302487173549652916047477347162074376948756110898782851934016405865773299081997077407509894984674132770858039500296411288078831031081369963101135283661253912073356946877847583947410310493418679743020280657420748259499768436509099311191261851952635905099633504036372765666582964938552734092232227165104140896418930830770695839669411501028541934419764705936865424047583677270856869251560013898900855438696798475769124063263577939168761830659587514817722200890447723143777354222509817413638533245138819206715980616959098335343103283074110817005547329966805406078649396910651283629700778647855365101023983916188490255050574048080569856820498033254880716557761861669001631692914349735629577797015190939298877684595447254757759468297165637490673588359092695452600789618211914130793087103475795886734485693057670043928929621458979348180197262299204127721066775414115295933078430302522570445744530298549446442018596051280018208690933153205079815139918691098406504379122257266276374549819380593235166068530737246918102975407804602292874167392934419274287839919357124567936850272063683165053801848751423886215483783894149780819903535204374087779679192910442019472089975918915524400567232132064920697362654978547238416609965358444604961204763057557788567568965254144768131526670794158928975947116764197461552061123426460753328636601499279019817814386640065596709560582001255097761134150573410387057440178035882147661742136970141431095421314754330938717234730697374272340359242757967069353327304849150164715227160424031734455554950287468508207088793018886699353251917495221369272791582681639445705687852262555324607438530309089037743217152537681288488716096773571802811829228885075354940379403374602932901169597377070215721563371592455004292070518232484032833038564782476478420371661178485670093981574402748463808965654868918572172114860122738770428195937943096673546592812525332368208072208326849295576317965835819921321438223605963153065399315565226367244482835325438220306175783643465764253001929083201786554239845930545675770114168644841530726122015525182184477936416584152847149633378331264081532433138767856040305100071810431777444231374538147333920038578671124623949513493611360495463834133755383948389032566859015319182766053815746206105846162608056401933552171980635986084395128257447532134745904198338714387536695270076432689265568801488539175377627459235275193463614962709348231933978551865900424719222825013160733785556062890124890384078090496991063315458878914291824022903059106931768860087387854635735383216474076810563441382016088842063417157783684208604058855421676558219215006274312745000826253815788163482709730058030256248438224457087912142866713616032549549306405062775036784146755185228111818612057893118939353870578526941354992060092696755896768016618876577817203903344570839891632230347662739562709905702383388751833835872240335115461549119672374451306581815825618632457362899736950895412787830635593089423210993577646625863805090000125193602205061909311071783833402685126601285905985056022358332900182999700555083788696513655776318027428442391670618195278490208434591515154393905351183023057908129079956846282650941573718251893533731894956445956733683936910643228475781555977192618673901624194348418236398897994492780014275950780141637704347869074539191849111674981885389033757041182781690586553947798426307197879486368888445428360405489541264911303620072757114899249315663329840267563005156513451908745620860239300705782545172418453927111398018525576659369239108394073682426140011438365759818183168165476134350307582802558745835032712974592825445478071668994821702799259694135002582180392221057505898601679925068773220128309654393378768171380592173156161478715772821671009423131375452660635347298305756752472674309179089057629717815606882250455058338057913649084244912200096933154209409292640303535620489080083337950630360223198416440539599674982569799679064246214164386219696663486389047651392943521101303663391824380087546492708159244688774612319489626145252047065865258230944240789615422727461525024271855334354541645168107397547237722787131507243568714031629443889058213109285188370728807603163129700194598941799182179306420554477577387457254102598914288814283356026846856626938167025301421626847617951126306638505983136580733344588755140881508408447373621530349577197405521186177643911498704323910896805289636577795847138017642037302226242742415660281961882431745756575561584320564778447815851131733611620461726469398593438750546240453127264758231803512207727508940483470927851582953258931247353112632455476948684480494375284614770029399984470297132807102486427078571005956950703819265304451264870247057808804740014435855303324931313618345385611686496626417625937089059231218063061376044367009068232665562212771370254909430205662070186672441146092036464776013743341086180840841170431989322130855851663074674584177452254468645222601250722278136866821939394240092547454981025989885657888602423699065688368135143528255126028982786262608629352928015538403041795653737775495562106804465246591032097454297719172350142770001591133793654989691638404552116163458059256071931079429148447496380186401686824370297616364361204945226205857582981911523706881693620789258806498523816543153996762230404307634652658759741707841695859297019463570719714068044825701514286787062624054586092341310016690194201551925637520046944768671266612134272252394670012963231599222777087947485117849371306611196023116055029008013801989794837421652888980132964560040363174519080405021066279278774725929660309529330274858507093377885594866884665994361821399269712953715439827042795404194617257594463491134020706269230551934507162382443795409239321018876385576393442706468884417619599846340918822460681634339309652190984994694081570164777048331994837253304268238751105628724576854658778264110174554563703693549666051396459788509771706998582571161857474265078678210038045855249851964188596381324152936358422178017546957005671180388164360708422182232695148993320419701086164343921767644335553852633765230995046917077300843741482241242037468072365156514077076047840812543847796974587736768580203462570760554816853469150104978280977185632256769755351455566427968626929963687310896803642681519327354698052294704088936286410879378348222838393024124527641322538841030585372917997653912571862952218039827548339475883427472483717588524119652764353530728949633182724166450783203393421463826441313724906497493252246158819741217989972796371376139406572942084177119951025028978250419733749198095199584008763211677283845169635318142856703481973065333857902642446847918255658989817487223885028780092471122386129230031128294490584733551390789648653928976203963623362331697532669025258214202985060022989242284405882080908317155368817944199653395511572514901474229956049755013550546297715723540114445666635132268867825374644549904292727258014779662129878879344638192187600614435053469114274667942769977774797357919118480140296317307509877476832201770928276915143789777516360662165084290368005959680435869902228149921837248654959157066178231237453597224873877179950900203514421746260440843680932150461566351242796223265135813957688982382097790112270996716630227403223658178761997753244550425706242458829429955732341807446405921768233555323835074952990665653238879994343408129638807738922911349544368975482180314443558513226147261088889711716836031794617559689476470102659405345508870264791178564780563573336017974327008114520210757709332768366311787100469515492517385291335058645662314438657347709155255009666732499951969525350708004363257272495541003777249575059025704253525547100920864449577597972487479416867920000953392531932378073377733430612139712824403138103551098913879986434222662226322557285038139452568324903357124472822372362057727872352849626248354634265584953735209612957260106552624441966687951521625090141770249146587293703343398854836079223845553372626731755299455589434782443176771497266145118940804316602006076504535164151564147907116389581878597816471087357400617778160156742809960947767708203403023237809828508912430100767961337065777966161010603583207153299481831093684756755717849923681766749268987247022221746616025310380781662455806616980360522191762501640840900341343368776960178168381926567417135463091789505719287470123351926837102778279386183248412932946667327627960377946412212001466112952319874024749664264282022456227785175491618978203731630823365057158229765635768497188215248316184766188097174984610432032832047598531745221957010463682786873440369787289709634298009966752654234969766121068770655174472427045124456489245248487988275326490639354305422822881170352780586008127283890213151652403526554117348044356843809697862119742259498948562347175220678877455785536556941937947875413147467742558422291125782656392978505914082050182970310608642238704445413128352079397235995720615845022986469054525009522718684957171328999000538408076264054368457742894344813973296773363205601240921047176250138509889269647602821174338988706945279457145781459346096691421901991690680275478223891692934563488418316000981669409840833497845357311384213951535744418382692526970776088127461900295298474017103320435273736302774718159242347415929917593314584092372564383447572366268182276703848306863504392237613160694416490026118533018644866501469735108918506662820450961760426353051815335847209611940208236728602492914208910236489725859122529530309917763491942630517108706797116295854283769660385582396742033673171456107371771959805001198969468533192369343424288442967185415810547051792482008966512221537322320214806515307933213154728798516083388911216710850518699772343057352769712903681589072507461061294959206254485181175389131835304869617202145225478402230337722523148876509135619265864670281235713890895878154932932834320400677890282580854887308531437964786124195704154909736037314947572712605728038579616914840124737443621474984262953887645380490546011948331207615840442286732673059456249529336961477654331240222707470286072779430072438242227653890860264089645379639130655957709265880354207193893174258297184978308984200997471052062090430532983349231940573973613369981263433869188550398092263823334849236549331774234042168075420618171460284152693149008374249542269656825842251981341048193123446582576586451117234620282557334726002903958551762421289708615880425176560332995555798117070313463231417188883015982569143575476948466901931782657443381385550754313843950127387443172831627023236439264853360396188812155351648877605786545096433772032807201636454303262712139396994768147273224588859220868375868476823772614804506162744612326998034970592194241560986300658150137870644958902580739030593563506379630066989747209739589042910247396149974635627889828933454838476921805036297611385420539647518834816820210736090923889817476906830339262537725433729900900461349707224326979884171344595623026603573473060808998773764836063848868849959555682317842836464036029109494831534004878539657761833467504160286497831858704310881226120628464335980758997576682351326687863364879616617942973165844491680282491963497186267404359299644817442566203242198285275684208190425366610227080108426062216659383700285697781531959798811608479344172639069538616145300424459514063297043815785641269335914653762113531812332938975945697404979484046770259879330951111794326676221812365707017745580142905086718578616227563537335027524881964757375558177128693687446254775876024565725019564585883560010363316545506061393830685783253738491815248661125809320653097313579521078332560999240787876506277013408378556895375985293851837737181836092015458613170168763976370830366607468011814508344696746666695377397589615866577066087290176033961814134528215326284050852173254571838123567777861713047764494163955408324777172341728564238903573026722944613494729283554787348865441785388494002215253253309421958870470619201041108952683182883250587253977633120645371490246284285136259319615205323707131609368506899598112362992402981476771095697787941466386527537437273695568461202790273842226013403760724787164852931652934748514740067159846622426443610957378595394673983414171022057818181843068070011691190201976541342307705941025493546454732170410892524257577765340616000280433508169079497374161161781936118508183991145242109993518831797110948017475994260738803398444802002036704519405971785266535559369752331206752563502770515652078547362867230291832985475296833555597068047197475884426286014825528253534227580330089298347565879683227108925396437851765557458801632363207923728628411177839229026726540605968529389962422008441075688429330221667465039358140214751936336884170243987212965589803856753046613305050084739015389542290952440362726926570496233903238371466194929596942112665287811513314563375730409849372179285065535139098207370182214102195096930084150876249407307608972786117242561747401328882301682967115866523734706238536662348108294298326445545007959311837086973967328063755432964473141156457811640865081410208439920705953407988165542350597781368968593056940383031508692878746472728504260492414896137081573151385435027614186886231828997838103232233720186514473756267446770018391962193498351273639388678407145857905943592563358925261224914096882111654089057121706255230220091382213711821342005820988828988545137779007924801200483966751460995760569224893819690558007940486470844266451678299660769527749383210114974941099208252732331702587884766020524427102592188333447657987636410777972305817863904989812327069051240943313664448532055030607351257942645936125288898523899599657276075405168702623496950075250341253578478707904525161064483142649048620825513896439690716835909638588693972443343686156734008793407582720196734879152750474968467150708176312544336839613250231440846350860527799033691001588936658204620464889902609093439899219108541735253075285304517196202274872703687186227040543189092485145025616680469302323172768897304413345764744206888940439697974219871893531197761988488390276135009444519025830662033370827967402664699163105335979006933444134092927944800329031803965737489288916755052743897925445666435904098059583052636012208796174539355159205485793649588976062952721482741265891459411323227075111347300411114145568950970936057769790922637362601729461595378913621034977278021341745157768839975441714373661886377943450800382965843801732039383031288343758711504601833464494301196672958800650534801406804350261026743781294315785202758878280291615989251094979806515808053456429235281310605735881421871078321771821024993520009784013621953712295402169675130781484389719782046927939184033759829040966974027908502160561210464681301324944378248384088938123855064215951725265191016703201998331684803515154102477658817450041055932002499041003746256654776165372505409205746704358927168807713981684589700797399993626408308863803885979907265617479324499192698459834930684348937362285093088924503653063165293943492192177925006439873380347340806340209113966232000045369036376142917919812921121433149443021097231518843805607921725786909531293929097498714371303007988773214748508755312030616529759304754487579136904316531886306560908682431173884442552246671236093519673416860488071842027995059069981722438494143228310000468008405126905437939650979878950335529662200736156815881705855928540370776002141138149871135049192873646208020779528502039632909447865574357201670309264856257943062146942659870778678819681595995553714370965244883245356093981993751666381950011675515334691739832314265462417774815970759487622730384870864302135202553639911257521208146471895248658674673109272818782830158651166226976492644109517063515056349327346273040350385586433671822359022341690998361331466571442741399823396504565833761678863793546083160882575726217197573445402846607603275415562587800837663769619311696011926971271545132917698860690120556310068374297510030169555224020288844366846724583946444640110116301092836788223261923996426233080341430200421288428080683462815939727782304417397456100176705637267104488276417121960996533685141995622720378713259228386360205360274523796591296230916602499845369834931625661178372268455853623978219996137837442104456681974730222474246472829896731390270470033466998412899849902913442003413212968970606637330120137782532208788595913331564128627906429152255840067532174815907421960321009336195873652098047581015477617399685467167391924334255415492565983300113449398299696599151157483879837472894051075494505935974842027691266228720592886050047711047859957591468736840693759787743387419803622004869436694438596855365916761285100042298401527342037101095069233283597420108598293105440745157928154316328955051965082529637802546930883039406177834472841943498554691431666542007690199947139012335461667999753876946670949954643662694537854982349856908233256216987747130383881091752706038346602403432492897580356719064289992458187041901451184224036316124281359150698997348030189936030350198826064161837532858735069200872292436446624538930316781790900532313902315036137651789564486104710555368979121485303856043114243843657025244143085596615237627475786161113184771367879868897340950750999888969073360053902703659993960964043670017384369230035097110720491091813088589590934753972931048942585827624947143413220450907238781477362402705810908595756742269816035934058976319196456146102617941374138724955922365175312678183780915598491436820817283707263054969420744460135475639261014719432946009901781856411195378861770712328701998210546066046406118552455309211447776082799428757054402266202196707573438826555899195902736519170667068524425242409988582756608473743094460409919150514227646778295650496180608842773590270961185802669277823789845782331961358007249941645151037362773518524620140674033091586166445121372610470763997232955505593041408718006655877060985214702471229579135183703094882040919716129868116182634846889387676235576146580219516481924939002854986689774790848055728550411864652659305514515861829364524895991000238894585707738799236095851760351633865985702300791220374904052186369371913661057635125344896921487380267411523577042984192148805125514371214236287419825641006918311018233529641955725353770126801961352693699708932427415834598150736860137556331241861047334739954058698545875917670223154301470642233905527139426961342461387911459558306024796415154339339138042228962394377053690947363129014296141563371692402050814153728158906421894921255822064722022516783481681924026265448456895741736443811594424133081618640845757767337150659180313618689980563943026125688484424240299662332072760433963051484680218638870317131138523448778654777152276342625863055541712679184412552190827083484372356492145374824831623313930440308201159663704249233338651335740452165859952367463607488284739656364017156967585069891747198013769040757625732380013826426739151011127355182114241518821472603647393077468408358203873701720209311487398675423360414151943284893588031753191074598088926439159138948598268265346314313064514672872115361910031605321235477226656250315135977790797668538970517059273278710195882975740534455517218752067499897392103891269358259992875336947407555879254269223673362693552431240071071439482121959623523053079379836384247029998995236790920021961611171569402930432367456264852491703784391548890378140228649481601790866802014247354677794887568763519293646194149656799152808613842131979236685030395520624501792672655947912727846388544660017680697601851560697198240372524187042166602794083305186348336015195259509152638004078439947316007842930371821001285637717088788445726681938285206688584690575144593461920877651779812006218867329947971006685710717564760926170256853513796852298596502896933886830487649316114093835216466409397220399279240753959161236470597558623388547958012879439065699220457764827137794516113986975898954122113864725677397961120783476677657860415779511683657772269158311895908409966966091051815523156155978002101798114578512480032912861019945867605957907890014456357613520073769318901569018305389101862620432956095727366173051715625576252708335008745550078298056469123250617019535378325211207929114170112052429384495195435468015518805607612468083836102615070428471258954823837281296399053715179009926347798419631244115455048127845262601570665971572958531143246191103853190580462183541772308798322879027881929987156249222628177532278739056306422629603084311377669839103460073550324388281719496323359197705652503351068891120901840162617324065170857676666004275034391459642488233474152107404557764104366778742663036600260991792379683331123791631612306760522165678880161943483625611380865310062063636348872712124302848552534447943529954194908438355252727032018685228917761244979787302303997603524380413722840345206659627759455369052572326323971605466932296023021447655066078198109803683343663867046199666837415105970604039335648447196760542607246437021952825293499741683388545439020899435714183015933010826111156009367306045490782190163874764964980785080736735940379433248843351079582077631464602401495840029082638713874255881416741962985621279675138328312805967963090827682834306614951863531221433537939549818702217796586503231472450952351380250995000997480247519311094296426144970316023584227424606267630308457557258457232322759721172761663645447269752269676928335311023991186170188378846118754444097935143364024491598012741901694095859617453997360399409364579042884363272192762317629004541035461251040493591684089978334494731231155369234144204134948590343905708278336021815093689039834708907714382282052935187799117812919150926301291267346868785018564474613185883442489527016720238213274020746247313244870965568811288788550318701002662063656540974293895650108072087010414907250521279594774459696539594559818670590496977474950376058527296244366545017125232067905781893796276736521127134748200240416772449544214486818511110200822416392430977769007129928988820361628908033423840315604244065134342643147046699673442428901717130866600420973915385792916752960084880786968804780254211243703749790896360326334657372966618411598092774983998069414141645875157932286945453906729642630440570088327079774944697373255437670254255648635667807652636014578353792004620918763892721391576547877335684523814688877055404948285627487231666370162633765932923534069075768950228675661071864055359840564685465473478039474220301242092195472591518844992566240955675327680940838332870666271010271924606591612179694055373425867323784653600623132540692384858459038080962564300384513877441351438163754936223687344307103048265530175240329142263195702054919867452505564100135386254030879689656623192899550692714100062758372987001079437680934028720005335593211360726515230239108149444964489964430893173852683502312961590107192903013564390833447571307598236213445620226498126862056657144698111293285016689094193231299923347137656176009689618188197333752120876104663479814668728918801054409333342112177161254998747289680832302486054052367271930621822125438855449420706992174259653539855379038367299055965633141218708940572893386282457340730326179052101950877802920797165886756151048483862940923357289167013882635463203413132504619170861272993634247775086399440401414097260548646374807511287169857047642995163877275930359032924001392009693786397371680797290626420563226611816908518936148166378710218734649902282294025554241019337873267603561483503737471389959851948731602582674124764902076136430554254370481835999969587972868517838263540146654111499083537592389332195105324269913956195888587620532970417957574186101294225543363800217617575959134080462285435733206625381091425232626885120269552828672453875165468491487648392630719272679673314791731993065351917211806929765927675407932290241357665926039479201641263098506806344880413209298541570142027690316978716874419155109403240400830599495262778339587661534475655457989085087507295461713203442375918183249604556182187959627361777465323346497178354466521935643522691283419192114580443478086863091853045352140338604221199935688642597517240336418249900336934934067162749486269810876423129974288064680404780811376324037951923936673576048273958969799710849527715393979132250694779214072288640289163654122670890231007054755488613445303345726802850809862708054785893807140815330032715960199709569069006420799855251681580986725730479306436157290404700877211059296004099667774436002211749116221435472651434536875434379063559559035516093782399972796649562040646821391179557424632596168500449106210284307607089933572994046232654401996942848680010660889633619511117984309708544509572116118304453974390856278883615604993305060687357802199888158592500641674781783164272736752646162567581383794325185684643147588941716947439734149384655690008372348658152490007002593310145938374063996505825664132180806572985179166457298284453647588740324653935003142223314902055026465359114193596820219207874085588827829433514271809724392285010176695879856128070967511191009488674357696284178840448442160117081743655490086940303262623388169526302177574679331604114484795475235716205360359149038886167585169933792704590386540955942481286333770215954240834576289131629312873771498716028762401705910305458973917779411699938885902399938115312175653215658447720209727154787080632807976230551656078425012093499322772493873816753907200314365705487198202252030251483701898328794240327045706641336296759929887524382283584952121267644217299749839193937769393458428981874928962179051254975194366465205869443218352309960917052480881433738590836319070854164172689102789035845130669065765409245555793569025354910472866311329837611484871156824480962704708597447284341601234232608466552042665954014961686870371244009130301505587340822583269248813255520696267598094631338360900719881061857907582658034801116671543369741295791611873656621280998927373433048481444819960570768183629059803210836223023610540680955815052226306220964240460906133216890216240923412844819560902916596866418897181471006794374900935262528699365781597472898571996959173079838251924303424068991038702853941059482759533510464255425976866732020323163906012163734917586203130019685192198101662444035087414967925690751534742951983171939453581740546269198118500203573403934134126455927974902443981684502344751579918851533344791713259746568177056263521447899908831799350178062796668552449509908406801107263096980561680706485046694898425243873153573940365245514865414598385852942215397831549141167009572075735441708514286689417504419966838139056595559886340648123869772029394505281562706209094579729208497914504109863297381508049681595048451945850174495917965598908352162282098304219716180352805242610302312058245246257492014731046378204894114789776158516927751898610498190273039408599141055199462162047893997113099609282736177989720211465013442000102108664630405786731624564454201190349379055011578082839958881059959656552227904532055258424783963749759354941269780300852151436552192718729631994490361296853057229810036011468873431963873513198617638610339248479290289596760383325862029510352913661650025826614737713118735352783451578653199337574222986621777867574922118825209644568417055799211716160218231322459786585313490049833656618179584167995008762915527117707419021403501961205841686031031901405549014049500782207487003089192883912150343723455670001736056733389629243251175056054781720899020604239982368858031703927906972614336170208765059760000639160928086512942320785788381148985814130284136854809996209968850917339123783456291204580718295869528587456362228773735986123337607112548220996042837114421917186836815529740856114298596649614252610893880729307072420358671871979781859633440908494654732058184158628547070274243920854076506608066181970208346139022624695597263578765037335766904148736775616226409690768173054526161913826873005974346069012188111366009873171164455994754375040323854540634539057138468228027890343605350521284561965487958749938413668406026310866998672040054796126725445174843826729556869009036739116922781233557528391891267074027359638372525582518120309195791656145713016887376327401305792051859097057244600513784411645727946252605566152560688924474924262895436512515693407589016551488919277371255646450552728661552413585312987094389092444317739045896584554919086678659885417527005377272442268521551237292314129983582664640606920953063405353066848270340927791149586260333804297923690597283802087850789989364585527188817455800541776104867902607966240459690761429433377024616898046413357342173004020360326275123115840039646285676214461817948746122832470980394505767700809648630093323612976982468370124800345612583475160599588888457668229352826724681164200645298642973611760909049828364394558410877143772895848313820104406945693228600041435453165972650018269140338121775051578154982950444668233153705748650126112508073364100497931430372454441811747547773137045005163712712024251144409316976448948145401678306047403123895144968256903203593445774017708006724973027349017504142588778610766208389789298883669555169086491701599323245212614733552433472969255435875641854178388257945692196124589551415945497741452670396263203974795889794647504844408756890988202914965346275444413968588098035368347945719803174873650137078788176859299647302410671031001810472602634915567998303080234202401897791810441012384737103347763843524176241420338413425522178780168351275511803345646784172912313956320566809903439669555973435680254389944391039149865352178508806923163895523403894569519776761568603671948969804154590634395389283333991643698729722597581985199273651526012095589277415783556037955348397212310595975025765102132256478646376782185099557929468558762543759145244423660212027495540554975559468413289257957512353915783936819169317390672207827373169930439528050916881820730589079515644871990979158684089676370670240486398536678014286830960460316075984421415467164256290693810128776360656344841691172275544664864015252364112351066808224555245125131527010884844945043476809756852765549105157748111584427988903907915078564367422644637380200669915564394163415006032714422789624732641709095351639102611368193954439526233750945061410580362517841285360417834690236134043702316179446963542727096802619123149975134554248739854280441154076366382594107782810838213030082031846253666210770511388531770221350014845130105932884348373261926545545134255809528245811649873840684698828549659509291984193243923629298766880985592050481975225658202748328700756170293678452931923361954278484121863292580537431206925325454892242496549444670587781522480237328241754268326434408966616047743686836729457068524866047977264627628353986363869500138694456935643725294957095060301444553606537043159240019457504972807614790207960325975345739974238639459356284334140448010973287289490695911247405315627722762732085470411979567485863696111397866890415397168705465811112166496836524134143355563429584065034528869147836602643218046954954343345048240720283495674158633903019525093620380967453287079388615136757114887370921763111015444861592879524562186780256583919437415345310205754912569814903260193345457839308685805259980087817495770474155622366855975987284806098251350919089460329294783047856792009594462950738396815022567802110465709294413906553662449492880868104637308452209888740646558712970548815078000643855642194925620496192660509366479147329924332578705985949912917143162266118447128519185125611728897694511444103302531936929277308065324438288842372700638305997716250920699318085826014296365305666210881167072538597995779616947985038553107381101761606930764713455512234836076917782903137574489030253783878925290079527454466139398282167740780115071319555779511834555932995484911576877795923599105656791998627654475201127381445130079676217580606486800547467422873074310044685556568518584718546375147845682674384164705986144141687288984223716352352048814757914058006888556509295968590937409077881969769621150733497419497056589739696972964059850977243652400850588639821680802294722138947146040318933763691152477895505788269380251830314580056792065389419726206562023046552141537988244598245842119807157135866991588582746941095546263824788420839128130858125966551366918483291603998599049825521662100759036567857886828383978642900161608103449470420103544755370233651456110755914598342387659209192219720692298278100265990094237747559833464271824631401627341543565380437532167007523032412878848784766833058612406790048539290417385096528110001082958583449196805049646784043932874735646211823067890296135179341652979169404065176395243948460635360421255001437619713396724765573295392149797905465554046725882025632005669058904494092316477328125031879408192944356872210739831893402466042958988650905551652148803993766090886817695248317447550687872938594345059079619900723479221368392417876596056305856542662251006092957215302826819511771770294810486691925767144766164529347248604475461532507824869814087334263358873449817894606121967282001040209585034280014836018882669813654356678021342542552624710763616684614164244852876760178593760356111231239087232912693001855476398684548611003530013918327658270596888278182391145226237971434627232798446862060291366757318018750658640623860696518104951738319885833625516271731988198260661077577780940405500520488677167474737421081118965524877162663624489464282722674075012210344201623157455387561177607736014146826589686917181529298039056691352007101652525695842336291992295864660949117635781979762891146593288474205255958231366540278732825797844738812412020080149489433690472098368558375723136470289780556439260389322684638885595678705014295614187663211776935427078787057397222925828224956434552174773878432787648392483889518793340838246882233308848177055285262916958704284443933742520542892468341739161261870913552762330619474197505656253929629899350743704726307759367557028971477342955153450444131838550606317608304403333890019514453738866873940367794598067843423024113899363302502571941747343980114553209921297915234155591049846687928484426241426328333178213784222727260955403180251128407305978807351541654748362473327555929576413349413718587185783152102234230663678428490955542059880977883594581931930763100617926544201149957778357601545326986244904095682676396826178729656319233845414729254801101963457864774416345602976135529021054860290412730457279166862103940271468750000494255940322279735130467357151627590173463224329246127630365222886002519883103431375370986584785974364857305366798144988716662008167213006389249804934717030767758240989268280192830805456429813092991290149104264500364704139349461830316416620310009117071926779027244297406090057234596585586449896208125105105016664582412138629096628487096847415357717622148427084187186170330078575175940536979073324049474217217230129609624610582927006362822690098594805108537615046753965748594062428401642994862969947250591822891145726690035009994233804152926767555851854151063712488132482351341482488075570648800556187138276956808443556192870613240229723030549679508742778774510558319477761525789632819968068263740947146253457728503287494509131943548286974317456473309692513036778899068614042870639422836619701594579938261145672521886193495975254151659375834844198892583780146268456665809285018927662687451760117098561858470305470493807630928729366554249086231542561885173479467551009092946402973875617738094785178426945631344316235208499827605516117697822227518290002741937185524313781878371725067914997023745866904183784960727089622492638405965628966006242973890312678217182349173155878417909442704119865725699297466664241022765173676850397684178220855318186109829296371308181455883470537801123015078936316626068732419155010178740064894971623682139447691926716666085312976197711014262775816098392155130499260717670699781416457158013804994284040789856340657533402699791285404227424473803074249240879744785916789288769088400171702063268193000331812689477495598573627689259986141062065976190357511430951583164629328556917429158041392466810477611837137965352519937684743423652237244634379467166200263413636893489006912109049381665846699332147956612128988103294181088288302021168921941522788162454216127833915461726904850948146804036040168857973724047300023387283811093401941255294039146956525306387886130139488727482749192297020471916568635361913610094832018694747342612738627072686966177396513524356715338005717273354569832689828248390628045105932471865091532398086797901635277567567423506318143899978115174761484556649902660250467168997582804730886868177420462169962985284546833704022663538659241730249576965205852423483644610834736442292980259121408059045936245995313946628011895356820088919616623699241802947454450202044908305295421430755509606400957768444552291534636161869946744569571880998401658714763851898081683886317667665475653118747006838803397821375830554411031431177863239559507722178664723075406313565795929650559610010050442568043057543374134390754721673992746784065635898107366787834689460129495078719701301660723267047552376458947226410770259162386105681321387753585363543825499449360747365651791729955867044459665318949983922837372613944229204716765750942559181441664501600464029360407661120358951938522470332514281247382363813764205524757837631634045087220116171685249637931459200897169047019061663983442730243412744888943861596753522348511771569690043786375778388617731016640662742169816187373620647662963061432806427576494508294985662891168325737447435003869707326364045674136098327578043568685429097431045208344989462096490270135404443112896674572035548911726541202926151123587663925593471892726074094152747818630779329674728960879872177448895876337770521610185851953548135874397281629238076504067860861522947317370688507196007575585004330550355340668206294181152908979246701270255696574402670018683560274220484995944936341424558296072531465120046890601895384948274486110743212142137984862339206956820008640836157423343366944064311850438865661553765066381425365429665988951204000640912523007496635684857724691440658265478040492254787092046737628219628435464080411948070583975850813282489656151265037971788147707762431044431869818751007691515742450120744164171183682464780917933218867194744711086034281738420886181305426752540472550199109061283023264091260454731349343658679455295868590277478035144097350411247836292296484562689641948257763516040819066469037070796172354150842826048564383850748187470290688965716663392210209977144156394141728470858275884388804050073545260194606663332551870504224891251739355194413965524297711649088865473091197947478420841736347952233287493332063156949266982068953761597629811137831736431344535621311194176823200281156887833183666318602363657122780069438920132156622750075503625647898170770998941952604405928831894723588756892444335313077738033952033423137850815343488583499005646066552656534548988635102976597296875259074091094276124196544774246729296359600829084325136004768767645882199498312197041426340538176837266021973890916910581053834915978463109548424499711981680597990771153428761872345067852472099958653658168745076961958781808133854297256105896628737022534279779750176339807972576369763007089400482788912939256820214744426324075492238102093485046594291240622695361773146407560165365277250817641894590697754149593086530291806689269821040977700741559993496644322126753667056070710314548405688954358304191305610553843835393882432345566700069946892702636419370561678487525925200062608249711827114580080863111459389720771301173058228300661481550722069944178835909670297092303443104070948799129900402344677357596551762474854111445642944481169584418455774362226904452656471485053382344942928878328290012368154756459247565049851959439354358695635529667899248527895636573476861788805981000544757989814357376370635266959677580263844572097611422809140928462798612596839141625539066146448619727781624186201993036141118506478082800013417622238929564268446704910050016533985241918043875596730385928233114910007096616804440120101306478584378199315025314576087620220932937445197369338456442395864713256004606340832518955033358195492268296388262112837689899519627679626874713063265776047779432908025351125943931365629247138509581064024561821143514838968916196589344608076855363792588760072634215211662906038035172576248359876717624724229846303958024666128093081470680483150331113941595454273914121495265949428128337672350562958478122384524688093078048167689411217424092000223999320250053074867312293436903937258333139625842075980477114917574001950968522752469312654075343035283721517586182214520262937928520760809078505355692174501238424764617082606183508312571367746169977846225062107851123134923445590139018486459824713247995267596052290271077310296156266645920047005449447987773337254222002944378775905817707342894733772898981469322455698359994518135512402217523939786929230291701925670229343024942402141281003746258049313575590731221183838715512787765309956535587241879466884841910419780416806316983927585328618539451671562285716888676114477986759713381896670518048480940699160409057897478763810054933061702911817952068925595417927482568670708768415041321479668896771188451934247766334820600442786918393238128627018855686939878533648313746090479896234319408180672383242783058107173284335025972296387109411999925839470127096725999300713226232921503025990842442929960966528797710801819365233448961054729896161244296892717203338186550287288298504209996810586538551417126864757049770087734554238720911273307028515574125613691009109666095353466498635127309807631736298602985288289988295118261831640997186313478415552033823356441499115202125313928941187517881562838604552693275795921240642003954051644323218179206128650658145672902943677845286747132511534390481795722803239163806999711141260194724788181628434378709999277506573539317841338350916912430979339444440204019223086718637699190309444702811467059814764365737026760251001025731127618091065745517942885578874521724102636742231796284742515179994903673207889570037326821238460688667247245867742955354094619407594886157288954693039636798820916376844071570388640223815298986641035458214932512028425012272547831269336878677164294684249000324386425307737945204157330236762643849330423819473594702924350397018695838901304442693404847525558476298258947483024750739435069613428529917116223071146333134616829759365534295193109081074561364125327687743247636424084358457271843812043446055958301536484520424159185249218325234320645231842265893580418089310223705298756618311591653773960537803075013637277922170036797312348139172680462697588066724058664005816523991168468949020491411256320890253420728313375929431820451628537254871423372415386808555404248356728157159607567362587446958777650213867455626199876378386499259226656429119463072625246931682115452075317126292351774594299396765952733303880765455978607738638896243319186587791208624353278197568785336084316747915898822721223618752608034385433162324897268525018052871924446710725127943218193183573790608045164428433698093581360882301871477970011150024849577073302748223260342384750636185768602642695288061028600263473062240857983038699498239426146139522749488996605913675387075997694465999764607362618991547446465649729513944813604247365007730963402131518998223360016780840604551060887306453558227973873724132809284364917057339897494028893308829870274210954843127395463582385029204152814489426234979106611199116845811731368173003446310799961029733278069945558166487822996817499385128220816095690881161352921343836834216537941900727181037642069239092334933940468493664974300946563639382207362714792043296904531746821225124623476261171761480896030385719524925966766851540453380940690905027203343698129195196829304662038775876120091358631977529832976569407450130253914511911031624581195623169443114860152954617151506983830541460744498344068810633480823905383965302826876269442952076313311956613831413772434506575032116621426912064186442386880636357459507840515481811631578516776355398636355326867496719492963045823032276055850778111095776053288735309285304429359659738846578915748653533914357400574963218370419595717222146534930909154559867107746144130690532372531109482823451440181001822121428040561463875456900396130000730418103467904570793386491581569990145651709682484319630951889920960388552519084125378885613473146372066086608426748395166230128004843726670888447158143800148547693974509740844518670348686926771821495815043326573112464942997069670474147911967565673857086209918395258008068037265090944048947251143451244171882102845809410816960166410346842521837241831750959807624246754725259774798655373537800254275447606696128769146186211491863721655905610835236553843079660064305999294077316332977313079578745999690706861685345532300046148606967563235821591037235443849072704480915552556799917499703151677053591692996355029783647936567597719362383127949185563744895428694939037318750413182464875491938897160428665584765507767304757610568053746008770870897978843291607086176760839704907726152518493363477208340549063784803475071111778822178800672037419435307007354657448650744443290045112765443417430300493200889297535094952893267367733943034055360616863029214309609883997109764909560220330333859596004018377044681088759445101531891787655637710756040204300211889330394281081974967361698680258815468246006117803678212636501677327657944543153323315989449460165712565808375307790101525362978765014389303956486790602731290300081792098611646306611854852554595927135505511888098104407258311677176900436628609843293560724530427996120105275245509119239528004486070271320208522217543349573357463798643948909716046363932951249063851720222290505188941058490214918327771418299399533165474353746900696597171013515956423482133897322665636365534629368911924293384163586609694213710447111786354962577796019432030890595874981118874702011320896338560550544255847092586190215039546883868838383990852439370607173659531414988300689200458933764427816336715177252239911250565671300743289923422832197439819198464012746325730489452967370763013993786859350827416268877990606321358646031083158777436438909660166772808062257472058376866374336866185717978254366377988932948691802584687901137741783672141566819155575304723187787827133958968416482153574082333406058975142018971966652914874499982564405350807093296575886590262297010514127764376367416093606963544273197687609679901020400319503836109253563185783676512027048164079449486761811658443589963602657833592079976981080596747351539342651512707477399201897138306330286669969901481452466319358722854759884041043310292728250639917674600444065112456809808603786251411062852374626376334977216514705300247467166366871195656228296544841533720108465724548195448324349440248728971945411836302929485158699050005510010823641575397619658539599471779566706211921148494760352645727581720827565999479548118455877126438088874952475364254555314144051270037569579018311572918745908455938205544167311408453447739416855515264611227266010676659394376898250813632812753481256627828667253920293233421144055555905764522113626476758020603325157496861997721532357034940570522325312285126206943627784808864361334260092788229860719717165885278223707149848817459936619757790519616329294749575444589592027223770225048800118587918237673624714158042004996333984555448156991990805349459415307994860892379855571276800573476270859100458874416681776158164495642158153820880673757155307403119031891029701805201987327608871842429264933005387663107415480650137248724436869016152005672101663278864656396110456657436530079446799438653376208895755037681472285071401805050365422423225164778446460802982821579456749952028434223072737260223546770666105290892379496367562252824017331045612018422871764267868207966894473526517482021265254425114927176806186742213933354799237072482331505842880517767416583219232157451138545027426291878697917859016856345782556191819891235290693222639731899798560503161374477521237774759637052566610225799451564043977435629398539470290876348263524390550248680297548559355173596769154908225036345604710346752232704074986421346114931149933067322268219841397857286273974176267818419925676698843807059439524493109348112428617572381364886117091239799026873605098489437883923218753569171233973692152768688641928648920041541676336487750752976670243066251447941554402712122620461155084415217637832649401135453129219220897129163474257631290665241430729733077528639992455316736428294147829357983866315288305174006200876151278491895756992857274816018434405209980223499533560288440920535288659166474254676440590687876374412692323850766884429683060654247519505632495357219509006795619970020844599331251335595536299054226055165219323483921638704150340050980514576002378292639668180576364795851411153201517691032196862910822284045066161223599157683203203738039919393070800459307228327227132833357757335195813189615864272137650904145991175330558193456880741599638759947585824484294105752979804087927280804164087738571719961192129834186768575724528034348746795781258204820471851235607569969735401644680234315584711952178218201370473065771010873960527544821346462972761068979917496493606106531413714311191153363733463391996763152254741429529733802377363979145236385231910419042324568078438962355514895716372851967103462757626821618364904404822010598158857114140748515920706281084209179308075416491426565829689982945826329388032990945248344787029573013843608913326701688830277037993669858006236586595030698323929750486342595354340506893285927039371873835084192208578152550828732144044322883253026141540965852189596982018688171127538865914122258870744680115029137724679639123339934424686789499281404546649050141710168396832235591456758616322849926744968428675404918605182701034298154983374544369592092391559843212589035739743316774222000231623281126708334038982140033779881168056440659338069039405976115185658568253101939455447561819316014317308611829491424428076874219161494624305764111820219311310415667381287013965259861250783854978202855049542437689277353360164173346559409779798871153641957889866720291687411106373120995020360399939929734469295383088496630342719083064636491473941213485717813027325509793726237252299519303857681454025266671571262368855878836348218907180902869847868518410934666404573070900021062053753883653423634237056001854739934254623751269812568539187613382959066232114244855966510706375316829227261061335130277885134429397629215543795814395956074369492959026187181143812871812361840228540864120923626653219139210193615561441215768072971984857464758909024751682220697745354145574221570452606390842938172253245701341581061017486378632829965595820887007383531484221218676086310467844499796968067332211346402886046419793409267978162856582381965247566952856611202534446322495875639315215944832465880371114609367504098053496201870803976156760674695138888821444189999159121513149305512173007999958374483776592059821847475009318363001776382565437575482394921027642198929247014100934526535300855756746055610782441889097903664105836376388652294244355963081245196125514201109478499816035027543714974388466975508537183238723677116844867570258244209160740592933021505285560831621546601880730715543614988095383200734112411255522464655833281786563063088175861211321337836761556859263011148182279265276895335222120372945827235364807716073989306494964939973891105856555406848276284010120543331453366195625056388458297045323469122765196787516762852105445643566320610720538939739035705985007313552286697606007026900085102654479195439168821280079114924316549442822583402143130671941649250394786678181177392159667955442092213920242514947772933736400857699392060085433710055858242976733027438783492224048899445101345491459480248202466046525220628581161621424638047248149476518898572689808139314079649096394118380638672196118034583143875078015335065773582008316371291947208985727472211224195342598476329191003690752635729688650685870546854083453132354691128746324048289184290920877553284553061378611723697024096662118497511961990565117810482187825149779132067816925765380347793394515576036704352561401039115725553259200051236839076777546083614578396992854393693268151719878772603502231546743242076465586392352736031252047243886059009520431572413646406273706587659875711106920588008119188908934122960894963920233242245242833028935603805071823779445187455979665255175995159953898597601853697831818366244895331729635260071721998043470306858780881473180798659111399198454856118764281282125261472607368317316480796243226966859410627661136574310110415998453347224811415792270377543630934282420857766525559074706770856092209795724582820358797639903960168336327612837837224636331634471469139505390214065012386297220525217108615772776882992447020912925707011708629686054194954197062839971879494159246052589319809651756619346472658416901335740112906113276546899581591304982394315442811011950968462535307065757094131488375078769763430174870635315982883664472001645872362841579578587540475430598063396520478705575535830855097113685044551199205422682704470235041516275340102588533449245760252015695618558109218129212558834561157625152684051995022352824090450147996452106449476360372677207190117403229917683712037480928700259970122840856344134664755476890176380639813723189322362834510153450541520080823067473959323101985783905866177126281281175275452982997841872012088541646656142922141199722570644660532520121141994704070086213293417388171497174362046724750802113201327601113131401710939929461476432394948689189423503471061912427125917443580945730346176536203991084991690767872187555769894743117171112841409464278153238283395275675594112899651910503917803640535100448920577310004974341878761167550820582073599711829226284172915779093183654448452803242575942432425087029952041257192675373506238119766833216639712101578578204570231936838022011878587412188027063309292638944284208034348436001280899201668833606779697108904305731244456683810236784659282795485540478250562422348899687223864452381362681752327967706094004471066757363118874872807050976850697062113014782693668212056501107330570000753384323349920772187503033184308165995553982802760429301451682324575358927945233073858975325056568706148973486989351212937393421470149607113474799477066817148727317909255910508712831774139114781906060447610150265449901068434694276541698242527583148585861036372459390202019206052468757602292940256589238317219601425821216218984674386301107824328914943085953780278427324492297023486599204092004345531223075086962766500019391946784119627251463196007811554053660837550264391750899759717681408977029156026069160959652067050936088609202834086800898592822064522005669793232428415174823979703564838232717108389823413465933715985829335614078649061026255255231179501754745475303249001255881317878474669124905161857014058400782460458121207605111752122287305825791736582949812042966965229037092440202408389950510423146670204857177176275330904487364589698062955615410717911530208050092857427289612518676568446852770728232060244688028363839714551423247579250947759439500661335283058517515210475426258150114038936099607772257207667165293936670183807140128161787587979596988676282857823673712823651017039864773881006909841669188770304086021312557451748935738531015182697094705985858359025641674074741666194410237548098608913162077719598773054544250621519646916729779969729081968669462078077970066722711753576411336659636539677548248670715940268202055862634116681442194817858283886317396164897735732473753566539224807663792886295439607609318070165732325144922071923570508196232479293263011512421752010479841127139630382025843015854360476372779272647998299042592806689158394897501013558204257995782568970212176284135796862106143192901966512314961722096607629027064718642323635817754895987701075826752212152421105342974215732529436510821860516585207086154472649088305487675578691014600219473858841392853649958188967675510324432122047643694472957451270363906623718233272602635603237136101034453701711624301812997865733541254298625487249284371553331184242699884859653369783036205387087871333889358134655608617884070659661923647713185093938054847808994085070818380982270682650527518034242723051616080104650955686049185597632511627601216771899522675686640742066376609709752093511853163149153798894827092840599742811395047883670557422993355327344168862211112375261778422565424645063227870974891891321473545300627881989280694940483845509485456917094934811226111547192878727315643678041138707590673933290974299597866263836825524481951184322610798000328338980718684701829313517762805463739602457902653975622176281043433299840317876064625637237655748329744510925803344728498655886439303549978886276761200960056474494011941459800289408289555975400195564728922618010701719874440915151548089438574151442775003170681694566631682629426048917802710069550441132122323344690848440487620937266713008251891306771680325968886105397546864873606080352609879500978643234119479527655776273643112667653847480354995130756215259286756918521214382359602705809159553797305790059578136849936852446239486523882627176750240475308109288419510646747273884912754696269487977442546690469318318806508044261901140004674549692525097026224728007742626189665951713606602097945150672311114749473125227562164088419839968840897381199880573816232161384858164830496630691919935977410157120754359545530153007575237005092896691769220553927746772869232102771183008381132703509257076173295292259398255378731770106769925962556024921240437842028981620033454939515306638367571956902251995273594712202521349887827609201710439816630781935867051732775754851956590964548717226848817138363375094903707121758870719153517580149642169302078263500685905654231483643364687856084078600347395385477686851364872153677341814545595569729075320153925382248502775485320079826867492194034197150949766758817485107537744678819455449632787242102507759601491151051192347578092487660637208377547471570065805543155144900542466995682829807113440381899049545124885243019880341844079004688414505058249516583360687189347837524095103889678896270596402575386736129668820574343802380798238527755699172466444931545830740940342055679268487668755696478082085059678871587661989197695038796126749277125925152098307797274298626090881995151957115492395583276849489854958527585176632497285839703404263875690491459103182856849303334731851136128004713443757062356458004850968469618919809386826405720943065736679346357948923936752417794406350370752892291822857196338678265949616061669012593016604889034317078475776053864295823289496406725650497021926666606447882312091887557516689418563157107622967806298067733847870841643525905732178100613506515553658674613631553632637686635355934745672840414377210739800247145528341835554281397546690398234608501370984240706658134489493834772618738454686235585913189052203953148931570909695763441140171876882091695236883245952816506123614730801987775865404205232162519324567341127336598811990493043047502852435632568280876275526989700636860982289209432863004066722255989205514678443344531416281392878835061238544375082421238433478049604268972849711692630735394662450076662490704533321707580631049488281390649806150674311050407151333825564410126337903820392816090967060536085927125024121009289121060392153999817160185340883374319144924003787037658572160878042432058450707095902450132286453376891141544017503022490354308025861122973302595301082131650944961243688053330732775213011689200517941155140773609817874310707921703689505457912093679448694651070024803263180202157149332714357388309953440139088346149091134375372680166629544015413276976182772571279812853171929742581844204706589994728898043216781860024128854476150755994320133831431282728652071298790131247470989435718997945979649677642240694553495948112293965527682526685195680632893847031930220468723011936841860473006655350190035574841759104812440407652444108609614362735600824000104256315392996337300999051828090360648410480431037375651382755079486066545141658764997596647891247406505358300755056435289773015981000881124629912266928650529158287126489892354650888021387397489065658391088164442857558204672366663022188869380961692751802502928943400011062137764347208374641569010925461297722604624755128000009360218160899375680063015954696033681241907389820314178748325396269496047292881283058199408716781688452338788156449401379143270068600468302641839729334846456223023084107044194272549705362541399946578447737900587307556115107131784184465614143457817095871898180240365838272598621996241566123847124870310659939012982177258875139813466653554245543637368995236999757489979064203750604128176551417024532969481280946049076800148471692480608419843442831714130685096962078001566448275533275541544664253964857878849537546422835345504758208494087337310726091185785881784055984795554968024532353228091097409086418673607574452288219149206732799441701107247920252751982488012533611833676248535828770335833015902992828857975461099842032459908204861596277955674416093616682445976469715505346825163736406829944929867195891013355404585277581661688999455084474280292719452500866119617392046824276013667429960931943082276436412135786763228249249113103729252257446256530627577452073085030389992542755088499682028066724256006868056053816923990566706463230925938285281117516266122585613453291344169940224220618909633172759428340170195470008528055763460268042267223711474250082626230851189983500651507373798242789587561200523406611180413284076542152387777628617891206159006536380372815398026012139972670939466407181488515609910159794003289996110781608744792589284855894270900355371025644851275286692910741314252883804999384572689600691689934628908721953110766381760516211068392942492574598222216130609550794121554525633498036233362354292264356829825059719775108126345848411589379008497089432151760959634485920741879862071751209851514360957974398442921832742019660630782813489245792842267028138532476525605270221412916698922593941992526580352800058184098741571065489347735593046139655026531865397661169206565396845266498965348301827745502200290642332669768508093662718232108885434507562970590875720969313978122563567266312432951519833191905777332737840585898711525491164224626291486939572620298194495804561277072439506175877491539212212142793889104136876500788509322375613727713915010078821733172829593852126337611691608978340200046800855355210944486703692640892760813779554086164203883392614875182103338355870701074710069893260094276081133446910267331551679885206842257942444291609595638302975815354473962147260266703083517387924044531483824377751167640595956249105859305780038881890882217397792401005847733964685332409449869701003551790977736516883233137530666315983909412735717015844071690474714695256171163008186714006396345526060961601684698482507727311185920796810594095586858060611951790213361943291670098162640688011357677392678769700066215086827762918614375227296903263217527551933359051299586924567731629627868626322197278488985313929799870081755963914459573105648004646025104108602787442711338659170781055029580233154370886725049457286128626752676956269712693929772617191555425501838038602833347410901551203348359491147088221855735144758486426320769560264346207712074971347432753215441798593904419775929516921935410691506256744669183022807045716047631465366068581460781366300527271292968011280159167546341120998057028688942670783315616572698132191677134210381276676397521424932180268181139217293515835212463176762084501080563027396564372964706708625232129454726748355194217903185317100704878974608751802525586806071239151779563322829264060566793752608985310407519562545045923469753483683918438762829030979901011039084919276865427361687748282772561510201817624952656565613840079756077932830858340073596774076979058998544222190641272123224155065398502506056552372558127475588099445225435931821894874651801102001707984388761763746809321158588303569403297836031577434077376843187481163493514614165019108202501300409319923652189310438768759843633531836227944613036103754120482973289135584042166226720487101443542749046882644637001325281632085194724869485611711167971743441562619904668138811279011250608635312039643936428456639121466027549468365061624753335256507429693948810148264698388979432378685220688958735959791379513851544111721547930549023797832724456827274872439304177044353646402709063055703308062321496045563625072796794188912837351652039964695227552925970575379271594298171506944043632006936082065269633575239329188232254191149217472072819014468746889355084812477317432419417066478063503931385358470357912619323795019011638819427474517745771203841134321319111810625803298656473558082896069120824324452613463526254244406284968198308648722202818253122945101100139215520330518078729985329133670842300676660225002867768939566034304631555882954929865756988250577623286639512487596418332025566240931116890368119613051689513348817822895304042319455734377306260364918701664870739546217031614395565777066620028151523960297333947448392924792117271000067657553495105680095183876504780490453623437585302655534475793087776048153283236656518196086070739155017201775670062763055141357691494146398097542859400910065957719615335722742626852347394831438096620441883855024270227091578720718735342437699248343298406560096265554604084556970958609509210001491986877657729848672809581031548765259862433153808497495437597023807302582267468085295983792544056116996771067599755549092300217588269448434698225100918319915842939646471140664627268907596398739947914470204697736640745881052998159827417834525188414262340557368953043372551979163182255424451741725040395478830992687666780996366850191303434471306867362929181969541181120581558090921893148448992536703925802378888166667496450109278128930565313986074073741320960051115701841149395711926663353758405864933276622630317390129517645018299559299350597337851456693144781955700261276114369279118041169925394155169970882240972092445125723262721506114290010128570968212991387667492080501481514069421099289935590565511255060518146099120323047184136379349239189405587118087520749618226703557984531172861019928295654826914245018299094093321126335450152304185207437485630717859005666716354066803464756153968855572511013758674848641923834542565606038587733354841031536903647932499229124307515785836745378093552723565178616351350068696426309888794639752297879628663123768174089112007802254581219273453330625692392437657551971670850398972754666203392285683844091453279295929550833415425066276420667190061236067424561219654264516481482914230384571452131435620006740632428950488990781726164794095526204699721030567032369578532339268881538730675680380500126829299602932647646315163359557019054336660920070380034753246922248605989434642698222608625325378984570148816178044277326766625809227205123726124519521932785967717452616406453750807920162276129976799412605931669986927624290645655977337640595961625854015826666899318628611291965722075035152033936141234695101958161618830592747787830267559167257061706295562188993050387358364736135340154449435111565701150839163511707465733607693864924415234718629449124471226508485691223369100675116509898098016468123835130431698093234579087970765362249833156013672322230400866468810600978165161973776765589671891081510352299486373558609159981504760056635355592384574828058113801996774177016271570844044435708936128108907105895644503306817556226108701176386337480170991156438095302374265094213299769744170096547886431550752485448210577597405446032868018131761209984701465534970839878740011417119154772254850050310209803281972007753370992136118313661229612704545985505553819292075474095973618336437087413237485090520329302741977608972319924388846392031229789282447186470858109953167889838857427531405510396898848959630207254795793778328499248401177305108445437342337959554282408445693056153931784575964543361151037342751762949097266022115639584493770563485479359443432153480114330144749504385070139089331055891875147673546748770682071701540041341520041379953172686645575498287141285195880446477249427544820520161499631240502360787581040536821433806051517779215198277451021299069777938290504085060549705239173385309234510586023917172369031112011278634571231196587532525073088847799185720158339072423775346992669740652708943217295671102539530968927307926043226944937650817010839862730451099664052796750273283644079447190972061673762205549404786737456319907342184752547468991779584362630480571482037097935322168981319177379050287800592682270375649304061010341190727099343084795728771644978297559298731846859220718987914113103328160515942069543413466207439335503155726391527179764568170149682033266036669854406673650018888397611832145915103491414513640553930230631743379578492201277573618493036808821393276356641144673820680380790382426310978989629477253877196253017516730388694099969938983078551943716600310041564530664355023701998207024330642790834408999705625616270803953446552348828614508738651345420781937316362882609018632297995285566691330396237931159692294022222179518912433583461125352943267001834955319264167944087324302485945717121768963443792805452906871169888239076199757663217596682946826920522462108023122268654511304313199692564944918609195628550808763983547153308321508422294155014067555419307478325502106445391215343530075868246909751216570208973686153657516082276407024822999332476429574910257581465950519922898888075534399652487197183949976598173182662057670630882098902201735954936273321631292407327376876944624424800238888128888224722201292391987866831434329758350874662734154658324156156254495982483313926463896005030405648089630304913511478201050310840900538540421527637975814387965979268334696873810225801953219446963180762853224722022243258402914464788795205478848327026213973254332275603129521812214285994480868238550740615687865591256013225056776821886937816408468812897172332305897007016704448960780918900070395435159019165965479662181312895348266842231016942420183656308547662372986172634055587642133475408537451297815371482169584531866511975988727557294416560987147699980271747434768518409152378002719550531875729111705910575756453599632689025275295633412654372001793748805573736192115939472594802462435157651418520063365237037804082877886364479473469962069469830967286844592812959437201592825289326738898370766394932643284758788239352461041818629807303650955768831201097227101310132542328026099283408921634004075281501252270640895185336265765523913919751528497365802056534794593296151359018277702824226606148109261687732172102114234769895526707053013648318970881615264158700100526043316812915933536132241508332548664508193107220566085862782042309819202605434041099089775602421467518521856056371250344315688339987724867733234411488924088935013064715319816635953550956215905770284959714087356133816304399692372066593668898967421996693960977012630745946133518306156859392904701411450965949637679825270832593915793797189393534479139152232268468559509256236352413447722545147130129664641283621650107351190121085687330015737405617160851947865931473726611102103434918904449464640482073020544750984513597279885387922055713254605789916079350754038888471149204565307604756445316953459520956880982074571155626807161320263512769556045044987224452471878452826282935019224785845601820681624407191655992241241332467929032452985151785292504038944132897218441263491750155195159844358751894489326993054670821066408432204561169208500118746580694782373307277523475903908904093416767845815438517547408805369829593965720311709594836009282969130402719835900436177282552393391266978420932884811417597475568907355270116121136622102254987565115173589186159152204761812489169249295474347866628880813221485181702964135993785721901848216096574645665234944838817949884960371639687138365662768675128914063845677820384044282111506337610718179456409245544375159229981788335812966712705870821832999773749841355895134382706102638929409528628865545930739659168154627854442045337627157218129354735680869197953843070942306836710172808351495657390052217941512687681325100320278015099412700877059097049735904758229658234499240763191166621549609645002693185743996311349328517035820406107953698661882958314271005495286341180068087925845152321935070832306749249198042042552998761476130133159662846615224001671505916222176255855171343227275687143396566572077113967167008456390841020707036653095054601339102237346207739616128853053523675390673087923965989825337097981747792478627363597088815991609195811308529257807506568832353127654381380099177185855395166407732661077859607729821205542296567081900653101181660126699339259471245214696779116514355266125675521646996411714574172844762854221830398829611188191619943571891306830710383585764135321595772394990372413315454634008082949749757081680632314634210234727751844194985764655841975881910641939254710425425148347040821640992211434369493265228596978060371331613999794343331481599419531985082607644334755677660533490177982955833050318682645505168000541606322142168529067177186536368542976918187617509197672689223362920621440128190128110428261605240778268689201906130991933912327282388551154956979771978366413821436534081048865518868195178771100211975488189490603537308289398700323666444129252240665339532706164532275278279463919131172905727770129752272318726484396892705674801195432405964069257928339086735957371605086554079742375050590001557798104928248279351623610922412343356837853934855036676931087838224010725686347616607226927864530119881024805131244686011727193358861311855662962126650481428676577085396279798761180801294162778470315200878000895251382051862936420097375637530889422688373497745638614180484640045865338624413112421823144197997565197079597322121761477088160829800729335276216955222251279958962802442062568374153069386841603924950380334569656693729612758042453355184969614037059170919687710384504934530332546520820092569644490456003761041099196198696407740829305990515850557662053149088210922681734943375810956821099775848076796107230641852991382969211643245415169345808341632958528900081580896912728618812965474259596489206005475827884496334765634868460109152802198451203898221491024155558003474448818234149761586141140681145589750810495982812631167460278233289749858366243839508550809364174356042942391727087067826341044846752660269017715525605852675473304404408527961894429721576781395899143889626591620426349837943646279474694114446775376963379679830517634713455620623091067553663793700717570580684253321601105317654498279198992338961433910963017446454474384225395929096421366086660434548364443475155619119369399828509530931257803588986437734321291121436543583596695035062414752309878081058704073969448661240872342054263429788755719391540547470492385228168436436874186947137004286166984338693803827477468996380481581104860859604590960420873652256376983905490194251499506739692859772168871049102767076098339865121100735824343983853952102695780957011305386517801995874256671221613033939922931473285706756727765229581384008462109992952558179910935606477717609536933984909320255252947201496640152619362409997814796488510953388321542896287473775635793471041044690333322538324361085508853453330070461843627786983131219104359172994247665007768576161412671294360908825291900272960576160181683678624189094232624396139836015012616562550868159490493332964296587097584922151081193660683044026319058930811765282191720341253932590701238462638024428783069469379350597483170597680433505838361468092226402791126879906271522856856422007407515164281773147415344940389451093069440600076101259163890541824348898972833337798779145112536454183800310834035569013950301972896391689246748740044267280539000059506504309935839200530688323582336477800970072701592642788733202971679373058934200285520464429778450833522643081620464628712286984334557264678036077759785106290239569138319495221452049062364471414886707516923656447843201773389091403101128653198917486590300874105716731978152680251326103253530590279325178803192699496255409585353797872812673505136089344731267359369306593336963438288442094855396688991231331127029510000218630833213606054821044249477649726997483245732866571900185115590090231793003052190396288705567646425077104083503671042202355730179657976307968454351577989436022148422621243836320419410802173517860412271050398711951007125202442791383214746436340470128102519714897495119938167711233677724393991826797897318140252793746732018782784518180231395978357554815375749002474879383183394816270050031778572743211833629074412482490881044378239232127794381284483978166336115183103010417034543032687774831155442035142728148135213345785470029662192443226175310605144913298631539240594317317941056456062153664745589856676946840194186575450499816993605730828935050578939365668626962187459470173684526529669349265386131187743231136627081666935008156419782573203337942470094009680367666948025311058471777313420278660276158517586346191301001511671899066722403726008824935905195333601243805695586171278605000900650994285681423534470498454359098930947853156573756100459426557922951549941045877694776636975308048400493213353233492340766400548209055378643863590496298438897100459972058114778668546256711474393449409709096993324084107066728567035606234782863611461838901374446020140382609476864605362295706864489580691533971603649088774204616822541909496429002400439407313845128884019981043033696962849959005509463085056778075922848653494153363129018496831784756290274220759628124200641893916892519093627591891616242829788773882924121091926131973275258083131665217488262595557529574790294423676073517523308541401565959120198784662158409087237929001157054379331507079586328530277898718069522715836008538276396936382823983670555296656084344709319745314293537188975573647126534602650392585483725386521875023696007220962934817032952738314440344786281131530699340633289009593085335178283435564733243979750768171301913094513838034954661064491446526979504569667256154426871531505224954548049979060982181075052825811415328658060562433868818882508330408410078948361497326898669624949234029692186418108545124316444194077308394359458114717732165934122677649242935729328704706265209826203306894287269765478854658245755657720171394755273867243340153748176017260350490400806065305447907838979456414904007897359886951964822070985811821065308900296101809110741507413622977219182198373779154267651828493906811897069928502837431022404485639510727834687101916441286254134673776437092867734170922617027251067519755093517795546959399376607994649050271827573370841133447162302719659765098011931551168007714301077062392737803977634123645440847475945384260366692577267672785340631308870338376633268355431870115448307330903957960461609700680362044944187953360349701646484016756234499827080719152673432852769849762249747462118713793623822481983236906384418112839212738377994172712281360250377074362942909070223477057471878103669192698368958944771868947444913086745571382642831947170413639879407307712242794584150952611134908083842004806035023977881715779530383413668589535463026857629191252339971544156286571324154867452358777280327398302111404692579663404857959081314760965406558644874799804636369103714890060673132985733320638394439768027729763410019077698101462747878171446446004015345493154797777103454378215078620364115700144577199187535782760166089853750419356273289905835556891580213436859057158050113824684344567369491491788089755003002734192464566241882801953180591418089449494825538968498292659369013128714740574196618235126139742762835648371478378895447273294756862459411498721004044541072247294582213680934213300877944031718387076935958845504519723924584102691097259355777503644530957779403038972908701441062298474460677236069232478624359653795478780474139516393880934958045055417522102840486961236545242381669779077722685989577848051014023618811533340939435548068072243875845438496232517446665234012876016842498185796599214008714315397481619410786263255245136758453706788584684497107995761266152661411996095612825591925879658674788957349078678258956215291914616132388922410187511893544417162016037871983822322315602878960889014667992507755782069371000908626909994900579875369416961962208238009659377102872775536232753886493790624263732088770906650881436018715379994786208940549709379641759001189876057091414703087960438818041582963638017492777849561949634389586994118909256000701744004518290491444440616268898501014241681456645265303450676053127443542916865572272548105604674507883161510002690967925723375166288622298078158302162358672722390794463164205956656997525890301676580167413751652943810928156881580588770893393559994073891495775868635447270144562418514858302125704634860628543740346843624657536635128877874396134534025063619957094628242489082674391234126124074063348510982107686557236121255801053993235182933455160548187348635729627027429223330543406872685324718106585832497999559846930394589437251763159482504886865970972332568042888832340722124958525933524484793601780263796534927426095813081530931598732056132565010188588903920519349495652595338251034029040551113765950130517423963752622236922760332612946622417508941900678515632929889614020766267216520747055473518312889107268858319325543057726762616274014521527057690175207158022850337573786040857964542817565604779384282976923472049371654331136343742633700831457644694347773997111283754259228525619704261507469725833777338797337313582707933064449642532905973657391672360312567057541824310205531594242446689551928392296430542869705833887813869136668519376070678995035756406867583448929364166692278091208303274199019003772544068230466844560605724869842997244117625689384864527932608964597517082258697488747844014728261553859486669893180706520344366978723194488765337150718423876302829944224355031362676878189020151541867708754702188778180538652239006902763236268019840910283128022146599654186203528736911559816399818269295312788065675111867234452320242835072107426095765567798074830244466460587030508210666119483715503028979924028051301401712523630688934985196730395870232763758959818363876004175287808994200356782222545517252341072143141574399355618223932817453090809564478809485078918801946220662454780895473178724563998857716797656169997852189331042409162213528234194171943085114942368494377318050940273096734201089396739780653535284218918844111222565105610428185139182922107446027644209226147936086762623733882724902316687625869586550864131429086319899329064632496600270714905588934446117436089335783611818799530952762015520801669756644402367899631998804941423956148623584750631960393118324099984219781803932225910956420807675800433126979340500235446976295956015376303842591173901902117346193403421223602681600583433448418556783800329976437789658061814986962689647049533974328879197132067046820663218633167228818518744774155610152944151254425497616618639436573394534876514439968223733349692787252163422356611638293303805340813146286706820045125534949052551483903671763049379545981884764725455246997116646112877056716289153723785585811404417343233700612411498841927566876492615674016173554898883318956753840683386342826949395345515346289614370760541785613705769681277504818839006296490168318640088161034937100982666031151807623944477657185490772300923157352027878096698314290605652612000932704094288364226559568334168423087834840126438132353959247455119811424481241543103999088523116384703358186266833448163447873566050257123723234263645698667889498079977402612764888522800389879193603927417142297108516259208398802436692930862886563884465379263984379548805409446529725285078823241572891176832165202739937661739026652895786519626074695544663404177807488902611862315283990617170942560215266271467569793124164769762592402803890196016840671015254600169907619442819656321965882202504914407520331922085170179291454810956156175464639490174126794904034408795335041547377487940195319529749693030729725764945599458243817194402540051097066504284375507705366275490216961288344754676398162552704368680992459590193782140172655803778896857075582343212955786197872799906176881672901931107557778964509055682271108762818865342525463266602542093479857464479212189407051522184358456759272384445301751156043076294252554506996422133819651687106133194492918862172340444699858098673834103439719543035684529203137110074072488461017112425285775221836959395025016317048062421068688084045781161718757988000874851392728373733424767221671470329432804617938969679582920991556343627321154415048846215488718496928905349351361221740253452950815442531674822652093380072247655825627759110795816990602576373318568909748793755493122358231545250103500013489053008761004754916585485687989291192883835278493448885139483153521430629543627129207557903040716807306121482346287656801403813752299537949200959023586713753602646417355916767122360344809603312559811202697222254467539203692609546069482839251830014816959737504256872835113151453409210303716931951727771630819072640508732553013934859891739418466834542080379395821606496076607376591185812601897471849860639871977023919314096357189012871098558876981211455327536648561417793489951514581412649033648622613706941928249775607461339280743322281066444226270229428155221097342106545680043014643994837522626251661004502747034567328864210716263234252997223711316622901489827211487097421534987105232936411227238065727806391279049278515368662730521775017095025201354854401509421505974978237905789305280004053106824297587421901378350669029891125088743110075287760968931022423911426347495464189572738290380191259562733519386296607072205048627332398310701007703299594433995723130004602139415096342032662791716966037588387970011807668596956666662817235862314653160588891254902901327266170734048743907052095098545731208188954594166611971051007276671040663960462614852138482003215960623863775669519772998737223676273919968569258163809428466267959384571786364875858999537591219853314786047591344202468862592824077202895769344575361216663544725532029064397006584632763873068273444143705793760999212537503545477529834262892494633731356385357513606319294876915107817437005198216653094664066726636488086497832171187080648296522595694292052237314564884524400518553691917923668704364415253976318513150300379063231700656934428088618948333313299116655113972369407035417707074059357791033152569274046745772460092923028294615967801996019326526732187233104492783157035459925743371997875367590674375776392727083659495802109487037053967959086938069770087309231849646985465938102388938998497760682972734423551823875568664582275887946381178171732376589936298154223609978277833327747004890401016061137747084877768361529577889428884801618345236543299986095697845616918547197366506506465908383545542819118521980355851114587587518678982244891585169200027790406418693337198717171503174724925162664657732843688149546971337461671624778244237520827127675339973290884435359257864646212195136346090626690731289694811672801104190616241591324857278293662840019488019250373378716513381328690446890542754358709806946263663905555353538040716482019114657436848471519783663765825292334843026496893465776335958905446773334489244483348757586165005760193745579477452709876920250738671496251819804824397803508621683340195947198710864425130558491023541096251113286643180246382571738461393585905935672869293015885094807793052658829560640825469166518423931455633192674264196666801384387555154378966078943552997816331199528558884352238509329840168166272757672736276514712235077947908757587971785385860447015416853740533636886676615231318863870850055000648087537621857311983001984933538499488367764045378155509574607815122663851592524659228148687127963345355564442430333055320529695459214042083284584239901121063593563472434428691527124787652150195081682253522695176857757763398453800166537947438293644593057556776417004929524922340781785733252198696857532025156734670519339209647928755324720877600968689048558444279600967223684213784809558674435984881276273335405156338610127115503321371395041057780010284422953260873948615964248646767295116978619186879203168365159359400692877190831927821142707666644541648060534184755277758802461015156813595356662519217070582128231832719201624182399793248141721769964308112179673583141057556479141520818204633745572204465222097568136622381247597217575087317526875642291750122096492594953279223590719848077430185802059684306869300842540613023712352107619869463276895194791618026527059773394891537912950795020282334077497201999335991683754264106292579400864122318586941328117640771876360429882195477694789369547242353027870393021387295355267652044453589807092643974426012306933054985259590105414079269816480760099086836799212948622849364656585114093084503337229611646718977613818380075199162583131559382944642024683085218609724000551816440982235032264153572036877075936342679506028408366194787979237136731937867965355906526555602024766410429808967724332054454475035745575183048548051867494203047285142324926752248510153728858851189275905800999206664244852823421716870897754137999328522280649642918408957508950274307806715118988021008704798420344163712664038627226866913599413529328629304038766049192473937974628490630673901790319476765326747164584138555333664335669402749025806671606819967220492821733425662123755370206113799739736777076635980676325395358854401033548795689879283442147330771151457057126523805159296806767776421813024966687764893937863833257080128780600445841683425928061770104200396044362515271523121190329050744396629325379021144437899488730822523968562265339321118289603499825881520157648989424260142795695356240911418695237007423743329770517860767365118286133214023265094684427804598248282019275670640269401540897178982289433872776588150679857130816868356428499723738940296664599860655305189071082194976233619966131839026103513466744121751831786485736717655900103815993122431203020808497383355634037650386776119238258500786610047040039242361149559170474710954928781871815653328794128501588371724427942817061762668291799276930014508960927614381409395825413819220469839810921230098477734678606998059347405645825372369444392756745205252513038593121312183573671557721879720018433711858075721558697396048458870853573057819430040897330117608708964300780888717884784801986519747800952477297240084712662984779152652847567438373833101967840463905295779294724675247659993402627416359569024752142331613197066908419921182080228494264216281008909938754091132623965878914338481317548615875223956783295025419828846809075465891562681657268178471405051693552376494746564114141767970658635758489659119349237933989533097683662667777830530688417851672748698008347590618964725590969736396476390056206932475830272597233532265846219124750453283443657019684645496281727166890840885618004424434932522995337529902069877730249688879910614502303454609725912623567457320993734199767542394078866015066112491148167692964408013062593950938618103149122335473561436881055903775843711902255591941691185564508204069973997928753647120695702798457542452101155855694333259350909298224834314306027006929093388005162094583568937475820461836554403429252191739660716301877668524623580117452186547174651831676509115843311785809069798737545377538027568099069452609979772494570016973235588578401687084528551637679717098697118819436675858784910710239847042967057580497078063096570621246296963043029904377063529680148095563082965024192864392235693097637202409836701473285665169681828757083147065269814533266559005759555373264468818196168460517551143147218247865091599748793712592234627626218760041454463540770328042942025762334507684991814983759982920684901836400364802732681401246579981145608311640338454455618410805299862133667194670332927163301621265201704414597658836856178811700213816652131195639215132434168662115729893037119322497157134852787816037390275403317527164367804826923121870255923207366489856009507882102164586341703218932603218161138841903396265681214657651480951010038601605318553424103850144295003795630544501604930253789212174676368794573776871780893492143970861134762440846449490062945547229457138344096411308600370378475147169247768124888413611848469243442843470393998911378524131584686208718531034597196783644151178045302256567489204793559602935318956131044268523187939654185433905110029376837058640047485014372244456358104396102005481627872570930321979294667503650801825298964849662774117779882690236748534986162035230749504117600831265099562399840367503242840762099681806560086286622914151457236979271773581798959514531375206822832248621807978215275977102377903117546460734164353266029018604424419498424501088992017635783455102680536757881552551799092787699822782113745031421840363817657937195520405021517556156142916247595228981612728667815785005908647312016018572633077650828077202524613112283961763816272301302973874274588723338074437787784390422331432955901149192998973691005959022020421871453798427060541242104439819468673537264207885464899954848454622854859609961005621952546646654072390403796443392818939079947146086886901867652982358980797303024473021254543343156809112599492757603720374826979151419114868053226902541836228247078628379614429126816802255952440711926708634957327429955542467930870187166841663808314049545118119152782348740933046559288300655525461875775495786474396151205286038608722094874475317826915609889831835132437119075392258581660790920853940915043053932393538108098905909328400814720197583819281897454788722174397371778807567173878451572131119541007301175433247434826985780462218510522471523344169254881876681557306805871512594178747452612711876711067166621205697143315974628237009640072180462390019741067201726063983914396719073968458485728776980198991644795359821789831722096180164889005995374122043329777942063402964135944089015423253122144140890352530754916802470057363543003752585758584058533001427339447282941258159948564765059931411610527788648703840538244722497835216894871231320484377357918335535381002722460216610801001050570470501975219613033199458075518495325862186378291669772225921635422086408123445988064051674644872844154031280461357231921040135313094618303761513947221581492581396172614568483119946232862731232644225929666081285169146473602464329073612044764760830996964773473675253835691915557295460707832372492530317896292596888406052104819157571699802135026088413055441647533583556676581851147679327293951493825769246143688371612636421511093053603782595364280421139838841218920760022639040110473343731541033465319592766963031815955750601899499172449742666571064168830409076285758308950400513386253318964961684326602363849797035325378331778462428398391076335462129218510388869829251149322141567112646535003869765854268477670254331510111361807699820878282703413826542085742493735132716283778375839572033031390606077256133622515173071747176979761270263774913212867171304267523113524856236239227568195537318448873126390176572001986662554901515556116846713523565269492290457160277049551336074117214967634960173516573244736741183981032258158902418617375827715885185703452469324132956331936884726464476796522495170174934698376293818117392928083863194165977042718661957739900858944011312509975414531763916496568190864563215015060698924462018862305389731107551533598695529883756783519391361431920821702400235013181770036084479661473293277396495302217432626471031144225487526924850675642975180100392615390773619278589515171776311892901928049462737064446217266352058519583984936950658423487332010745414438356096804176732267073954002071214007580244664772614465245683751878419493137785956841540270426751726096060377165633363581463520210312485516827141231642788848858245791300743165496753599694875049471210420321004161130869027877449856503704717045105279531016811694349655140578746513710475474570962809712212886066637762142909447942259276407918564231261584394557336517902185705925208140210740034197369169191684924861176452869343340519029757528258480582731917904796134371623584555890274495413738203151630266261948045201460749799406660264945809954709971944045362002633349882816503597468444930004605173222993753665244299148521232259176346332822307851705117110693333879731498615137716663491077863846324516231357901665303029252100784027112259179436021099159080498200076326556627187986632814931798038034932962764916402400267135289626063882960599209443275938925852796363463109624878494568310611880949423430445506861654400763639419688180092683248700828012230499730623897741698656233970114144525846064478260117706274143023359841613625190788565019470441911528110391735051407016001304496663648908963533945863256583279710978686015674665346852787492931301269290204952291282407430938001720167976808917241453735701801294884039434915934735676095097804946749273700779472776777583490095280850821288063870210357187794477328883246269761797809130342555373323757850576301444136196788195375760131608917821985067718896056824346731659454277676914135676680017584643556959412864822582023770015051314673992650948102970715754098068751898764499387129289242545740325333975022437949057485459432882947907988970960287887859154520549956285412725461881690829488172855228679407485953922710546416114691640618588736938199340163446177217202668514551513726530893270073365451690829980293582489854994923471447303334206994780065808074132585293445238473386165405993784748703017433217243810386587924633747932708956669184224810339564286018973742454003453570000649839594872390705734801582727122081902061193557831887147233148275867307730151932572117302525497063158598560497118066380469284107842468782139452080211477717137088883243819642384496754606240784265534191345521927687300561406358728275683688668537643185867157034270038497573911418078006218099761218828115393094109738280179824233006147001175807697506965557402808484756176415204668509460658494315325216099970694246943572956018164354453311004616089076175515557882949086306748246479690924036206071864371454055214891361880629248560277873223284782979259320866929224387349390813903720549175690610399262278584942324594073035393697190632827346691268682904627479204013165555245106885136410127308034505262119614541597834020349901717356642140776142280831654868055896515992527953699355088187112407877670441875951360687120008293090485299992179261595245812492483915555174866120075923162153146926048700674939657143824119906732411346894266221460968427031215444550284742306114765730221265013443037799823510198188916360686227769130557773514326803231478548545877968759329184639445474461144186417272475846888649756965900199565929707856364542441536636070932471030373323540884803105898538321928748018796646144767574210820619905131976239804860944045559186078970479832122322241677963285255199398471437292453237029614298433288711073202578110276095053027991360246070136537656703977069762792737917331554645003383346117948242799214974610862780352668187599783619779290249392322486896693401578446267722206472904755440040230899943830143906156158595481424546832746625314308066920187217014220036189899537900796924186485142283426920470107441048581339161140442621062602251971777714837508503354156626597495857773088759819070829283432221565681687327440844609863796493849423745119925794526290510516587566176030769875211601987743853140641030609491849818293879410158526187322956319556962082083988475720235244487614017626638718818396926983912826959372743647341103340517543089234641352723385922128060347376264946819424537289870239729032269105983841055241170962393878332753697885855595427607832682035867795034608281940746427305534799465115770236610479059772153573656135857831467330315850587095590387464036707961334337356668522508128688987701076768961722536049275812108747236984426354553526082826016273201495230510786914573768124555279374479380873725722772290515343298167324401372544769682870933586099646558370582268096627842472846609344635212244417433881055855613339583008956922193239642888746447769410105281316485300381340298249398066236616429909763035225293621127133451173813316046089674734080168411184137858647118250559134277028315265707556587528071093831479648801848398563185168218270072520938734809555272407502650589807734782449829323053054137203050976268977227854825506767601389366988875914133300978471833311821667825314876154187064836455799018176389371849676906094684356472421505153979543889224064150891125267164837666543676709833388540706121258737789010758336736364094148161077705182041569424028830146630424774320019481722771673771170438444198733303320143983444321386893665527603147668881624190616154117979755274050427449159509997316561088876351558975874503381378604007694970495787526540203181948021141144713468547188264594440417731791126345888721113355238162168763603106796241672184264587844474113274450037220308000637041224469761286570786253053778411136494717070252801589364178697019387436881029656306829776207119272022145863503573349524627516114673040535401427984059335591130287605364814678647757552621748966198679729185628567683091771753238044725042209170209126558896457940300838645992651993309505875769266705400625071643886990194409854313032078163672960838063157401512504916854603708595659345381097157631619396905928060524568253258623505935198155376416970319291929075017306971329840739248263148453133718945974507206776101536780883498036978016156138910049389235352511944589208761149678458485169025583613151910093110377251986210139115230257280635116054576958860598276448975269865085031826201186431446474224504762662741926511709636280909485057755424516034333357322949842042008303181271020840719300682137504069146111590724192218821839386022934392748117764315454557544635754146468149948797209372202943776124236311529138492588205362975155180067529192190256184691855545112891272746473716840169450833931428981055101521254614967947868922939214236262150014522783260925057868694839098302644338873338899025428260764872816112610190267870966160879535116444753316280596377336728162834128686860253872297972378247494501651568816216806312405023770491521650230000996428689957418115402159342011598368058604314342256633060012852633691526049069783218423443129331936477219405131743913419477621781222971940982705526126290559771216009823207072740061339280142417270579234705264285909211244956131742039095944290391133353743828593259266067322818426367547571070880883590299664989933555748259607766178959414181930703175297834040386155863613754694342884261494105672491703794775302483267785576618213156235524501060729323270443366270455757700271450702382480401157411625196411505214632904016125320409401904702062904551159564371122878130340241934184011622623683045018004116483677496144628091727088148717749165660195617845185314313052775069001976989691196909352097754675241587174602682964315240278270820305347706542891635320912704327134621047984243287202418499443293916380048834732388235185966703092724552630030637389002486087400311729054603079209423797649420663062303309113848915830379873187625836517294293022151181592164977994843039535386528959691891812421180272494388737674451609153625298208920802441002581778429161998755207816356686275715558026042914718744721287824290937722296827529254089349025595275663584329344353346001729222659536627903085974508124812901196162268034456194381070131560287980035639797330336752833179630148185177587229470882325109849871185438721022370851805710358141598802881684683543152502344283567889120259668139081143891232148720972866772845767485282441329486240221363177159610595097629223321477210736781466333726854136853717629151867112742790073564004963291680601379997478028286945801072509899807271857426532221440081974241499290946540303407833588820349878689449282829352476602896520829563026253623986459288937535344136408012925578560256164629497740851945119944926021627891232223421785131230856324769840932106887119405906438325850080860428501796210100133055355133150328195185938426980026146709745899058007515114301107056108804919046936789482653881075722640531367840258210307680512536440853039978558524300528197636024034242201765252021000151793157821515068292805907152626449629064386475986246117786548392934239738805245224158472110405659973791721074373179296531204658007496163153791396966448483968463546645989014358943895902072072612200102817990928132592381578356964697397260421035953932541788806065979794554668619783075817612840151720999959701285636902755330301968383366327330591564141398410488316285060876154909686578045580945072256794053944812595287263389038660908553836616394085663190318831582236197185081328538904742032126883948352769285436928799035616642485060848259423992951594203764324416067584382569136388317754936628193794601459013762849251717497954575039598191334646752798830271110751036363769885204127869299010911663407113044756461046437241200750269080654143000143543742380438363433169972985081678579944025108747785104125929055648076696997230514003560810761846892952653225910244565118279549473642541839666148516703883455372334737013113385753225086432081434239891874686898896120439246147642531975991577820246073383203911875885210367879181820367930214165725367817947223644081441152713297369032955742187253565272518547075610518456299654353587501625299667044801264094778563493675175598111465238495030177694726035347466165160836418676566126495581045856377092975008176265220736359571893660985816362888696448949831603741870060701699362035053528686968571398733214630991363191364388197800791165264316432564250518309899909931652966517188176663196747856315998730085043463649106295725433461784150202610472549460177497620160504496329225735088925043426024103080949327546485528318002397729283086456765953123028615707346670998860864117954829466714418893706180140490940568363186442428707799630334199222892226614556530840314640742532007696373593857669938583226535027896817307235046379776992248693808043594026332897988820233392267720777848115556207396009729653451592380778867070137642034933701282573278483879543897276632316809546153002909672864689396868447388914663923566071810090419537281845254991277568506587701270187794862541768010776483162771330977422245487257612653090825121809584586044639746484366255929988878086592201695853624978646285599285648596547404577809591147823458782957901628033673196198796568141688644445467833914657745350420863806237705572382033069095979895474552309747513707115369952419197804818433531977197368445301837779415815128313291253226992869087270697610035955785388510485629197623981595572883677026520293422498156423086948401161021350313167052205459341902071149095882574645716767527167040984929059169214180147045690811416622880154824691670110848987946406519063447692224771802591446227675139832755755067740615925677425226979174066818049969549083301144122774479613308923268805507000497828438221100293926814878427434269424103724603619108047077584416142442084767141419271439102424763189170197226551845554495019339085995356089571493055820584530705001954039815187708844892147315075270546751628461999573307462285709071031689022441732364580119083998531247345458717906428486127173117546188312567876039800455489369128357558137303949866456404707253129473833112883266307033306307239378135201066044956710744924527419293333126508956071920547387121511040103173885186320178201911183151776817674301892725587435031691569039667336844573738707977706479794272462198727144821221570770203689607404825936547260819725598632053992563593577861239604309020099157557477431246325074593061818528367056283005418375051254978984609779194219570484456959342971253967042970001376320975624477701919505996738183080063008506192551385008526065223300831008218616806905975634451545484681755413813820141243070988529691255415739341417216064956878147313274270876406245935354033039007137038440498680506063733021733319700683322485545166057638230833382616425475419104157048996066915060388416289784427772112517734479402285219665512582689619552922443473905731164457717169586280265831793150881358699298426958634067704862170626311814680136218291236004671201847155700115463423456315463021534469450478003962048547156489108713696086541870921618032223272851255111077619986272552149986449717022728079592807199185956631408839381576142951541812396473155034814647921243412524791909165128452928985541717540623879034315725217881108570005907093460589068174738413784298213834105490074405744619449619482608583660582658828079616560475223527503014250559853498527721395306214352193196679262099783959587095385111519131567088659299436419832582084288106099614968088410575908064277322793057129658095582233420192981614985142337181594412808082775882490203813564833338515065023091044615898392694499490750252153201398397753647065382852351446122123583302515628149321096227826048717401821192167705777068133876977629580893304528085959468496175725265539184901902114162745912922234875226061880406468943500537597032070218089754412649530614938002110391830203217764476635130208689637433752372169243574745885568088332940194312175400614122453953440698423670408723134433659980249280277188110004006514277137902671194239077746188893451135965295802924163816963137306858528445675133111154339849945221462104974298625973451762126215438219385909804835162584592981869718196630679399881311660250283931394722069652077931173483028872145132325345462447224751868978871735663636163892251496345517384316666985230947883625981347507660231052673372601436114649411247540276722853173045464203534945929346111452703698449542798193754321140777828930629750353902861167407920314159504450734780562428208298813015376342897078688635084772467592795520078144724909289063964357975660328271369772671735868644392181133077718110368769189145858937212693228115163031777698017974859630671773216548658414383974683634889039562130295891736787460042933412374136487545298597171262316789008092634268181220380183859097219160393778276071771405358514050169011997497386938344740643577810028548096707228427152077634264146946630282648258689637149949903684010422962229617566768290033881259308393151412303584551289680782650525544245270575326615401335159700039997009414251720023796072673275839206224546390307364133665782188943476935665226228190197025686430330878171990146766155375513355360103065676667732833380048313096124120807521719416994585152274618750974088932324831663712286114360344417675373826866340901465302370067690131409799138118576609429284547066465490595634591409527478022066296774608543355970680120974083358320520446199805452747390525178987917141872826657341702961045369523677609225669848770635711641714769956817974784169868097863360298649347696707081297686073329071325028406507608137003034733663099819052744524594196861867736656278860287952145884590418908255308193508229286301962949666032815811682743609403063658500186124597730752203976976411544395212468052864463783746323356787864840746020475258797792441787270474781752840155361702353414404989583988800910766475218781852778982637809638964027085918655602049777691119280150086454329964420902819228853542081407522160093082177683143484682453305515193416527600583683914852908163609408158389366983553841931876824677863361450210768051393116449868888856603496095689704987894273540980779826123426121409796183086195435702498037978437732121605947194620215897658483087140344405940082014545428717466704090033135206366948980633599619211650977306629598890174451275347418238450077085314020714563068178966030113143450744159127043290771237931613607024746027236992745302368831936133044914733897206961636001494091770958244047996470429116062676876727347780423993667708184694312374042678652856682550671909928647823186229310150895480381215292072327603377683919679251200534529003396390490792123214949060601943915340635168908390554079124353563220792155271560398067481420136324886289291144615069754793199248784975113362690017539115518530164326107089855127863149300798210029674146884144960475800381243427564918688721654331373293442105342763121551108579596109292178981739831939887257926756354254790851010544053197171474853394794282319097255291593263723774172941386925554736975628503773339613573898927682178885437636017201567785756657445990536408821601973022929344094534812702682144797332065700561212001758792520585650323202436614100435245652376470676366221425040755950681485617297787112253711030308989890997398243741029224740659915904681502952989380454930614592407654612310864112650128054950310088295591960668685568307151502374655152567341973720816379288042950451205700874918802051021460830973790708292296053343129471047749726767743650887174226525820990541956877837290448449112736731228489966195082160680951428627660120085839500109505536638209204796268990884589129201279033121037845023363761205089833601188969612557582796463858402564512756186318568535077833205633792869125601944875307599626639161177595285017106720930064590907888773981904106932721834586284080937227116924554179885565587671085487145365068630188912231831153007313043946423365407146642584598765745915496958966811118531906447366177703293064122310374093546411816356482626220365571237704992815962446351640683226292257554521845734980014298951808419217901394122442203186944289573002390003517709345155446346543094829379566341977497669500525062793266368444538407043722734457664047699878712082587858312279828021667091018016034156716390238444638277531451628372630383762243440043884634653629991652833494827742300470578260190246674069401961560730837346507223127351625836388276651578261356920239906300344305990524571721150591793792830853367307298812075743381022887690996050801571578321293575863563381540242120362483693104183158547682625298024155966859849578839352254046411870093258762397690045901438692463814686820259855498455263567895167700215607769434697820581049627737278439779366794393241414654664302098289534174138323688642530923155275568314193743575760933040412896967000264423622337581352037792738260270419713276481565417048539754988071787550156985547036711742437042890966370006174731570670226406574150881529730023453518079263044611345608509849623498410428593503706061460864400755749571874148473840265543892601160693178746553375816886033928246366686000618585206002811646986473365520855572971154290838190005158031554606076996994610282357295841250868283421516915088455306203068135059178798876479222843400835283357668337555666936598454988042823058415414336899270671514437998708153662237712481590304418011632832215781700605066392771726322268396254457892647192417369015400324956567534558686035421762054645499922063046173605759686725152279591434215843291969831751113685447615468020896705893736476879969706577348009325498369003692710188589347645663517156457546520376439612783512345995853765801977057340141098347879543912220217779553936321584273376919084669226145861529229515797710287984661070586135384325061053979599733524415942286698334723827695718966926873351599609268463362737715506853605748428751816275327403191845896809402713854135845182181316533061645543956819929989485316150754082323762178027559214742385098883623321602991263729371713480867446038685663680960785933719234905248306037340316092965546675047133068888063290076029869971784283613480299237973345606991343385114688075451336903106599251253741305992883290911302332166946406416136132887265789842672441423718303492767408732356311156651130902168084028580890088442692671380336008731345495654813437461961380796828054420346664844397797959961953116984961036406583737688197068370664919340868050031183183495442632060204754922634528383411530383041587885607240964059943646077298063600311618280459033609270791180406623079208978997766849974349828810626568864846352420178828973764774016217870601041234121576629741144093420304262989486867122927028111151604232470523369575716529273847877696499129697913011100210470934901602506962108774684198841534593933066583188102044221088829755887178444110314642697917168690854474580547627750107078701158151141219183393474047503841739570784187221933195327584904107613472723814236017885510422015545131420371625172963825379784163504547362974454339048126724114624662723532207141128917745369079473991699785969640771959487112799652407155542143594340096622777464376081566199151431531906966442864851769531994666548858743357366160510733269295178337889009517744901018221098362910483074610909956395389948585366311808269493512452508324422893521092010736616953760003559166901434739911064323460588488390833610548678772085676587632740666776595208339685925119936021337960152960144261324808127424250574265122304582631084482430633943923350300303965000300579494432854318561060699258588939502348120081721225130376465779932763992778756673638999067059828587540842720085946230023014437093049129773529549185654048935866454502089362716586319349370489381236828304749290705630541976783983328100624915155905136470282623625682067293579156375312088887540000060356586891158530644731067400205540828621025633386123961723203136495330654137308239536582310739374188412126176881934386620152333861423210041020870472690058541174597676841859251904590736890067640954834934466981112546911278149029770741015591240540217878953759030397030274592742054956090734551235627178513324348486248150359942873864424910790242020765009542490067600651399753984990522377352395764826862780910781650640635389865244438809116540976382661061000377532714708381228657558944015950314058856281072337162958325388357009361158097965267918197503159400933837614993693206206502996426267859639337985415505922371898461800929779020659817850788259775781979543055846420040705387817473765046024218965890233727089052064418432771857193504631185007644773167234666095110123969827893492135186672099242318685235241241444115707199152758053222010258758489986075375857814088043660453205764437964453594846931052515610310711217482525858025015398895950385894276700600776326800635614808923825682269278907508424732512608485005393098354106389312404548819093863086727495533712550527050886737717234340803901245133148358207760628144197258787609672881881210438471713262769898384670476176309357555951786615788807735131075961991119089281499086507107062205349660919029719859176445715654042016996776338313860672408127234248414280549193736075951449707591312365455006264287548859383286961819299246220070384853992222006871588706410469507311750953526187814447489311688959003804978527329919882030067049031816317481050319304165902864441103064161423707529189382060305476245021443916300124007280748846344972569834705055542446273785551181693861106932010781291496636153064359726528593499859174350963957557805943305613021431897128927210504485342424651055034970041588396322971975347452730172930538780457344809499546975373839691707380079758355855831865173643823053018270276590513988144700455152703136677820019850893946159687180777838284258686080606550181965808462449630204354009499290196111411579596960738314520296330868289373027165682524217284824555233831470745687999490472296827613149293053423006756736906629857855139203576461946850379205618122818786934041443456051220583888056846231037650540681854155335075643845436574951022989259699552555206103871954188521718769572274724187054845286255300235130220848581095539169787677625768242726351530311848396345712000653926501252945713576832804453297919055086561000462154947523922051709180943228099557500569770114612617135602757521236763853967160335435071810712878028981836769888784796092987884943384039275637013400965075115229308480980056552695513563957659361405906914734639229488370093061424790383779911238963694269131164116157697386880138195419527504176575857844966988196218201744451214811988306624999155789598565305828114072249682222591235998420850509846308458459683570393103606639382479490481977949683997720242476785798678403126396290250168518311651648875119498611153487271884001202443173679478528793531018460826775578347046986015065471117375652329527943431205658672653485804454419570977286562662934734390673337417791892502850894118258153158691434581088309213464704272149265901924772305001099531616605162046425010550378371741196605204432894451256742991319077226526405798427349137543623310879565116254507528797456747728957761273824357572745116658746150405397473641017060101386599094440958750168765090437678826876584547622478368481228565161407321385197094152428092814329301027080743272792662537346205457260519508142316065764682733376144443727779061266951225880175190899297437139182614357921972285931411410285758104103524079051489523328356026242200799600521129035050326421477985716881775976654001465233823793534518781222499677885054766002738497484909721873564104850388221714622529925979713323720582714719447372775452659415030319255824439511170310744813522870410099168007149185056757443366783344630871646374203723705150707556212674743542773192380905063818733483847610049748545908769775364908585422006280504247956642639320664079618299723401119961914213371206644147046946047885296527550584308565508802270180242907583894536800786071951334693845871221721822813363374529096441102040969204027546869946443206678890385901176498026854949100793909636519518024571419884003837396866305973663084115242682274521760828213850781349012607323757616498982688419885984528851383045271786069796997768989415316623169298887531730913812041285422824112655553599966463430916208257851068342585592149320798961266158571572046494116725334757148643822877386475286533116490344157017622328482476069989250118237904743283692753372885624626738143566801045411247162206133686994015280337646542221876376169822520450784081298278163089063918969452748620110616399558515433668591742183674893436667552481665499798766864882058197650566752325272469154113042518234192532314257769079121774672615426089450229051128707795643284316320117031859256607550670684796831140976853473915013493161476564366469478257950634755043213612129660427684041043349001312087256138512623725316025142101901610124052676093036647370068335608769825080121168693414830205920179358597481354044020336784982947532739261380426123939588267311858411092997906956464623580903763603394752231536991643278143151732642391044918232805748727332055561916862677673821883389560693056424627494158237847231553755274739066598717300825814376268171715495242836206929719137179123487420512572152995148220687638414022164798415644070831410322508476767966228640304765572664555149403428758088317486656218894854915188219357026236401299883661913821213330931374667844706255241174807216257395148247883386507764928571832339577257435353842467684966381908789190442667598592779685785159839914699016385638413034220842731057884024521640691690700277106911957775954577293872341486467184162692885487908341923306478340437563193782820017271367503221058381166772133953073799407891724959821097940976181486443659574915297401672807877944598359817044280028453919152183492233456120269886818907196811857231667482326260137958676333259889645358065765961127146839221015374289738882801157226621290128713842462385563245683599602064866594266261058100422424276406713237286704248641299872555268741864366545142473507350787529230057512205521403585745439310332492107883307446342743619810854370124469006669133577585768665025183005660079905848779702520881260073882666912269600752194770057675832498074559597880464641094817112531048993170016305008823314418736333120784961833737857476420314009822738550554772088076220987991993300816671634361375194269962783471294728582460720767133484466550842960629368362451805806223400800558773935224216054331870698962886778417411589175748964394728020169015864597097792111827767459002224843920884807185072071707644542798548334708887172985045730410881367064088411104058396659140254797204601650371313749502961950257106003496786756946287837541727692256157422082133746773148810172263263936235390600922782537117944431079462847849726721507791990336854673628061351646970400699236846820945606548931713086505355810292096250077918869690394365057034731968331900670521641797677572896897718280876064548524966408880457392044245354516672666380171630959680334878323685429353956686265746237390027301940466836416249129199763552681785414741714133803048215894518470107833716444683929005932231815107160609333541285619934387640291739040960208407498077969702298423217791019108851719484399011254032933522499248682403406992338895330606560431636210170275041427929208780936398258786281927237225319096467024456894719710095617089056383726382858059558248978786669225348861224843730380314218694143184996310693022595476995803228233507689913137350906949974273657943202431617146546574128069682623629661542866213188922513408140989036170543355946764420865078689098735765941569615011658094608471088855570265739001222210744840310830728504174993333127941916978139279272451174405132886854346356065857399416788179196401021470758766525052301040128456791326756146659067948189305826397654286180849944172757549543461904688913429329174924878672730194705868350635109378189361205268138115347921532410802280744833458580861109335324560590481986823569304987624967435183194168053260254817795699245526101596057736681227663564891664482702663867141400278760468298351677378034809925083758531708391546500749542834744839592428350543456413635772674260572461048448155495508099919226311953777443223711735725336269677436633719941649550670796326266491293598778643648656238955079061211321976474392344402178124015697171915872130544007553252046428251699843618319503673257406582888457107776003592245315737153133564625276840241600757388195814359376450833930669797625737843506384026207514390968199027447310904500980735801997368336736766012730725320373089822046832862387720239787489894478796788384469631374012223593541869512138655428675037313238565309599461775625302770948757768309712157857258672581793360186787331319383850264775428697924246835186236856391936722611336686447103982872611741686501876754429241588580120276525697897748843990235599268226855359816284569196437897258755974534160628202401687870332905813277150096763217381749036500095603512968671165019638451227418878692422239804032469192196725985874126308175133783444157174859978403463071226344941052015701863122513486067358253079876189768775424492645503727690540079739870512900962074381813266012875947737747464841349097342915803314527842784455439727388103586965820993900284731901232433323477578301636308549303214066503726241984376495019433111776939085163994581559175847701248729514946267769636484398524555462034031290841411098493530961886616371620060397257466631782594356906903768781854471718504825299585154779298708577138065854526858859154824355208164727091498030042561964524227449851677148033936320688018315721725126190293670028717914402429067633238624384062742482486461861320738950133460272162731537568915383712898448954589959529852898888824517369412532490892362042043058671031430322501917692982724370742383860098083944311363939592361640983711389804332290526093432140472641261233722191543802054849373025026165707846472988491451819681816884907633477495577517493970513671571013606543768474184444048664440515043518521144201676795354186125880283215245964451480517221292165623733567004858552808430588186312116199232308306388042876642542029525761846210560567470784429865430401911205273829333058809338824867645384710995802907009877297179985284022371572787238611412548318551294503326202433226198053040479013600602610283522629571440062907774147998823633391236010294250816845760223331937800354385249172294048270642450322950391376820101622878401665591612399030915860654323437409558788559725715416088054263210232245673001260136954135904986004960640923095215048127759917893547415016383152892984587009442399555754392369482259227996510463987716462905730628105492283194898291340200805199081370617469998260764050417119684989509068283213717159271517417304027250719263447256004466322775028127714182917416851525516858575026808791853562355837803024836064855495651897713881482659188177547743055825919010076875496041279650983136831144801837166365589463243136134369753375629206206220349837125510540648417983302551433559486869646781360787951676506553624775472689749475455577350139312549064522458968745416759676477617421892980871594262489793871926038140009888802559337339271227904243200213139572381875043225722117497462924918140482052347076535618474186802656501207148155834249847391428228704723963360529936167263651047313271114876975284253864006297008879831172314688418809926607483011318519381567144601430835046290369887079688379101456957642373188012192154644993634335372165099063639692772253253721811649535265669151513167141052272091371721912556155495646306028571812839907211947728118224190673924515950603580344562083595759106155361693834825881731286697393105609725174401331919453687992406162735266636947753826429637365850710760038170792727500996396967179138737297137008703702655161801486571511388820679332639827190039040841234047573641376707402506686190104870698564622603035230110843167604915338248583837176916576143122933227027996869215478850452576478798368846013654120648360012631016121703743742767380264715099666237984898388613162335005363456707023726564772838542954003609751228361003607402763842566437000073105716291907655032633549587838615746795861415274108968405265429947279601212977847102139089556356613253445941958731397365758931975463267530603964969341387334197914919068997120289682524598225334465239144729172902622019310015485137736091664686862575354572349527202996989353835192138169364283575749712749771426375417571290866775582685865434144067291876162728409322904534178577937424167503653026671280127754145729280131938849330726121197630971624321162274516492874475039713209255109142237543675203584461808944478061621899122437687249154203801657221917298726291091259217615322802495569180313791033582566739335751921452583836474951814373744218473458727136282308607603330790841925194096239621413658041784038561664056762297407101248990886797141482560262166088732278935133538264722358523384385142259720379765385334174825677803035804962235603330812772052102369977318069781995308313321307257962852486597586976743776437393321612282702008226470943203172692762563100728252422253893818206095330056697512148819512705556876784896314281669076938212746266261525554159341088038396780052258663861951179472095048657293897613211679632519761076581293872766703028072024540545234214440468820816714072730510619922076481089810922121066066991741758632870578506002874581944992984036731650329426166832791947253350733326020496607833839100119073428420273971225690743896150458854460064070974677678723185038064808493069601621594387687502893029337597669089400803231702165877687525798701931075887981467769270555330483647630562744841482475328947673060581335128433505643225119509554244384540824009635414847447803755009160805663832082515384961961379916299949063214129343073224644095205057015128080899753187492863898000170250131148823491447268622674715854225670890753814423407501432474129727133777882406783211817468854909240478937555758758729514448709889699593848622500795691345698674662712603323752513430991506144448495059378998281190742869879612127791927478469187196027888884511601278807786214023997267461514542553023482927401096922464767395527150078798648568105608641064723643853211312442020185610989605330087069259777128231968943283224547424456931481261975218341311944427840540638877112007864016815902038225716870693345023110663254220101353497623070192361858327286960919630339164165611190447591664674776282988618347343530040922390762735887065053728735163797931715060921809140792725407708738799143438333649904682255583775264661591655816425678196610348437025784044154175388541501780753832492287654330810650165850818612076210512517464948581878909583022550747997760671476753312800334110767633103367169569098196114813784724623003071843920353162544632872419194035373565624135594984372614394940970122996796361826440421352898947903146321187136083800579471372600979192476475232317660988234501917337306857899049191281355368580518877884268266110602652562292808780213698151593127134844416477905232437456344115984945959819433072336654554461221723177580047069130117663167035400740960432647658042844266028052755362920285157169726000230306943348213359584943770753205981314174174404870077341864454349886626925691229778778932727084639554157852901542992785248413300485041660917108037758547623592402859440387107409571009546562280664147856788097654496055738516531039155549386954559141733044353610194253270909142556757187961102469067897590660895111594830781310518353789879096477849973047100214792472708117832118985665730384449691850683584476802115855546241882654859550309855047484212319431561976502753281427372054600955377716166031011052036841795875586932595327081588373960478517463704659557020620523375627036767007170219145319770188948549058375806660737586932208702441121857657064354969839366786137028061651430372458859040145788635823738762411780536569224323757117724553141068995330783397834854108599034591698842474769827621038569453965062582071576705858119344645931528108577287915019926875119129683755222726196660047610026667032680815435965770166228037774481634336586685309767324279403350900524366538420381548837358485996997219658055527297563421942075010918564235480142420677297483870947065736984351085557710202473656279327413300753273876606971023059872862536029343113812943239410056130782729643641685578757362300180534300247686534848215365863403793877389095235668999408664054000794279850393216193368593002356571693032822399085062955731208982457358721388473172511093362730601098049418304145166443651381961607064153731140888544091614944038444910191448669397327282470012822307663152079224132858414637302622731547392799749604233736169753007084183805131815488546612889948836544101076047835219709873354415136776184721170441056845758168485384024441643815239295657781915420011468973596368783045109197059045501607012015339003287919561478752610216260424832628419417425452744135374392006102563052660506711566535618030814945091484292065219444622683401088489223785334079247513099215760642692621395784025449904232995062564838123138654926483752219278286078218116410682889577728618390314089830095154887807898419229267170782311736457243943180803990670073900299995101080159137402854357464670074308687590906571740626659474624990306736621886678365468975511340167161685024717510749711458414577477067281288893286180379496197421377516648599530324447799370913566523527749416664300168136111633550579061878300920471896215474883210613309032392687365991832766667120450759521536696700034623906350392328867858970653824512534973663529963423092321643381592480152758495504563280766024613189109976744995666304637417412953954816639640719057926560152244928389793898967748530995793020105865357071425034777313890866543358942763641216510961690353081254241266090959005560228108689612660152582480424270986881669756594164057987467954282976394380798494778430612770001835680912487200434026169237084990107895018534810505656976658650157902405486735826555879180929950785137874833469553690959728321989814029561265562512613273788400971664169630297892070481017696001502506059047422646684672438238913851690581795140215697201693200430560628457053814346114324964691083368204465373696475445651096999819412060002517586051923753446552062854003737624102699589111833251117344179948940122900794137248803715593287014783373358073349471443346107090736350633115642580927962329230727180893769980385777346184528353006675817501910988624033564358522972955799372258639719909505758581052956362990420272107643835582521063164642559598066759653200657268077879145855997408581619751070613998313688575399845767655756318085908288681468478087903415689844815924656514744341326094922304135036195553623882251885755985233509745249347647447629405386722552474665555365126748676523324488741872850018865187111418593703686113769012601349243848901393840130173994791340409936270161981085491832161784563357572281840828241628579871235795628353241120116866692522735067481664505291874393853211562388579850806222619318852248262882780945259220733837855404845326372235219940760121206898516465837321886022508815362872339909769477016907165308431965637665199431674494923057481289857352097764058773132532092506630783707744670242223339092737635849125365475789762120695607750263309584716656908933551447508972382616867307856711343276963907476289535028598700809804327656203409110849578145208767188226236020278361505079023153085809170281752922080343320001333458564191447993312454318754747983630765512366244078765846526362316725232084698021128439997004643817315176264655279030795230157472546081392843303517177629327876584798102462861054136498365572207156931579004236970466988640162998342588197132173713169612235939049398543122552514347625967550086023039768352449217987614494605228581112143002712958646511831975921206492650721486637757391061936139937156155464410549763664701267638222614252533512050921225113727510377933715417028656696392787740157849555932112815388795030046487167247179288938651534163379977108640157113790775021640002477427235957863436007974834999103352154257379363664701740874531444081098141751573553496477294626618945132773701615785684491403982992928978941414248363934580156329676561071582831466057079382181234483484667227339301058016690576146864708396624758869138962410433502999880933683673893484900412643049837444191589706456422313388430484413434178057001987585697646087612313430705079967548120253046979325225382151680279624383586605717872766314608933371508210192818598021877799378371712361720169301517972322650123562762899682340164970319072408114830217901626687171484006555134754880228462395562223547102367685580053905583380471778311602589345642416600275270991296032772749279954342335967428500998567652421555687659102287746797288459148039069562971778591052904582747987613275731264071620409634855162137495273409698558295642735845430055599188986333840100992037974140584480757181658131400310164982591368922933377260433853957496288720742183177685913848913572915810176915662134350983715553287015604786923142247341425108621685537130640802116636522200227182334740513458543316980506453736202408748554263313946545935352510638316923710098367260565259199533093795395787189554748754079538540240646685276213299209109580268624814779973301277904173247687581049587077902614783659588943105852941287891224404110154466154826265324047972414936332181323258567366144226614521239787562006995276264047155035228859173479593418409737520262619323809657011169083010439096020891631788800825578583631280472881433739836119278832114065313109650043609498525451386260533640281355066276662245991622416725978924787769541611583337044782293386153256628971209512965856777198155103053074807571941927107131443647362123604837930655517626895009821299966693012925342218969364028416809370337777758799172736833872076485550221121603555297746868758383455458910318081231136797316943391009067044143431644788999428300291425620951326068235768994965820745695972025690806078994861940453655997188124366050116629405507494541598793863851930916797754718269281128109056793104466859585502865068942520595069587775017381629996644006473137462970706600768159127886713726628578481126224872134131386665772387434615746738065434382978030184366460640004050777461461096591593616941269435400492301000245058541578637411375152537322476170111486421883341813139658578060990012016595182189174881728850163783979492844725360055819255061916436320969350194369047414959195292619862669636358433142886177158480885292404362889334087321402087623856938564957064403417498442298557067023639765496527313893495778789443351752893067270408308023731717116291217964210208010808421123593604722482171048829800697676899406198686188139415808247865921045886568639731611423431973597053681292059988002763197937498752826875638670075824104975300475276539912747264623349298665266148114270150225287333534906716309477022346865077319446859136124993835147008037673060605528638838553891081501874104996165207119802327450142663681494230922179921181825335839467587591345780625654222136096807193587005794715383411908145814836067602122461914474504571042017180774944581369742396994755061345526688156709332665027792082378219316258897313589227568269650924219637863093980357789968702829155911394411594653636809885710378959933883904345296117771354349329941982467105479970875584531041971222464659414118342583696086100850485289920266421678266260826370929692354839183516490277734158860502353884120610364266127115297185956593939495655720745143156310898093112109880601577451897260497548909638613481862956801047797286348414309505292893188015468208091333393539961105391644265305793534987973897365734603770639826478113212148585562307490892098797094061453598670566454807699819580810331289223626364088623323571347895292006683852903612965579114092148845481398620390012967027810701761320466117949583163858751265402116436745715954829609649650905950136700023862124339375250268637870371476681146770103530638556340267108328299668319277952688768149030304109948363539515714918545728580942080822620057903114708628342270259718974763679957676725365825901053290934444992997017138272871665944254381182508824311826863404542054088363825748899073955597707492906133893998453706911791074004829951481972691557241234309954422170503408391137818953868607951209814554116057613215038476817080779718766867037069633566027083040550291808188055308627683160911524408019967093953991516582084664230611864680757162637514578971331512883801813656824997867708072778286192634035402655205612906431507032439814832598897527546398423674614524861996165307791974674392526755324112398624820609578430929164125302990851504753496661913170510557166573012108573886674592026493040877124618478230315093857566348157363575796347203100650013453020020520615061902976711762290157464243315902590370580845334777520158573693691291927164855887480568634533735536007676262892682594448061708511235383845029521087228968039390714607904498866292797831881153727419231554672702498575825323870726026955322748141233770834187655696466226668040498289964060463516272330407594190760620724706272120793859684035027074550484624178304514242457018813750551257438806402449129438668717906696323555391487354235724351560753260542591297434880358469526506684995855325596972534213112566028781157082370186287467974729441375073351248480832634994514645449725872855372511170704681753274588249481981052222653752626184258846664002233337306963540406081407286647039453068415976419372610798774220735541664407846303870129105165880004886962834516245983495332019810515361239257084024605608658104709347395074307685855218417999385631016484753724435214723896082783572172928912277149136089821080392411301536483874892499499953115953883120288301728282316017713516753372872203517909396363786257217828868158268138766374902359505559658236377278983612825148811750805996620125951108231992335853280492844455758160331928524618805585491575417790893384536689314789911463586360950264551713700768020370072460051874667197223529819248362820135651101868371317458724360483283833726718570369915672889855286541417372509154650514912206229238293182163666572031272159389193632558765132276445733193276308180665951914818795685517883828944524606421932833911839943415742438266307731258524859538953163089699206259724915508709933525064455734667941242119041281172631759885695010914805510923481264006284870653631774955152522618372686550429943437221617513999242905075164308458391726353151368861760089990905970352352724320947584237309305701172705284157176193968905509551485296098681034610846766705304023118589365157374747788242707301888165887332596422146138383000058733999580706340543382205784799866923230793168084231089873259670484569259474432573617724711662770409371930693359111319520163947916047753469924106744301787665262751224786011194041370412870873947868305136753277962246440035494617594433905225832666081631549761043264619026918505822254880961194312549687328717232799458051518756318068420337054395680877489582909147155315076163487641995205671184860970548269092534446638009908278475046138403431334819423397736230532927646900083632727522280366729811107255051876949757394963031707242921013322812396570192470825356356939379644821603808786419947299649987538647033115479867431157583255287772592934626325267789226641665158298604041957291157800253322282965614365753944364222957881492573865070141800658148693107495026641609094637654812080333133224178250591234573581622123610246758096058581090850712508151979340261567762122968758557711274002809722514756616741476565785043386179133800270063701079952393056221631028564536156221139788082533562873604400958771260138047997017998774200885517743160605274453363037641091607293408782615851810623381417760700285798873509386123235465244568615873197088430844434870910625243936344961037591189033394526888528034955608323064397672770174642272766112571832171445739088001201963846223177865509643558059406429059989904832650053768711484326781069166789036001069107384228779646641911995868873949005362428669548952862178153089138299270203053039179740865899503053167906100427568501287335357129147702932562439908708563992214934560403521990394193085551761896781070027535637053559082023462660957044742107411226233998341910265692251708772831014911161369968748042574501748151465393673434473212651311174970149332163752754039971422237155248358271757932128230071949793370938570961674524406051797889773051032567974976257047162865068320689182165438943052198883421510670630109707920495250294786991907324758522088639555945566295828457856528191782474395418451890519818176595615845472830155767814974191184208171169301633898315119086135163776414015806806518871776863121726437379237544750302861089808441939275029251025527131058234406178259323529264928675858364230271874008145572716687913382297956016903247351844326099044931399068535198587592088393464454741133739949605944136648524970038280092693244319546986890108711138149226955999245708546397961514320991624778128131033093157080392620443990812526455614980861024597816598758211079004336123900676140382447475398706010191998289419574913890647414095293512365759375710242511913434556510524105054121708480333274699876361437133439371507480924045333965835770940786618053853587517699636914732196474893261586090163536025672032835521837785067902868583075242319134208675643717032058423040814404510627072092432605441627553621434610534243087849099521765334659801338078988418447394064686284941123363807976321570987158456407531344509712607038092662530707630561133529644327779954233623612541208921791047062834421296640303448611909831961886078677911022125027018632458356654097399853960362599161551384606822010083921520901311783959228358036986188278810995104282273591480806641927638701454627463012876791949382973657992550257433935823095074576281064157335183910413549528549195218305466783826715867614079152403753010063430049669444792239884430257111002169275291182701859566397497535064713908189159852418035748124182548221981976225041623403010121685210051804168732486788207952771991960561712147594707694868391714282970215706430942809152179436585579650623320915653310015710365675147132071247567562913967073257603903264232298043546506544132074998503216485337386250976094268279143740747854208440821780820210880284585273115488664367326190768471005199610540869182386099407314960090549874499689224048179292943462499588841018075340558097985763046765171179921361453497448323958455160485415766783257318924475709872025016061934132943407580701356261342232286686818442341621730551799364803163984038541221895984761600859653123860709894948269829627289798662286481028772432866246592920929221735932279070457932909531890313568856243995862137662984911229695282398178793396578303077299803944003807472749875620754593192341119985016422871077018048528559823399947236312203053712763614318986409923147378353306541425102174550155164986565120310683093816673285248971246491771388678642365125689939606683515997652123744100100519867931442840937624754885536951027331455127740853842678520042911120744726657015318719619535101019120405087306005384445849275922638383469244488523817634121186054182584936741278728452790675787171241343870338907632546781560325711205187944294702335463372384728335932438504557781870917020819453030225559651816544673488552873526487655444233472058254539551500593498218463798650170984429610302543013446685261606633535155885101607507264405178920564450591435061829828422864256986702736496696444701975863536588666001361550396683480646754172840399501194489398413229478828396636374097774626329895638093697967503265099094682876773219595804563488450489967382856983779441914632107426033741136974633369165725846656286662080313898471596910711252365760820505983932269435008563793605830006701883186033341981225526622836803903705482133343774602375576093036026715559693736200327865157756701651689575043317987890468215727145556907148156920500630175866646253033857358350898402446979538239730993332028783051949916789004435289594974942587179182640726529577368810007468356066555529065187814681777605150405487767475524121514686545614167827542097455704092933856811364452020438613133390037681091655426775031759767860015955857575209875123925182847913705540108865907948797541065776996044527812123741045197816949168884130331813062966697588616046966058774202856676984390645116970004676847957548728449128384660658551122146489351413064970981860980795772870155808198398599143702283964806157241120898528602725450175147216989437681942432278722525111779714157412397193032757002636168646573334499381627662582124546143873216969238345408493762677276596458114666310363231715381413403294582287690456403057579681017537519581115666567196709202739004659087460500458313627089426906629432799401149068105371070855151602865655729026861236794900338152476597825003253190549913890173317084262481229175613518525071015998354782221837647202693867445416789049798318351255197072600890531085323617698679602831546192643977123200850294203051501097464047759388226338837726910470826375593546588389563408155562174435106165703790623705317185275259815522829362089992973505849144837317398900159212903810453989030427229815180477124610537682782599388758281177144360138770155505350203614564795474969156845403768964349975054805023526750894124126939217121043901471685929489689170787795055145422306589389627372549574441918610897374783442986037930588177367483269493139862325721735142028101842758740282280249871519822736645347959851685421008088260503876517838960558662225982999290789973860035612584940224752229091150368059872962412111385368473313965236138936072567076701732122242706334148421510434861758623052344346543085684354884480482911764292659861318169917065055872605733880915307504520006253476246951468021754662617213759963766378029203920540936336548763192280264190568666566853543144856736319373279772795832435126377797367396043123615340868611357377752312408292261375124845283430699703240406767999275122983745697827127904982394428794371021765519344155437343226017604208671493457404389647261705703212546634071857094162640289903746989321499474326188968110682433811716012442963525199714894351344982664150734258816344948923761460286557203623098811631161641569542039043334808454525316615402835140342645680337815551023893820594448738425578501276452812852880172700318568296673164496287357582686328383196144887699865782252552424401889555606096669681553026556610146222540987744112602110404663027799566142237036407048221554008414869763218950721064746804964644201062866183450725972930999865919556200634180002107629804710330736283817857461509142166181828682906642477750748901662351024220375723300115866848534518693323477428688627053935168524232015010521129118955217092516804354910896048551346200670463802002219569133134045317976427966552075124210538275937024205853442843442793568900929867016294383117379235978654914171581831306402335516202824174650570689588857457031409000519155230213241604819814405185081305621033507029695465483435442837992014135231919074440236652872442116717704093290228734338385301895064072158944237033520700862197302089422466639093859351774430444826404881140915465323959486171093093007973980296732961822167526970444688518578214279798784971144439369195266034748396013277370104726632488014430608679123968022089729666959426610437269373176947228650359380687437702237378835257532200849440251242759025053609874881543453489844109169666995875774695349597101058090587516441293742649852648440891046724818113642553110754411898232146208675299147651337377107677967258354815608053915352790053787826572322359782973476489020064399650678025328697856136053558429057324295534160251399853057819641639193531865752042300689538519176134941389316561062594973038501920938013528305900752373095843532076129402181131665027644944044052517024919608759683503954443669633076045171783320622387131357970987282265326455809307374531175261663898347539622034656292715457414813736333623315712957420121914759666529837432895347883658703284686837850949044344312946480785440723599270147842370012425963652166804872218764580513592532102667745527363730685356651708097989742583171978542957110917264474108015889038672210644594473237497250866304496046666373351935635627092254851460033102902805409297877548452383365367895568462077273045282998104443125018249106803180194153391243514904157603805170135672667183030336535459466113929818580521033299209405638385863155191305921167866931129179046703848727220986113131914297029945534752524412512760452781960262208663480988314478937362560410363379652629564745196485078620449624230027447559678152399202865736126708291525854599917695114733091356097845905538076864400154581285120114854485830890897639750071028512007166180849477516790054807045866399396951834191779595746259075381240144904952763704944409377917602040815547361225146537067658016507044935353384815213950312905200249113263619029845219333698409039457368012721607879795721750001310833471960330919890084554498665974227236532035282575589271876378879326818360662604706853867932208243591835866353152078156082043585910913432326310434510665969721169628896731747821163328316940608161935915029547505615632780937952837775541126019120702906408644976854595890481225977612970235279184794041792613742496592159084549965841821404011946162951654289221751911151494150074188001463648712979820106794346522678871134551372333681518789910369394739975393522642488447011613823032124836493806944052063392854141294697397745822088817156345079422719453075398716228530750776911435666576675368486927527008052831960991123918504041010742220034736957710458516808841699818856005896114998011819657183405132322998817330545781040614995593638847760541902399434005125961311124319207168564966539935161570395202145980854328135012905619463391849573174003838121317534094464313731525812081450390505038082357025163892270726341734419453778889848902771271624045781142535469612541739163750944006988808163168806408043306577188915815472261386640305015396012890143111929986952171422540603875820640255796139343984406081151575786077620616409973600281702192156342221809150812806434686827744809710395136821520657245621334798960104078668309653385805735074745482264895966498274924111792821828239044016919252800921582058202700361770094421465385235466340644645237547168057211489919864694268483812420199767332587299542756389256570686416740621771987963389547105043281215721648014246016114426474545791761389614853496046223395818265969561761585269341621826267063363069978832409261670568308335685228220223988633275639212255194054020844206341262093441101840562878304600261850445680775690675404737739769850282066608908645896684624828912107976544683175201738935087196504554963546612381822009637777898316245989164665578898447623698628801897021020189955921795060809203691071168677177352348365035704144893034738401988011170886433075101374229747274344530545017923900791857968229067796831146246166616920465897156161262503734116302419285147436947050114194358763059576345165418894618087200867775486781986595463738094923691511232183356867798598169897716582867803699435308313439367128798855760747659174706969619348812950468804081295594493631333739383508236302322672833539974180097295341412432973234308642785636552644968211988042563306159286001805436345567558792614209440535795201362674498633182304957565534857739588248677385774782588248930623794356790192150138102436571452829051203981832921771795700579067070791942804007814884205883968771595567156086296752713166900932285358696205158243468950264175398131084416688869520035546686905911454136904975785034972937371905245265835147713569026839754838647274271181476699613982631578220047031163464260839177028933433160717363389943339257712414763727778944940388224109550785098110540590480650932801483031305070707980176568436274018308527438779454033031057151225492378814396000654732932077867329164557391079453308566393034432163928614714992228810456512643531514789446047123262529011456626958840653761528646655672876772290081276264061430449515381928896885417053867226812846915841817693510569259004808447547237625278948091712268781014220932611495307240364658813397304406798099135923568987357935967888672449874339113731741506288580335182942303965716109925635317405847985931002689053384676245880807482731065802929966689801823152627595522151727530217655645782959624235757446915706407297840636253527193998641727817488204555010728204773548834628298472421705667523655478068856718690216445524838646439477980767537011004282744148067466099940330410470639118315597088650337037613371987405430858338343550655088882675324616018140602664905217220082993111646556422519745282182896871874406931158680104390112880149917339028183020806669838332031535235327029919946191421953666235217398810609516603014581792813889767236275552668318027359371074909891747636171798370406266699336143007801543894240298889854613398798857633958513291346525441720354131546058440079328023596554229908694703030500042552646320703491273279819400960270410733002620206547681156853861849936441416818745241272700670100262153612976508805331359608791179610011144463006149630506106603941940257115406499183427995870549100098546339587165774713176489146000448066167687095208858453447767890306523088219736159674580499570339562134475851411031792449239941551963381406551089910799544699550450489336398984899315557064846887339466090606189105425274347721679505668083172572680428269810361139702827332832707756377735136108102210142267509203163787785325829813381474586468531139297138678993368506738807634830069069847439123125503326336202358902707950687613080436698293296612731053075355093104883367258114165390621598165951049474408393642246354516225991336809715115577026844061077868413677520296551670550959529999878594120211913182578871485904245230953479462000951793075507990767090019809246434957847856266644068697522007410020841846905852996036990817475186058309773295008521374648557163079631562836571438120579043912014985599953251765796059245754250646332662856505414553718995004484700630866361942434755182146714920185547941284881525386459199171106658062072392195498322674889347858691637484792822614107668297279042949572427307729956038405930919912732198840254113947012982640713244622265435479531514047454285718858265779849260850287907540494305089057902929332991497052647845381807862184699503690355103828003280959729179042675371859123321434652936124636854497517883403594612848861952769575181599044069248333509350310032785768237729037280055464214017655148169661726376417385145103033432953892296609849457948413547347871212284352799185704637671864990169094489106462206729143523418805391095828871776312769431564063566909609876354093525165860111234847424310124356003824531132348594507462986463532180399442976857515834224565071561269082458809696225289455717515716262291324520479562835339659442051261124827939995124874469806472375589440713413888018058859046279775767111044977515663911271106905872854695166583375679741228339160580582566263912305089976361577858982528076720446549523478469270110461586752049826566119639418196834577250330700066703233013047879041203662421905888074413288737199616823133919028319183779109406904864814466852071985182876945515543420471946552432578158304541899497642126256779902923535052040153715141952820273069748569842434107010219151995959536548167456754605448429516381472420800391851479171026206211450324115982716143413410291926075836594529807467168490689346255003413567226931587746436674312097999661857452671684917511100513999351327514749177372673659015902334293930131103689367282985248465326793330707609857290417445193337337354187648115097198063486036631824351970317230957414884421969694324215313759217484839939387925959267079750591728178345894151105077731320003153658480055500017738852852398017702569726229282975391455063418721201897756780252586731395047601895909938140286737694960809020812121358737023421777185318912165570864236044602025357664527157368694292105156263217572743592749952813438862660452582138311403015839666377735471535994222802940526141047719437294861076065411837535497075431273095563043619266852190309771358685939399232937122755745685153235489940273011026591849284956754577431274818785154975779450941788811569035854659426069788387651293167871525320021037251192796791818896385576585576503519416189099654139467517271910925442789257131486833309384899037796880277379296770776015435162031202163857369123749364630823314781933310194737095464582848469350379208497567795871787821672536716829740683543311955188734192497006423267490865206654629880319846076402214700947417953826068563770141048801552667054795981818098888084809348180949072801817003538092596876611373598244146315498847023784488452699886025104242273684471057041193620732567367117991068781757957539829092521061620031396911025913444803180601859949326155136367357540156635824891264681072823787267055399467508704955132059849098077575119168438012872383575910234046843293318455839718104997832238219725514085580627244581032644590830835741127302324490130666840680346554745633532185252096790259540547002184329592992448105126841047052723285856961332275984221181795389818946165209225243476670536477150040587373027729101364243121111005785068968958021013926529219299923743513528647666629146029897952490770297649825044278528831907818938658555200254518582102599934445854473980428005563130905419700590483901283717020784395998874143438285601335815219069233060984895041579183814545771160489752360610931693567449970540861406848778916208039401267663188962860256727373640893458569747124453129437434769436132296700635433076497940822725175750431755472971748803530479961773130788260879450837024472412764446035460192696327407314882188167628998213287729099196237471199038049182682551591056847551012333093714513259442224644973434253381278577958400132487508021054309699618299402970766830072702186719696042642412547365832354421840006517813337655312269669118241897577698830446563591211785278762349847697012035680603529100726088580905594666831775002993287961004957690968628421758481171038594891485033238756077183196741345366667456739316116692580713674614089256551697509175965983126301681222473731806269231681642341157342988668510326142025486093892877239601717901412408465952035643767551496351985481737433442252682038360618579106780682729880467518540373666884662785244754225755457456275614054389449616919319241912170524691955172125842025215717260114852311941849690461736482643141586344023693158558927422739019578833059592120105344976920843086034578095475654262593820170263322763702319024037591584959521300197173709822398131820912997988361916338359784101617989292246783757483810228932565156437626699637765400040294609578069568018228307899266501903583948958359054500328914353355508769818583134108511164662326312037926051617100965815627285732328596030207923454587485153508866169194200693163285454480391882591238755779904893502144472373888480463623291661872243701817241490860122014355123912508134155384946155401980880366007282786685097900672410816443953046401007563757336565742399494637681444363272879843219591054640120166780041628374359921822658137006119777929517364933573253031832686374272870557120353841893479791331111921797013050232935493303415260016414990544323258695920535862511909457366292269287527752680331289730935829472552574118475587119381531703035815535557831882129956021543756454990219152008461931992898280728040433083725792434629171721778129850257042098830792674023602717516552615653332810555902183864740463881987242607020374929671050083867549702941750394201066785224571104400705351362486029138925459843212107049171116827299553664429507538423197107806393141862508619291474480969205414528126954972512484128227842290062170797323992958025417583892939285363303314149418034167933691172572585811050545393164888430937475249861748381123008223485917229925566590374761075278661091332303879905303186775951633111818539849354501297133161748583174863948064751149150125929539615036903358025406968597367021240412061017122965355674385928619390274021459216560746630076660155849253614153845467540560392695868084995624656341314536244820739870504926270351602764905443621426633731396533903225929559657184584196618592000413092429743356483107971631554141023159766081200169362315744362628772422085019823359208083409954119533018231528109776222149731762042507234319466203384050608063188152159992244732310398107312800921931054997773050730901473328071072274934745966998169875826862238499748803201706158770323569651530856460576314760246330589184213917035046287305344142287696623684067745457372829400443925812592399056478942826384086110094569898141867617010714234791322713857697725779667903552424074279773041501045589277746879429212434565701354892453447345925017124620445166869417040095000219695826145262897364858842111692754833181737526943132492661252704037447036866838246776174245452020509844587932959010143938212423577442779715022859848191455922035448672187363573956890556183670719542614735566832977941678740978825821788453764935706196985288677914024878978358286277127297364985164017058097859376505331522176967514491526675002023259365345913019982285757772781085001747161750155945856865350710684578145223270894722343188665209696537370348069355720343270011048228798312463283191267419870877804909265776456420036963759941847675456149462150462130891265657454975470775661371284048977283425559722746452898102179584481354833056212776933400824660034687105603702204529186030897841092739963828262777692050524249482234180266125866521455628377292112519074559203784357331811092438698624329651859127329422864504944204182096378642359074192267741425968137883646404335498909253721435630662663666790580659950658358940684502348967219509434241745863929967667969183609607098407661360366393704908123873603792336045779107199046543392256782119023928590105266054148094295479999636650986816588062368469574079000952924791616737372949625702115997098392225624423178330511714694724745276652285949423101289747319987686380192259415391407039598148555159498017698715388328978295111052426022291037475212081448093348486373541855111818502255290420748323174445679577355385987420063356420141678246734890805188655288171148909024319766557922547497886555145105633909647671334929455617501746207559153025167892919802138351857051884767550146601143681294102965440973734779541693651826038196269863033365567535021235629674865710308574714777752954407507531594777246959181856539483997690970735891998390701295099892251938330741365656611897596480686577097904915773355847330939362014497299247457796494258624260562595361741881642544982001496739168443468147169362089080367134670588842301112038840844504522203360047673999280920934407390719683627250842172678211590700792822816730391328376242174033045083508609059265502652630896318092478570420058304841960276961785287395452321307851320605685250172979844452961605641223021581981790724904341577494347910667807215353205084273678366347580472215068309566473485326676806402785037014034697035616025036447116563912618507110930180518515222545143339106548828611367277547261077638482345661222761826693943527840096439678839547363729807201945916235437969800534828463365165188301899412193872692004700368436572056343495062037136068150599546842557959201182348867512238947151415808482638285767783540479173295902481921172274735381972506214329220962924221515123465538117085609368480017994700068206170059530684526271800869207246191792511087126425244778623224323029753989228610329920583649574976688528942472509993724936236546878521654926862602581429914167330236799664645022779345352443089520353104687015292929355187621787956606237782717860279600321538440075571948418390089924608542359386471842977480310636292989197429701430590398895709900891754758630632574596310254077216526730298943680586552379647569676917771940321119675008342846438663100738668545056307530759410951121314070696618681351929815812087961487442516896656714152443762682286319679468371033482811181574282836296268012304078764978966470998134270581873693616707643522788908304576969595685878921840815253233764972730545864798699434415945830046727751506671838744245051558696181885708968450333369734479234814061776440576055206411444813012703820999101562439028644683161313217951951922048803597354970178228628898604919114302378847322365830218195586560498604986750648026309829574556471074074323928931816435355682415153185152542449483565771509781069161734676458796590717438759895749824425298971823316618457047942834841292605981957327824967547588733827018628785956093050117082265252086149612031117228059151115355084498292046206208962040510980266107828887737012215442192127179056958792796552584067878844470760440776005975961157706180493292133509624118435972507341499504703126710353681990402877361697318012407219834884880471876162706382485533065132327121141740908488952782218138301943060436774760461049158421183185487754411193979237136203449062578380836209711800017453271569327515553329630642060112697132547524293078170668068556408236172092067541838720099651299384210695880694482205208784848485561296893550997267773280313451816296215043248251120938224178593370510355146321031474194687428270339344050376725000005395414382264182102317742448265181956137924899504457027668012593960156301036966684232889357790635762466331008984670532887414045663746362210318214800445567389902731544282059646142227451166381045839202875684549552465407564146495733871701929667949256740480341627085923517646842245246142542802000917347415490130806413234887933255326815604790467593765578702102415053901352275636649665871452195014407853311947123161837374666804710110204289761271844972118755418329919359814453927883113674074739261340730146838587747338434296968265763975614897366561003656549418833267771012366067369035405771513731541455553470472696646799221199235198959682901088306508321900850440645328141411808323214789512650481450695271506665231581217314398134350149486090069484033381947076267646884639053428120294273499908224805248311870285522639512906170307779909418743629014131000759038613495442019183700669102103380452552937910336714997187948617714133660219182475917637201012425374048000796719862771151692710721851234699331497283185315834583237675083601315914988243280073205008126501158946073329677527697163709827877520723710835304867725641157815161137206631533925213160112714898244995297774028196822239927166426784873780910213920942247817872271418973925011825883032343444445512279288946415285916166698928199917865303119691518239950878505704320930672655713135715189111335896229184037752863097421970648737233323280581921403376373667295717686171770635323560984375991634906678938402764255962786888957716233096200640148960092369463530235290945438708549037082929478003340577687708336238960769118532347951626651162960746188733571141592819621619417698572401966629514471615059272466797745209687675038353738577317305730277015678356455017254936407924679546825650693492454339867532035360851473178116786156572764604453665125195858448248840232660432493236183750675404828208954382065890095433925953898910748552304290098946601862406889123266559895395890913589592394347599925899441635192883785273717094861874118455520472713556985998052235418123804938158233747436618224468497776869950987485265942041704100469228889794088463057847322010249349843662303777473264318092872386509587125788558805935159363189353761567298259782214441994364554399984677854806429012457579542205436514274814650310815668211404057322895834871474623511894832038362010341959300300954375225489294929086088919044271816482140197488194648961550928351750249073647221032217321257540853089807692659029342074246459084000803557715031393730876437495002664383315564737614051594882558974072469661523147244653833804831398054004890466602513606610595007341205078111532250613489537638958258149136902741547962784885527181194451428158679863408371801192605329848604807428886917667915625835726411934199709229456742074848475530066329902819110275489654724963161450637432743557854039504013599583690089385259355617794944412926887143515392616230737140443093917247348207607445803637060497891750311377231038071065231389527313871411576987475823115774673497907799588906313891774215914025791474265598147436127413729969313677459962627811885843395631027228237936417325608443649987445116545658570104591619745876130838035538829327655590613383485604783077352932250914109445371536423998251519306631533145060569285004815020911769787990623143479180755687760694965535704027826666394073290631652524033227648947960625550287430714963919546350357899965184297189782491370592041300664559288102542441505366780439854467691187655107551067401505984778457888000659880543177297106653064790336980598244324765252072478964225341670995388486574272134366295576665523645284539505767880966361622469730532427983958457125462436018056800589573787035367742085043671831909051939305181227927064042261077121247756820532469190420135696646735373318632509959661283327005550698317363029685646268712006909824622314895732514049334948668562774522304208287927569292440642325999611879584875977424721406179310579951963060966497636748446953331406374149831315870252805084795010287851350476522889582676666264629102901160994090753024901149802081052158380193494234014782101672907097007301316534006294496674501412309706649898499512583175497589070876139134675917287745248523229866120746299118917032962532249761085264936957227091121531078773332748729650247676548585591754295177898394156079608015457296346540090244619056596361647650809573323427189165813245701554111130126819838811273786119550811550367975347726395791236604965153814476612182578084883155607338683093755874812764514883726041304638576892052136578008705924223254881606247114629846600643191019830436063808408443664743201403128893203931017115297100778961363788920303052617873940712530772066212121038258047817354010792097931048418848967869879814188486338387917382463407765989830662576314818176000343918923253072341125357021202727931264320785817899451030191767821319076226775786762512440873328659627666904428423866105305343771021509498440716085292039462617712291699250520547336972377145892054024953414208659282489895613840374684249167626390408226112359724869355680046679827729115857164150264630478829952208218401038606513846054281547677314262548398971365025572458146791872608539520342392344626861795756582595410742671146172216763610410701013367787646232706268324314353792496930803419903106952547743629604218581511448845752920750990932042266359336884911974027502206519792295304942647171121485520111182187851535577475559994747758498720058480809800894447892653040347462508374464345842487035476964548356322068378189448069845348509593790777877756863258760055155398078468847128209052083582267303155846755746171904901068698812711351075563367920132497365644027396193726674054647868056379831869189176194427041545263809975264142047404375764206750760731591129240964344889480570714299243892280101471600131387680202380701668971154981509721465505038452493697590785072105845697759237253997672244797444196992852810755929203100676954293384421417127184728233314703149350801731934091508781041211853693573889771891295435400849872461175495761687393354508061239882749070100558998913240013716667463979140210768067775910281280066881919057346391109398938747219161632245630411234725895626032025910992286106006511577183637435403519470546433180064903872487672032730375995796264464951248933468921796930378647451795369325279244435151327225936450609045035861252243543653130783516675497533993274862803420729894265360918751427050669806000315024868949790670456197417699143416555114831280527909875156705270120582507174426932763867670536221663997433335537936120226971295389926764853059719056611350081727435838550909432789966310595664469302787348615420569880148579299420372754321787907313655300889325276643614468030656544360696053032413364327619792401691686376851959794332282604364733583352363348920407203729502147849192707470794074855006469694173983997405323546228189376501762663890281590090686127990373394516145962809588519724732094295232805973044818988258706760151696653079535694268848636077072817300319252484918564382162444846791044666536547532934416337906117946079514201099439882969988426363684680419551206436837789758952800177949792571212558018453936369689742920927656475166558714631506899264166169861059764922482214811936561210382387535654032128507194928840291636491307275972172560010355750578761810916382827414549649447918808435700689185582699430279124401888054785026661582104921213192693951216672758061906955593665109803339517729318599229574576185830395113687360893539888877704112297306930913259682194220755830827460095374388293798944617304084257552486797111862847415437167852021110248433535651358961528879462459785979021713370087654882291937487536775711549302700615725405486374471779270531969292721048673826139258851808560346821827621325537188528335500748874423996541122058954308577407131341008655329652839490033001966174207226787435926232930288264830021365330068360070965094507434318196697153845433172791708882467418808951792914465017149983359875643867234195760421239528934714347070374339884554484590455955626045048223708273761192723841856640080445750408662219585148010638795838104016791433740704783283054774921332677770689264692159278124404753055106925864562158445703873350720253940919886321700249056715853169090265702425897524021024004863666461789461408096014784727873402000549580608085042759362415340609854096271269026391520504144388048149812147015328853549725564134709222273578129120153374681409030443288746706286380625709275279696221207286196141075934216939728404848158829061717618371878540238273770576086582589593730911303267084795602326201378650108783237567638170281897195153410419476896830465617745001501991942197614026681975314565015326587046556980386951528142937286561096052704749109386594323883122646433265986649507023222745664106156059591153128294063240407579044590868161332222996749601627310647721289751493732995707220551455172054323296321694095601131762306806134859892434002227880867877527532215325096208768127387532780918291834365580114257358403409747902274575280824367817227584059364080593756232312524245468899758421844865152759331911141720995122569863263026843171304585046127677960930446022893551095877534852179646876937753376988909380143171058657548527729243380710395275631170518049133120810724507196586231704468155807781299872808728090361363668823196546324974885080136624942068189881222483474822023943086889324175339765383126744494198603575029900185500785893761219221982141339483626216240115173584570673595443757243163335228624586527496403988373814599509169653944722510041253703419542765448754225057558152684936448950642088841486209648588951535102237402822355756318920236418269781996600067994859521311652180032497716270043676116018752737775000123365749334722790208190186969919390831749073422299624523354401998676993764131592486039088633502799063548983160802331663484923481921005583488588457254077477011924710727488927547312360712620609421324393643369483517594725983866655438785586253168840699637954695202198160215913080166826003279055199927763260260619016810333792335446965683066469715651266321304155753776621202579242508595478615214838835278058304163132237582640287201438705795092083711463519620872636680458702880159544677296413191453121337870175803088896203721194797506537039333024308110738717438059115697117420412941595062861504617419704083386292858082148165668097139692383396486988185459510306103221422802799625145761507944841368981883114884290932640972998777466054260917496919162085131663525668532241747353987342039734183488773055342409450855822709262465080203244030787245638099382084816252486131052347299715110208921979702816031157554437065942966988477454066724116562795398745657950866114628791741958594077543386819599388010015635075538916723866787021567919540619199260436862633804312506183028899243319052979873456731258151382392329936608994356287867040400682473321844338649297358053349033287145932498194903807806621190221207880490386629733838861866119433787835402910926148989530440912841196245472136920381592320480401410031228400336922716332632880707329408865302141354048427249836632096427263335528331680270184795871273394923216638693038626256613854768741579830879275749028443235017882079138051960923106265314005469912496155409613276935031810037101712810834733834991283076715155510780878949711227836855355081330715201364837005734165845563968307771606560529850004284101197688696891257836969442032156432522167962583793295440719489488063092391927567086033824129071272231069156641686993047557725400190715850205096534053188645230464908391359577526140146708191792251604586051480960389960745684118610304846081858271166071221658943681682146871673456288258173769332017875205903350976059027284948848186355944189897935390941274743804643025715426052646854277989578884666858799573856343167640851653050342410849241589287716757499177453337550555121701644505976721994230144130680218534563044987429258336139032921715829129464139927218549252032672973059277315042072713584211127380090639623435373418076014395440392457054367945760682796344943501989679547036476344303899971036301283461671663467283322002398947112274752443100254339450023966670756773278259198127155434353251807359691878650797462760803211228190271233987818813874400368683317852431826042117267777616229933855685005082642130274899394028809627810560924476163238819155978603066508725294212706349810706099047666543374056122883036920637586953259506678664552663819290907972993869231880311892140186325954438301462785926133834883475048553434938577947849039066618833956735296052829623763547771697908334635434436910534275933851209004601985270515494472124024589712671470226804668692740005401416380825276549327947859926789039932303802260134496888784960924686212680139345969943154286503037506014981226915093083581606325152103395255246422360874570411731570969163721734973646310768932221254239572046773881358880123750922173237718971343064855752312042178213291766429448422516069528852417608533661216511073259579185280305856242415893996026442107091373009209771709446792060603212651841662876796537001359298830156294527062493579340802275343959781442027187433245074820221134958453968793864907128744947448053434309279139221428825528202182356556153940280257384882205149501207988766313003495090166253894151599587375584128381581539623295146780355911315488129342005981637030066892048937041415619806294760143411498428047638607716650136395388104547628857992456724803657763548800313290824989267622595084979678025815237336633352661988414994896355190794104082446946588774101798189311148568837332435911979519005807372192702194240500795222111738537019020840762447289212931013754930357722651997936444780456831398123090380236337986461635869828444722785766561056315802228634397603597384653951370717980340206166014779165817467501217905449261075214932889599332819648080761733670591553351697677425136374341266565458356688343519475377210640011853223528784038125372082052505684855926077634707968591144572663440979638946990270949453326905497006868795143730698035126334033297451944001888656689857817790070830075829802003364901219398184159187328408265905593344056099401646646164735154205718317831187237144472741007544669555685653035801078423509338251099803267248805682354691301290260345897491579027960879310366691790256761556325558221207600008089267240479882720749038156992068722041778357037124498955228949641926403908765739957863679787755276886273742220375249360727765038251589915765404215386728073282379158611488900581633934307119834573490246022598956555547767677514929733874267525568204410840525339074708849912126419818926813655811144102781509524068850839985677306460859571349843790437343361691726761973384212986856932185455758670563466342018748291404206601933518297823653326596286728913622803542448062022635843237428407417523304558731542630250987609528051251315472048435634616163978747572541087343346252570185320620080147414757199516917284468634057773798908736851387726969894813039249663262058172552618479260212279970641246895513648355019184255656731898057850784327309649286510597712147623527226813590976614447438927849378236514977466179394890586341969539773864631820614718083135875833585862988393370526730780862399951103004360253017037947422950203660532354949484224333186770586050904695002827060604793279574536527713550960706968378612133155328348786582681377864052889028339734895363129927464974141058080701905068154472123931050366128142230411153241626171730800403274016186449690511210364862051289557486242199638343081192520747736074892304536211622593661344861761394600324285152718743411722369777248092153983440688162409751742026348559045921736681703303974819184727989003598784425179812086178307681405633142543939884803556839808148380219545746760413517037758211147775409006430228376990790178532586946445464296080382457060869650146789739555918166711591379820010008703545119529035821674730080363846647234887592197064551872044871387012674360470822991098111147835460478867889668315266033870519151976539188420019502805076000355961972998755590106885661739144742337079530087474154917577440984404609246520149267984610047569783250451296962640722373136912279492906418408541125858030679369881264392660904484280843726601137988602450751472286343445169391798381057713508194933027357020915129528903559216384185613456349640025720084234751602014524008266244263083345467035074114336395153609360730248042059495005246757318651041924865595063261323544760871182390817595729061150055565780644799127116653963263321209401188071395960422181130473647828463253025843216538952525588679261076211350621329957769397646796789850311382411424004759362555882224280147541593976913549803909798196443872462071307063003840672453708198703695408200814336532399788613896092291959016029026763331994296048794426753470830083780960817864258543888342961021078716418440279292980057877500956274877182051011555092876604291799939202224387445265326349847162533791023374862928547419661867023301139819177906196351285570978536672709709076111262594141700300891233897358723923042216090548412077131221216551321610745578600547961474823852639322322479405712468434305126769826597646951249432138753381049647408440264264355151592217840269146983715033193277583209362242483884577312292409989332548256132988941952474836002463247101014859561601536517523340730063867553879611870289609217848727691880188249984801119403056623246367051186541511485801570910465995261374411792500992173574980631323599746839932320624247993378732671983151820535603008751377615781383820918932160085107414595245937216004280662282246658881447679306739319561465009987778410206529243263119115033192339759848999354291595550524203048134691690357444062422889040596837072822318794392837105341945292251322954022942542871080488634242092202713809181351870173831258471226189417150827707859237286207210528972945749144813900751183953290653174168276496816118124112616958906128013359488012499963677337869237711853400749824004932109489937996062181088893946285853892747828092485637901171877171858154893862670196973320834830776875029485974219272850661060471112994728738733348352629082518749930937332344656268702711267270557081172710395011367668564874582726855974597947540451985620575276539975785510002601776346981868414747217659708698856161785406601547482045818480596638727491312234117583638466855623648569531773462879350802601773784318788971758400498061944949543196605325112692315564936741174129014719834675794468549503958348499328883088364284951462534620752165105253946834618422034936219183103951953154499843541390931503480444415552555131597090656560257886086443060219318503471819359844243739386408934163601331777814119058097323434633487496031510736423167388359910411068823273289471025834436524439581760556616161720992486639586845809027179047399544258955159115744951434334842439951072154500491871451639397118819257474848680442436737444866111362612436679456699517519701588326765702783863396066041999992551220508103682941661371543265126767302666138560477379940085487773344019856442839584495692423865226641741867455627204003759769003865399898527927703255027339579110267878020924856412935814834314032129036874802571736315830198690541402809773182516662799544145548026275234635680188315661494970093642679610436884670992315344018121862268848996901522371959000313062691740070382259458380107053735262156907976125310568713015184009946708102136866743978770773498109154924730518195193450157535175562736580594997774676571775373922835317520120860034302501013276080290047565776491194977111199651058029937670874165770199749540205474563378134720841215809055655560552443350921708665691779227501804269453177558112277310462900226747575397011301075539341028599893813748778346089572560231804131723276412102125686394666286961699097715993794381910058882822475543881627134442944931782961235788529519194801205130337995220624576322946462645551042610195274919938918824122276343024865965426706295555757808836396193815131922612055716433347201732865039174908595683518509656442920546011865539633650601960185395003255491757366551797876691692342369895150617880030827101283552209815320782707691949053225481481443948091465134480917520606255888168759882558491408012554403199516000989994201794719333490355971787831772504212491012188258714667181933408759032527591711593378778367185709299288540303818600053089478171426095817539665544125514607310354874700142386408856049961397529725786362854614989633236854588829857914814348781077209739920468089434381287500199975557318595348150272083496069766028342762795919866621440770734095920894689719532174679645131875799930477910563697883610430261974110490895788517511914643163403826562594375064342673333786903813293100654084555124275612066913422969208272149686390815436455855607058052767089196446911773098846200881812416173260084854420005590493645052002948221878487630118088694950400636579241040359051301482754013560355797301808541177058066781579507000226499802629688812447521621582008359292709646805295595195229357072489045896592053345629699539159634207579625775056866560167069491686990163107531091508293413173282275869615853285371332007403998418289904052986941454936574974698064912946180830772610825898307829761523563165598354749769293649809518054135738335285830425035361551754519233013073122909223150045499405308587811114233260240921876732832757412450473392252409993797543565674636415132342825252313195054383111398531684843675897733038969673836637931569854774675323699268092603977520016501378243086703938923546596277401300473832944622796070237580272248287723709005356025187632212201209843198814428340622386340773281399114874733059410173984479469589480198519292197964299229447163316718579236438370442162829289710466874465069692239183769690907701396779695461788519399973914043436826555013772374727884243691778846984596857113081787186209783251421724339217968680173891800997974615984678714024147917978447420770476764224597715630898671003210783030688792233581863222087450086454033766106790284655762685454160895004656734560788319980240381324944116029352699439239672982395978450303162347523193201015606708216557858739537091253167628392099804750379890076426114921050833870954549281468226242591250837623684860216644347597032934678373994316449486455775349448726066540708703033321428579233852727052377238661706070480478095882863754875379306086037694465145093227766058075449382602363172226859576070785015829434502364726223536328488391167588572568708407049590540535420832818975749739333801262302820288350469827516532207056566787838696579812855241806500963333446284931132834437269824027914961248949956464440421788610229177017096890168738294723521565148756711132198333495848022839339945642073277633741695787234638875436436085502825993735722312660350702856667122032513893317988304402537776132460846822270158325568955802102122323235080456111597163324238033168531651383455542778232866960138572012135747567385532448705581897192551175172486442886941137816671395426299346918076495501478308017550302863120612829082403440528200417880375858526402991130979957992273876795419692239542359470496811296770756849238023825186423631043769387929178114598213058837716399988153284875502887498787385544019319459123380542498385297907613632969554740124875695877616282785457724260933526936278385947742058836489065399448773894762150379919178058883109336470122158521513316667329800265202040478972217103977509707419488205865647576532086035267989719411762780241556166887715948660321083568643355259655351979296952752645998347550937643832417840029347997867867956094805319511770485643431655987436357050614423820499077434738302415483318712121779971151691185617694756654879399468928526040383074423760970363368778830287084048927644863619573939589514511355951690816375720539703215028719867678780769451246042479160772090665239786732711219453827154796363561836438115385780148958860434942891390200422659014674786313414864011693817981072926879409922274283285473640351139206447363890398968299142133451762975092042657841555825878702273597046031888241154780781967892831238126131360118778035503350226014582202598805002189050707156977722567130004578059912082483127996015447796618009472402268987213254918410492765112025034199593695984506640008251685903215396392791292462122960942061178976817489508997661814026808459114912186258573874967456988012458107223187406326445086476380030414310920944394497128426988205293864393645226437357349274884111565219773391234186999662133955225831556713618118034431342818625814368827876627051795378372199123664968912640655194827205214146703707804997172293560260821989452854538322077125922659546101038127895165525416591139257871525037483249691105268647833787559052631448578225905101599695894802957403315398286322233789382731194972523019019875023545265034262169162731392593764438205439006945188762768477029417991169076887269726272907501275712221011205057165086525274772605221535349693834352666810517250510497704786527164964148837343448258315103670248384215249262797427128439187634790526349618503862121373313720815575017337720144269633318659466683799456473216256905387830392007655792393195577344451006314358463761089882031970840077600061397411388167258769062870230594162770244972231985176387239752505521242907263285700353563887625316299338467876804821525741042623191965305215937445970447175833144406160122271829950723762024517396893801243774936264521781671565725314102402111019604624612716667477673766673911225987055520547922831611911310168915960072629531744244689345082263192470561482695375101778028005107688792384017292571698741073483735449556747576483248442095329311817733526224201368380996182840369411088723672565028980270319480939449431482255926732818224804532057882508278138450954633461940927497594436402538666834083498006057318068225367962272141746722850728609521891442167485117453514833136953663195653885514890542257229581359274809875087824614209748600096911806234844137383613253194925436870653909611136634857869460187709981384086962055855465451359646254092357672916979324264438904947832221334164508276495910139168412154598235433200131601982888802226309169520009499471238966056529161341505381363841159318242624926917175766528702701603642086685389511146305630816501994463566825652505267760315466823241339551563601348330613152736509680307271501275521305179393437733404662123138856888820577001091083475670838095821757148237615311350274650501782658303757909964588939688914461605439292318788219820675990198077056593134265682959479977681738407391221593379135059415917261149760598511538071483802692453911097624865637199248550713099063209094172272660106735637268221625987977793617376587885517008247175008230784493906642905309093041039992599781061421578960921610695705000913476157420559691988299804131723558977969140761545181357426009902120827234715010305439796542210309093797979034210521271127109540763726146588056643773924398884239782370237023940660306893811861059773100556780160906833929354839347820172288452001602308627417585280714852659409470527156452114107917412493853408885484246894137022203219734919430008663493737412577354700210428640402587631564290152517260447937380721268463506647063479059961275197973789022160943599724011170991098392421289676587387399200402087797476257327359270574756332069822226645252379591230124612397837766897336225148031800224200692743265173358108808603251770724339790314422562684957987465967613468354384973198831250443537245372155226274690376260167758070477034238560796286333258227179719711177842952218051266199887731034887887246117315448515836553984329107763484139940346162682707302138270441220557806254560985981194233097779104024080784297479375620322647861070889750107164953163657741997689808151324718265340680359396877413966141558066293647652360416997251474223387931628244977852420257253091094787140504328033001520741999129543646823900102755166760917637318944033964210510311710021452114248314865321541063239908238807958105273226942238536968470949883963040684836213521543875886222470232417344476148825112707904721179676214951264195257712759057867920530459932225875302447203637138426327979062438229034340390046902903114120305648704966037379135427596023815817402385310142601010775986872090802669102963379718459122403452471761500492284557263544388546853871826379970987804052315219249792455048902596717372146221629799052737058751011550789726661302861078843370428694879632452934502091955093874945185991687834870005137486645292635094823845749454118514207962455007988393007137536767873531628116802661824568056067931156326545055467176112383310493811327572827012654614619657206193239360325110466294395444491533710042960224826463051808699220753727666596504510285527626222646000779092499284674944228614071067239886887229187892051202965512455555357687410730722587261340831711832714037102960026819104392861656064713384116148065933666466456998506399062813979902497992156796233515670537547123145779589260089912856310776307496166117427047937296544784687947938697922670155908285056467403233565379236349817985177096644957843979907619158794905003664268139363669901767878491751458893930112360680897464912164196103189519137525930768315301784607895834434803924657849937659602231017699242822853923844389281472721398963659249577318847007672289464720368251103139193093511993940797622517684252773151329576947356933662477519770191121681939552128632192968270530492156606225093652393374931626269220733747024484056326822058449453505589480519481450330709025457526498991472058784931122350440741975941625372152236196228560192759239586995385314503063438663709224892549847567219247271357098526890775993335257044432870430378409747128423241879177100434038530298649592236882083114082634710852634624987586694479023031707425971246223887756409760139053264230054260449013193237384492607004511836004316546868617833504732594326789415612408222428896272255171877549631153204537761594937007836117941152119771533731761760271185674394383206213515310172535927674698010518517217349846404369507804809816959876256614973613211291569993214450064590949358869835293404690279217312564814969396552066172432763835849373884359929481523329558161668907556393168007473618292793360809937236395974543582603158466127372643939189881408945083045005800915337580448653076773225899784587471399949097934398739551909487564894244853066373238836452647737281377101582685551372186319583218489726015784177764579001399184253045477949071986600329020932041601612054499081584127970626879512294706645595657297021968295735194041535542182169193287403438674411044043225011636964044171263277606732117726838015004086177883915660013355134032491490381085174028447042456963072391507866788900204556093073174921593244126622404024391708895792810947601384502730993643301960985944508581151539337234038917100491519785768092440009243026659881887619949699947606853623214052505048444396231907931905109058678048630270872810524840083401709553412826177656053220094982550079362685025509096730313578008451361250953848806450805461596775686403351361132494480556354507034246699048947457672137643326095418949345517310261801186723435053526063025665880327285272554767991424168697868170704560784420675165542180855527834588673394469203017320597937516409114078688189870845997755396821602596888931867194207339771946967435028853485290896353453095094493557984815179330901887014303106038048091748719717021562883882629370882429691881905517609482732786694770302319784509717206587003223323885949844036440072638970320650480750253566591179686274317738223249627908193702509792686588452744309646567252197375685678973614533246257558650805491946377897018419855584170695626376982946820279128421526477979516742520464418018766078790600923863740139248400228380939565310358937442947980111085445530389581768130870104901927400399232877576847523892804495350509077852818116477932863676620669129485889170520869211433251813082131039311560023116592723965259501171285532939311119483828948283129828280351465996434449181698626640652653467061671718291366857298924202675699665649902188759757731060274517054525909036059220239042754176189638963010095039772006721053403231335316295110055977613121796545031695184143751682892583309513524312691090579290301024100765782519800661259901147236322162293347366881668672222116369106013577732895718918497020170131747399191155326880440048673811591527440754530944008054886226599040687354606759566407716407702255060185972421355762847028151898602926135648674992163464323141165047464521197565232995467680926672523735907478574522512716198342212247192784974952249452067898705257338614412727587089350836718409328431703137674664827506194505014851129834459560279977496227295298560645157305853350551270629570729755095193353152435414240645246651120086785157805688238992809227694116254667656277963493470986621511618243497124130491503497279902849090913042147134377548339509672121480838689011916840194311638635389116377361623159475718619031412108286200622988100071799497054053618215414183968359807582120112903814311019243512399226059052707703553745888497307406825123760446402851748527406806260175188775375905068148140818615974334399892663940364362004281941444097776466123465835073699413818591291032437160499528412240652414543529962919067577073846734283121068398622929241515477598977886427036838553973940080798314706607947773315527047981871052204861457146016125045891001843521958346717534216375572080359325615968113032500664447648432326047113020779211804434765981003274892419575085335052467737942375983699265468561144089051412469067366312571926704967840418122470102950946267429378091868013968447553541060172502959593412549168083328282967530644283461296163362656462853951716141343643641057734035249450678869959021798427478039947317565667182252265695979751296565670511498121467226363431325136773462195125891479447409304874596424954770155528784705187665456904390455377173289699561485731994234581394199310852034930300576937151573112357044346036728771770956902837814937342711278863188399600586790007663212591751907702713811725619978104422955448408481463124436463978770447624948179772029167565958659805479513151275066365728925910235109443985280993873381835486020528635208191125130258589169428592812571983183788143630725619243850799268719259987705267408713660483923766456850054447554332420832037991142937893991372022657762754732809651610541521562829640412917029590072433330685285867342489524988940525348905770801122413655587714099584320185312002591689818364056269753174488767055576569276637678521762539996425035865018425023244870450409637545560742854692562704708499603616463377518665395542811476286656336279033070856531018007257019002619987581988931366704298803477106853462630782298892823046205769827526533270065583473567208820847155101447247563316000797434548001307005120942377698661819805696628508505652032812612074514259990244012695894754484785845664246352126693290116278840178343132307558283527153005661150918134360796869843793568844500028035019786667702015000271583751658289203177053930906716358868741419148555604345909386356234222678021113957539063258686090264420869423179572342533983930627119174067594472794033015650941569272273216803782797076657346205278270326913897389206079705971627949078476352072458792131367058881535531499427559814748753337539635224103055534568736467517456105181406961196898377069795276626854306262423826910625402928993383121529178431550610527889716111093170118552405540100089243637125104834945211392165873534260706844438152997541058395542346652570973220250146458593272460333468637679842724473139593243903060563495112186149954327819029477462107913077494772829767475918992575105571841180034716909724732493670435040264814370327389932914539787135771888871096570044649106444807298137800204489761045714329279743899227983022922880274353759561527745097656720601379371154393480626849038135555810307094661147746578928804617294622178566718621708702172378698995844759333145351911672275073546289585540773319603298180088154990269026272519706086842659204948244388882287216377035666606434467668555956587208410944940963609049300804448342211904332106563015552354113437369567809429114210088383076135094370144449733650259487536065772862678886243511968436318772794741723986602379757053739099945201445067527194498255356027707494976524366593220957942478345755487996958192104682735102041280962744004600770056545552794390429541593012859766060916305205135400441742359933144098143876941727486966145191153566531433002164670700492535703429271014931480954722779801824815186704821204360473638822399105164350432325404200108770200086482355563262424780674806315338980858437950424034289849103805091296958633928703373228065495378902211284553018593480083886742214130880862349347517324769522273386759960459139136356590830241232537738146936665787253467979083099425896419724979646300959241230027980259983362101336660050943376086540424540198938737425542239367332765308571819205931122651982877237263146855265347895684276449619568137587764288725138097639588529531588112184755507664082242588518995640037241642935539220058595860931761558527910335174485993026805430414717395082475064852880310305748879670450742182725790412720074030262047806820730517168440267192856320773528982775540575744698856806123254262843893100213088465492239350081610909420160944691926418730474441848087748671850094503889723063795147567283669780222004470065971439833225114425503516800722485636756822552873719077273330849105205952156435536874863629571152206940874413627908487175971832442166693584639764938826604302372364863618017249529617458964661229249122805343610569898620348307703141777520913771794575319804180282931001055907712717487859706355409772019989852377626292741384220397536262371407848399706656175123938800452318935195786589104741928415435810696962115033360199681414490547575631103667676810243776400216725383241647597187133162362901830755945859975041354390909819983489039583825627416239005964278464725547020551974014458274973909529594947541565497004212756766798529985627748295479771039104339886083847776684508572194244656946887726881358672248593559940277127082459690823005489964454507180598834273451371735786769942978978950674658513223815417523057440442446916487115466020338518334324461208482238800523395166443654249862946708792199587131396718480196705452066317115001546898860047035944291168935044741718747424200245319522642220643473288227301233868936648125683176423022011991053005710165794062311343060183833134041940660982643778263150635351839949111538168169793012792565252538705550546539119224943428370299720147602785157536261399305380074499661654627520859412898528810306507700224748471827249684633608065492222880132730338090570804627455878619007919796613499834820870332299424219746228010136987515551689999551431455908538002197054686457354196262713408864066197535126759663101695644363214595694583936440988854594788587719254958027029720136577731498994910340861015347295591981886168695196698908615120741558081765999970368535928520927835723862445352527692847125167894901349528909635339244787388184005095687501067249535583592545939386041472143124441306372926595468890744730031945992483289594099269497410985978840288543683966584661983959374780222923593935613291154463875138841159926056437350629573210919154856372505895800283496591621626596085538410735032951712820410401554468836143766949710679242378439284855525538589197342200441130671885245309789983864581044630482517059815212298570450853030535085289072506099917607439255804521794695943771310311339855179610365831989803711903538559050898631913168571262206949654109432239367546531119821941684628994404160035243979750941411013133475668368777177667913616909100395389461870971430234803041837236750898064323964442171526638688704264812169549577773563081287355710382745625486081945141865493189298412417390409741265412003458663683700897374817195882769080129893606813133940539701091297186138477334258075627823827495914372738027424365829628519333494972690718210515926342308267124130043517685915641441471632290218166948024142912004757396600158392394124806827317741721521671037437454387291732199379051078451986144282874932181375274647884929609749817229685399978254879221005271806039531793449451249184748029712694365139117452165163795697462427121462644260201022538814825866378373963775249940841132033428911874755607892912836534355142189171009326369982223371135383178139352012936690223431546254541789174519947321823342024068786099362086433107715754524147557209702414463029787409271582312604981696725996844644276936149836618249493850162014261927636780963083956455231845892434611100438982727758346333772642966083154828596064767915318376345989126783889257016735455648102359298629269352848825930480820780425467701711082084570043226408008198883105959291623703755685226734364501148682358483310769341383508779115522602137123559524560486247623682163285341106128124460749599141416504645870200247834101876041279728014218192729562120557714438608156563925009949544072463430240575932213264377175363640045068154697913612468759550358663176028252291658197575757794031604163791706278672294879831282532569392518584728190447103596904015599113530582096377145182981729255340769658852387055241388409461746438197559522757562024496437097432597071067864762775094065429426795831268880528548099332345740296958607083591473698381522177375132695313871634009063224668188077225404913417063253238273362225475235339735132893703393264939727322991025396765969928936818621032953304863165459089516226369486843729172120221448053980139856289544693921676050063688497745319191255325651132544198092609016106544920349101270764996041721656313909392124905269086781859242594117818773978210325596670639524482748318291680516903067792194331199112148772351025140428230510017694174246879219959569142495157626318477081946331241873192273896825454864376353980353782905753930449343106040694453129528749484570163144074959474540262754718142085622909968644553292430624169158846418979748551670758968869577016236169044526957804277376465336337364207077682352568174058615007260190276058071753758181079858147604463539420311810315335467109018212493397127643973396646787727195028324792237323814189433531883645712097779597315178286067843609315187998720024508005901580175041687075904633151225453036521814511628949326101136830873905866626417956767290687210069441165075030283027984297952318332460498782423081312710167793753590833757704573885873541769470194910250773741658177283665760182697214912021385468970966994315254699680403725620398590958554677874895376511579865003134515250250595097849821709533991920322486630935409372156288593067853135334958280985519449243837634722062003935348979326696135479531870536282769850624934679722636350239667535017693938661030428301347973398472616570667226870665108905157637368196457913519998386513627168479234589470129742788574996697941027317474826529607341828987011041624425751891527487734797044490632548893495788621211238335516468612067799517166982575713528905256780301566971080058065172268000329069959732694580130644112210868290491875144366681150950891157535035741131962275133180939674601180229573375666263326306353180426452715281353188400458469660807910393945313045062923282078196205009218119631799293761946124866417164812618738939765381246389699349280712405147796767618724345432275813376508596037956358267867023969273156881438631250039141241362399731353778392174348095590907390806285593746910105954367208376376633608680055775516052217179619878754725615411764319823173305322878626877326375307008841162935532171576798761124814061562253941790425489564503426500844452229079463080947581263757526066855268982223722682895043963829728221266845996591974372286417828279862069401127569180451332244186234006427703188169194527243982734764770620562408059434809717731859121759270731361691092898784590104362749336625646991939748980840931436767465714165716910170493533648882416477527292181206140379404905473503002566013641954521597370154467851672640417350865482219380859883261986536580558661797403748435811237379477706379636579162860669572334945367144183590351143545466973315541173498629615548311037872759838954133408214409493936681253533523732762205350869205245844631608136587166994362208377427199491184037107891067000291276913468164877463889928321374419894363558329344471942478013081007159485153991332764300111464436364411051615395597586991658838784821583944015935980448197277552967916675313180306749341867024988241405401981285687037474829171575830280401232910440138882985202067633132388382142226223944885806617926979420597961342420989544209810498192635601354805127856019016047751168850580930559307370122644100779866612876835009826407188993379921346929052115890109590220474965594986490456533418449112335988576558217684909687986527299635581395515402275466010442246021574768572842560947816695456929466479775378344166985719075449904935995601911998077365220027648493172891818487207086016316776098240548183546046441239021927923024574960625546967944203401343540639945617358434255837579464877348449360786032341768513693226399798311713935667490671296680558082297576190797820581157254481683640454290701046243794454718370073705570319247580266889504289265342044549789126895902099264803950457914501181799451456248053380846163324391228786280078191310329896631160067183994060778951933946127754407509587023292061614897873485456990471465884248841866760563778922312340415991268422467745888948097710240425253330747443977225533190872442599870995294658392506668281457241489007346208636600268982255015415135535673768529716815365946197631419395037776663595997035485644126871731643273839580224286425333414489791993743465811532141883665135007894328138498169152317952914810394246422454000947151027960444015154391734799595706659559086828460045246390755069778427318733288496654165000373408436955196592249519766875579748670997074159592155066741631538083866564752730136997630370027362763929321240301160704839513037005850594750782853137286691903850577137481086254054566388461280197120373416633512575159048814488449471827231071010479020846011395147964920468656021558187616169224155208724122959779265711388897217646682438296380032523714155302178037932545233254864374222414244211690160081317943190692522126986843605246316401882775881501925474359279836133512682133146962354558783963761379763607269384964216295179955739383724160643817016558292288651807252490221751996136755849326205276661688003121787565543322006740464684148333052301009671847705078999096548746081991838794621530543066937224308276362637072468284076278170106586035215886798258523878579226589303392800340498927771447680563841460177154846963277835801413033451380777462601478713088988796826530545717423877676915197203788650738758761511138772291348412130127959993808007086936843335812591246877221357195160695192437307859109246150292885831075114399414209840126715210436090143834055660936615081942154791527668824752686044250250702633367691267720513308479573754111510375763898808283924099320383178534724997234868635804793846373898140030885810307751730012412830710889080174545952138134415459311694317628453440666223793406796303017551041933390226429681745100399837085228090664901321968284212014558029451098215353080009184153448273462123229708274339481579304453871789296579770761175059559415819754915245525524951917704874171564741997944165702433832745414596494855375846086124122209715812164288323397396573306738277337119409342603778316014003773768706958719124566417895380037401206337983959469485686882558429168048630435856140178658562541466378528448956818756371099970589762769466582758026706529342209841222147550523135440987939034308197014822169569290487856905026450312890161066092962077401697388832940078291049179942900013211723935619217689210562222503005478798487182565897376937411910357023361431025621692167514170285045333374755713558012856859192608219445431892671925058978494695645689611969564773531318385278184843426171843026175976934428401025527021661580138097767561629807205325950566247301806557474239489272819979502350577132850886504540335052173613424069639683513001741114324368427785969656598176523644386126643323781986474581375666522762129186070864244747206026109271664043087238196375190014430124361401704741647497053027438181787007318557044555323310690306450190176339560860505296754502874971448042406560723059030203806787462928034617141060327271332666521508032893073586108830053360531490223461688376697949322978952728028362133894639585262060813649622615269951166596552043073114135362204008674746340373070982123358761153249565156124782633375796259445286552043213845598839595276684081669998173897557900150076923260824943911375901585682747988692381259947875631645708756344142905712259838651629379244267537604812433480799010650772387253293301787604468075694743818152391794850465327521777272588072986097254256616543880404798831236096502086546097122361923225995197568348441450434276424463411727501737897285973831522836087300185791877931644470721289159327298346234125316655320430901413258650273410972210562552106828072961371584502970460156010609192352015332191102371396668272875051355962943174549779956585223489165073553900010059455552300029818854002319192157962430237037751035733436092158903895471249202844806301599531301826512550196271791243018540560154341027255269369439551184228083408393897088144383703317786753795469080881268847913972345848291950048105192242766102042144866154969123910664443059966450619052602430763641936508051254755465451520217393080903345700865860052819488092294278319063935749218089257917005237341061880631421928277040708902090370489994214826525005995800980328036320278066676266829231928346827489025869290862096887188478741992054771672153675040014147615076812559702474465896771959503549196786228563544983040876887895141474123126863126793047907571970757541367757080801386179533588270809689487281519269680276046442890445271253838543185260732590169734286942332187443529503780712347720017775194147548204748637233100330959418304531686752936896482271634458482369693435643491083236087452402826168882008111120012007101034714663910643089382139735755415922933515949783874730678105079487243088247327650703154177640581616314744264442652021827707994629341252522310754768854077178646767417255879446548624823782353013378929435396272866365988068630911318964377897770905141814594525916299034454572137617007121895573560892117244172553620238143229499540786534047733444455040660701995753573601848600237553091365945076923019634172963743839721224728383631368102421259209225325923084295605555425854773946095087826660750862452827589639127453243677258129917255026585179280676086747127945438668479499949078542578433210902560566531804425462672292655760694033150608851058453901914693732647358307669392793172558594869412465061141821077357213612017639872053793001140200063755727949793238697589280553694792262585700543128214594851107803142538497105151373041902997853778479797125545710828078959967504218199121602540825800465108123225658694229234724360620794375038769526942449730138357037409455371939472997804099367906890826986474126398106921683269353414258743722431960693631619346169970482658160963408566324543449465190265468727008595313806044658708026142542299101161547583969843777394331304724321003375751406082414615546234539038448212083729316905613154945811673044056175899973463304871029949282209874096815058028580413800315652751742607767680189445910919907234821583962838391985169022021519923773978833241481912926403318323669788029687512374536736570524494639828056552123091165405316301243068582908912676571265636723090116133877632709031868264524509686054940972929356133550668731962915185951250570278647797729778813112621019079033178699518504139383549156142057160886084625391654556614542300824804906286046377503656723190666688773189274112330511781229769972937807666178532335880924486537333207539289479803324190907900472234006181562808967594841122422864511488666768316289266638940235721218361183071317666006147358026072951521537696400428841342994876595490721388377299489094136273573399872775772015784757842925390538790058194829095085164386929014258006016968937735608098659501449922667310842343536677172581826924224015673664149160649486220925346678696085914967059090005825606425042120272132460435107311759266481359645876734899581829613328475802649227894720996599505081749971303498307845494691317347284547096741278015322993646512458495095143789575647913689795102515672405517072169704882653803478761279708907004554644705509069864519688159696291907873290474132971034060815730119493544182615570610876048733926809140164699168707048708197315234710479006359179693748754162972710078927046486373902186162112880648635771648780953798129501976156081907782094085299960725119722774177028693133807664413318980105669645491106710861355900435662748244249141890064862239009996546632903706494325962229817173475998005540749751464580098470196288418236527440612741348814889470861307567193364929246404751867372043078751125336152351430280457991387604518999555283716976177381363702815595804829477086946566688069241265130661567440341952169703226961364792542989797823839850243055803394691210935375446059041124370684383135177883908336574768984269058561995277276717886453115914697702239663128165810023735147582790155005589099827979743614313249725097694222531104563521437194762489070093557567346132520262054873523366669469145945238404214166231951921756253363269129839943778097599637291187254645541103900285521283173085249344693773104831995757743207195700136798344825445497664387475174775104702188386394784542302127303341384294322664743894879461632744477113481857967528313806516684801300131067591259248073370379645765011971563593484017244953350110207370515209379529298978666844494682961009006338462910269778280092384953681312607259600600128347991271341480078661896258021802888152570736622096103084809386036329332199649874321872115630562842869386306679649370691837126177359958758865341498822481949359779135558077836281312153628195906195369310709981845802809223468021681362217874295562981170521340437144285628371326816748148868635755031235993835903294357639406962686013465955811481533922582278760032615311676461210236521912676678018508171919661911805967438180237608016003743445285322897831454787580087792009398924305591047071433499282104350366123057982726402946326312855636201518817210004503790041452988899085399856117981850787483933593154403728008987740781391279109995041804544480340415515257541674487296772078817665472283814202012634498206274928210704701062959161994969407444571555443732771521728066666047539611821672164366009865967520059318764361921170723459139032059527396795356420881585174326248897183764279144242914250053923498277067173005422546346510811374865063233309730884233175371106229522876966908519797171911807711264210993208920636552306063119898309207110364940072114148304848252507781524659252639886752815368907763292248416802597566643398443000819399463071628213073556484848971670283086180325201291508676068102809702681296423213000897522031510620315521156652750025576006168877018196841720767847533204314462412845622358121595086410223025560152605848214114023484376432832918045855742825271315735015645326753313034896326146790645502637839323070581226861052473698663128661153586734719403464383934673735660215167683142531615179535105564323187952692376268841947381696388303533280429138314678170273984079735496170671280974063366088780096069564527442260224300112662704426094229577273229982163753006371001296571685253378197682486520415006433551746893235892005429932068554490985620322426521412856817530286734665421169010982179346478859437458438297940737090239600870051903959265125860543777634244122510413110728689168578820889647219181517559004297216920128396561339053641965170786916234414836041963337532516863373050147957307669384806278608982981643757535245668277407588171464862978035949237150092581291307124986941919085713171648029664302817572648623737340104856407995966801139066604054706535585375681662933998350433703094374754198440424539331072815388654745979194188241983363370710132665368820500795816304879567563955132525908369036764988860526361193129624217900490344314102780990567228459956230426658700643608084101373038138300958053320474381684592540521729579732950451226204407320658844625635831796056727949119033089246667873441932200107465947850133155764056371792672562962332208519929873346242818387516085917757602894539526255298886465589530590540003730350347758731651738631527665424737256399924690686117858588980541983625694063719769486355006925440350800839838165467442629043144346505392185354318006586803989458912769070850038688068191225039291891908586373096611741015163808122825662391895095890887876020392108528306028909670765784656356119936625497171888132703269096920533302944857569140948092347942634228553426027571500047867714341998443590769171546844404968078290264228521670092445064873151739279929875125606903319303552671027995215490005275377151585892370893352758583368053635532036456077593842615332783051615407540737966418323356793680093680731184629117919613433264751692346599085786764867373070172553079313923607920534989536557823595586577518491077246555676813261661077943501473468886353980731103312652159451128959975140059486257497147900944191075187319151705236701024097874332171586916037408804628246428662380686562775289397557913912444396942905384193480550984679038835313478400814362243902134506343729093474156986235950310464441060944999985278120255653083415730026805963197986861423428297055435425299897544815655186388693784289882600699853184098600429390400871463591571519423676013355939318649352007078768902164888872879393108449394325779981228405083992906293150233006832423968309945990500519221696300494637412582076380496617196422745809113516266612130890229496421710631874157663249559927343442607845047513632192448254431970855033529174577068557437365399191066677246292505006743525946958499556841478252423183046488757647549019922559793038714931617533321522706013697078143871097083468521959308239598484126082037972655810524536563795245986337982198776523696149739484765877231335080876115373438005136043547070732423328646542465809694214202540254421727418904615797755111987977567615239389430781015633433490302722309573004011022894209505932537313831932134223632173845056731766048810911506242563661095878936889212449189805657861264929243560476534686643642256468054950987789189756539932367100055719055897375205264760790185139931687492798382557767650960588761530151458898512033521641702392688449955965122392053939862787949073852810285471451995009980039541383213621087177438978980935219845790014357701976592860631151318863014951313661358014389280475694272502917677494834977944049421817282930540242149446360971263928709233969916090094289353206798808631913381251962826487641095357775620811360266599808475910631602469648857403770905167439965534591563034754719598729426443249308742190064201390289126938007727050897707367658031821594232664187031180300641339496927182631817421222435628961610263619475972450614342860137777791040514583060150424840963187425130316255031994736834570104748193223876748360551886499395519752249839250312099621186991346845175265275114675851081095995449991690336496460377392343277866695745320093738276560037890911934832772708383642017850603457730990343398510882773085216345820500935882092792961987351511273534097669777540412936873378780592812677874395940063668189578948026049816195073740935763420326573356583295442546438538887049424065132202269280005945070463222723583628147927889026248134840821126205937295914656192739839126546742531335844943217970233961334704627801855565626543681596177859277907952753933588388434066376643338555349651790963889618168231104974882794187422902820094216607963538187468985608989073028067811277300006637209279822086557784475099439368601361571600856018750684719786698695636243408904886535812386328854688900434918548893249671089144250607429437787419354600434252226185635900526707365502997251150258219962918603974827179877412861022104047925586349621587913161614181411409221709845785960812814528623024748486886365359211378164910748245074035534916708531496798438575667664284250806256416102807810045697487278340251063005303652526855677074681353180974229788643076476170084442928821324047932631138999919529566847943287440267014088448832987098411018828162594150408483944540107926921760792968033506662273061781564082822764161058100191019389421530822076430072133399542665005695283650609946388778106877227192555375989719233433615545033208647352751312497792528747804672370414895526063978589867573415571180217664422911148804616115890060618912266757572244480278033186708686054770791929247885151216736820571984572380281005177389854951299451447975546410313245389154902978270076417759373486564001802363467084270845566833848221382583209765175444299719872492640741790487972750006581180049616331044079536644614655175472749656114448223338269766414551780336574289121662570016174053966667593417931284439875653673292254215224799314329426614708460737359433613679645811784872084467586604726169195253981178340499436014789396675183109518481355124515819527652621103571631113378633408108883552763988173938508892225334747816378134748833960496961607441185892599591066730895927359259503716766375645312636061726151479071957535092902616010879664031801444837651280288720081553532374260562087011981292451075752021665050856093814076449349342550452964096534138753111844921422382652986792850110754940418596719399104924045803735516962429438341392114813588547593891476796938358893617189972665680455130021832893503260809371498951432333608211428366527561243712274922548376246327340251103764722851688210840289646152884209461707632927083036787026440846382939207181454072625848352484985300707035768541350724039867312007024384903687309337727177330334819272473914751600348702674507357789826648750887816061199774088209872189186422226134385104423627290288314262565520280322939144938857520808060899947435216677761516847394168404041220500047598589790263474530364093960448436166504385273844599111101992024714234255821837050081594281611425746421872455008980168505403677398979334228117062035732822419866697081738528568461824400068619654177757739509640585558991274523535066925388047599524469106086653756573367323174366424125284183357994734126358265588992816686423160210361677263596464586279635332635312305844996979730166125113331272937844663465361728289921033123590337464078800490950418389581714003633054362813761862468909371742869756054700090493635989609936115884560019345260627225436758225399520732981692655946315547660034199349083544418749225713919600888973100450891198036494006718595064315922913886017023280673356220933318975681725778603244249613526474193745674000761608653042216323503439197031264048041868821692180424730562053914522757206399724793754163397934249831157837857985643285024725282861675637382633677744893402483347922275487165363896798514755321479281260667109221117224090179095161119277113444501461295847557334044200148153795459733982964529099534872152293623515774942767773339671108141871438431858023648519484824010339114598358255593215510441389988074241705725810797505407273244548162651917190613508563100546808958022825256246210010933197887846371790436931960284738239084683829559531717711889071612619523600263328118468918789812402056087793255611195326174661492424242529254172608833715257208622782395770896844854617566771800657022752593212419099920761089266631891406989159273169880763702192764995636523081224305384410368059332614205828844881148157923070736787748715798500497640771888969591362654171249507284022285104637965186521516694768738677826122800322553023403230775002733074516533207588305553703955676410286832243229925075697550076713048470480091347408180707235909195022598476262600658817283412494556438766231014322397796448814818908795697081883456491509711550992967353142285526652769347643970225478049119147072549311643735886690546517663254953380256192514233895611744579246984753168222549352131045423473910199010774355761429263511447288889989990134105532432852191035593437656857191745180968295549629877740676892590921335623152063908781525835048705815472987592894015000615303120302842908211424692598414920802693326537704136599114140688738856027131777296890099612059626203389635120382198946444806283101649313755382790896660496938298533435045722082011740741655247425085038513693583557112192062865441443855194426251521546691646608170146259854102333783377289984417833567613888097070763020831992123917138788877544364795574444444891810004328877306335924465032344139652857058223570976573603212691537205407763321912128055637447074668463718536135841119038218452806933366412933930261327015499312275344335826582665755980528696351344098461341643800444913921324537724342283387133473177796225576862487639960619607152931300139920391374382515146249442931422857505469346650155338413843977475982103597637848670140683056140533964345505236429776535754945610952252083840421000364548865772200263294473646343298585155839500326450204723201691575053409753949715220033588996597167991119288415057335239127961099850141063788891134589731453760834055686736576131960699271201476039158002175050550507738534611111440500877717992884854167462710683031290654594224613896532376619278008305284217544688211030266204656944041176347945447747298567167250374507519536926820308115010492900772355726255096932893540419307307183738436620897178688108480412681008106179988227761431506892455665329672926242316271470114623274528604004797017697326481138057253113687668383957000588260589455248484296413463119918257295444105098917679297685219210949700764108350821527521273777469257211302763131493185801658650454942414191916868102346536512368853066465093383550479559213289928902634115371679217457932046621724908271431817827576036382892390238328707334190062389123587851809107012408447521569319917923740144503430108188056455203794510668055628188676786216266862139929165668712961394779744792059863641352859818265186531986504182620082895039894714735071401990656649124950629906266984228415639334410048138124950969874324726513299288917125347502200432473119538005561188386297785367299442191126492975115907733910972725186428973687918215032227183767164598846645771224863450161446739892058940321264711669009003811311792976800264547575764270980437615553720938439173915617706287912915000251438296057592746620932092116869959697856579008555019081603773453371560500659096820148587517776332259830256423315089195574194869417560604588609783372772560460582961309690585993754490739270926952636616076681774178390440356828660344917319462117408881501920391946111451743561146795494460655297182987423831953178540194017280357312201065174622479526616681794812805658389859296856617759872588679670752112326637232020536476971611960433249594470095055519484271223374052212926089294518450905619488316019065164280882964507511087156794622873552280182254081291280801052394424913250354243252641435908498039959838363068575888896249560230666873487896310226096147903393379436599736600829821044811573157782372488911212940646743432062553076261701980641714012771840490348320088240214437735290767726652107345168238045643489598856791646299571512171763525238016386865134855401069883634279367561450116670854556232416572206138946359868463797176802633253152381407660324798788229743705588232418609479786983917054371193206245738902637187509719743310669522242858556827782619061975175512671776439151074245069697061873096948397720484913514877513700039239367912424204764832800979856035247694734403117448550968084447581880443183062174320591635350026951499866893587535360019476226627813401018171789344491017525384992489765151366530128732312045615263040139662839192070831298662440432898571470109829990842222846942995192812356714795621383233407816041855214564925958575729311629790991882894894568274102908482210200658190690079416809737015462006568516418822667618851394081315602574199167195737678199917444279646724119522332742026692836330643087701137162833409246739793198396428330361822429755411291845034423084057176508460083937701299364290840437755474786488338922073928983274965540370755326980412595152309069153126323959682263735459749865149217956253196101333311790856130990058752934924027623666279473189551720454026655391910523196960358307827650516995865579039709377826668742247575331188992350395750866287997021755883288957408066683284503763355059128338567984576815854596242256702593571885040456944129621253857119422973579602943230672086424871993951415296910640526696400709997515506010425723712346536851650260450257996752498367737028260342536574831000265079663701567019155610389009115012655014722803435938042557980514763513725167463216745201063983712194623460658089553707385066869449010330942112482275011618993277060799048170793326879187461718593274614523867030687238146655349314799986297713965566361984603764433077496989030159424571451641484516140303035993855804231236898831598191724226545522929784850007585588510626307599974625168479138154082849756892412839307959671026428614334186928039174134129938178763539200668633405033911849034859201146454836797829348776974330054316260686267304359464748350948141360335871248021747163209079324167001744916668795720170800632515666590210248248259717358222633697306775564752967308226134592735944825878186078061554250786928793894992923667548825031918155530773693137837750458687403123617022929836259959455657035794620396146344660038649772778378969330570132138657254704108580563008450203866541236868053281393830364540269005283009998258974819979939203563591423573197664005279350443661671254970940459008863665057556221205813816789027634431922625766698261667907102990348969571131207958253338268863026530070813941187306610488606443605223375448751063555525501928111861090733837301812442383040281877530373958891903099626055809802115579138425349869111131080586318720376558799100873667785183835333741561168071046529547287603619542178720892798404865555413033502431198858271494875386988224830965060510218507431460189587240092172697692237984992518023865791624869011648147871777029200457586558192547847425416518463889032057343436337906984510688667107139977726572645672771115376055611089589464671942260295624353998613811490583787463135993411231560375995370251372704855373074960091603702482628286332521283880224840974803018702769119502260264716545345410498084127980240294558358649530106347954175829627294423652187139539794960222667959047947091254352357741033651153822690951312370839507615177297108038133874855566598750658763520041870769966309072269510082599651977170635459045757379383397872563453982526107109345324976344868914669374672933666765998575407831899354463113510170798355707605970643021067580791893372417296619515619886536965764379427533124317823521798594742864811113799841254756386746619170455512614745254428090952907984479810914800104538250407209684183937667889672877118809182003665986824482450084974051536202564233738294115271401844264154372568092100248843017311309974095642231653157535813502824852038979516895864181469510940243930832244521126589069874914474846062430005175979947714979469742669178380735653487936688065830289727873701184126994006192069568001678822233128090430862285187511343140649968728858867648886442575415591049110096943510281214607244879491490885604065672349357253115591976074637989992112157866120514858957434353523586851328330462874216743278250783518722650975416096578450058633221913329663519635133407998330763237841495735466004716338580426302313259986880754860770065334994076740831321385709488688094638537395587105584329647338170181221931430895017102105477319915017203364279984111731422082382374117058514770486254351139199425773757072315858517747734469902304022457736672565812977352711992677115217615951475477480660106209478096190506422499380895712327639656863864337910325087589626689320083978722409935467368151426768465701022633515417671069598575385955271408557437689525829908365181903977751270794830750388805368672379579962917746342416255705492048911496226541494717879553550888456231965271575165221623410701699433972606345087983949619983052650236579652968954063871827612406787957695019495269179363871572634625825080022734420404820719814582847009777268696656566636769502998800001578901843165145202712043705353345846487880774903737944038722975779874837246203040975172809692474425775144366083876217253075648222082184195202788437723954677655131030567431133565976248793166237362587011158318573837916746574807351858910106707480189228313625529047816897707660313152910535089877569490839980805792896957032050026691232180615406995208618946659902504317488390075708849162586203727964812823660878221780530600252226971874991453918642436871951911201701898043096189502559595713846752545402004842728990851873111703715051607818009886109489625763063861042750053568555586973041694872064534951514085010207465680061636138758291457693870434409271365219520819178770008089625178133424404725557458247231736676667018947367686039377486222230300108818742232241645871389757818200168272085103899732491504530691293746113574082630887580927927851065827799458242537705749342134480571570482000940940717393283084395697315751508476010316824047770102411722348638035829289801709460696622307493538878738182660072091110109714757660669528637415638801031415745520319516401213672257484705385770123827753155645268546982557448388931557078521507520729976451995967119430670209214977176939447664717866238476762433588864984820112556229614857684225693372109095536207037728342120955711403412099407781023874377505054364996894965985530971029914446069514017061979028914714450353904955214107515855672330747504378923913827118190955326161340188763267754805754151990924163700143561539261481643299087820028378495902534471786005570515687477847372995268448182644657940223586117407892687610274910612355151616835112237621887563981357195017304622217688760391793693348489976252618031448789522664721755427311023299558055504643301946018402096873376070278573261869078371585366752482460317092716313212649013894964373873443280287350304708741801644042418133585442339862528878200319045808748697342720164978222965475441862499775905315891764175359136584436723439612752901852744108997939323014380137641449512138647954642539710798622378378988162310749652793946182051559790217067100981438881186601532776444708395834142951306697005957820649416268403735449562889474151663638847291267092943003284467539148339852111611641080380921106051635807817712204115635459946164312185611418194854621245112808827224323527342342980338798977013644129488759101059374871341515605227789591051831945648607763382793679981037175833310941302302990422647333473144197875378184548113514879006346289488451940718730430064830609945734149120411072952182285703919558877813018740196538657027940744115362230585467862594464063371233622960182998119839802689372914298188405972571496020336682312737720728575136195287385318597826609767744023304428033158933452713515207491976492234945959042458468060525556100537372831470113324984652216004076341972569120494450390976621300494186109871516381671901794003708137271215901882230484707302098116702475860609525119525382286099778291851200294061565757227014776511646719960624944721628313661393167114782157066859135987947011489280167115980104110445564166421365838209880939951835538862175697810001473298573552608172288818186769410806439597772957847889204690954755639560719644404636009089132660967575260169444569433994418299944150312003961948292800441211842064116499496395522386592526302486532563347834481363550016183288463046189709993472677241631746194991194840776095850773985401199642822989649053597334961949268920652768227778028880035408284003814926046342966170745554239418459352685426047094317227994706193149228683646582917618026464488475655463388676599108622104442762288672868863240980530242409833066403694759686862238891220986527189638569343988190127900596379983426882944268953975434855751653048610758216525357640989911228000049599125665244713985083904409444282469365719157083781267841265051121929366185363929961798928166319402688248528295561026217999189942063633599318506850567533320593716320997363511541062623014273759641337505056871636537211008305665811722388132748395832273889711156811729457585317318595367815188147356465328337690053377315563240840127929782593210444382750469718256992927506277758960128408112862688726353374173587710037112506724237197732602309207726421228948923040569214458517962032804325618993027866676172695710158971299765647852960927714097440697622292359307982130185183166295970581734561307507197933475191838856741575999114422844956388027290553533152677711981544865796043351839665519766194984623996635144854821250706468335466795396013161491823393963934916401746792653355611468551770221897978026477826236315793935273270132847766382080006381984183942221172855601578957414239735029023803055932750261427776393774280490552709608036164240457391391470690561032357600358536390799568520139389011723087111967709938085339836988304549065779254359012050604937619848935284285539058825269812071199453225874385316464556735200431076805588835891210478083859917572800751783702058273227866946006628933325042731974363338065561001695826669620101363350728635083447911627568640958085318846315289059680057624862897388537504373522163274491552404751268132864630356885971753959003693413024794519121451350546369579986869961116573330616631794717614839819486746678517934403179137916598630844561152287619171647389321534603944685719198426188912347932151735090589912479490998197206342725844370227768036430923536834429364076497160367672950547113002677172774117113074582255307772373118742544329017997046334811621217990198148391337002420025037773621319421927513869701482713962254190266562178500350133415725175127837690509582869567667546697654585343081982143778803346066914890663123126221958358379709335166755512502282337127677837041355876027394199933757813616942715638204594019640075510535196280915491309693745747319628509809491612034992577379196013919440824611079062170490209276429853464869206475742545605075622011910040843905337675109646951969004929876789869742146073088219791337439938717246353549282769053378594782576344695758415587419736707154028050376491653928982598880363351762893187472916115018934084764230416365217804579206389581753972625480187471066430243130626814230029547972470975299084233535408221474684346627560483858452670710755323410404194082947022525510265461393315125465181605446896268297148013876667313301027290362282450011828360353173082657412301044530592059326495147158495185753093166337941415021610326553108189772681579556792385014569579262643461825556225302167401737844812302708405994389428422979992799756552231176687281414227423578034392579357522341727144764508776662134843650876300227156743732244819585753163679476642917122504871549677260492038526249439328054985530678212829357269248318992325253826664277973652483927161161978402633170812568298535484365840186143292723309535466489848374559269324309248599795577594402309705333157314429090368774262653442043159608386518468915336670179717422483702356394137667293480658791838390901432598007280923617941521947342331208277321169109453507072886849700212639884852806811532962780750093136282149300695458155546108290154350060535821283724921018787829739672529139400767248597884514157950223825287395634501262385432440765431649051503939536660551700171529464274433780412572304374073353413962109155566047921047382584258844806755827524314744638363131994790085094353233501640813848764933627796423162963221669949083976370772735398450324937903474558550500711690084093864238964240228460920909353102765289664642077899205222386174576891126896966540233046173319155927445494099468754045394799762283054936820885648183355137199884809512658041049296006856728083730142240008020884117379675310166475015012814502369475400003871352612751683002414961452263898506325849995973522429693324544246764945901413358971542852854384316516203319564273549642638248985712800907031924579655780799917404662874119132974130827245122767256801768567769442712855609152445233053369991134801388472588591829475983813448603572156529206403417339366957014267158472052274046498882618927485296831336456336830625340527696098393247565562606913078293913634813770378351376812929822378767319064235335836180051194856924190452547883087202975057393936673233070611918490710106417136998562595328160585200937685707606676140460909500394763066098444464406181792118218583971976944434389151773768103792390251795188222339111320077464069834581608524843296309004665630656815470181769652861539348873411159001440999444988583916023847429255071812110852930869595432074142831568299527582396627741384360328342161923830078713879124404271897551818301486992069408545012567474728977618197836626165734970299512995335638083175077480949258622526466713048075500689163346913153410680924375334285757194227906205614700932397807140041465591023986811219371693067329094998929542841769175085374333310838192488035784450223587067810453534502289907818285427066965567470943700487077469817621432296629549025171297003133271014806397927430619584662877086649965719186000473935674859358026877216142030964019852841925830248007222525608295947504789577816951841424223591459713243411667949994081964599649674818929058212708633425340471734568526220060665853903464650000862815703399158107775043635336627601599369492307621105302052004320600980816801606238840268799185665846821309350206445379856111583143748804157244184824067611305042168271580494030892614154876613442200510550891740642352973843568470407719426423934349136298435481348926878480103257757071944629912346540231698574898296970923363562797458992223140364154999141545248795603490205545083257141449171177369151401782366219396188033506203662876281975056344448854297978574408566257972895222475911906917178835649520414257085778911759733520315997160368983820335139563474772764693880620428518422397283983744901554647630370556949472451330239192771288966252905692355336585540870856851227625265005434127186815733420271357638993369420982868512040813573644169045637384028711732806909640875667695341824509576322990596878725785735102012946183344406826304821611345565804306675482456162852465585935030682811617464462055314502521670173624830342027637371701314721265811885235449761280037906967163030118341958306025430374528777414890366563848587384760842190359455535151578784702207815195897148266439704647956106476653927664037534592371322700625176512587544651654280889545205918022827208521227414216295890241334445196015437351087879589701389575120547815083561969650904054074126627574296314115230323420164098795293683533547918051510672610282972932275153981308543013432016078361458971525933850402200026523156396777930375565727200366235190480730475354810909634085643974834403283025065394357512538346298324265570313153540252678608237850551985254044002241262913676467728545910198355600433890074136715024215476010977348868440514600933391191514394390108438610527490108025822821205560118312199069312200219598119993622008808249983153694249313384397936855217443085869805053261288531198029210677224029300408051547441308398340734735974896308969668881454566272981428760436819033906791904146869947100438141933795838332294492974464853382555398884626244507724011408705371645306779417695286774180444274046543394096806302980291005665152124047935758170606310270499999938878309382359141761805107546833354369802932218310695844704169448706186825944308859910885813842654520263621629548477290219156382378908790687424236283687465427768492766336757543886406428016693973435626956656651043974871149073091796947023576481902918116268512073539997895481378512201078299302832077776567561686816685824664153712042379957458131536128944629131645536154265601196137988139810864046791506131570380323038590475686619120205278436723268089105749321589363574770095842818178323580617700267035479789810568033502164038744469074948728931148437952563762850781256124161986487625434839373989177980100955101905574404268034274612938684970050200882871970324037703557155369283904354570262699538164930196524461326741016374654044062800450387121911919569969713733459558037044754818621475512659235388232724496863109882273804606771294934907691226200344188061478380373937738646219957871245334151809128174703995397624406134793184863002482642281086273564454562942502102796693028459037837189307349949691542498465465098438343401226580897086283134435183369946001585760683413726708478209020336702335335785729982583906339034466603551944274486278417462853013569108429435334019887185696167464339333706354685880719766511989037152657414238142976732435064049781612072070756667209263932717701097662092043562091054718795108864463037647493063102996993960390381151153330057214533043460716137205710226531875066794448777528729527591793078751139507046636335596769981672056217798458378050258713484892936198823132606109790812014313103319722839101053150231200925944499317657940480365261451343108898871847665746319968729738662542866644811059610683977204144958126603411370770096812260281574181803743148421896634924667446815079887293849070022065301725025718626112506394417196949301821973492077416266882555037103271072335259182751096144412503226595467250998486459417466335233922704519893663349554261529163823349851349975190347506178386113566486359670725499044691790781833253403149522389673441561589333696162015277836719288288718843235261268092895469089361959955333146891470294659538269377679022195095887739139237825913211895864937739419757500127285152567613234555450442381106169278321773839300342678438245098198651144104079434023406399815593938025385396279502608075008777557142555458367714322546852288341747085297583330627792482607292245620145265091970754132510888752340724850931909137089101856789962200238296968292077105470686466296892992031608171937150215494860514070673700962195642017959661594906126339405696222529539887563123439787853831362664671006970517286484088358452964013313166966638107032515656748344494709530183814796194154968502356015557071763970108950441196085948481616462824069998249772105033529475998424110309711837938782003047142637771963831909353642817430637831674470085929851537670592056352191084761787961765285124093622843383589306213891060726587640315349811710224383102390872163183294022748765045078986563011844034087145261616672245853762552999192730222139354487672505162833074915719989236366820806642104421035547292884315116924842630916765972651115146076386268117017336373268133467206264806324203901059877234921001982014124033156647020682345037225101535528421623034213444493414406369549387444471578531729619748289840199805234560876276103658045725314116474647047074921024694221009614581056484460353878320218675385292720642793462247998159228393027696917976281599826702680699237870740451731601115063124561831431906957847328586503679344400281650818118090709096360659535193577484680847493024606281677929488275014146482645970333736148300046461988365691457624219937912665055851561467530747617731370728926052149126298128118545707967820784486214788113771120310179371158003282008066275014061647841609304272821693525131062133834660995070150080824109949324608363968417778457397006552579048278698080073775934886088234871018136722295417367938449916911603479922399712097276691274193860080338628468724777405583678335280122076135534353733236853059249220948241225839094577874188964517600114454015495036133921020616227330081629727267723612410567017673860525530240382087348090974441267240290111840670815305733474343287089499093481690781566381713491934813927835549079973715874879860248162920450583358748051994997432891459316644610913511210935362605711010312457428900139370837832280197065121808648229441819799144539637145307814302278612464507341180430070153427957122550738562889036933028996033851164948091369112844046975973209996814601135063087011841197062273881057092106781948844981349282374228612701864599233394269711036258995982148867414131732630390418325725277910051945599210558040080861819018619616523809187492069070271456415682580482436069425477091263547087162939225088957249788386949545798917824797984814790775169752983958385254648284874107617521636200462688018066430343405064872372146593364579760748191747855918605078009234971467252619310208565674013192271150509693327517810566404115972271661049362661648419929132792149363889326137440287235349655103329087242159590583683001488393863421514491613683441852142053586913024793357078289478962433352651263985401846037770688841833115441377826184329283222329703964948638053688779639827170850551321690141309570013081791766576059469079950866637693797239845949736466090063899126927072900889275273532532498491807613420320044373748274249213240066465624251030872488919347784608853395655780256564566423398753186262430337598308357433330275855757123245946833730707680464879940224624310083224375187426216972228125310984170209822101621381289128691016883077447993762542028819644560699785073933198337918084571796386887863599768873085781692011361158731510919043899767930863923841175200199877631405979902801525180176407662418095352864715190266308489530755596982955416570477963055552516308925450115933285426648518427593812793194154724814072155197721491198092615068379077358838742197826568723874457465546967924114300253286058797057216209376531227936043940768739415303405400420514193945015771330879997700167493464696429584895978373738704788396904125522425147128913136791803898614281813109772268157137447237582608432542683679376277755218722255341003777178116837001188629522085293701449914320564796406702207239612985431481112355997433428176708404527552986630704657992276549991931205174895058085550415733456747148343074019819078136311557655598965510540448397321641066401056535896712271239530897907078187193536845144292739504425457339003713752038457164653396177593387142083191274794570510805145587886475945258269498741675038797390212544356878070154361377290183336858765686090275354943169703663730712258416492096035363390841863418326551988349365313950874088147612973650385120216445353866158369158007083827142755442356680307894113518846954059439727181763559853764319022579854695787058523832270142986634795255401335810712641697748295018178054800805259463327169674712639121343883332620777166425448093861546543124143257507030918514993621569888997097898520604822480316672140185187304267763358205673449823167738941690646458898710218848226885836441002005600815548668270302398213317013602024710301611570716299910051437099876982420388307004459844531212109651981944163084143854552414280058202783443800227815628737859636394088486088351370649913879955672256566710794569247768858211159573780185821944747723768918802183719290047833724485364005198328660695799601322470236733021686035514045475252402110104232168449099205047772462644735418446043725084248966669638560758363296698786665405138423646561351871205632504399934761629064907818399000871501633313465550816091650703491315035600098340625180436076750554197228118829430598597870948072329528526158865897810746687581437788071732063532382869073196668830058814174533683166460752953741854302084262872039654664233813075473650732134332706385468288980070626597273033846473079225316519134577643053604147230146687638681181024448395673577184243051833473462041031659583838244346803228661932406662007649998470126234810743693060761110087443583021555057542444832337934445525511746493472154380996403328051968302043389859984708828509434765072505737731059023710054121585965663815039979414055363124740342643647356923742947851432294565759966721409563302048529952681232763319106759987370088841515319122252424155226062456710735478372546111485367845023873582855765003370054875915019105668674367267860413084188570679583663784859802345081385768811958385072510094263121937237482613279316503319905325909894189083396923489136673170073851287589265729613460990390296617264491374375672594760623489697282657128245666573300044662698440100675427386561941740366541927200072823167928471244365824206845513320004791837710901101213538425295653911130938237304001455841018695731574685266643701997700159541722571531218673647592699248885828619795832538620542099314707326657482647466165526928043220594352990424445171105114912197651158691252340649321506871086868507044006250108390922036059031400860411362780210571309609885605358942697974303813760446981968124486707086894166540994135851032257963976344896124319252480168939502943732163767724252012490954228520032179075626972439729320400587372023339331140011796045908972838274431541435730258534236466100848801951422111984636605655482074483989368269207338096281203512348197060180788637750519118442583838091411159682649558382617297168216939573411900683638228982593088991514551796114924379341492595381405680497428996610691131839764662566203143768572859810289316908222171093741077686121922289221164328955709517838427842792644698828947491060542079546644055843260108573884452781131665764947974132397893304647191666690289095706481642895038958485799391279000758342027697372729899270416833908211165093428889316930085538994955494633453621093691474349013104623555772108723311293060474433048737507672101466426677851308954329777265490659771135117910443092965192194955729731038852831264957083340550655947255743357877498344299467276212062784707197743489205272843807246528295329788684759872736829440165897621404931849382382882211447841651304705081557450780439281049553174400797211299591993429793626816450290802818267583161735007803142836938471724305077713250054143989314762498067015989912275581728340207424502311276674393591276053236701817080366825189708392464809394833995496235410569667266226354242213914859688479470279263817114808111166203924360574398334756855950323259657610879401877952542109954977045921264546946583245893804680023049189492195769985418373084495238079821487483155425936246563808555493152981546526570973301904472153674686539836490644319736835371975931386652735801364310070327823091906483653675624499715238547083737098272478324067337782209612904366879025622252942196626296517525541856421983113943671743303306980527640081468850341023164339207294040245930089267520225379557764438576181762380889471275761293222962893018558590408575892278350085628762929523326413730205909442635885067186279443049609668182990548675641249961374211005081085913195339711346563872858697293147954740915936703096887951617366467640269434291287223940741172248368948700276115727993070282433251292598320942194357482784350184258652616362005116996656110214359390643974345174174556402409555970255257073197098273068660203772440481751207682323888488849402134964108528971897674121230568343084350054395274264303462368981963300658177263630980121201057584589994452563019921793565674160342048917563314744066600504649058444713331012376301008012623937365782717560731357004547234544556687349590685151303194646907223376447665061557904912829998739887935091558761829246042652895695196316907328879742817829063449599041773659417113481772891167486203718865732641887874543806737764372219983334068985169515056831349501291717458334521369261070231515917080962365525419025296827643172785353688829796684672812527104717477971227388090353089379385765993920676565669711758387479365517925100850525384065539226033738026948010525448309651338197673052547860795168465489097356193138240818777347407521983121318956861217529472779394256671082700986026624990125741766851856408714032045831620796309552796349181387770836749461215999050881091707998825577714375249492022567693451594626388113323655328933122704481919123245341440029888234770424363633964504265262443842436292950908400702915324804557326535937954261209940679687342015783107721611809021429100479825159205006006785412956661022009632369681806540153349641424502028603662259989379489435461984780461058000960080813839747063741951570530328789531343795706351835267809492843550921903978145155419732235374706824724594254888378209597938163173897411195061942052539102503630141247769187382584090532959856277645526331873996583771861027870232151452058641895293238499740314439326869531950275506415448467916040554022252862675301625924391832506181841895167157336384574895759058639858984713689310875056509850302673418134872714746390741428857632381381173122448974853713985339826222914653731444269844237441691384274249196801216804402434303951297182616312978217168142648393283326038572735095318356944326137566851701201634230477816049814038765021467234303206122023868082270182144478571339419724186139922459183783303050127726289012051405429447048075955924223213035381593106719755536614247877698239932436702477386669826820169959911510438718596353194134128772546531082453928698092854927070154911721550258463726110901810469110047443057071264292283736687768592425808067040340797330760529708913008386255553350195814087073383467983086692995286367865548702519106683612098263035217954875687318259425326057926840993956873257653150041671562876034716781910976668625263720311087647384722783301975750427535753103085220110238251934982338875169058683092428084351981731403483245274756594426170531117829906659914414256607758876919888183426227346262328836681669801007046712738135993631171533967997017576274731977994854069745256756871809999530338815463189599823327980785885542219025034309036098154154390758654509636727067853835388044111195137973767834207977577958029407900515753417645616220083952659041183188194549231433846716509161921579445852170442560343025912612789531852749445417264822040442879577298581408552453388025169983367675003511569449541391994324509933703690758656189690316646519294444164683478338496149927719481855967059974434365165576683152956513884752775370010474430416155060937944787001657356100418413318636388416459388524999286672576204114673152029995248680997403915657759573464170399053747092121459786642593473612183082195156125978263768278348595738033508360331281629400404543866040045084160013083476373252268359077149533502385788672206248482268139491348095079555511895513643730720242979676568582046316752389350765488376699197902375884217916955653288154571432824503711065165336173007722886077659934761457434976528636718920251992546887408648637124072083312665262725159763198278450626131135128809607123927165180032090431398856126277812666518576592553384651189592860467147154510636643197425724307764038670560464376739275017011587750981971673944297377959652998433346318545551970079883316241603055912391677619189263965882824561579413069265804762017645750804508923763875572703905017021771579342142930095090285108928925504480197464671810018858948960152921299214277687930527768947789623913160590897702565706746726011346954317632211051207124573178051054477496664860598574879981424717107877211901291444836621083405379844868336322450195896924864260536652343063014705029890486469412409102652580984616470745898699689492064480805279498220898615819461802445523911667500276601938804791845688190648812775070322682650541198242078679033207090850586439026661321866488230239221639163368080553408777391340872016670058189141780710844555775195292396360765776382904919028453968381795430215770744078663682386494112307134619692631294917749670030707357046132839647288369996828188827805099599647578068429729575172725384100293812004268592010002364359415384870109725503829295722051736481032760354027374395948585214266326151991713620704810677575529732223431814525610383240830455813222232154195422732360278980228654317232238585071025594477796674574259075673811155854029728367798656550452356123395401559677056496481788478009496986237573439710699234355440659616627937567626368379446426798050468247124563250067563139694990007616711574742921003328484452445949120799422103913452808595879215914750805029026253612998373365936417116136857947613156000325589962865415536839043040139031737448951086286452277886859421016727490702025909341966207454129380839047215119383987562051188935965187349201473604044179331836485551000054533920621782493628409489608838344368554230438049641562058086432163389165337114019204889940923731442876229400320918517502859252162419754721421431995552131908447933516690364432573700039686661842235026213776395554858504383312746891461270913395182065801496087216190949559588817975467935282059108675408989304013826219841441917082730722786614190973723111084946285919790679983925876695566035585046424287705935902584670327802021517216995913381284266219746020255669586270731578792512486604739866129021451000536433752113779892657012180460113004041665002143515284805952375848189714415150873725988836148470039217769177220592221270536760073660743959318144612432216297837066904865987464276221173675837323128836287015339482003565713076071150936409553322422334121658294009202009880280187975959420250579000607885817268612642060743328694747439894155833607908215051118222362869961108448944377981111455184271510084021079381339560742779090492896753509996336030213657456506052201624434939216077089015114081350077505657975130292596100427282392111263150545646906099282678841982636271728161580603273589717280449796528009456375860854409990531807309306292890945452498983895177000235669122372474718979147262932708727663033937261716621615954840872669838494685178468655520295745890989917650809156401929740778013423340359856352428800345975412393316155822737244272972999766855484334244513684874540095391883949823683968835543040326015684833323800212879923266994614787910211490587659726486334624034206563255354009741461884035022536951366373514043051480024186991607474875081160826371442160149129049581834204591927037391241829198143342388082187604831890135785334541759176067438960881543201292707048495132517912593795311403295739378023910317114433310178147851299863914226490850684696744361609058194748808545261842067100272785370593357079797794864677370275898251809234364065075684713113054043129349158324001811737297238504371002797173069602167071054354817539091461935607984188391055332683557130334310618009254003786690374233300890946330686366829011123887547315017919828112484370676662237028761691526001024183568628066106992436207323430345535447454416330534458925107658983683716066056140719506785091475067626041506036546778394403609694765643217490530862783864521368368391379843224507343997011908716005356780517519997723451361055542639207771446536087633187769485584631976496968578578010313568136910683218185112241191536707668512030834277145618128597645259609659791503685795358504338071181229564290484159485674429631730639311388816709360990924678776738074992152856106885517627371484294747850785888669347959522116118731729390551159072354287044378494153573333139600007475620757251078904153043331751189722901191900369836359391942169745591940452574436766674767966556681797169729854866430524907345337155047882912946670232199685813523970592162459052061133241776440302238427881452890588393296017411539360278196558593222277682984929440161063598137116244794415547274470476556114522997588964302297465136968434807763344381494885504969131556577888976102564336523635740347836934209417890515817532015692111227170468324990253036766349994036770549336243936193369070916091095497095377451006556307572010458961510074422056623759807083728854109398020712830916593452402564328424294270092877421421454411873609312421212424753927399305013906879098674488928664985787947018819785731748700964662367227216154736221044288719748284782493587699108408939099982499134391144170140375761025002204203829815037642347831049182685628214899025923291752856288115098907457935135063320681974809214547424146020739938669916793002701489525923920154024071726636164935592634073334055331754436353564226166140894187277373938323375966993621009824286189152848678238768462312294740285887879329512624883340198205937411902210719633361360802322019905537353495502899740813086821006647740418286183752059577807607920810082198752931349875151488303561983185093877693669363811468485230342491317833863736931653775904082731750463001793026954114962480482888096740411792828439243002006706594548227212850951157388741833860763841238355088547862046871041285914339319617326123392676665129669889697796506535730827777946577069423450001793063387953296548783933284719060136535737700871058489003133386580311262180745384191618922011160519509277607752524792937924980017646396934038774320174678319090475734708402247853111894811296461030801395960562414383051243323239091032274269669043225759552132208448717707178390747172809211523496274414732244645193197310667597809481521143452950718978015559828171969607083571789631492712757900263205629915108484142285706600661293376062262672101954631065434646404019422284205411489431413133415689380360167945863693502864916797443139897921983329560091502949567150419423558658415535308130649236490380680857634105984499667073116223887650989169421191976394496115672703725199858392416131038890814964269079529101964549555925945197071094898750925335865056211793998271257231019695066874360312383873250008876551789982949860034640925130160115324870247857823444045132524914988017958251152849306413312960317247859167653389065568261327244776785115181700547494368944351196579353908561931403769320433062948573264328541503988555746411461944684746570905903438502583529906136824989514051321525510024177897153545064763613884282906232657618695161786177398693507026295099661030326430197237987435264783967876363803932720803577291702471472546391232758134201964698148752719867479046311892371824485629676775743804446554358633226030024990549345850474079034641753545690104181333312588502846391058282820691139306001089779513908411072519762699283620041869788309182439858001341900841095654014248936958266262036660134850537469013683458362397045334395531455356207991186566400319040195836153644019994146357067441372470376912000191470849559494582433634724557017343318244218829271975320716398048586112204177577880169950098011955768962057705410640165600296662303996840595148251893444069393098814236747655367810024134478776595657256333432681509694191118399471399916207385948556769713800137341754303601302035723139493834853324713512110100386929753855707066342294418176567854795149832994299041370318449643760892024940669364086434771840267005521290701435425094749181378392007870940957700085042683989141195150683570484120020885265915959860152239445084100959883696083422979661204114818698037069419757368396434893208611644455304081542015356906253459251571034717163793210287302157921425493774984507611388412370865444317699873523268355553369001576730588220776999321946559595735711485501821489865384226688387583974848047678483577428581960416693642484978949891485216894927152472922948231496521914711013509041604798324506957152730275916265703248377598962152223899278565453263045289775139591733465109082224761981336596130360654878194423012571588309887102664818942820800408317962902382921310660490609804300888578149235639829633544363032010520633352883552045301080310606184359782969033854487065448522742905015352040047378636843842734499651274480878445627333702761865356457252777786125624429177808471391156685647466803384914721265263360437060593266502244628392831899841362014547840499679577306905073343971723259875068637742148155971479326283454876165265885706991935875493083191300682992439066579100211906305456836984296727389072568983774879743228501484643985195555522197462577421636407300840219408583399502626735977102435801285389679071834704853525410313551632667279297319923202034796639407202295437930961489351573845992269001256296250605713806141593044581220173850953802983498598459508325970904400031367310828768317640025103076398973456520205096440918012670321547924798562953422746879903538528074330056542239357000510423468947536314237768929299205702469719796886074938159869857064836568644410530843827145081520276095723048935195124992150363485669400775176321023820738015297688899352219114071344110742922726339059676041675643828304490809460961028565375320858399158031481361714174427884931778964497103853152899816058693244276965875069233005405157243085581252599086519832301206361152597761558497968309755904708873366271066968815919466130179597366127976152318209806739200490885397737807047718283412372497099280519914853693828962215494914988448171729830278432358234437779616665876002272733299041687603102915103471013821096320101592630380229598172201369997824502634632713421879135065623825747232098177377021010199403944830000169271206172869392950160349168801712466959854163594666013329304888804089086951203680948732556434967068931407802146087507571921303389629393696058667397089649386052427035191313829325094051639730807530763371890609231589856959033027778811040313246086900113217282693477521004983530750593659285062085227782902499501875759692642018448504897833034391296442248408035466667202749332580360668593526591008663785114258331652910112486814685299690549691112012475812168873009019084055081881642077596008073629632008582755272847266524239478102824830946390669995888028636497407341572326117860238876915055032903839920095108997870693415820800904037043035559764922815519743258187605464633612729651321318746351600576774131379721904230383306244679298119705353086943478025584343236627026621273598298051946855222248914833534935628285073423913442880095696187453124821838791730263400270720431395645234020390078981177031079461332414619645481017109150550825131754510463818206466808779234692480909739305011575276918023123714863221635541073857942198548107171148254463687811146716390051470668013729094907848762496699800404081789487507384954880684255317344991452477349202914666778459961026319375488984072222780933843385065254194346821078893429242322599897256017382596524117023686902824289768809500548365621589687223505411285528164636222876674145430316374971781186127365670046132922044029720201619263234208377070327563021584111307547492327047524477011597278909414613546059363477672715746920407331679056326655912453502094702653486409543199946734094182524494322424032766355371181576370036656204724998284411290604557845001873902857459391492426136501455299391244002719404864078847503598115015613810689544692752127354922856701330223212615006775023873265812269571670403392514304448519969953605730043475532152481920728823170192147218667667911703316994009892302683434327234228981887560107755409980881625394168004823595653541863409071946743000302674143822076779606879043121974235117523994443677829753249480530413719957869993198643135967397531939432098995706086146083726054216866357255840039586361728302519044930176742219381518419540472192547089203872267773452411566852953826617250841685559971088330522767092623953558846344615074214865096721335485157914637156423201817616121273334326814561013966800938400836015668731999345665771750182453029288805647466140531517448308196767460082570207987707148088662297038806171481609416582720725129722857356138955057658767138701782336000635734613775213246344363717732002067950661834888758221725414146525433518288588430284262613910759299402508919740716590722022782126930588819669105305730292727247747694755452392695039367599939704720714876782199156146950033350882415360334418517820244255735478901540811016607501373148748430003910522486203794734833153268581899724442829047707830033287330044092632846872324321121736705916706839376836804872360088662575362913193048831041174650655505147949320259489670445717484453623131088710674019205100055094595520869562389289011905060704617241454196583738633859134961006600833831278741404655927123319616966194378878030990616541941505960949359729708845505329162131699460530184134484833479950094218979954973878350524938927626154090158799624041895299727441514141350626044073992852667426149713731713719138727922474249782600252282072458955035642211517105106108340959524709590630469827652349186296922618901818384256501470808479303266407281875434736810263981783456063175755375403928320517635782634935258475865477074757353529622119796033186538932221437074773803324381226835319620401030157374104860572014669208902777114359145213850266341415693225161225761016355196560996698505309846538454439184324816835474222151189347717714115418141649948337117410785319717689315708155229371511909209839456254879045444072568266162842220529810072555900294784567255962776011939289985210775429456243265903184256661138726616278864194000546939723826270389390598131207171347287358894903507894697344024242214934548523573717968553814956863682019361658657671251202818689381016520031848146961007789628797962990352056640992141280951998889617489591911562271097261360836469886372494635480376449684048591136989843733718748337378703888589743756244331647604332024170131273417721899430066795302895732412674239878979822466997448738625421348466636335567388293520522596420061332412433679459388973871773210128220294894373674084299198665668615438634550672066053879069278976693145956095706083201789981501689756293951472780953889293399088832005315306170331904554412982860556767647139158328109477734495926520882001951395042245083332146241917116678051508723133167289765655259120844457851120383107908703315711395289454097541772257511210974346161751123764945652659228970055302890122204803806903417086651934492216700639046510868806639497818436767654631198342114371363725060075489278993157687230149810176476541128493848417232985560866028237555026286464542006728482352204895917273524561276656784389545311234854282678377446865179749729042992566787022965808708187282698011058130634985533328002635564848304134433660474711976602794013128244558606200613404982040881375492852655867303572507719052620856529811349246722789922898607449808178742454325726224961567638008711768490140970100589273202074215958784625140857771825947791031120029652754686424421799226890524403386625921394653843148478033561755617471989262069926431568511781194767539314610530481861109626640067946087064476096778909436357861451399295170231997511966441085296303232078215744154115917463176800768381948105474907449217904147180546460648172630551355750535164085146277030305414453268719677768842158388805030341950795975121594929318761198734140465408423307946742969279392750847174841843283016680041876760944310776808908154154616174198715871971824212450329883334926244158469563327074282280917759217962006590647892117058966120888594526773535859973839608122127393845876070833357690966644533632778073439293078964005852830170554634397729345566329361307700017088748692462700612410647613704524683353459940556262760171110171380061051102038401336274436665446194166780169061686847490078980725506933718279069449040555765408020037333703030794705475054041422705760149748606857362790439341530745281922253255456526879879304356513203433775603762822915964283404926626083746754741761563669590568432764906796072893670646189134275702264332855520611726084114527686076925051664360183812255070981497029546662485812964360370186282756339266335303732289417152219285658562735668306444360065943508851231495917054655155702140017374164823011104912385064451076123059224026599046415207663240330477385365315579346285208074015514122538735042672860134827126497508992590677574269660061454041819059380109783092599258996815317880132234408807629323917686829425561592125612463588287788877137488713033973300708932056168319684952078811420661849079760679977009198503416204217137703522324197692081309952460998333154529300592699609917210514739329017879424476803913089221028343320126260852493672243393845733346452367072548268674608268972801142428094818612579023245789135792248762860097973483705375976971728715428920272712696035922093513240491827492570435087448918904003883465298468726933222137146626215517233628490100052831803770539728115324030349176692649566785836090339174636661176772618219646610565203134478808998592076449629676195500356220239182780308339527398165965123007529154886766831534624596057021023636281730832178374544377255493507975274295509078940112704269141346246211896607008223437340993574401897435506727035629282711720063018926914517237869456536156824542085192137337333911246617502860573123233850782011957837474575498239975546955553559459334007785971719943858545231744064877602658381616321773068540439082777456219530754849476074331368576873490485051825713317888587754460975913452228242593743006665375352664172776911681011791045858813532248668757562343627038921636235353186297813741248130231068037637478014474177983976292376497741009076422847911121508949998624563930710790692716617808097412736270748668342232915119848345242798698588248196138342412477712310987176049502831625650636328805542453546418232963323654480502627464308812172102747819486456237697784951695791052220409875608255033279401153911948922469119475113610322967901271229344619789906251057240750170490649503879392966032031411353731220043371255039713823851574947289734971879820305002511769494463041513180284271391309219712606629815087904121893682324402004942655563317611385737077549705393504321916680621370904459442110795243683529648068461918907635230965133730137382594894002261266731386153537656975784447792468069390175646914440624364154767572494194623426021192809892573790854125291452013376362683157073244069791015712471725379358252156268149525271360335643562286479520295074120512004265439840207539777819630141268477713981525349079453065648367344003237936737229535136266332156339552948612389258062445115834244561493782099150871118577638470391402939967739650581762704431583482278674757966066281607800302243455629759107861242612372396791783885861375055726935869222513964759554316742450991337384075626337577582690644250237873741575813727730231907842300189996892071040066736243463094111570343611696825545307707164451901647088514255701419684011480870066429147065642495174182182406830069024583749995934214352254957242709222063173398584868645910898664031525514751557040294043158436283018709070264833606410026514756712297614411741255539742523642259678602395673961011305548932317077784106926137213580842066745073067771960292568184751965851611189025519734814274100489171076799015511966849306708253277545541279580007517119471002650642776801889266597301657250772574957899695107888311113670381388666764861277333582299597700833953511051019245391682988452224698719849390899864757279061769533775702096454267934616732457239928166044768486549274920546982725418653345152333728113164548344248874900996086444402473573454450288449978285406497713410317225964130196373891155930964887386012081274701024049832267365449153678291098257548726337387639584773002122949302183196855348241760451223352469008844788780044784800571176882436434418044534423298583096789918967166425090211226486083593862278259432773524815392107780352755713285515117768308707424280213088387510414365031142584994375699628719497141980286024060946350875108574039567296544758793633501480072387614534498161245673246453395707163414978235670465985554076282596203558688255513945890224721996844649289409090827346759903705453162289029093438698499450332152877337953981594835192916230167142087756373013519988027175398971352296666904557292023424124223302720024993313571307633711708935592605899002329267473567377844130099307950417374413277257102570076698317478461290477517340042045953358162858154933701598860664452147558575862443745087307888173565796383593819966813745527417023702447509605094028347122419077548750016358016347425119955873975009631655414007141598682576711087265874972124768482577176162469908975084524322566911018176862527132934023453255240080123357321187933823042831797539032023452992676730773671396106500175024978560030852457541283973937788048725606655570809672311547760846269020305997865674703433966562543361145742261223425881273632588825585414125647334239975234130796695081139167997767797829841269159698650871190749654472354002281414288821482971072081051355962917517712057701710947929081452687283094038653039448436971123166008425119673376455583443138771591930168763093467460773981107908142349069242902571323316328201383445870816482900062596559187222483729085491095318048426164329994219205342732994413255105061427776988956671544817500566773492632380988782866034464316880794507636530658436958160520961059663353551980126389014172574744323630229501347120566860313224433450687212694791266646384381390406940599758952134389379801417438643225610116928049155199225482783622999331172991673479899908362816350703698559742257921949414155915339223827795990396934408933575942936549871977633624114217040192023618045745524172362893813254232053132233175875289061276064485125965480641683431218913458460269889012009985911371423766911022789206327053539715849413106382483410595141412199642765962442552038828376058967134210312340135814484024244969257194236032658496186391107411442415348869832124326000207202690257069722945114707378681272870265149515560033663354519289137642588996251782023549197859399868740214875822373479369400155450157653279818221444213762862625026742426638715097153781032214021835194367621967241176073131749160750757302591300197672423946632901373181074570388814915528826679387573702044016346594789790864999910263732429475000126996962688404152757336857865969031114463870990805189203543140473323100597816082017191909138492100731355503930027443718649270878345903701607581015973749114166561487417513264227554492284261361049403052812808693099267112182753579549326072455838566800233873898435969432334002644342995447271732571664686295870228593252917557207683917515331763587227447681271331953395578801884245215836905547996771490198213858943874012899646569759823004380051621862024948373920257534075128807242145506075278183968950784413066511748106870855839606584170906951645136858380846911473491410021026316475926411383743041921056193589611978650618896922605064196667993359015856097160759614100815586414533754702609769122418022723600118483541651000742377647016177288352944021479402362174912156585162607289319958677926785310808428512672724905820605743373895375882560379726376429709906360052059497192143771066483471090276808390441848016387264223433000963924213455225196367211840749631351359083863415220763272709983680771734436860140492441003920348773489347643498567288824282867384697785751964360215018859150366136568073776508180671457722981085768967273787138436866472667353335241620626816620623375843245582696236679192112691445205075346716521797268136453360972365763729108615140644496574998065317260415064923984525616539342072694224168477618297186774198839962156801583002389540635640037921054597431014340133703859675134939730889784876270190232778099021041467074453366336478005274763044348764975990217393823777546572171149022823824216137431773696457376266890071419069957381286153149917684609951825121740841646122749131408857860027339427497067265900492077329682025334196155202814381462940886575276366531678084616937702667045457090753865612735647783276455130376888291561447749277356200392510084950565043038333143690713252339950592139435730239482242424359544021094769389454785977092990794305208132005693358466006035560186392281189404916853234344321697913032890884912755924352955718018500732699101499805169754859662510829234400620383922894026326119947050350646523945455840827949713394767556576773088276624095091739497323807253592409795189961171955779663613542768974831899792503812689956339676012204935126490388210418629760424468540717042881113826347911526156529602056943846282558934590505518957372149702180467920247722529258451685345948881392643464079364971800832175192516227683521670241769024017323417004582530198081415444348894216672274471334058080360518465901968747043146343292605365365734885285651064865143615322455664208639712257053632793379420839215960935530567876824876301682425709593290963469427934181644202408545425853637796493508307205657346440364876252774093232610980436126002695242331720707004248431780151349886600952698819420337626275107640832508090489018104428151020963783277322108568168357299469202033628552821083391599326144829520007600130537108177859312712800684610223119126397525776761307136199664777220230770198119887209673377757358193911114614991887408470303095415899961556596519900406301791988214728640063539535168758646811439310563459045347941052270243540998667651418956549127212350060022920159306479882122252434884486736262276234191154763101801619978960124598850518371035664551307142233025511162198097886949281300856520922742802231292555807934896529073939329007083689825270706940489368144553112445018791004383275869876088022837796069652952435954374677273033483478164199279889976318361600556422525574113729845425584712240101264344413211213989542899162610599974393856316085709944992165647411728770330590194243959038834185660568985868570915923062293996933857475402486921218472655334872327336495332349716160993806139362997915929456750027591201682961713759554421772446953016878932343462501471252600729211795101088292252935302105865193284063164666858089628952105972756046772793498067882318738830110503021619218511789866043784098733201783265922602757041649173741657058426021076618730322483657172425387408048138819616499489854365532456247019838190386760306900060508525015357715326862072863315521906574103804717624894537806765236391728578753119981535239705858414280642620395163730180130016429337631874270687818205243330592568247768069228091570842696313241036649193872862208354270320135314934125606293576111047089934267969699112405417413932745926085547920029313943965798076150292388391258103180339169354524007938382807649012549238571038726214344570533357010027569631134469824749376022854617561297496149700851588396249399719185735453028298463675384641803056862412049780710580773517037897716588633851431188135934253384290313686491593482516312423921250886995037064127247125280895728719267201528870264903281970624534215882408038224954030572077187896709230862486721380503298224478073120177478932777831696189285248680082275950840474035864566398726261678398971967985717158729887855367773780352864582657225251060394697409083329646408558264049976879679907432428386703392944365215459177836288563644831232438796874017205451900407952158081036012192809748186890302387490546355531193941771462926267217501003940950656215274658516304606764571631277593058607171362154887568409278102381459502093783589626080861194733156471470919887226487788792775598913050788443977442896819543093412034716736807257689993467099751998015142208512007844936693505102835906047393732630238976051707406267888495953544462395436580264894857738289147372093447389041073994193877097319634263505463445355163886940429516563001779690522951407882363369478686437738835396183164960372203062283395476473638686932876419860300895688627660066003367385879512737329913924374884641404782688172643839557689121440506655309512397862843935793102502254526020292374477017294697683653510550237431594420451338945812705277413452235955474582673544363140130396645112370293230264935051965374839801225535870497260724576817618517334742251551616144449308556003273840324190457389676563039883805648437775249518958731569125062452574586193234174067124137056867044098250658226826339100202397434884705432061430574876149846295236232996331543389140844644181714903275736642533210793214575028892470358478094287650568292392139710235802337041060183649804842414336899871309303373016077323972097217368262064453503737832685672497410947745211230843000375204508045744741336393963604712613966095700010594922141828996734581897846920665865580794952784114301142232407023910455006463171307428339693441434116497040628828470438535942491671452463116720848703013040991065994511137110419488044016175121248048208884735866776046995431537337139149085600569323589042736615404513481437410847499268477456328761340137351833879410618140398575299517884744222589560385359045028903892190182942831811329136056171666093004344710348447236944081371733092527942607954646806037919522824118368292383247449967301168542232096340301336928209690326882702032629274212308528098765823286841050513148347839547180488950706581855691759589311644177292312570042654079228627228960291359723076159803188890562003992072758393329348150082006929963757809731687564507447778630056522653813384450814848390360245817450387487441036373243439802610229573447099567428177522247049599016972898928349238692188097727918340567437753350455810218223321867520151524754005679206153356761532794298222428407715770596785515431230838848711260656240060989743433545708911092610826386414711764805254811724604623702525628023193081782276806772872385227521358525433892493044150623044050973976532192859713576198191848290573105795901139295494991237633259994484303673569572320848773753196517524610178277639736216668666840110945422091761713776782734139700759644192809348176311150604938223199188902801225949700332859467551270588328466981576927385688004194216816889854763107010511105179515169306199882745985145047277633948247234981401006389449715950088812691697897643717758194631232663828674405277141070449529991031557173460989882492384507079941750141201624812865997390923985932542914833123023458623104022327786988854531237854916595254263959576560134212371880135748519993586685851327284906694221721714434135354500034356858632610803822439473699956838413183288727893756200095900947626118743802120047327182612153558530819244861988368114383280197503337895087628910878724803569548434154423382412734477119656983807913988648266704226955837766286805118712248872485791751141849094545065183275735840253550453769807877488387593476369926967729723625922573664177461730895304094301485847193578606129248798546368978502934694469744158763241770489628620140323316851905760630833468367476150019426356653542275357425152460939386192299910892919980339571427981769712718655791901163292194456369161912084749918811134825020879070493886201677438622136963089467434920707845146738315572268626909624558360917221736880782228177762277913178718547934435152265345211801269563443734492376926525036111237276303981563027619984078894512173679645387172022328453674038332688659752835304328517029696878320411321790570018817306089820349135590091324513083461240869573270362881156299350519357535688260176373060417589580478761778582138500487391198391643517342477140494619087110081242363452435623293759576167678400553449066545054730777805841012071707002451970334298006642655855107318190370829572710327499067415281717238513750937632632956941518019091289575688533854757791062702600063124571794758022589414769558804799042760183359078558326750415103407422959026008762633900807765160336676183590689419253376064497322316724608448389273255729854255401888897316856723468419608674977743403281769993958504800724917507512814982944181233139092446012589459874629710935204243636780202931558310669584294903982758571171181540862573368946499529753563582158530393160641977571722464115777468654415781995942611859137520984940471796644292051900204196804107996883212098409700274820354472110192657916454525571451587163540381725634884086001006881255425308652170428341048562479059064876970529554717416110466536932612942540065654265382012730185085284363515265851578538182911149200102016133327822933604453052424123982558622208087284816539205892928072873666161132518990923145393857585406487163794794074399703878698724387242188167154566439082764182178899721939063569532858002308956356978485397653372189202527267416382800380634839588948902836924296468683270724198261347134817574423701240891794995512356532786089078958456116177790260992861031332879772977211171317340234216788885077035077078591171971774618604920871490963926907550268847892736900428113306847523875299827284539502575685004708891774095869343154185563540236066733492257138794893187672195248157258008200071429665457716553661835877572718396276649211817916242422520137243575408092887944222488372571941048133863773162144955477685961860181236554056785448445911192189850738579526055853957619017362629591536516244869886434004805745021007808384545113026264244229883397720108304545665616419344973493335784443514609405642678609213877128139168293113833092958076978548730120236605633227651761661165238496011734640933968623135668129159156242587724880472663301698157466275749185181573281377609700066338409745749584561323921482008145187666271728429718090071451429538401580104513781467091431074427163992759211995817037128526750008820906240050505338704812638941947141909664522936863646036476009949542240079363601651410459743434009878731584001495910362375149308411419775037143154026537836688820535420132154136812770799376768011229630407118689732748236079824008569670816834426496706089144537678778601527901178262654889337943977555271869238801687649660017581621772672862302212588661923778793473849038063116094651481441211603544641036526302165729819538196619849323319890442227117811133725397152219034033807620291009436903493020263824222584997831786507860125955887249716564942429984377552676339134379218286735348443598427760686458464760828545040965265180215173242312392572828071872245525126351057286485390611659352265507369903076745926842903322596349190327925946689692214573163188578519236002246472843389181434700700232802514284283445499742898228776365533668112679731633593934661788660492712207800755064185643981708849891627548163652284141831690595171244165967051620299133441072986037296911752674429452855889446197460048777364539253358972303364802708928327924373571649886826310166385563408595870466333155247406880084793289965715878421683246108146014326115282869789878567189551773574937348075923026190825922728272402394605197274231483043236652685436202570920612083632939027952233867830635770120216880809208413287325434100664236710084596626237246278223322040836417615265638732094711758511659043373974659471495797619224542249198779118990139241809403471625837864359206422655268770526176832547688104893424553115758492169332436864778507069686098863794856779457584425451596920462507584363196181816265101285504319238445606017931193364829871426390631382818107417885448708495343555617851711031852198177641036800408270313333172523051069500765918494650182813302665770835509023593910233045419060995037186696680185516677884910103757474476910267318051863742351311619499223326399614874688324144703854593444868995166347747966189305941624599950433258193181090166347952306045841509523267048444437316125456794953695289139283749374394573879581095409722148790538005937452571509585632076505635801772423102932401271063827386246046768823055721439766494222987986050026437284395941484133178084297336406332802334489400905369865564067478319322952213813309565047342862201653682320647898943168920440732385619701830154729533025770275599115687002347921100707683062070765885966396909599668927309859019867392997043628121858902773254857376732175724669554220148481075938040839366767981138896804322822950923662711368166644862914164643348009232971568327176544317661934214266003971003286469037580101411368364157079041646819492796279724531500177240538330094822735804759365624366130334893642513273784014971461898807742971486245328984955279974949009672714758396956530728277231033924659460828693406407567957275281191312519497517698702517217527448552265247906070025545296032479970354716929547458299894389969574787451863083307191142505752951798909184278903801307873083700188289128437312400367906964082470016006325223497619823252892848073221193967146194486214025118793418749697158954168535872183696045266895242530263255573632916371128996726152316088107746433574784206357840545196865753848150257557424592685371926913989286173881546793043337594486127538380736427201611433339477369537576721801556614156146660920364576390307515698834384063760859761636054163379005697324648212189781255109052951453829293685769127673604160765886134991188954530074907366516622903702468123097309912751003892435962407780368248259181452675861651962563377057232417308101762497718789272353891302846166073881607212490758324810237663442660546123702446504243202624006742053308348128347431537613871119714124053069731500210469275656350722997914053316582840462714210006628051390934657544338826573889219357445559280649042337244465742741299327213078670198374399407651288216849006598776193202956042475301439975600745517929214408587421803230554508878806459996759985463966652014085386036478997863478802005517990068687908207813702528806483087317333234979232398826007531006391457219908227790096973798180518587973988616321223667445716047313737003838489018893654697280868778579000708525614560684591839138106829383728907549701511506679909108163452162763048626186939011358299272059597433522589469862510156583055601606410361069041529877422061693164422214930506836989619975983615959799181308695801341632609919353396157724702297887679138629142036737204015479916718401317957207999263425732310197397128045748223770657273925427065626041186251517299358829456387727365692645185783386893892291056406842960947650410650325916028054680493988194652827690476906828492237064911016272986563972100724351501581321538943187248435526124416059290804932379803415168794849715708303871265348511415202505613543331886104869394309160974795464564777275679280236049121664038219634370642584773019195253076788423386952589629445015571423791975829590594972449078837968705161866417513586280826606360917101839463472491395921499085378696286896968410057980430788115931374952824401024188473335743329079301878850003161406543247426572861444389762054780442365008655733170698800378885812357993436325360329567948151026430809579569677683812860388168058708050593288146842152599451278751876739715019119846313286378254065071509181321857988868376865300997757872028270940415904542348585135345983439747005953261636663954942460684779040888220053571879144041203617784190785475436883145561534593148075091478579391493550722116810458710955844462063739622016016345240302667338945510880863945967346287208727590320113619762601879617897732735650649736348919134632665224406727121614952431641151653798165004801143471015279590590666471326091714087767566257698129606969073695534733411368207210070073480048340109083616847631952419032206359848799465003168026309008555308719184272228238168503981432553586686818518454611067882110065881104004499583535100085514582396890097087193639373731570955257499449616939962934342881329394000311774640194469857816095126312066661081758922922979225309270877811408352163084567548007167672032966072198463971927976312645639430840533431806193356219822459615863004079900421265099238762481285232940615783860041655536256645307907530072243885719743117955107019357909472477002201667038293639894176205132689683919828225110007894273823348912374335137462713224835938539130707422727096033797618497174687450478030618807671575904692011754570873638700079510580917329405092019032929960756049518861345128018294887679711391062325034531928300050017001126343522926945403593322135893366710781172251933209724988263204925844604083503847087878305958711972737855470221751310987056054066283405204419933463291696170288534738768887302569678057249765535219621652095904576696357401094202103422532394267756230237568406620752263667310402526413198112103698493528861778310496782751687360251728881836263074174002048572129480862550569342500061732765770183052975760065772283917478376926027856890330685521344513951450485313820745422999771178196809363329178375242388081984378552176280895149740644560792936113783391112620779894071871685558936823905982778713042774228897593958689991144147097493413065682681499863611898355782594111947407606348694414060364261045282959130402229933987650358750009852521079771179745659959113877571793852556185158176906752178957122174792470734284439273453243749502782248240938133842182177375216830501281081892508606461902577924817587384662873486312689120488209943006609454079010856215006936045512214689759327002579710318959446139127534276907173730800286195242372758263599256422028268345249126698707833490494152532983277940808096989451957179766642593504616313123973821753260694261540578662127738075614899071050622221955877311018116471591122087443117430186606018783815549072500597105023647347073194874663998900186331263716459458351885680663137629521181732765542556222547873392856153828458041563879759004565286164816271498660034823454155412537894313849054403065926098822846098659730315860021798281855968236489514637838763943880867256222617902242206077679893500699952462568007758223019067471221546264902059868151107500481129386559992027273715373623941243523439388510931607782702331910698369051184437344475788535321763665032027074603777296433502360371261867839871211095738834203424454685263322942468322054890136331127427874019099654976689595968309043324150286341900564027296848961185247449618832074479493867707012204567779244339547271350165543975043556774637033403643982213291966250974830257109885660255045257577501355231210342086367371674374759877164797350162736998816734714880065257197882602060035575606654369592948930059190135107896468326964783425461709380874600192543319286935451384980248096939297734414075644306503954359704407739348302548159991942876159663409271411277380973393948545598831226642083254307350608042641942735328093110429232064462464239510017510513550898912803384345720092596616263884821277540459959645531823695736727762976726437253641034215015390943346189233493666303975573005554756065589674173698666032500603228885272438754154646461145858139310075991658968903899335210182345094620351894423402664570388506939966409562661553685016020124323431816690251594406928520637483036884872119176491859048491946479938533620603696800569377583392517778022556410345613869104477280976775302568056410754700600021059418847245450348644446325838767249080726614494513458700504074147815745138288578664277782320293486848581956016101117684268198947330865830219502653867150837524802027722224581853747568828205615939915132766543327679461994513397573442147886258948563781973189065013770389167758310691638929675855477817841646480870945399300677567026125741448048859710996952787869037281944891761828491177403082321659247195819833594927571596592432312841178224304278892274976101824609143840322601436672660539580960072312350944256894964572914848373058950622747671368576734822479721538214116188344621951005255008533478092303356582759786876995313182960284281010948437910957241003200457770573583985299391416103357444535697221409755689609962409151382538685655199582187579069660975723353356705634893921475517004429798585262133646895327601129341129422523849567708502569490479519110033701316237689001423857004020527996935277628054977050325491002016956895333411665112363403739001577997596031283592360891417833397671507378167289034134120875141404245100238739875794812267262401140881051336414153176014902672990642243828104843967827377911670785541264307918490355192592598154083858794767762878382641376554256567509897654382528806367605958519031136745387128588022918014156223723712547731696907912418112448047417008784857469124934929100541025450042959604989728349697514825285255190010037635673897468705522048223203606474278357821365005680609633552471831698318898889664534074344106390238207072108654207564131214991230398040457494209752566361755564396435978126164506483620137229030734647523832504175545344771169189758221519235367557094362071569810215991934320029181453897210821291495669639157883116219273246816737514191856964439874146342686086240146419841855621899543625367720072610162507411243414577226029039072324049432250362869121106705944261608224367612543675433390646326287927387416276578469248564122837132902343989465346472071024395543689787801034026550685536223262617356260087202913360005492772650574576464208843933105293393264580165693243770429073207296793190726753100387448372744357683537496593676776155321726045084763533514937138492965932478518950153625912300663732260491167597260009439722778640568744172768624417024409446763901227638699944243289623765198770741580265432451928528717282351164202913041738041448337219977447848074339119980623940406947928180776985634457918111409294880475092303121926592666028141263520614109756796696311508305471378704903099459452244563689620622226672543059845445954760762677656746659294037736946627422362411380984819267277426333712539129851368107537964611801176444133011727935478065470396729985861616992952854199918816102296018437292109870295748082776231034534665050395643947552570161225845785659809170921897395584482275756896175981287661283734758297125391468115333101654391253365907363634146470472849445396221537332314242047251172998685808668259577227793111479818455639807348127767643052321647468028031046861744092780671465484794631449193944984546604331175022457990313603399834191820130980096390586851411277565351681158428738081155338113801796808117265621657605613700605598142809046907584569830334104044220400541147142016759893916537006161082812324179846866248602246621293758448100378155360855974342356330439941629150694369980785603920454686023087476902403402478079012184960212249532540428899754779941672668276256713170415300315416338370505914760856801056476674938336438819813715505371911189601708516158596830524365735066829999977892377205007985860546527471156735579673679539476780450617055410817440411350277725097781998793689889857944860734574784828771316358399401589866793468931640623366484898158426278261947874490772841656435764670885674772953615831557457664046598952364634331752691714830595349317036142573517920822107885359990320323064354189255284478358420805927917101446738927796032296313416973599135079227326137601452441987073039242252101751771929971959750392677290153637984096398238637245073124490481886359212589847401594200556369092222180994017484930998787949902302231762687924608957522757980675453599715400323379149935939168343410463656787273904773930333708819645516137439089464672175029085669259592787703323170129642598038023842040207711986310901276681160854771225927499717466944458084544222792887814590370552607043738367196646684792302022707373726618359665833721936264175923250045065518234649347098519117989203423853634780321567497527574901200928121600124524464931818063721877283218362728859879144111645144277101492047205107136856922013847361701690453946164879742630660579863226626864202900218882847513655492878209867201485104230102140730080729202031372334140327513623060408336696670536300990604019636122436361488709872985534747074257888778369940071786188447555740090484148093252446582863727845935184954271334181679396490986020675561564599089868549032035767179326487139584641421388984286789769386344578654578155923642799012211224320342280800907421498592587188252443300739371641187617894784670306301199874756852148773523754912451807470453822869149910208869245397471165745954554852931220069221303193279055321132051144395987733596938963562804547994416404283062297609932808346100641618997117935851714286769637143012094268834019503875508000635511038100461239173511718191035446389480388181618708478825583696043512768780290896970178965302731538853947800189420160917505043355064422812940535922975918754556877800325802621442428847095492045668975102205283070286662415434834307182160057822205316825314087417952866640263109824268018203704245453192950780400193804416384738726928283475068499990582775512882955115324966796839540131868968656102524420229333992471496718164625507026580839893582171043235476727595902550143973763397354588274960556241161529118363095391312070032032220577591519567936097650501119781894962682951628469465139057926278666948254877253852718979661243766251655141933726498255068003989001282640461694994514848048264845276170246465124148416133476157703958998618553719904978910395529503708755033975103637117451006333879832937573965601956463383282703836018152442081881927030034494408786304757829544038020574979594157233162480048922745489875390107649729961383421296670907977948620363008899441039398169739233249725850409483631449012257501234864520757595212149125381791446066077337342301277162865937099861724100114551133559474867423006571083118541802779695813246307870187320990165912204153916031412537736289646544809247558131330598052352280249664921483022451101242993301510461913146940716478250623679790091733693912341700095530208550469419241992478439607024859655993713432265707280527852496692688564274401490486155664048623740978509363406277676322690757366422976336897593343334959628861804422795445964137529967855138786747415435231706025742668481299866807196178682888677063389736286406487996741327744557449136906613551804871244577557192864274789374789793852342377208548752965837866703649364818498198661650392668318022070472334457384209678855710631386947265043126233969354777296657571820882316887729056651164228070304531925422850627306410739405758038289114160991323673433531475182318970744562378159523638250595748185666018475117043380144675792186329001959082249315687034504938307059048768675652141826732347645353154879459568698209472874979318623229306654905849147976751629065285811493493264660156738365016833259376407131820759926881454413170421020945773762796459341098216574380830817435051983614090288264536681045915567519409021985862460056675959934482893410238900124992719771156414514504468169133783027645954931221450479266601748732436375056873942046063880683249939442359684893238111870925117459534677573911185789929704636585486486341224417922450822953897057637269668777716517978098305138855912548790360130325376257979678853890784028032661811151343004607753928028228684718159124135054400743546689437749964014840243151273963170264158113383805349789891836525456032635359385660858567099780833005602702083676390483522664688430313576833257460017846618299708324227744802730116341766163178520931785540286554485503259546937119794040404180244905536422469699300127034182421965317028072572140434586774854637462524888886761238662383068210825076383765978446632635914879504037024361940753756693384958247119257914880332667552765496870687658343314872963027084060476526668600771875397471208094912171462553755108592189097109547167331792977072031285974289999051912097390669582961707853360802864790845785194034753106723048072959147979599493314064024187328457165087938637184285384372209297093304420412586934919702715976326785597011602259201930149121808482254133085038331702398399545207940159481866982337508615534106950558689248082037910717457517752898696522931679600287752328707672095138115376023549496981895987472118782299836706024500718696919261771169059374006855812629035678528541185065266012829840542910495586350898415958968168398715913459500263100963208518410903717644713468424598867039513699340852355574857980012530309214210855637338694237597100656999176579917692066176394412207120336228375506443278472560251292935641157786865940810041329320705892404316801396927308064614847591744939437577539476853367729952307367691913870069075699346596719798021327774950829522659738168379808145626079330626841082990345497319408584103559805355322306483863336133409085123674238498481303514740113194340953629577398066394967842552358763626260696306067073632989942855619820082887706789463937610900435299462092965290852143710004243256906504088109638137583760330514689193111348702547861423822203481717505232868586410621072209113534849874398810183017293857180216023664506652368818712627235670810751893311729576756288044053086924857911197642061453016705475136704120679034417667958077151277349204692954272884841441235443265367474450348736404743207070130985102452141574912913045570134677206395457308676408291889077450414777685341718480587366953411125729822277182016112052599220471490969122050527354858907523143222983758688747064060088794618439751394993085827507574650667152412784523460450004264876630201795580105414737534854824449809985946377432159865948613167871630830083114428867964396310386678023406431133847077906145521013876165480516411036145756878706572584454187495796481977623267131495405833579044169985869998738747538668374189411500114269788366024599318771759218462328635579232172467057232632162054298442812849586558551692164975132298716993376234801304478777983451004075667074330083971341468043410746192184977108573113931866389688978699739325471786204688726159547596482653420342947264374640782082916103799939684322419245022808770819782534685647494311016606174979162989907847515797493629803416919854978832163690309518947436820882093396902731496565621035641646877295668712334389970409235568681287632631356229638245531431514054887736879683398420613030991657019753711214361895534125733932530128560221673168837805712831832046503301798580766799837217424885030172536853114166476094085517214159558104893162669002804659160415749313081532917212501617593241244425199875628848754349964783261521458294694563199232439391712708167122265614396099041865960156421953609145758857350317493932753272529181617689119028153750234358151865357145212474089875675093108498465351242790692129842316662122537340279785812907062234751291475890901937536610655049956206761841996482841606200809283358028722006873067999050167131637872434726909619989424966188783483313599455909990970690009632435111006950018744212690970073623809528927228383842275917944726507966041061146871955332061861777619815418793008298295830110074940952775036290678568530516477373106562194244476927127823483735070101341279873293195759097546721853896610693619725065890617774577747103801705044591482884042228268197822099044900425691293906331554390569288208927320189047186099965124830549180077944546455581006749127814450403888259363595579826109940715730451728217838476192782880610692432544251496407471491042916487406576156272387857075385196235494271814725828232642231542871692079791656607378069604330052597475819766668356464638873101186947151951421507404348314448849396892613756196018025986051244293093929614266051570506264046145913755482318773589994192864250690449755842308842368886916044321770640087418087569250938446955730256838566978973630450556112407600073022300196920627145201946933012737617720885516574132416706098522093615751342109052573258355734856723046095431072679646341799073011998193426966946258123340626707579298318854784226338089103356505301262108944203826151874634875405291201063886257142149756539851391442004956696505361056948562046181936395260382574732058761511115083003596570500199796811745591957952669939734414551881139362041452777695879979795303844179950084718297955494135377453142620247969030164070874852837231994776950615466770917272074273601211873239505505999596448586475569332125983168681793960057698743455188849502979916816870691895468549154124053109508671750088037940071468304264808430730201689122114599458393205385061531951999630310561730012552647519975550931796962387758590421394833813626660356778468440918053089757974288408867449164470105965126945673168315488251064454371295958474783408869308083923181756531511730795725618787675874754557492237544709038473469553765213149117178561259557864187372575527858473924364044216719400973735656538785598622099849117324571500525534263881454027950737990613437068446900001632563300406976178623470848491991392575742281832359240846287226299858155368309340982528847512702077569299704086438619498243578270901188776792217198622683834794525832557618405826381782949629211719899746591041696380748874852509301845438948506556770804656172314951585189873818033064026607325208472353765020777479974638998286017142033524485239432212206280981937554211230650101893425520699793763714860828873229890188829798584374022406686933365752248296525232922776885425788112015476523607765643304965043880605576377518148861785389117360781116926505916671603178232470837368177898982567994806444575215113650904182813232344897189628406602738355119151448310007219772420284865150760262585182809249173706406540451043584384493242946624099121517506462800799706263025272510115131659163137697957583183489237514950127366817256443982757248938844523636818278011629029053003637274420930073346207040399454572772915820912053885268672642351703500738953181898655406249183370949621832141578681774252587751094529487267084762889900419844077130281811384633179169290896471635715759383685416347663506952475744452303774072917037934414298532475236053787553494262878798654469068185425211503547054954634505660745776687691218062606309891496639442784453823252712554358184600931685135226091279783341183822533263640471746329316654167595978761213775911689039904940181552689251920210454234666245625247637537236835814453807736653840754114079057743943130673473618837055217498322198626885105974128467615549006650709981108832056740905503609353745552638497572310610889155877984217577599478644226402733056868221342251927071665812246204811414650296239286131820013484063288105666393642643102258582151631014494815074023459844348222932667411200722380358388387852856346961406486270777598484949501303625138292473688753797994678321405538410034983341211899292153907825178367874090798734299418360061624990246855263972640184787464436156071889651868858765726163508815003837201382381445820577245868935405879583221473165506593992183367635112636259749943595297256299760171876169317910121436349623333369534562135381761154623952208835019924969906535678816707824611142462413491021011012295053064069477092165646245231332341959380863062460926420550473133954841050800998374290472309391816893190454961519019097603030800641646866014807160141769546997595271397661502684427937963780341141062809095415826455637229081609881068426663142411194238379215560803700424408782573079795467771616899906337417955452148237185585939858434010377140953502436645344177223320800474760681305977571803218037894429559717578570235522518543370486451972362800078137570875542972035543085704348925887377444338024756473911556070797787916950621864133089682658715436927196524442191220671159885790828026309047212215780395815771702531092737797096373145684843561939293395023613051222306048577226962620449970643605980572774920450591840513170038939927625864878078103904318155164668938299313777379995746937059888987497953906778104790126154878817151113397503650090727167670752591339642618643650683838078131613126956869416796309264720816116913645247661119240792401100415955401205751117070049350396161882980046424706091302245175353308695290098105827035005826473090396629926375968523494397135844717364387385203611577794762853582900623441236593452208745297726876568949441581951406241165323375607541315563780876050143879630952946495983893741652346064752048433575733390948990992886952660870793217547606887906881048434279534468770924619259191729061381697066341170261866190544886260776724588137773655238918317898601532798788660789699333128211564845307117667356712941615593838364847933730726380401905057070814680110629215263663647321792352939172130487675042419557251344729791387713482091401657335779071423091766279536144002032819136631555897304028107055147684239672962347640282713553003996256637474354067648778227621185462517889967218038544793974002954511731823248348767049229837649538366657835395257685114352729092864181776632080271306121509029771187440628598572101979943050694447168142715231789850052242819412297003332137953521800971485491483833652187719196920628110761024612127302215748522022228388397508103476259340006014904104843226678763383280816396788302889935784065085943041793892694874591191303094497879982243480809476584390435546762574624389102114334288150712111717776688412790175514669338853081150759740728608415731147713068369038421606318309968731455175053251942414782679740140684039104599587362318938673627695380823947289706177168345223742430257779270761954994437138085534379442857458038241184482507575249108476393726114827508098562512868752439180974247988337834053938442919673885315771970822306735065880504247972075745242668971028560492084825849040279738535197807204031427617758099434514482032832777773993737329034644917830235846070954371728447414775141745012796157499078085417789482496525513190923064833267259975698131968043028690203670149474560453636314647810268217615461630981452516552384011979321243754913333307015324121598537922430042728686308455545047336273851597301821050746346618454140608857153081871252302052898467843210342931198443581787129614917076873026752807811541942926414563745663770188070140073541528014575239948562033066779071766101140322844756210739775581513379873438130259342889971568820404082342931505444907192382743562662891705350323624258092283165556408620348888729740621117819264085543109146786179601911447349567263799287662379085509332963968363153377659908500406883954997603071283318426381731739488767771061097919099503097277187925446395221344978302197546703420140522575927850919364223563231051886949807917736513394587538699050074855438741742634627110875903882749916580368110631104219423606727710716021840405483913334280885086229885145682982018449759444583843359836800462542988045886321786669335599115777757944106813857967980549890091814062877536250257397098652490580641829893010210239520031675470230907232483019148943794241453483203039279176455508215115168664300861518030877910856730840858518187582177159876969834782518115386153512166140068649703395893075776716360327727941212399852795447099095019527754413346298879782458853328404528387935066289742889492384494012344305008308319552369413726004982094352044417971619133067124245007226128471493010718604591420127860810805341037030546094869457177107816896924100579441075715696672368462685988218137772425070877648845242006086316308155500312337566127378778356847278579957190632927243258702843844482685510115800938765535603732510319318788646455697926076361963835937453379119864174128170108185143913101060055216450957803277115755793700264764703658739257352993505089698234458417729482889096968117284420304167044828910878105894297002872618142219867325181053398007187841559476201141606285253372642852951455827904796951915060550809269019918770701053981671592388283175157543643486344114642621781223758423456052290459457085930085999770709641366117209412136339772474868541946544094173716816254726970491573470842466794316786192303544715976526974674323846974166994562726311844826201303397684459891123630980634211174211082284523813513438134629303003289220356283927656971797912325495044086216496522074336855528014801015585953285746966775032957183973205131832286056519607267495438055007502094407350767134306231569474000521983205346453469789923587229109790512421160922118519170471809403297270743529312149294375642997663702675824509505689154657281089242283418631579948613457029224013042763870088234730671333862860984044357225337233161660363166663890665867313249090292935700157305015129354157890985717842248764421589132292123594901007269798202310594597275407030012782487549526206945982727740688007468228547131306797204438513291029412505242777855509721603165144695042430671540848230815006882062800635074636542535755344654215668291078244091957753088229413784484703792966751015834136704094991598973445016812022146410226564188223821820057991959638040199331815474641821973299262286485700122086806052978877027747919733583704716694648143285051486810045972758236618493859505094075106349145667762247029675827790750618097888519529332850003460580694266042432913139201170410649770689697002536187153965241279760253585944775430026116225109870872284277167786060211800802217464185140767233544064964010835969211620203130283917373483431661212544812591634798226490310877754758079619397262773262602542421666266202386819097335349623405428737572807370740405204760044791792126342338124349903933175205414249522493646075303186258547412549017854976456481533140744554720046878937790234499851492660446689960263617051000979170542436994492330869662310183596631992946345629781690487168916002868592828133352305719811635570634222456817771519052322313143540790708032858264667821403199656575314090788685701585632539713567588848083766504314068859348544548685577196146297593873309670849693047839712935646519784769034675124348602560212327712522009329182137842189281372958252463794153609803177622490183852733450691007500051239758744903317991608880293460747156337851625348825445041120010705833127851980599981231753064664908645459765855263402932994998378971098872619747058030009397565419938277786250734528240943483323029753395415504959769549247791774801873497470519275212779873787450434993268198619981133203216762964184065395411203794815176608893448894132436549637033302664945323756635559478318899292958688204097969041152975691080449749352860618386680787931962827026439600987694028545437626299036575393609603526286038392339035122315763967074029106187845029966758934437483515380722680573114787366049271938537770096103921818139822078309130692124077739605038635260016612997379013364536330862225976334797588384094297199316048404581031614242886187021124486451120878153556863672220090133266754947276493817746327457813909886490133399427077083382620942734318107289431530204989460732009248462710518651504942430931648061021907459880117199449403180448687983880326214481602262163171219676476868655966532733343473949650541235625433556003748038486352300400701754464033984432165048256589031692752867625974160594179162132956039018314971409697379556297713795521265010899239575776748293137372574428733735314980540135434759069862413197132735765037792156004202816287593667010993584960533565775439011724997339348156103431304765855322547242710548688789647603509662132855201975239059207412190295630444985373606220018123269891845244072381638812672650571142105603195127677778122287304194581761763838616387984087591144688154245009247222774041464935589405938231539371180715999234645455190319626077039371076803001411665202786514188706926456712826549202559899659501830977875116579529024897046288656197892354436705879404632355811735388025344722116151108021355478577132281150026934683364191277131891888980731388003997352046274896775579829340938545475388943039652321110727169493688373125625143954210029605761906633200598793744413169214374729099042697336978059901328362503549621921349221292775842988286333730057204192640467398055292739359966699884760636383922676400549873263657516628395745201417411628737888705277911207382707964604959396979261724038359193661538603502600019738132021080883676467234678053093306698904099689138136091476554338807453173887241217048093279552538817901700975501537802815810803794853440816031520474303958606433196639435067837710101534122873644033726870978020616601261346809604997783649760302317037285784565867002372059649657292095685730416332864964910298919899707046939893111418537198684354020639031284170710577733847175889583332135115665726992887946632988608182363720167734680258523858414576068037249587710882106619867037652330667258005838572173059956841938775556856699065829593840470252683090480451043624982691818886318389571702820454839282215509341720733732399829714346446042087134352691325899849910386988061228338405335529121241495820211449512748438410049717041188543569155538925599018884278991957528218849395352243642813599958109553689800031312681702870060573130098607422504528174009295903644426653710933821495660015303411249892073046943619171099481383151980916296502778613828477229168734130202840447202225851809860001438943011132427091083124331304398888211071729619931879747219281682414533095027474877684427235219073490525269208176492984240815703195226660514915209205821450372497027743667720753087249901856841108012226118367444282028713287013236303582456812708228976300616170058477829580985902651100175096804765693811249301273270207296075318985037182948784425060472498319001258160687397569594230082003984555677742711660682455890101431719994777418261922424996918830073380134851469959774102211857757958714958758889611217395398218498568515999348085257380971985607784540174798516299867281453657170331497271551272518955547200375622668741563085817420724746282088436289454517753068003400997569020852253465554202824990364499444195011085795356849222541040681537641394933828149671374039044567244950773634262683684468654093227646737486761452911230647284648950707164565938272285820764153387958341038909276018185613803920549366833601850587554783145519733740331234672214204382163617351380082493433025702990633335430693962261686667726652693205747537136333471818714928796737776356989636525708174027562863341427090702639943593280419298874067774353964234253193346576197232124868106963514652321399853891580776400791585311653657798838104575929145456273403769743183896647646559384406917628006214046746142834014501384067254583653869784753835988318242534517960081154445698447796499490769030619925488419569574860519719093267020390866990596022289783026395378668292372871661213055880647580647755961376758316979193017884428489352526707995718148628855470527160047495541639904296590732028503644226942152950215849532415525745560141401732004325710623093540378871755177297418040436527826623215840876757177385830289773548170500307756904503969912819638626599921601688298168368460875277936615252274656192862338410604850727774868466454708920229585926288602220125657194655404676159147210147535236289419923333248008753060351909240311394362469019887308177391947724011016318498707290194865109429876076471522728274339042228468464214358206690755483333704617631320812547805973079539772475804870310134473194335149180200569898801122935349960898141076589700842518204143653216115958974817840655463769651938566113058616747671847952414020635867643805200496278622050881107840165155439360981672297528653421566097933625313947972899820749361918266493958880856856940306193978086159865342293646211210160033924543341471413032288780385284343077647179780694484228488996223309142192152396252937433203997376662548508772559288515195144249680271605095652630324570019835123052523059399169186940817045943428590495042219625377298924197228513360881548886897196711429790280727216772236922574334860856164353510179868431457734976828453578927984259936274623410265225225077590506826639215692986856481644228031128730864056474081787104356589135345153913735216724826718396807363648580027694305740748931566019229444640723924778119185912243874886916826812600466990178403983905525334154341691187234030635950117371090017638821297955921377743883708802146106207933462803244077360053536596502276268672821097976359977873872207366562406932129202595884337100517505032715439563670443154815659356118816100376564834133410027869798292490801401016401080903287472631714070699768495941605660190904138432561650348576707009369484104388496188849772017981915638654850236608836518269551892681340107552971907639348225953146329642954884483596712932206444680858069872860679495261429805119677239275447896622572240119695725786293706350483673711851278506726175674444472968178723912676650627800062016750967281188214813716962401139901783279058598909941848544663497272690323305109954653128890213265423452518144075419629829431981346933550389718583081047482564417102327375545741636719854485191897907886039350047263400549828754689139006283117264430921118193568313844670639750578764334813361691396744688572016435750857390211979393482590509875418807810105510455502710995958318180464385513458596850190153941994511708939561383052475163636897087140229319482823295268035517745614615036888886338908878294062195199480440232203104861255884408939971290161784719635839123327537951977097959312381175483836101351039246128750698025424689837726587200234326187438197812694763237036230721651758171250384115773923117852125317456664389191105563124072789184365182116878637574865289963877999223903154554426081473707232311184215166914922375142490449284947012610290282975149649113783254639753366625712695159229114455236455889915594328008367704223793614466768471555650911160942250745843606306446402924565478542949052890125401454829336963617480978570556906499035996059898225640592662479145260564023137429133477536000905000428590044969626096267454116318793507033894816842663894821023687215616005302616051492354909891073087830742638906209329544043627255081230699392001131111747789208716512069459747418843914104427919829771164348560208121750913761331356114206494221834815138189298769128099379901140265800415213339918062055029278872667117463236135070564352805968526024091383279103717107928672294988344333508731030106708830960003778631152859281529097134745381077507048933432579549518432945126050428177432560714912468969670254599506269615743479936909602712967971766491301890119429415159954758739503241626311411918567813146762340414900942594218970841573298267045828013905099002152974644017011696787945856475049239560477380208539201128910674341566263018290828309522416247675454128239629758114529130018607500498752996406279396644620142694963764765566327208230040682745570627994961568795465860460221553342460580368461753765891306180282913176704074179326483635406000079608203621259223024108589619232811396357330976340126556375543813137763024165321002947754431891462827557675397004003147066988557886907237552187579549607840196943735224411399547308490425571308102031546246329957900454777167236229380249815836417777745635856228284919580949784402261340834342527306603729948735372924692247194948406097563383718823712883326783592832698692105907304508832135468211768803724420717281753569827002201651716239415710508018512842750676817064206623711814374673558342058736196054746363066919636963559495595916375290565097162058822530586204156060282097514847079550025724194799537991346872731780320250848472415601488173065554246984257659860474536255103143948889075533308247077686204450201100683682755164783970153629344509262102227388677390822698435509513692052370823589522802886109817328240711677709894274028908014698841166399509067121607445526441953900123357262699608737348122752983674460928862845155520069327639664998380324110750460305207144973413413495768971710048113692884280550653358937221112754828399521547580764453552585234527034465230246520264903788300182797041402415908101574280232760841862926115046545210794578570129542912216804302088510177080212273455037146479792621790331051273549040836101242899775059857429334740055086565534804397993489919747729960019543287932771909926785457124587195014946910696281229113032093185904004678107499691924827690779665147452151358274842016482446683756531851518731078707925379417473731401857249802032251982324555691212618611590638313983355562977811843154237215178281417074041688809109795058884035853354613352206268035131819339058118527919606032234687005390045249511253229490760741942506410269558589604586387289457035588352907265030785015471086445610531762772109824142015481992335307541117953066002689683162219503765893740333668268316613432620212941827547408926002391876300970812649027205273826771895893304552771017242778647709091015388014443056249806903101018688134099249812179527043857337753567398330725799144807895038080290536713736730004946016403797328456038527297437331497515645047772324641772768721623984312744792617449690921385743138978034474754458276438454776703485086307494280546008923542471985965419634829306339101167434567734730752192848488307392649370226089950189581530845763762962989947717480092976042512191555484237215208499257562515562419081817503683508580226594085813491236599799061515166858997828513264161656389102183581893540512965575511329465846002885138539377184908914782772398351229495418733220703201859644639538409976328835596134571384637721182916890441559585519407891614769992326744373070087752793940059544922207151986063669258706840268927415194729633273318638698581005730969612545616779520977370478235933762476934367867316166547504125622549580377819298497108489250350547701519056090159571834944812928728994445706617635566012569878928758398887484495154734543342561521967866907452603675216330777777011125525324065344611466757971206831093103617667024918334393922827977907676905157627594302421797089851737164799361140361033574855978312740052847497613623178123547053497730847147980691645819536853784589496628493369637109104176539595553273827282775433278060688741024087421437168048642466881807407854198803177370706212478009036388635922727671105890389624122712846247657922362430344006885356892503210314309444560908314067617678277851821911171117085945899537972556197993525585674866508946907339855632125693059412012785866860529333222252519591255034567983502974191623361932306163881841564705125160028822133769065178604927637127391193529122924162462122772807453296431923984931909382255207269384560665467577054991163061951393557417298458095556100849154538870008245075152488349157580917818426981682444047615363372452375014775501627855822807246770658629420158446800559619839820639749212580497737594151627238282382656085672807164796723130878418209385926335440540693778491727360438311755918975469957033507257917253350063445011549633871111008019382418211581018299152628226113792495364643782067342091297388900533655579529606605451311626603288616961795800584330488201857242469771543949799162943117078783493434992612266856217554817216084971493779082436943031181833512200032624040491898521539267848769997145909659655799126844308579028640982919707664153055480203658559833867672389761063473036642121016566976677261941398059083617346150548382640355615248575955530278082870442833508176403584101912919403559841776037862422021302732647530750237796832833068301862477387546414638533220917140685343043651797008603651403333283747426610217308350653898257214950315858597158302479438528070158355768082001430503871763097291255996756301451950145134195212473029067709758791691523761801019624177451309957041042278372758527560318121062133029479026124291008873706108150852976220029346874988549214122512604129064831942888515485038596129795596347483114720346821921489126569568455324020730464079638295522191585500327735601831608361155050508471858862345219444069223520561987317012672034059635557123259991413662005709173545731545049451413643051996503450472340988231493273376433545411965647369887513614742509770309192495600337529341210003785761129259408663959235334303055252244789913432827952645318736774968843894473297625786836403834296086393027948774048417099270920975406252403956409833854584373874573291748827252146078968644278715178997531655693698593076744462086100934791535668066513927932691888287722443211389391273791524355361087563751417778870669819881312756416023651606203654219867058520555254464441866194758195075741720335005040905693392461223721234651818029845896768183160398163725507845839349468274013892847781718193370443714375041511508759349591146610178920562722009547154658847740867921178342328859065269888075337466812607632330364239663157695036057757837912274696961565120534964522768192896022120994783826088102953130262899946490976524557233134401121199893161114412785194739551512529326823030007771668619477905554679664007964164071101012184089946322617757634662011275535429959097072838960635696695435495140726527155901051034450705741949415649908736180829793705906051068497353692825254990112354411094562660135596534679745104310779244065197874565826460612839814708464348107283248865522688393100654617803567340953175206698839081290854449947521369395853869476816386281008221025561761371855987134413261280118438607194066210206497256091061327801817283076792019731385446737996776879329538110730460756692799835146915572509568602706762703757499950861269182418828635554177327580047682514157560566345296723023104340389102462130478973897076466081041876561798107981292588237056873710884232593891293895869905757574986490550706210474806144030789880799412785006321225746268694558368302856981818745232151058891182721517386907981960923634410276863853229601352997535889005610922686864139203864018133453295686865064327484458729346442946185468342463847931813069368660695794186680882121855821981587315552280950326542785661524285808556732543695963607743198868406515314594990000252513478498892729746167323838197488094548088443170889354667909225481633418201538302372493072440648235844398906831474398682062116984361237733319989679690574180983338994766833359054833836940627569554628653464396192632203927960824920018467533019921590734865059680779415442050686931718764973348214701325757767185628667012654261447717140316562179845578076434563612012499994162772922579114951216480858447494863602267223261669349416722466365121852165224239396727840803552823808753059732996239152517208622668178840262481156949320853889224424580052993865526692667901229198129969415005389301679007654256461561305024701123136705686159594902633274822567459160646960574365410257060184364436407830764624152758285958533257499677338772536793205326061049693402960937493382893785132501300205061943141917856680656307643097223313982906628385491837361087276628898049286576161387066399740061429908727577591639028891814681837822932372234548494687270657479873704550380254052949567263427024571206671429855919929628848747463337227221376105975428925432069912746935335659138000804876536217078920779813752499362597263013675353682254683402066456309486635056022958270461208784317015000630041603786659994028275988435827034310816599596426789158071955478923806334332152716981294022848820962134169988543515786095987119240484436452097505916927656519204352558837173405310059743025872096600695264618687835339261036370356396146487763487071570374692443846664217434417169886390068258484725652869460098777208056535435886007727602108527693886673762624719570799601531353906834299502847542437188365169367210570225866146176195597233662816653025626222341373057025205588581538845352205454285325765688561886547536865883623770109930935252880247080693050968540856638289379315100980696502704493865688299342134515706812368321738852777895013025933838467284012450232676942061667283989782617589035003114415081468412490616498915354885472065191918649842638312601417794233970007598998072255122716759911133621462651622011127891630991013507151068762125894673086280688835438871382902465476231306973328840166277962115619259898653924515300248033152208467770143690475543770556959202017302428103892018431880535230789200705744125511820841680033596808505224880690501771359581633066503255579577347927863312673609846361008909994920711637214214185414216615669634306381062442273806053795445362656014025185418222272560362754257127415633841645930757111441424426000709651033369134968319313418945860392538763628145541675674373666448280016265873336809928253445587427562714563259622636038693453242738464247635875713843215189064450134315663355417021869030834169882029773279880515679552955592955058421225111820916894505037904377091511402481116162286972805170747469496717804068835581465486649743654995385786063582749089713220532510637286135690216327893115208973578676900869558633867888802156382486503801001311798596257064316333528471763807890138406815714093394243647045309795534984522428866324073195157899132198974427400146979642699562061714773827023869075309908767359468529470234052882224761839930024079728224411957953183095519453357551367659353993245785870263720469295802538582057553926093775338555209442099353117196366395184833260124851002381219348339216218004590583821887234391683829880795708184782593371230127866117504895047280102684611001788248645399954981325656730187428942702797955627405434390014826406952782240079511743386646268897993456506122147252363159831069353728552692130820365346929135102973892218588238044212233254397306555903394821960442613441617973297957806026716207835812634627510585108047852176265266894509172491417432781764813839760014721985764160400692683473513551788636956008235056256685531895838250266021608067859708679150796417972763132649869066498159385813931978193661499354351589970468558602595313366537630068063848265680939264150549305634225426936916510223973827765146455307865799078925569482382579408822476182884125126017437996097107929072762236007714770014411529679694636123138680049948789519213737739115441115966939942291239041319339146521791244851258433884861433712415939961860541225605937631653559160801274071285192279479905607594479064516223581945521184584776846799569142354222299578259586889107747611804725964838977252698010856821582735646880539822888031147280536569643146269643061068813503138491421440681354120757565056786797540705826246897808414314817372598446236896345381358254485413981614276338957179134341705739932582481745622545718371801140858257157947796038029293061378666129714882788405141675198801907518886219592345589390398586681863438417040545111412913136308073218564924165310450582606768190382993626086787433379145220751088800495675081923102793129572055104245128699208312880268511760459277148266596282755227647753822641787372035139231842773472183332836341068847069974205585675438116010596375393261143108191695921446968860276602203042965969782414405318467773320553544037570368007990472256719487400540055629575169403075198913808014180202579758581442493170343657944131751044663153903935696790471255593836071027380666232001267682951855789124909621896693866052355621547505971401488974686012244492000466486929064811243815693279139039878630627620675402211601745499438811081132120291129383436454016683491878466406316868750515442983170220250836039246135625344097205828527250705425715580295782949995777725578717292923160703472528291230820333776439295931571862722519377213197754922048198757617132034645655358457235692557826378063889694077278814307141101616471438085670838140249127582681808460096234212272431380146506616921460366302724133066115781354289680606357773164165153273792763283896001399891807729966056226846495965189345075816360020398775095021111802627611164583171343815902582489201537725176174681728255598664588562177670774352565502503723907463079490299680604741601799542552732856478719949363155836771415980013620896093087389664483403303708872599613055112407042551776330099932950883934643584425735299962638179425791890513211184308043461287023949671168805854343575439026667177691352021779556881639459362649188299453962400269937145393468915240189675349437429166517757079242156273652716975464961575624027668941845300839231351471920040284279569202291684831979687255431466603738622294393022815963527154698008578641297214786066088097575618119530477673013291551820366298106432939817573618615441009659989579652985674326570801809418037226684210741870305200119069159658727968041483116066112738352334577181663057944212793572065963182494310411896155263296823955690680526611117942299602933017701255064050029930096723175411366290032932035287037952174940962738091717101336507435733230279625675469809195280680042681560405013205960642715989920846865072493113396112480391219993881744166850142086484164231035310306177094005559882833810010289877601312662867240150679345206513809983806491029909227862069917361018375781569446457499283256438602145633891934218611921958304980107707622017791335879332770251494103754149324388073161717731972196456909204316912144359392014789206430464051864889753751943798162354550302873991495205170985735298323320988218579127383914463251084674000742870503911744386077638787351430440875952762311259618643469343258863937072927271303303213301542776218677023343184692023907096451444227227364334410657295814455957423783718933768638895608309810640344094901091292925852190057165266518534607008089369076447248051794179082583000307771932814182432450451889585624377350208992008156008843471688192594717728237744674579679869274238380533460489053050232089766807645839776095844405278454865010470459325564800366596217465907995242997999211538748876833082585036372612300613242895397870167326739552673475897352234986772363107844478519061405264132384853804908787958636718347826786377231741496088919979166440463914196796352934807051384025237697459511535790643189339132932417818082078175141318275773323332634301380388837757829406448472889052843927507938612222758087933552761071069113919311467272983139807861858821944511752847018776390222580018159816546191188101556307547027079434194654025771363557780505584975336518918984745387207611545518283416337246106775324715882456726713919632227302151082929384264909735071833456916534221992019755049892986326629469660859410994643726288025503992877033693734874354201850642728916581201304364319746928702645677459928355566483864466430040018874488129128672137838363168008362304782373278947932307930818080868818155913734417735608848018388143010791625947671716046026761092072131158177954153569752571015282011319295960418381357963899077685068933349481489624705540868872442730178370942559430247236260967983786181739830911019898667322146123123796007556676062351038449469387403397758808067267379290635541471087289258934952435428972858646873914419195908556049041342689093811351927337391982309398583766530084938693992252836500970647127131224026026393655327139897007380854084168735436433174549661044935405863306846569018633291627134959441621517740821253077191104935404817651546855118821751693168667559232953261322947209223953345625084224821708402741095189498771299710271142818564758734060230215487774629386042635757604303122243137597981673322798079211920954557648124187339808651178782704753279818095611233492363448525083043953131165832131623338002788894803882766414687011098053322093529649895080894006065386185895816727154410106833776092497537255907688128209163883339129665057135124225153511989305167109047760944308045405931956952234936092165766211315886032414036427961971372119012513231954835408238148274880152208099058231889452870477435247329721112506261339959582623636842705934645680476875715113542693873272958595885811998096290962741684243361650783211632662120168636227924997989685763247828728914410211870743209813829596507080581982535480817034246857397978473501816840722741161207130815555326909051750844490230099705252011530518590493041738116146589060543701945530505745411806921366352064920129972876426448161966630248702557880873102878757859524918671911419645719340837565817172108153145879838417221656210350239919467417597164418800903405934350501122755424103571521848157516659580369616436257079079969359574644178777920286155825443920626540570530491881542209470218423041139137906650824124591552878761033537592568665044141731689554454442321748807892479109953973458271024850188120430720140859903458068272106766555616354413710011425458258293415243564786972181860131908075981748822021623095778802616040626119903837532378684063439663145883350357908372281559945432691255508507273126928780122287285208920375609831620461113652240920857945893612196881352956059276880749514889679686790376087307519830196516399110476914853706764741037356125443497746390631751158641662928908652913368751460474659950896744651850743392091437431268847188945682181510747145954374532955893487978448764172771718012187575598172637144714388391525951633117397774502182794509590728790679294229983630907258556909629644563055239126442753603796659052437820337836147266770769012762245406037730987104351642332838611193593796371786468587005986413507964789533399781158087176218996896312186097643474032892933305429797794004417327357800112725147436327293892166673873788721404807639395678847682443740698396598624639192088077612221323896219920196489535580567725089905853557555778520274365230127490502544723938863713974208318170366757520154779357910234668568309660736827716467851532130483161871167623543400458689145730029501420930824278841667178067592048317535605353360364635929627420422029466373380479261005552520396505330086269335334815760697839837709640288427875127026257925869057408942627194491019191531366980165239093538075789384571237503016867606014262419232237644643521638455605592383109865127692646395173569603092567547959904559147568399983390219755700004354136059341845976548947698408387216874945981284136785266249634278547864221038965826955277378619382986691138486865800914864932969913202039734646011796272700879602523593827002807704769295306268686859346073208232782246084677191279410610576224721239517676090249711125222266130564777429371924349960908133658693720119092660579545477675881908455393766498855266109442504548452046454544480178597071912933688781339926133274411091635740784160344340299107769635092494028771761487208160814964150479731961531565846952819167563309741311736263835863229128969443890337668695607164572477018707374726422200291501935022724124711386689142695146665027345820316182391067435036546898170264994255528547682568493357461604764578568486447560254840211414380595277089605867735924415761833072527004460403634773760383179174621586373363072351020619171224022728725924416978701685070696008503833694079476771704363550801959290283739060230358641402239347986071174406476174160012246315019811098630989091284700334397221752162204141862825587312093071314574267460838298916255128282942194544877027712703262527534745438226813353459706490873642230370566512818616479820172396478236075909514455291283478607930456329673774615892632627809371899603812355879117085637410873261140592364132180045769578469156416450697410909243012357243776547887528857981559979330500900593396904293291345620327653278506495152118565753675894401879697413415413653415787920765681504659398728950247157177014512335625969385318542665857481720786773132809216529694764539440232854475890218877315917351516240107931401054510224379914515684123506429811463936506022263020185955944614612574841316395635292900369078810703720935360396203475275059441399324450444508806389149679804362451293366823480395584888597982727054222758417202056128345824204321404524349582918427537616359573185296495877037100052522070294057997039555714168434891591500111570859781468916458375219924757216885747592191564082940235210152840030162719298906569145684836090493471865311286135366480676719642486955701818097915838624522796573198481299541076014052029819926925348092698544193888971643629430215025505928898476825099304205731757977048097995974090721105090937527484291601694307316476129649247814276810461835098676750802842333820846761257765891838961212573627471151877324958794975365253907786896191609963159126702384210315561520640816679511765280808452550173982896448467646963024100139691532094493092609908955551466272639728496667875445551988601658349840693436698170477459337232936618153846170021953066596548710177419253335054135543028078792676215130670012153305787123893089058287186293136755068199088987048994450039947194046799740849002407776300256353696427397638814022620339231314324898151686127563498956818886475175984618530015367564880011629218781375530367496800275163155946007950734955344736930696538161399892435590850808754085418813627108953573987220423420600038145758489926038876131726263900008114367327549796032749695342288077575238809156962250542462811434750292033971653965820766446407695586007448199763131691591511327086863927571373757824269397515889212181469347044719805665252267452693392272968933534198471316765874679457430235519877060674602881145292773018595097359179289899010920180408783605874026174871132960492111585108535003534251610635091547802987240297764247899346938323003545012851732401924974144764811013633687610386816032454278714106144483226236977552023417798648658511543810495794793301731728420405671352320884930572864279419664667710489180376661427669966214378401129270130181797579095999723456451914616674982285397853490895426498195209775300275230586692498641862761342002955591814438702609375485588461908583728095367110403968100696769948990698585688876619840682200730253274537083990179105811817282037854872355433115562497638800395126813513801774339715558799657860420960629237851673437625353917356822451169116758062803656943563217422431353649321215476056075566959797114693849636015134128423047630004395580400450805427930072419037408561957316583007458406983041697826852521420567929623067924950711156929785553337057796683096547097633553846209744810949441060167279208084846126025449435879565271069619481997995624524046202137999735578360716966790927552562248030491061527356059961082983224157407229666822025457345735338804986410203037760765840836175449797625319599954700196285127551738961160133252233113613299872909632528713976342971168345417375774309478689161287389174290950290624079622927074603213663184352373779659031538484068247812689801777749045385598255599207918133553600265972272597690548203861533157728161995423068938686030965272346567697904137650899941163242753072410748816746298955989834915762995865496845855676669921763708360711623991464245283391790582784919056457060302733916983500356761677795330577531544172137365593051025351768462608870721824421021964820174407003205348501352675955785045440316825641556324142918916524151953671862642115698480524884477390691449626453190384058447932313278422177397935294680406978668589434357929964205583929538868340599607131069252998345382676630106185872108888920988482459183812043500454194093008380116839304842906655767879770210093905205688991409477198785599328043299471190660582796459343948705162136234522387874021758826474986919052864353990428404913188865870807392707901898817566249704981931599143794311225015108667318844612927449316301411919437676474662403455800727008668560104491948036799707429171860310856732773148984131647459691165536640387474512999818741573913939446131877048347076201112799182636154462045732645599983051282966586557208526232112599511855722741746791182895904850603034877995691065539898656296887339840962710566666901332706435556186801460982048863302920029603692174906519321635823414178761162269676847979492155815279118490312669409983512811947223713087562257137079230228739578288267295838840070559541729271995133858307828479659911593744015140998356457835246736641869536811455078739191538665283958258531332767015877554483002177546239160898109953340373533036601472934638865196831418526052049586926473660722769056990468047144723683879380752692928027909076864646147092632778249712650274508320920601383616041129639112191664099964621751574814075861942789972906395461297955963788911888412494861851681557227277941848158489894911628885215602843668790350781403480219524135360126284460361573005154244143054326362218998842052159256270297886605504350275842599652130690951067617467518583269522742103398891663832786511484676129860828637852483388535373058154894030011747177184260747694806940388451717867790731669633693743554282701888698595679420652054400225728146764815673420777553485036987581460030898919268214540316309869274509331671554569963269624296715404281471005149787618065560454408617779719106878561687626290715329887454373553520815937901236130147456963654771221759061537336195056593581223196573873378149375827275152741985269189313045734677552515264999275138335486627103953071234994307437733372483068096337778653069601878578202001034816021767635770709216183908565125924174020862978752378425915019451664402686463301856063883330760062328098835118873180827929276989188715551859040101425752093484372287792808162702565132497361292883494991075188389242539156415356627604757065575209432055715903767271829202065917540656395041279274254397630095071044357370860990554334256902694089902543349187710826074697472227696745853379438919009010119838725135298004907631076240195990372955627039688925012507827390194702224418876154966492205856463617845607729437531338295527930230669673409754331330607839242358176619229672088244289940299229456550744745412185415617299200299425199306271377341520724109024107772131122353761079849101399381830460176661269228010518306286148847959831298269674414445983677709524810727104942063133319155770298219957301017496717652359233057783459906565319257520562273494797984340765713857180833053178212180166467594698254938314210505609657808524041060314996109756323383083369890571049739650194691379521358045587422846712351702404186806824051201118752178347740629665000035377148768513806676664534445923337596244796094124375639961611058302533364153102147853382403074652134459782592496445472094816002319862871756673895394268841484730975950753640286161969945447003757315920853763685417502197693406162087022023964143297183992671461869941557672134550341151475833934623313627930369158807800625788731994213531888854421254544547071020339718227349670014155747480048711893837667764933075742799195342549199417546006994261664455040988976788346009656834823075164517812113612434457195621269647396591045166249017580146123517970144137130568559399118146243801765105138110374186874470938731457025476182050983500308503726354479834307048457877655032641660748223101116988036765310737306745986635153132635350714212794227108518010199351712313925312492960787341481000649019885702102851348201876559997034458711281911825939775749224641898915416582055641504767146858070588112755966360120377319128040482781897632099187910145754690884741243877369982526267615569182717115627334937446157326755443379365132490117957832511046287058779592443283231550668604346244395146000548656089735079674110173034127815233549626244213201211354384037155300582176928455667702066867370069820398627746660551935504413153174528313640112581169471635801953351511172351563823254003415175287497114627590597282590977867555221550983642349126342991760417057391901416821524713311904581950436781695390020710116764021972275430626135847506190705738054562619418002000832262444400563724746649859015530525387663688359441248916106932015992112336572659255062163869862565635353413330985672441485454685495635265664623295593072567941723790469257297137011041336264329788863297289813208141871149242765097284339614961562716764985583873169571789923480668493410235952310097131709179054105894349943966251102405282296478315048705577215870956473706880062551195462586126361255851413807829842931525578209786332680060837106247406669938129287858376875194140966527437432589727002809808868987427145139862309513423526139497117646986425050936049467822740048783380765650380452516797022347541158983535902494036269098611394471933803979487102896678016105020817223192548807170795429537722968351529351719327995870047725991804261819312332593552554829930859952058732332557534428024645420488002079720763783646228538706780082127290919961790950873571643277216986389867230625162014315972346812661666408974000599584308725104068755988915586635331392604784209543061999318918168217577939726936718016306228972275439379511002073629004311330694161320397542577138749376428050865575664323403340914167826308973847030706471368857250178880536577165594858341255581691457210201605471695653876159158410082799010832031283496768984155119050867886965560898855936160663510005624156754591487295854641059674436797746830311707508945965194223153204899002142036732623734228915882311079166696183676470244465121141987280227986056609818311508076794556724135714934174318599264737587195391172014043503928604904395456255165662306853410020862631709384182483460162955557722179416772105201994972170480788614938568225166699656650261850350423360634138179283466098927698462083808160798876274999037944287550828955162418271883147141884044419590825045298742319150177810203310564493232348828405370820298934819368512138475924889473277280024390015543551953763790692993147445618377616215687688828263046491998143733071168266890779724140869502526844141065107706840119772315285246979603335071468903189909169073032986650213329760709862836643058024892214305861418987589321554382489836246644020727825376584759059756939085988802709138280787767596313745076215611715030147415338148379948946217477604725907409120296006373990367497913572255629710264045576825078280711923459223643844942295691046409641500011817159278047032442914708976597949509149799069436922835362839813765528194199998816354122031308150694846811417512615539103738281306422017140286973476166504115162319090014397976341776838856766096336358747313179769164123588711613301536875217203969507849624554959410548736869629237862939797052007266667527439931756621245509419847360020493665905869815366935879713157240931508518505552228620584856504663012373234871462136188355759864193128378764241555461592104692567383812877835344388331200057932445367496899146887470625049012998861869585553414374047031567033155606110910607720300845221739266513349683117535615430522844878443978460390257396682776517448045883255849676865216188374903337762130144656620422141877327654586111800929374686734815433693048602711612206395163232626184830336376179726192574059847019763820041870823557544486825040126809320181451637839014597518138051104186606865073873211976786559390167716428014030769770364050507816423544272669499931270552777308751783994611344933571073423290275055389196213350442924210490384889147032432417727635048847412602829485229248009171712698757727638187192064827181087476553976130039238757761553150170746804124584999863948424172116571875292527924281434022175721388627193319933609312754060893746396266669352430990953398237006970318074858559465498862433546165712701333206789096811356178033109187282981062549621447256154843188865134271456667382898908010118065184904186360943688683605441142220090144135690257397572733733299333686681398981883009912007005346338542721995632696755075085966975934180289816624778768400414465298443615602176211499799601103252938644724148866213293607670757860129469055477795199479349163271765311987496570729297022896055579827475777398763920726059903531554506094560061386619014875868856800312816503827059842505739110885118164423060460601042564349190196277351679962729225683786714445446829189803610555245452695652526117794985746082240021828928498995587335515995186305411794198610529750699971187435217677736807122316552391316515676116016280964078916616722021538030801738669030853431987123350456596033951486342710736330621909379501519805409290205763369602160998348055913629977288385616654096229089967469128487430705413511041323956115445835781384779279862873724087816917453009853667664818431292881779880667271817374577309845161377712764062321012555314615326596982270311386592609604757399337710800168977156218934732354918661635350795888988955898076384284424282361653542855677347336440638781106776098878614157392566345389012679706733639967484797637732945751342518214891960623344126906564404732552048177765941893632383668000400822883033308972454876919783311423532157805653993808621490141360997545880072689268898130760375002302924308636439942808897234352424879262670599154533661460030484071960632639572108332411952131396902420883648458566023271705852942498755799777098904923968583665998025595908166483632283093384072634243132512658844894845642828240824681901522897364461738130407205888875915688923921904680225136508616488031154646982426571845236046140599317237921128809908475859259497934093999077289320639844241210775843506777933373854276251639186055210055265957053445926747970362529841095820186043385765518481972551350935899142478474066465712060624774876572191244228358102383618385351799478961419955884878716346980859796679315112389555943611136602735570944197414777593635345831421842958987372953431311213165891520369984918085168765682120462925495409175064162892655170704712139969462975933685610735657854076668660212071014344861490833111563918929324806716250025380349263014980973583582761106522695593013029411630373426060832757453213292249086992482479090755995046405963781863358498847820557333274433338417209457665923469906335350425660641758210476613580891373975485171003193417539396934633093880368555512495496568140322187012238264037471384278108351394110092470109002677435840449088662980377927781453703223230569237275556213285605066758584533042530523571955555091468684948084704188157306843583969340113322711510203434238973068047733218011328797063912754939050087432032166383624150898185758022420617239415279798337136109058934485496172209051021260125783126349288343476598163920824464352851835218612600641517646578743614522184453117259054964372647766456191997510313357025823547180421683972618802748423175201999674487999274343867500900304502237128011083812036104639475607930804659763395359389615236444708602586735922447001098864166166792237583268788918048889130018755353519122128509503953061217878875019361897831121909224461914681795923686185209930401447907354159225139522365202074780664409022874901147193103134151467687686044481235090512490175594753786552277786157060222745864918876600172367619804174521080566619661342100434158180820968118261793024937393608957221025568645849746652462884682161791782050692878270239708398604379097198845820522277553181521169881624055496448297099998147822851979334101234145308996082353562229113451105539251600015494764999490957717914940227148890379219573416599420222757908747743737515529897436042312333073575505030994470048476580422575094973003776489574507847060789106988599943318105049252727642519053833450977041770992121712723510233402213732007925452970642022426932114043155515904392136045234993847331089842165867400307614927705542839324344224147247328506409179643739390790496933023714409115273327796213398386267160358609516657649436230607166486382377092990996763466737451373660052674448923119515096599153765427712231295918371464328494236922266847731236964327008933692397879845075249246238123262568181114040876078006041545698147012260832125331795866564054729226697847978746390141698721096725459690033370490816793266399054110809916472626098185224819217442426887787577790781581504810738273029078717904481176853310729229721674069296086785202232559905819107863433270997551270289746542961675307731149078656566088698809187083287831781009513411505946019252621483501734068597044537236393537743010810535338778495335378773489112923485120055818451475091269738878369692565733021624693116095677156479283813235537107162534543565306516078365795718428339492260844203770968023552833696256765991952310874715967265453279401271528943973371916522925302874153151964309161789592400005095872140805425307967642055140653621363122453624011130922934672935730249380568747632123491188277960596801230572589405506615135222721393482556690081654734999208995627936479132597090334906561556689434881500819361882777016208365911807571047809855038109837625056567631353530083221576026276733058695811630012310583700610158031799445848021622803999308354888760810298512496780958359606598306938623580251596132731453219893998960481706604439681840583790947043950678725161632653336019276274497364044986181386645718566108137453897731810711646305939387896750436789570123485291755358283766242169254859364345797600093240754722079460708284953734391255358113294328040763937480158666638241634660174077231316079822568207584669016848843188011217106708182091628143289537595124143319707093415246577861606039219908030068062511835557065984258931553355871858131738542024072994518711211651865785760179130567361275028965056097190623624847246808130167752347078958919525561921202867419962836675323548333152864133697607356884582977290357264020313475593785783065292199780555466072695980999357151443261222930145359631239903007771326136182163968345120902948597784597651720217565167860810387980337817892459760239821902578025420287322974736825226153231779229324447037506952249257661347799276414002890162992173397041393909291811484050912706607948242399373623774598704549937492122555205488772878419414648922596555763326364370678627399619069111635805866273303809262804773287871701817882799747325209680750144361561682181547189444185527385673104965561532344121351548583553775629105525665482420402226574012352200623990005132381155411773920401050860580387560398378073187796298461960313767254153793237340893433901931413557282978713623962124576656902922963282134820821231690759810979901009484928768636799353200967449648844594111628431815929740140594707324245521017738157265103649736180252561903386178215057112909491951990620336334426461308238113857684535392955012365820650079480623120411248238976034785619126971989290430597811439552475932613211995777702307673159462969747310071680972481683128801198764866021240493678769995180526782807614789558315248179834078131398253159015830329192673046626644971689022626308910557583253532115425667554887898052086950676187072896567026751915103043587627203445301012612019936123603111687756975675165748941293380842932849081095348934561604097909421644799983994278797003626841616963291589204285972820774598520705743153096600435013449416681303082020480969947679095555285470975078228549201559285442802447046739908815101018217899389435754819607495178646994058980770487772863173095598383008543063665131514324217186595093980472015346303741279430523960401069942961307960495938021705166227479632953687560515745040877598806768438196188162756961461612629929928751564779331075678600964416263156259553193431353891839117266759714726279602703522371129611063744372851467388239099574602591657245499716385011112679437727774327061207618103786756516188753732858930416921474751700997224293405617671146775617241678274134478409289588412525452615427731262348621049394960080762574988714789688586929010583722609912953138391933231808046461711697322304113726657337984944514396834422634164925446280260300988121315842811684328087423783322607780857142645729029414475368639685997012074447867213199146231122323292186224286720140292714266054669964667905724440831640121637177395501190895042036009014876780851159817505204906879337049445373045583769214354886461950439498488468156521003342813985106713869518391997572272270091527843347327647527234164104301557754630051484053735024779491010124089607732353776387852710120214524574897071418118110180378910697359665770625130137422107101624306308015149327965953274280588042811521887725528178915253251807234295681610623901670229896117798231715870925531292568469712771085658054802014083250107214844995870639823710212094422611442381724934182086158582266536135183379270139942503105099735445640146257036916469530047737860111919832586697291664536690577609630950223148425056299930083180715196885284992484963154770137833012444136851496585230338140863706730273907964053580531360815847305699707063715187241766922689338783679390078475669096211576800397394480867629535316130923919497811811959066496419114262190394830490701064016793839772726174646219817136034888537801357410980913573303933387558306143087969499737665165787962372810715053420038040765249134268933677625125965992616505695856999724299586990268584992615584907911493219755911505645440133968490360457721862722988946921796659737561779788082603127461858841650550685645118943868496060441640602362771361938138991291110545341567587478438217094965929246019313541351566252582846627684398670034170857506672608625926041995504071857031314386985517768758524585839150501371909310701803769819140493094267879917157566429937713310481552511586092809980658328471490386764077437181766200570891793958506655789695973902368349803973442023566429055993978344968277800415459781640375611526517728331898076941964564244937354630110381566037239939054345845939413608607135497535850860754191116529921496243950690645613946329121331299953538001396401558873205282866362536412951367564645935086666269670689169554210190529992036476982628082396791903843017373547395099483178170733359768322757891456431600219030275459734393202731116913414306976531156817139367813469795107901761738565009779003053799501945713073633759743057455454875567360467063719174712204491073423470709050920608661444364339714193469126393381319010169553385827527879045964499511494187981881971769963786480640094669162996637172642164736179517539627823016790693354326064312147790681262011214030014911687482498029291319911917298987205896342277883311785335642540724854587496491881342019482844780253120061062169672366548005660612302850829038364604034221780987957967530970193117077748719947263081824596777523552863338740771829248081564923955053169764797780146362951030263801865754659942260127398516476016826967788483723568576295332288232724547454234560660759005151767759158542443538440202307816359571302575183074721718819625599761145397712621824780818761729500833707162547628390391508460859389821439875177273658997996804493312613591521087989144573582229434900909600345746846719647135871438110051181101751561643362982536837945716500184556703097986992996368856360386016929783629499580373659437494021417106541619544476029615921315894035248627743607994016537854452579835931314287516314263976570175572647284595963951694665254967723864823695157805216669006039112682141427884007514265315662060665155214409898618962324897362045438886185418717545112280352375300231365324854832331492138692768998528718861406475578867462489451496659826789085142602133842651280529213214349430137659816130390738948357106750488343945981045962090552147690210558280687705983047025684539070773911702327318345941468994932517984975942104602203070840864042515390756032458855633853369331745847064710106324515034813193723017644803824907448754948706321165804518340538656703587505061241600284802800022446397136391022447836486900100786851883070267983218681899829973847330382527913735238576568256360069148998082567893661304080049240533223835921343781404898957837679390799222401875279187915861168170433733399029180798848842147125928363218612522920087895853184694312135319297633379127097426747414052708274171389200259321938520017257613528568355256471791189325323145705085191342584913301933379890631774161059937848989476756740011028594002385556857213556320762758318302715510916437120460906746851803948903552482249271731887460176840039574850771968806475123271067754160235100778797863444007897760917266000057996521938155211831517825810305692383468586170066775396955278273828383097079770200141069218106641190069017449730840727657540735517287969396002048064688198328611375079260413391565908136489513844827054781914381458756256910362661033075614462715101264869479211590851166887592151539260807506490829467327384126184884629304050630602985470214844072173995218057979995703533693761882840562762433331885137171055519657211528258390880282302796178807580946526167036812180500273346117160649693482887174754730728030841461345854928109973120345868305900787481955132475201689437274067837238396726075014044820828479733236359762559888743233662661692171471751433319193341850530385715030246643457165364583377278505643860966685122759002039919092251034038740642845373457106356976674122717098525449691493474224570617118327652646573895076826492727379393847683430008220837233308435543257081770440792113959717873315236129613456033093751614469027469312700797508544919080205666365773286984921669387320045216510218147694690714242133691902988632485966160036559976704328983564588575000259359127096503025713708425130544736943662129324743108797349740655966560922392417068427802940141214913987558667352120061344653480664327565502234033611648177033699622843493850853760409716618247481696146790253689248427937864994652469224362603714211868918722046969348075033808965646292276653070253723218445805140812743543709344843406851821461610157152499057333118703800268852910333431143115885774077044927685336515846670340086127736215819995936341814144700217614514231783347597513195737241120894778545983739904291333064856869536714883969279883413651429246339387416238814906346744685931808487256762071058856163168056831708821899086583344832592928697105612341968270185585739328858487050455041953501069541683222603764956049834923719508142163460859569455160173227987232597355113015634563710726717663739923206464347608784699498177421894598435674918810445429977369754951109639099654046661950324041030032160675999613887567348529052743668458448371265271099852929244891515636532411229058393763322667834089909255528829840163092814121185554372415063731255161957097265163539728175834341567575891060694787280350455639409302712477781302311650716610064106897307110699132993839915380702623123562273966141143056336630236840753909731760540705162906298918410557942892752928539915027381688790344837750627735217036272996717936036493173244656346190512734187656515912291837844187738240392344824137731703623113623415021412942467666501854651562214844873646365431962210223780817062001636246043953832869606512878077710485600151033741437266693551104251341255260208493831430324897428774317008084427172427930936638020028346170877549943084359980004899948935345564609786768898711914985103297724068980839873708804005906990893456641201707007636784971414351845058506546169055177716566785127402660500991773784156691242025495986552506519624728520051459944791630721702034866093239455478812560035771400817575960100422510762349041841823591148488274882080557718332744530745455713380075886717997700882285033220363505774961544086963321115124094862200669070440110556172071560323074207839805096256966595054897853457997947468610849919645719309123071403788207209095710800459805072418757698584770699028665505358587817865410035040149351044698921635389755669733582605966335746737801599161576604268545768038642915069116390408927345274688777221830065396248408156906932554740417344890628993240407531802942170566335319784531736117880084195669257798351140410195742108836529404156646419173878675229129844691307053002373499741123446796089325168541927890300906134616600849548649947439819101415097634613605317596893015826343426090431774556965497398557050384774270457890207290867374690610901478060105543093661982526996352195795747363186111726474313647660739047023153134871020086428392524399217267859691854867228898037944118987103891725376047833905845450235074537932447816152060191281134651338577136061187327252202715973684443651108771641381370465610670132781329447127932053483486701223694462008868030192316296556076906510488741066824058012820193089335109291197139040409774947500817942564609460343411445438172336000250989864063965454222113947274040205707860373059803014031996985986485956399502995393669712735619170466503668372242661059644798583619784900314415950516484866190791829531477808643919448144907410996786857588211033541994648984009121147419812074107609219562545789229685953850502560906807550785671289450080651808970674558554056762115980981931523924810451923879685109268744316333965317758093040101467741095184686117199056557351777215897970237141525621848276318691513797207025383519422443016536754510616074909332123483833751605701574004918601780742434203428848644154501881116599254256905398433931304113649358323451415663862809999221195701953032534726648079629863014618355768504532025040398476338955324450894721091365916039286186142453392070407915508450508208781624281934013256737378940199920491224717729771515493915695728935954612093053367403596334894664355835527093221362877082952957924803482092538231995237556972861464572026260428493884226034040396810204824323871493831030505673918916725941898227479543065907726389917988260333692416495027963536112394198540966814672366446475565951946153330632431514577962052113731816585293714333691835725868043054812283665697430257891121365087090853533143753794064900195594851126671202809523319379322761101368413572721659460959370738381085400549896572563414105413159357566861916930922515584229715806954814613324149596880285095355489671145913503167681443161163878141772340104615765065552310575742123657227062829396451666137062946808270333433683659343601164817689822932907299378772261174372205851167634962406488574716085702119927896269317819888192532174494023087697287441158626460129649722398280895235638860809901496353646220530423020770332230954251871794400488633319687005045047194494957787994982739547010741068513728941446448368185879937593127456440804429431946600268324562105706163962393797932905172420471652119986352774535711865923464095331813682211412102907338865127257908167435988060043347485385567370363540150804513649663842987873163475710589726424444286746660330343691477101305257290864927409301490374018079688447547284310421857469146423215277176367827887349669365481832784748997320791137513090043683466766899228486965373108963345285850081121733929973586688471830217749278725180605438873169639116096890330886677754412001857529646708748781790836562880957725182973414205317668631249552559544669699497955390255234143781266124917294754080317467907884469479659279256175724926336560806313596141800699441060816446547020464886266681604518263156600938894447091401297418916215327915571408012370427923222683105928914297509317156271927853612317799544824681499368812352982639491543024788905651643394868978937312921456143119690333080527967558598150933759037654218526037273841545532131488414792608681170754162637876958274614472312104577516264513874742054232408041268338430424393830638557402665447942697991411221347502762773446592057701209677199730654902512975935700838122167627658601409233370639322722594066387976437162728493213527419734230868959271165757178856961122857960183180507561134616372503398320214358520941295635213457233185954856882473087305373103531758803912310347079599212538589193070731657193456843943856893017780649426998519291516978549466124978714754993896580519522806587107664432318900907897551849010457180217836847118007581352702178014485069628999825826522230563241308433361400096088562440148133243781707138942480107058660285682305526891509390398294924099433061515143212089503788405025548766412448782813592729034933474070666063769451140197745570536502202277200306970774310699772029137385225569167573201198815159405283992197364369324352081903594892720063165289825924774354750434072821479556288588423478022534342051601026937915737298701587478545398823653917873982763435038963834095610821684937205061096701191812421124154144927332967122589494153929291028622619354230068101591021507711420626711567719147669452887589800707918116127657252206005577345702632924866746344263008781931388162042455971693666463563965004722002665775408440170385683462328194658030397056367628108787502383625862149482447584898394076790369107412873323536228430484079210881607336458119820345675220749173920275886949950695009072868030967468458374580404724670006950696841945792407217227655644743619969558996999859267361577872317542855636114778632270138290653827455141316239443124825627453418535666879542817229153864190893393585803974642155534083250141820990884734871555624900226405283402434457553779592583701700945535388886546558696209195794659943283144036187308888467099189010044130083063522950727394090508461995810388721441319262844235146540646728088244773987012603158741050297284781955254890627779548124376511607008309538297891882476875390150796988409019607923682876462633587583305927080799816878118941920795562888134057069834937304130509064391004652239227330178896203804761138156207528786051306877887621011453854704620123505103114541745351816243316542387368224655180348209340242302143311137463316241917349577825585947052714283611073303658294259310389300935634681262912059563306351366461761705959309901162871492238865742402130746807239267438983070626074888793821305633761031219574611401597012184592284138459439256415709655102676246754029841519544244412686057106069470157740148490984467140022766935387179788868879340432407785465285702468642018319795049325358937454360556368162782037670358080421665518713416600899452476081693839431983050262386429561115170267466871541789262282330556719578545619607684133870555643953308992051410401548152162220649532444428412571470793410698882826651026930172127495062387522818268795214044607550310999478131693325810699592301312491137015123020614164450660090596400744856984201258863673727598758205405643026210105341636738956355278800321153206199890211024289877732310501373669821133665100121080709315317253239171318263999577794449039444266148042070865474291639482757013955955038623208378581932968188055240898309919318992431551975817720349667634719481761142309458660095523668979338281432584381208242333660652363816303631728277376845598722464042326764203581755821476306834951820638249091607556676868729488375068788570652915201103228227498296613624464936158615032279594947016824415223134040767355600384368955826669984859319834041257072242911583830713871917680024597225838982550432360671801609512731366448142076723294843765358912028512062165291963132142676774320585585742834709134284287666946430748017183643333803536003747937083211084133059391631737986746967485934540320179047766667592764436261074775873708177475341034526694965894779218233351327374689873054954185757093025933561375335855371268499219639547684446623909961730338686365139852066615871877539994671231225812487859869331414555740577294516536174554268594794753317176527613057739070107827913533961117473924123622962519285753415882292339415242725223242472155089917481636287085018843476075100374163359113273108434689107623133753492061941358559162152271061400977777160514849341503526721491830989539379538056350852060441056537648242439206267428359533583477447389540581251272535700040636067048175752692387284051746663043646083623421489553266763235779147222020038113027528680849878153163656355111684136545010896387021553690046909398011258662642161243760546447319666117322067025402355056332887575319434690985833224843103119122712696050337677540111799845299168882416429842229772039909821326678124060917867250805047736158968130097874514977359978796551588672372956901872593906025030448803755216109652763135129327548710771733883628888897296438173183988517633880497859775190868370330302618703990253085345612466589881827663327122378546757342458641543485658069148582186146105661144367204367454634182802136346255508911636066076143767130467795877288259306757091281576811649667248510985839726785985164696985095697402860015617177698713425788506245096869319100943082704673137736786595093577484347086020523410167805918165687918433559067350733676537968325565661481673742043112599115502413242793342886147838503390971369656483491303471275224071289387358657734685396834256748697664475194481831428317207264248329137136133466312764941197802546064850932120537881509694078513082729342250561920590922170788608568165767269216224465818614801862503861849370915979859297108002084621206697525585576826901895186734176052784554728673417698551408323955088725188838732699791197108098756871749145861270273507690966491586221134337875879366318339247578842293788431999784804904786293209923540516372184450395920236633126374124540566756533977185359346133625834141125371630031123547039678421139013389146010849316177927049590116445805472301612737394363775178108952178239778935730391391965619830134267833382763106965031159570978576250277914192305813138480907822692709478912436296975505048459219948207994723658684608191103529419754302185629893911728283524762782520423266880291817548318583040579568131584596521807102550416675875880802041921674214939695627495793973578627688938139550553870035950661156316722907703638875469854857332951600401602335521287932628442486762957599825958758654270306412756870329684311219451289615854428286640811039169859292741802691559244260655136785809026119900074625925825742325357209660398421854147378928565833072947280703855273037266736781274958785501416392391562274030881867791145941456217794279820229743735447544829456903969990849820321918115682785050295871999613882812359853198978775972230665252945012092148575739102090137510141409268866185593689893779747123535526475904121090140076896082992219803425324493653697912495136503853214731005756341469124732477583113437685469285256871772369171703170602869555075255074797482242182923015024984048999320993298335938935116134004919906019582666382407188237422175668623368742018788572229379218439777575021439656260533986949706104009857051638833971053727179158591855981661237113938525657984167746387109646210132449142051698210678598331472267205316723967562248702026262090642859588349393910671939691632127792910182184970987911320971013793301044141330211610132714202624842446182733382914193808163838862584359303980584245050715147970697141287458787782999925699780332407665902103079755445122140095615895571212740539039194974822990459584268584964438209558658711943134700160238670748465047144385652132890459787653449124533250475243400091261289555489580706854117736942327921352906676864843082385235786612016855001271795105697857668370960734516422526567852660892155905303642622708475300684091344551737065100236353199116933456179052084793411026592874539322584194925962815547595342773469895414852040287713949026373208901682669139303870431457643195008678887898772195937556416512741033886208987335659765072958756921501426118250317148188900299794275650393561891682187014954348486332281105566419861390632964482798297741862875118711169947838059866564583104164817507706993152995206621085137350578374413844734532288073044721847601395550932881969612562392396133678398024333165221073202858200595415910562515562490554676777612846008007966022800617889543741681745370981396580194052006923815426685797177665951422609220302640399663087541998758677051853995514339008880008168774732966008767910954896616871559719173065928605116308287840854752136174573451068979476387530268509685906856493453620996043332092801716618176466336687440439593237423097591021915006487537775926824411324184087585403979594062668230597016123696232453076940088210305401427450720421543895478828768845086768126734150953022400207506391177754157112048852841027639878851996714685932202106556667781117237824915632099330231151750022363899234903463423323080891321255445863990734949976045037337113507199103097490173802378308465091039707242205148454944979054053035276351215667861419021494309800092515935760729593470174572939527138218988669709322411245757536257342543070302730179775619301163116692840989595702706431044268247075285961288098425191639773635260576595507026358012966451218727828737915729138686197552199850380767781541528997536622661175542511162330372938838756333075026837495560950842676627273368660274002653131286512030443986595705141354209281127103271508998046668313390437535131264260059905280625522184624216145672596120522149875736907581488011227983089747537407027393188821943544417994408891861657497773038296244599820336480736203516265599208811698392602456286426079277761730590598790791745976580550354772179253284314057885674045679038771419297769489866675893280025140786608361749949949759945691043275342550895728165244822313672764140499224903549201842260123114231622376860142224473495123807487089188543161935612500254856254752460450049748657966538550024273502398021646086266268645897851935853762459988900406392225255374329159877969873736535316802664937194693317208399102875110004750314158172103239568458256312711504606874236313284068233913188373602516482261899262106195658267727133412316097912454412684287205818245263880744606031997179716552328548277676767837607547470923584614218797033948246733881231690131018336822501142722182238143495809159915660348632575994894682759552580770182021316552212451750109454878460181467475792091124009745836440791668587075916525396966550047042309807757052374531716332451907254280099588921879258038462003427088135418669507825349628367502351412589921199541998073443884594898324747621979638398781968789087234916569119095917288096788802367122245550767795700718804541432435520065171945880880976271951260434676987757742171933760898255544109758332372689049163558783635637429695073502863503750648876944903418365178288955912540451706437737808058542813584240482144160716895566106253435785207250032024890310580713775109993016507728912588859273851303640073498797312715325302272203013242084298712506581046614892289789930262421936171950205335460086448371087590735128831415572435315530431109228303611738369438310243955122059930952390829113953391113152916432692070912916786404985634730537058718020422542957988433755235192971596524327583129670086620078214200026840560682247173999126242776694690085008672920844836464487507388944171873222556194636402962195066023874369898353053669363592824871379398482155066729680184681520356656961449036169691560589148841982347224510825824697584978103910529250134270491384621522627564988467262414218788014898622693746437026612449150995190190546451625925929074929115345997118974519997575320635265654334973143222884826514445735246492929677347855762797742104393160822018847482209076773803436136029686942775129894739145274404284067150540634499632227909939506788440003484591837331246199702210824982491928299863897974502857498809131839216304738035774009525946086986913969984167159191844488535568153456605428402974091883137497291182486413270405884347716121302416347318674115515222859545007462778038897326700657388700564314186261620462318450402100806991686825441667424236553301110611802697003624160705346068728804767068259289869891954102984746008677120795643292955481435295729639705827917561717140181342522457904194602476523920167753651692623843403723899001793813600497664514991103164575306079701059973586231229957624167385012610417835409498030572348730442424862848917388287636578207415910488555916496196937549969357933148383362247417028552688566880489339607455910411630028599311851476576344622276098775459223162575023820088665325551442864181286387663459542781866935584780557616496922502540026572061029701453110622330644809847621537323285844465444038767825222391622416921734400011827282421289367825272229771669439437472514840583178398017890977953938910942087665396312414739040839743967542178535777362776725683304725771051839255448120398827494672803895953892480572317898764008052506137531459248240341790124385175733416413610499296846068938583288168090579146366876434051525503631592081081566392423140309015196979734696727213029949470136482585379993390855259483454510079902330660340471982581043962909160480652139380246009396058506724268069130591186843990156173418840907045268188861954758108899413434085098303506896651775249537786466996006125590584166189356168535493301575591267350511598814152035207655000161756274369571925659595280760323291094879384794954924404339466342782261347928467411795929667345944506683136784417851180815701246560285753316794587816370365763426526309262239434837436355191798626055935152646924755282169004012165576168492226877179242478138701602856603486592398315620177132984140287078023210276467399582011999047009728117885060542530591247309297111584918511302535887730173477156749337639127204207986583883682890364144222803047946439991209812247362744190641121220111418711888444311655717616312692884835781763206924771073998118293507839330690773417345675898494632385870555591027622597725923606011005691365463014478855814159674477101540247834181808066655089214392635962421908482316511415414288483933589161731311651190115858205525829954607777615714646328530575330879573267391116787803305131230392014941521139380667212610113005335756917644079480746962491451078961953995576501897827338890439701517181695250610207344950123430911081730578302441591121699803247459577339111668341858570796855961036753139190860377683095503431843426640316169261313928898233754726995915366434187068999848616579400402495608442764368659593420671340513076575469414714016746163502844748259807876555274299133895415650667801737594683791281889416127182661425141994653830506969392713704811091246086505093946652431569177966767867009622855153363842514378565811844888286892702795426150766904222983386599074324190815453951179528399348283410047723799484038500049277157684602286238148111489054875696773471164107149940550190799853340120831745594081527819808846626671017549429886671591461509230828211311670158929531878287040308529878161333466721291567782413619055132030522746410439641379541746524938397728773345864670151865792170238842826545533324312470649492608945194638850558277656079282157959157982969426400669416836472167612525439072361625009851654989432632474020028910186165104745602831160330401726600312250951526423119829555632648026288958164469812175832466398836102088635332250455671168371464201485645611585259236593372759050041883302891146744308328317805350792736263968031563047372336200200771615732610599133075933134035535643445590198030592987076112953588888485306964419389418247485752972359784874772870394851410261877283352500097199470527061420527700579697178364180177460524392650874688917665481477186533518841884112665046013714730054614216091598977853005116032362125019644308009538991418480288528394488003588672073523960392137115526190617752482689594963479013282150650870108928196940657329921263255939382310692008878425655447457745738573749076895082598948819276297533413301430034162554000730480563666926878050091668215613207604306893632809987197546763817359547234037691110902606516115791756412324535691955587002446587709591856620461993038994663232089313007701039132278158920954436735141415679134640698600655755341212775876708457823923696204073783268725194359646261494056101187225828243138572931685102234418443049573227815261742522534365533339114921158912032485324391812766067310855917675029730119103384472575832870363027370374919879212459707408030807069587216334873455358861529506422530750630667025635347985600622366203811572266254774282457060242243285930677929104183705989490219315156086838339245380486553515030305125593594958874673147464502718092441885071907352809020876627890658222420438642549069386964727859508303988437164335937348401000666822552905877288686765889537343023215409827411000617481616570150084698995524113478157889516643116692257660428009830850718446118433410114112008436137897799476741750566475765808436357670910049032567819660008442365215169537940744889306749636089352962666517676309728875222592638568304129991653190563662265908977651925275337624408028396996330182062357059552337853312710251855764884803358876744078232822676504506946705186287721647965735503049602144614814970583375295339937542049532135259148815485468449331051322285205320533183451045616938796929956467185482595759044492315806379441073729874071754821795019731707665189368192243816503381809389643873708671163917893455620720952436466125856646659679326655567734332778730758609456388081460790352789348343140141863607765168099959396516524587983069378619351939946615396393014207084357112188361837507812319687385441147984370897705586089189826573207555929583178807401943639114574953805388623762173765687670784191474657447508694752036858702344113816190542016330898669703247110334860423730493709266037408671203530699701438289568531079785275474365776837313038373355329040977611476183125187935451833129152043906773860873764598149330075281817483643859446462765189731977765613017061772262252713872934280322323626486359469616596285465547096998460917957238349583209504246683522959878283048130851941084831877155948200432384058373305484930370136169440114124182914834314616851422731562785838861923743562321247447969014926334218828331501461380031438487785939541741355627095698435462732997777970792611185441427779987374163670728230554450020615218820068727204989458543367763078541751344054365572771573214002136939989270344663693188727845143854839873359525008905121699604927770583414430576788127394720105907168519623221934204926340776041805194197719783643168111275861542954175897953126362422580666338371631659140900703374575953194613432610973375387464542327264712861768297543840362751608103900139072772294379168786048013768715994980178454371736586551508978070001743361842288720218689359864166612731820249337899545985418438670746358766969934458076995193865911703062585522197803003557188611305748658707888616327838365920897497580505171231261034014850451454905467537687437494837833209326088456235440884756529393214863578801880778571127577918851991794060352108284261021795558284625297969651916942994164756900919207466913645274388593107748431227846446164853802104383303277428105366087252539054608679315125374694709893897306245690360336174496418669439891546154600980780269144268522948970781970798036704915212559032264280969663999238548256500523234582024351083998514568288377969950466306351360604159387639970843819572673931745132213834859785529778036315687417646605194545604359098714025132463813045572589647459831101634896833123006640117231379061847125706083258729667523279498086582717299677190705809901307609673705964726602588618663781939873255749615298823255680040829813923722368552236818732480462260375729934288238169199595041687968738489316472515376225872830317611452062665551272140919311254782208513108960055094438031366979887575393827171490308753978299933941148020948376958090550468800374669618235484797708445109589014887478071413923610362761753909543015442123906928130032177364491613560295208005638045981324520362044932786997914832148183801446294660935267388267059716759564205093956019355879646867769208240332654128470361580788032853456112096074022358670962989763504356682585534498836786803899494954402691141006926085838383673927031708785551306863633437332865492857020124102106340245011689398106539372118296609762684250316060204445844656386904790101077200872734001365345462663455684608676576628932951499171030676624326515153861451415743186797531499327994811019132940235218483924763716326805543210460409254715524816859772908512563216567423469692986583259854483118801128384379725951771113103487080320784588430276650889716959032569252611695857166681775553770526213703330187015275495707968392607215021955726356817778700896244823421053372555834048292790355551386865148374269223299922943002780630458992010513710604929656305490987746944663572823348193141544473047411509886587404737307450551384167478220783407537521027155188177864273245673421899504757284893916333965085382579829102947000257583560366597346373513089297522785740283277675947465222342901682943552072178159724793657657002944636497956941878035059145821665455675455569429367448999162672320377144474573920730918632634618257350907321109880456221683752487849997780010722157169104139085026069459235104933847528199353863609242968165412644594106309131047165244940653478636123897501769748297002054021864666277623522597540313973352673705744375817839008885364392555920098087466131189492082889179263696938876606998286745010994121716596283592318869699660266812174141798037334520529787364922614574658766388111185388581261048722258532231291206098383525398771641482133120021342543295341941933083091908638337196572127050987022912760970617625440808733007099495629624012045800747240303694059179459647761203238412015311004446269808445106755869524594766197704660878444584206429678631755082288185818201241317988093475033347788710850296232705333414613754332318600253295713694094214003024497173675650865166365013780099624975102799728388507999709877755344754025877253017819433652743034755532701992420806343469217562112758335152675622784612601544871711911717190412796794552568933648241177216687605854128777224528559615505307836848039006650998194944708326656530432831814067437783313821788058714545196763474162179328701096248136282399088053789249269938447804068487181744812138276291690590609740397049126190338052756746958753351776616716018725844218635680739733442061980152298143618217534331524102131162871886803830879971206020758745002473763713992040152748162446517555542339145289810795480498613280014359817038535368867740510505686531930762093063393947642818978598928433842895467735955493034836776222523245341414127184190184326186751797735753448212982686733948423089888042290919140036984726087742883195213393072812799161982646599138902382054639793871001034255938937508567795665964213993878957873164442819551663886960500877146190776226708726262945139314687250655876135868657580966361406940626384640860863317057312866394975858492837534887525171200884315388624782544028192945486429142972100762578190211320771821375355290924603535715773448100725531673552003805178817976285732337808083106068028705744627068924613619958313829334676156478299140437023348135713336935093438910804643330403573027674769453452726217737744899746574432265477279640951664549463248462910965942716450960997529223882309934599323374200982435317992808610663404071168618689048639351044389380568765884582910040279645827769575483156186720240254282958437081257866612245515153402019282210366153276533035417867476548155215123765375479753139171445815507621519771626023774381740182711012740973059411505496216838931675664676215047478560824273233094287501966613811745725365600879905727591345610382432593226751414927312591693969656453037119844234673818394358925501200522167388913945584035755851250954206059579313065096514820076632153226717850279061565407264214653854708239776899479845048385365069047334032715340186205122415686899492392167544686679603082983036448507837939712750530156663701400927008121201000585481625506383031298908807277952821178379715120649801932534175210867391864112242096579714919425463708303728927489026612191532523036716050901742446661797153949210513328231523785717339142155625192773359163563884832032064566549596001077475970051432415339426560525371019168371080126573076787590301212764283279839024512391168538342172834534160647736193501481075983982376749012228771526697579150958273434684306116182588957187050681117747184895151419835833361373495536063261017049797619475255893088797667025287420356552217557986097424977373044156862641396378326167105863649135101966166615509828768281022235825896178166864347803164751703313308774438199462504234916861918295590495125388861115415965782217944559377219295639139541118625318537317589151053872073999462277356411820942575144946362957406719575106985930604463264382459201272845774493328910000472042301786936309769335193574582108882711425972137447458610988728501023419242326883813282160120815264587728007813712486043244601209509968676927719423281762746447848918197751134966285620223462717091733016616032687711087909542125984124992266604705073445369305304735921859026731953385518509129333587888855486136965295532964656582867739637664995913702923308235573784660655870806323432077995559564788681955875151370448933605297895020066511352771022403600357932398000314075780734993387221397260835889734654891258947448333106243334942369794593787727227723923591713174902372045712391091700321196470767024230873097198139416241158332306024656532329261141476896797766297580173684252179436951129868310128992335034060987062079684925538236329683570684641240691483114697150610448318288576143329369920222631574624207253909107344097165175017368544299867308825716159403990546049971041650857864155215270825614622397053018079514922949103600260416479705377096789725226161633812663596783825453753803211071869050058840759592625196599149778845470335728109966132115277761131957705522699219722297379270630693586576727590912487609468428749163212804171526210573118371629247739761600961404173611408148010526918006507338856245242792815209385066219130265076730579136042134257962690912988309519762277404585155557792624393745314443359748238449785306305852858836046650709518208081825308768833985985284152494924233634148476146037218312089266496390793018852559604549072066334145464936668073360727797021753925015059097290004717176461680643441696240914494430414437756948799046805897965050235638206406221353970364897311376579598485149868520649982919051278271655398092906732629052258085955711677645514918154889078733511547194498893390651201497950484378335931996461240821410833434532300249002447939276462860275783865904514254044523564963297729053852853420111107147060740865750115516739470412785580527786030143905159117723847802560457939217660205308164903462803209487272971972946275922411111399232712022467180478927846818235983508364917117890552806526484183935844853608719847299988720559881648851030969784194169615770852573941148151267501625498862140829889244822824393684685752382618179341224388269231524273991140580680199704438036840814449955420067684843198756913961821016267492912499354486240382010027951757598683277144507702689386284876199128978291391103608326493556938744846334599390755108615016934758561136040450547074396588322469201548803330402068745422547852366074383667499171374991851916102587179525645359409096581057040465286672617451139892358378938073971281745732134436471680822636576483515234810819794557202547923650767231553851459367313534497888811314073873891496377302794080197908771376219888232321970066820440018726019049922348485183753795721422139487660390421349351200021954567784466372067577578184986893858823043585949375991521999053620928774165297211749132371206071637269927890446956585113241118969740432156167388628511918454167603839160830278739966179035290344267862787520444098479354079403004602036756874566749537747291881728506923256612568737498562962559480868948047187755361821126222702991344970049894916126429775230404449133161095004715001441796446427450779027020322127583535387319914473379451422731421371076930381559951097615961189085918958728567240122211486231874034283360619254234419348728037005519032310434990699787625512133059371524412395751514634825167156909744665095430126597155660012724882911295717543945692213795549392699043477286122205059659415990533995974490504418543246383293347759093796379770141241496380751920824702000711381787460854675573788083225951210180699823410749134214443896832633757920816735320215111391682249144963613530132689614366015891520463688519999487395668222713875366539208193133336542536200482088363065267117236559983306423928315868041275185772378659597370970807324781083475909882652950464842107836599790245450011041991113773712835905453342656339130973769848789152680100024415775023481227526123000454626521609947465637301195801434297871720401201553959010753926690689497935595940334141991917971814245425493483611485953467301163337292776026011139440650282913655446698020771990200557452368003525899616691581884913526980956788996300716298090945139552975551925769018560319236681147561083216886799845973426773995531227145553161152256154396229052751175033301972566808506087450253762191984958942573118623010789023028776104620620989637028397111023649149789532976994379286032487207010900432312973765034335820653338436634422131952216312701179017109662057554607504739525477219031417198142277595775926232247224008248325322349385877069723797965802336100556035882015335908989571896689649390128430615320214536549499617016500784647722407649243307269598766647850905451233774594090881588626663189152024044095661445915414637681158814438283839864205277067279066916380403532855584218462568333330663525294723252272926737826292697969696136985399978264219304611572327479939073586743504702399072286045724944720844325137868147222263617607265403444182861089939526236112537004673874191615493260558300066569161546658619699408540111794334764705226980145009267733983482794718396660758251380718301878599913819485839738950611927306870557780850242596589771805134350282835260397231811355838139156939450538498052088794724393046335582403526631304211682987145544952053320519621701356061003009602529691506376319145660512508228596386313048604695358303647695354554518874744085998295390985594648821295638341061613317583070542358230404956117251421308953213975788065480329128430161380081177412975763551628660329291821968421644224375071285004323423457865224206711895399988171860437459415745834115812329645666202800001026155480163312524680733482721693535832996302928801907422032682402235367038209691348314243304853141562221168071797341167310165775114491452357637381346705137183719948255717396912338614351109433355988962990036237464241721939287714751945259544057177051653300734230785576413892972832807974715242736442836890810470829772980673899612705624525813390659422051433915270987960455569749876746385772612761501767820000477068322114445730078291790932427464336892929732793833152241929345076147620556778944234642944713289226476697542673741667276644619265630356347919444918227685501283728467297327073269886120531706620164742028268069762793099470325818171811070939988579445573553653279446150408423547383811725488892383623347282458893665359485159862255498130825262377778475123703726167823894780065756899801829842594916070744618439292433031800075763197917084041765724984592628995262358654103415340747086294358153961907992236222091801992739334735444328283710890270881253837437164265700676957164368307673003888996361764893616851930840892216891534891636496809681438534431420498671672594562974954935879404465759662426102896530677300360309464417780031336616869088440393101929340725184135203549098218906696984962578433761330617816814062526621509209084659001630785375802095519939523476431545422027459876549975010190076929997367492131311890565713138778906886826307361515697482056248610815501538920103427229406046538194619141356770034646587012887211297541969636720805690922037773404752957031791048139312005525645860492331479519400717869440410879436792579174233559419564381583214196276734403212522637610196844477072884061284518795642698078232527469827423390854747988756238289289230619181416975869344689498596262794286321385362469847597173802319434287638837485757194882922386612105337136673770698724849802402661922364194826607668710902823512066982800226686471892018185312179215420751787684500166810276869105944460337899877812997403104463176922983336818724320081589102003004571643986195324183451890668873151216958060998587480821779312587843174735430924115750199981084201871476789647235423961597992001014866240249703608368327788703026691152868664915813926850108671568711302646004370018214509903213882340521709134564680283600885063919898509137094294495758852474019859010382809294765466772533536847056388442453165878936191851574254761569359796172877206024251897545903507421466768002169089042207358146233371563745832717836996441459776797212050285648719987354692806036479942115946094050535933911643059187287029017744142882628235897836021126021656661351603099499892823481664531176677254300373243483527910474074118279325468180355238616370320106250617734966796426233440414815539275939153068144447906150569046433152343092253796872140964237229132523318431581871710131588315003078046209157693198831330944029728809000652259133957201049143677382804043522271703871125014713755084868184151965366203574469674992079065302200638411256714543458532341599016455799827844314137586038137450592722124329517903998051148005248601002477489642500567450655092535610558562982007608173923734267530307575756754865236866328165554208833893302826555151742711311590039601638487465391740020416280929733188559757960861703833878437375049824145289075601571214847907310645246886454477441909997129810162638084349566761129222402551605536503046679608807877794907653562454322107060243883848323270676905578594558231020271168495034358216501296295101529638950124434737841483801756581384700657660021515023741126629567598915801180095719887529049741767681945777804197447893639662876080252565634854609704865800399735552817889737663540021874820171461131554038310399340916325932123151446465890098788410895772986741851089126368481395588666340877667642481983382385719519890591537018542454289067006311330018941132546219321924712160500961431959290941354339084457533367304078783192484863371190453228670933682643001524128128135719661662890769451598805052683797531627009046175805252995985644141243915660533803202471276174374554167543983090897099631978328215291322732838659963882712006966783405563931283400591730437123165476783737645740804925554344996131504865982810080039274541522474234092807865630918688616477156740283132956234041987986051843212493013707076921740223818898638357016157658447534869546827616554190233297893522614518927139697056810960953094153908138227523496572078047833343612520086374862270054494692269794811481826223902601293264260944340874536315012045660691805451746603357722137801546118145153581654379280921242943080413472185717811010036714192355593369053079455468828838141713439993183530915132248339942005719717371822470708419321272531230714606285307270023046477767540390407114381342457058145038291636194363102902060073800349565078008332597867732603856924045747102943574346106314460802392820888363901480300281535654719682924111554096370438061303022389742120698543524823655888099342604257116131019791340110061452995495109176048018326575235808562064776471112395980861840603706574661232264292469438087805746517785875964841409167424191878387935876369539202336710727607312854627872598590602339866110958663284209189090537062427750532494932566057851487828396349781313521192534516031584409210181122036284545722745106905280222197325751592202681840958188403029287401717761453491374966930972007139987184279631398479331755790055491920134691204821354735814019837056373953194059268084753387251592078700822273541268829850955443588404539021693003542416695164391938611696437828719025740421083916903967200807153542472136899875794037293373600394558089781646696830998436550269294362136705017313321101947025569741082865004830309607422592798720464916803552150114883673453084074358613882239789395598228341681951443868662090715286578025146454736068077682084392523904886346631342708801689348382350100342121802082081244535190558151778866557697382359732131444663496948510425926024827044018957264557232649021959638437841897755010276336261580879225615087992726758142921309823861888960002977484070231467389669774835869615090548724211236895552554301154664496292399758487382929694042844116591694361532388851575413184891057207932429655340139114533161794490364459576654878520308357888853569242460848797607074017816097119966925791080526293321941728686859835610263234414466309006685127774254207533975713308434228750977006538339966890342671075896835644201976527351776781716530635277659135525621201112454382064400592932037284699903767753944814585517785068958109522962757917959350316036638942991817040271417757213610346987895904986532944595374641269202807170739640917710811443531146321652900009009616406408842523843472746524114706550695927716094777802648214794069539565870898792339275634867484376401836011717553071197843644682916886382703559818359726293562671138538631831734412520845956914444803967059567865448799836133921501123993421232321924088509394366219891115956722691869755959060090263925827061099864118364707131305361164131671151059946592970405459359805675911557949584060392512924571401056766070476302297248944846494362175062680465043382578929509870633562559011274330148842647588186184715200933625429175007797547769611752227885522229430027192217848460105200650134047123984125401722336448001747596485842812076784033657468794077734393314877706457766814411161324133741636133218250433880129007464103338041062825420298366741397894624609205856042507182953626565411854503620455364145310926582892024885532983413379357710200540951380341587204289533030922818978771755552892097361787112557138461208979154115642339580576247323351400403135451237211087286539653779158427900340553715045684366506733594605013271713991199063648852076844697823406932621289148201615310864326909317921040648997960010574055384714862602120239193369510841167013059184546519677400657206921892126599604663051830948338658453237557940866315079208148001585158630527895687974949476187353664254927009638748317410016805920161489252752905774372174784616032494587439646170234107569817916781034161473166842272242005309385877141135927990081683756488103786643555743125235824538195438146383430373422653456291817071112904374528502825673247628181642678520513483435725547535209499827500715012346630655397236193968800700408369392474081180347071136039305386143417810706853745629136874164171150184548477485679543452823476092899743758518748542756080315033771707843436731540126292381822003499895128832271994746998421829139562984380406326788989853209268059721033760720505071654160807538640088202813597060626740993564821828272851750654229839278725397221663097124536184976791192682147353711448007080569542544133683337677082913740751550154965367753215933843358824043500604694978725054173697875866724661074543038155637633886618274857579491331310876830157905598456418102167725990480208888129750121859282736208016818811047109550282113476971596645804850618560301737430043407836591150385340760962964778680801441787362721122031531175975801264793659797806698925786565641500162135109057352897766609322905969172592552325210181396224382426754176907163720965055535458434199659198373418626245272222704927630142368802119800545315035979218619752758951874878493191781703059788721328582606741164290154054059600875939376441053187306106227156319045050470178501692230061253740610570208339450028326325148023602789933815812618200343367532305083796123626543791265033541838387844236418606294231461635158643691049943494366265434257118729545776173029596059438770665598631224647810318027838065036826672516786816301872999351030428717995877304462507620269690851990374603740143438550860589963431710961125322989307003105228117499246960772157651958572190063907255666618262652424383957752431809873357891278009488818424110135048153012075864141683778303943443817780618543272029650441205245151245768214790981076577020509340833877187135393943803207363187213255458368576235191370940618835404903467252820195906548940925432100966932912085055258105593622564462307793257052293329800134475340518599492819686215905085693813099115821311675330540601060017178684374328426598721089363642425889084243214718795784559576481883153499080373512368437576807854938520300815786329610356138478392757900533026783890916446517770555493863268708587993451584190692229338905207859359749367149090792832524872303301348026110816236220379338158842137498174172554897069826764859002907702741333336158301045666951058303054078669191880748917204699025733604401961473406881495502488604960028345337494034479092066394106465397083064348852622242133040226405624492525174168082779137555650237455399309318520950766316513846342602012427264002254631335335614757757043024607559109608527785289462946093612489134597871921937365641482136179384461830184476302024618772943881654957493434734848596631208437276432410510319453802331459297186110082056220797954916034496792324421863171941939064249103125584260703287939985048874997213871302153285741169832553493360001722360114438898455135981565499010939669786243342794834658875860166549721437141863638567167338931947675830631712793775543661111791468584464097326866141436273585056741541352813375825253912828670119621791501859222477616054393464911790773792391858744268461843341561679257725008712137526009864972246449345275149141063872655757746752559229078878210445100382686907236428924202291197361108809747448630582574256093763933229219259094274216371419525867197206744853165746435771442074569329059947594519750202508275330049506693978636953314160117784519689379599687396514103042311972938174945603379179026661782909690508158721907892984796587556125798794561016241751078524426164714385496063153688251597109306242624976734131029837999045221890014265835610382681263173122181422769583370127592145485356093330074773913338795511729053828994995223319055308529433038106596122935680370036017468460776804632300607804966911791333436765580272326368560382676185845288362582552332067254612888756081444018327856481098371018013664534073488407753271460780260131361642056980307622726973474179686422324215033968430767252116619116356534115640767451053151474823491637886639056079026662641409205063853525418796607207099140050131003384145202202371813657874402600496366158474794932030678595687959165149121468702077205604662512387726697686505196905482829771256612755876320863389174499155997592686207347752384935489752967339330018467354337355104316722331085778224899659978098405500376243989097608051225275759798906073753027116896528738626775994489946359073994921312755644108958504352724798002932767805928149164672163380324933286208976728035287909625302022695954326100844875582052067888346536368461572737889559559808428473728438016903622981331000610944642115008984340599311186242850744835978293325451356755372288906746673276887859658176131209880266873960655490618330720162353399390263078137792510090341763588249386480653176602566309988411376356579418002822865850250827947723098408539409542777618267570573625447101501367974128112288688536583593311588979451448367627602779784825966407593657869618109942850298825427488014534927814833340189784144320618976092621023159243852669165433783883110129111373290030553682779885073827339050707068787301263456819073611955424993499329669633889151011979990971350360780744884083488482246703998192049005636744686938031679356326053869975407494811966220392852422504908635819333478352296484526942458027144543198949311231077172784594447100328034886588586167259133493018285294988249371500216448835651689475421612856332086195791102769681363517804071815548155461438823024116096715420270699905116459500326542999902110682057498824108294036964062235796947930991996608820499826461283237426228439019493061227803796623363125063541120749604789452847105445469583013001698301188504862089322588156899630998002060155736473827885790992818834908938717115472298317379838439123322079896881435688408231113463492514107814860423870381975737060633342558980435253668721293507713715303927163769927271894653411552010165823278333476904662313019436323590842007963240245620021232241342176138834606216908444441495614526062669779722828313983705464345371086651848477985706336875316478782212637401180431290528342277281752257498368080936162020082320970919582949936745208283040140569101311172662609300519434856517984630254766146678459554317630433541493421272344122955602069929564269546785555040112594690385031523771077451740591270227816777989242209139640630232691474618547707635249980731727001402088500449663781445046568666365755495500132962251075304153986160994898072239464202528233329019266658439267641319941772044845159583979202562463195732830491147400084890250640657383859058945512274207116557300294368829884385561938455388653917071910929847710802478011255387339721614685028873248683837653383773642898498736181326353470908090247696245959749308645512463882174715372388124633029988988215280780843722055032008895857147731251973673619500055173065683280229766851792562427300850160268264962918310765329121357861466713982220087708537450303496489536819297613517071435886943775569079726614975059533975265692839377748380235222616417118311228483770113489011220275524686661075302264513407207837685023500300780321222931425952694501317285936795143957361626834308348392226231334271228261124793171054550727331527531222742801964777970162642448783137566747718913421622885466236660225737112619757144372468255181286564952502804837937203834220935525664984531087694939491595646093723502243518053909802944756696203701438407731781283547987127750151562177399596922529555770180265701711699265416415065162218507566033387766146177938264053892332854527121836672590771601873795010095639597129710909366844067884784837069754776819407612227746248487143970998957858856791053096438373134488155506439623827773133652360272717263918942349791589857848911300124435768228572310535179746443136712407246201042946099385253950990161698858962659654310573724985360687484398284102840343635865615935078626248169656860449793444008259587578989718300588726224435779914215289036344441656048393809634380083748032515603156788847092685623815105777428464684997569367749283846012244706702351586899052547177660202642535137232001807874239301146343613846690743583516073484038899501651189425411292089453855394685722622067164203476036811161296692903588882165625899667808418796039653326143902955163305220365015445908921975989559848977900068602795073972942635998030934543880806704995431368488105811040376259146263850790342159478255226718781846324226766280148453497565998860535706176035288434784622142030892255138702015902339001788147501627135736223825176442039397647540121500651348398066382032240833618728689407454374881341142771902314458125125542256360774643314913206884725485875881431113375694006998970487886589917129596585719952767564009862850589867209488085966273368623942303619124822312360971411756635145601212732476494231967682331569281658251542658477996674075627104865044386050035690228369823910778075818986788237477225547019768745804333815645874206011686095731712171631907779390587112157501386292592338883290685219313630860062110971716672733412262333111620877962973534962222670846521101110571075127812508648457055542444301910380265179000650524224108856892259189817343559694999640523931993201941276300726013077213042227011755032353082753160710402704103894281726483055443042943534992745614783688600717065040082960173002750135238898496676439904020408115945415585717459001174523128771216979549846426263540557788242135591202327948975556753129539962132624363663084006035474074519172519717767129170033600215746016332278243272343362923241328481991553468468702248523095350264024704642063415992526262553452458336976265308930549118004668541597528482935536567720845204504721978532241517201617563781705481862931140044120727450641407712737537377799378931433242272573739240472538965926811643171141375343940007434322299253262967168201405047738964947697302551364027561323682381828770052786084436557486781849689605136940267794239778297386671100088843692154867573431644415352326687975814270655020910429096957018004501055764419825002432735027690206889273354086972863060956800081500182375461363017668108053784050273180468234745903447031555661185607397261883390470660648086328639863603514438669771710038116656887172399751007959039331747797804483986358410243171135643999347936230474986181096237166937362084137834983412811681298788332793201759171830483380786003230524353240064276787719221078685943644078234880189586435208840367569536875866948553643547289478931963319680572985619683837843670481094997080838164352333935519929525021075465022558356480079210943661945969073898096646446963619373924926696611488694386254819983544212947076712322007521469677162664686809580014803829128201533617982155281371195926291092577012636425530541942987473347069763258529969983529655457381881079090122088976634426201688031204479021418372654876290308727903057152764295785965501235096206372604798423241256245769622625226532727897433215901988971720228018140396759555472832504247722317125052510221670080549315260934372254097886784112069836864785855154005346138252598581185713920992367748091667344331588085251876951628117339078861857174190881021377301956553559820533730338532578396838662792237629911229748860095685282906837332082235728375056279698489885961255839115497205399610925902459186473162070254693954389066549954430406256222756480549674015583917799593393576839260932977871251091226707588859945500050497574902016161356221398808113909989345018942346351121340156442128731327586125265403567167856337246924855936543902098894836535085278735473082998740599198208243459756218642783926231559830918703393923738761974544703143212293166573393064973543615327362420835101419138887474210105562276413665687575929801579822924336364809202863641755775403588001839157862973880965483077685503710430473415263441411580325548013305327242305424410952956023512927601173026857768512485797313297052364132118080890262599071343561315309498791637272775232208365318678789107496444075956436519668543513260450779137468430329245860284719744726512004645204374340285126347374538557770939611293332289152586338441772846535221941067410948071515697433637789318023653581843920109572319076940016119523111428188718313142662450838953053298751111049426304902831884237126295407765611448484346584980870174140143200308517075724608697235111274903864572036554679579900218457619532245738680750855053264046903125628614749414351002100387537944396875527744435312514059495360030490630208869458601346401102292595392477944372787069137228129294851735842098663817876880436371713322756908036288571252510275852209777873039767778434372556966051878227143896342764373954465206017347833474187660883845837775506287998457243775236996246523722097314818980657679037011546079894459697439069210582844937385743449095805051578060141620636632992416643870095138191534936347069115420843302094322722006188402425811528797300019285249796075632127329816928609868083089467442167594393998732375717044560242529391124250262411820404349778854365007372728569279341396110513373702640823255209684635539848894198278641987084096057751575338413125715001733994578325953295411179431190204306042738652461281295497413984532422824595830465303020164542933915730151157692615533205317903360798912300820920554343152451047618670823240514700788218234050551003631642949233476651837109153167516635391655909357569815400644065465566965881077779577672255166372984678349360521199764096374842225350338143741246481930782543079061579370088212047341620247471865543448077392101912782523483723398586693720891478288505385882444320010858622627997384836881527986831394631564873751455130568141287656160954895901661999025670683866646574602176092840412698772587335730712748142717573929738421750573763922580217642548082784919073425073260147539300525413268796464923115119973312911511778587199641873893427104685174098464927612115987159880584723768860405429615354427590564814302284487478322169953301557301322273700816170923477612312160821548294574004009564973712608014872549596471008493690058017900409418095811049774377821512418904560675687738906201148652313367835284568383611940034793932426784322736986598465799642896680023448544415614996884353766338863303446237683984068578999687586283037032180654520773290461487356489346534664287444616797859270500221231321336417368086959336468696536671743286109061994774593647102796479398914967758258955040071787624806130913017693785808946907563720586629518541010611554941169551034586423534737072983521970010980192657527944030938660470714580789851225543843577774183189680548576632749132830618769604909374862487768194918381051458604824854967339536993989163102354136368464035264321869704015317436534693880909681018120968993661657378809785730710703783509310458097920832479634041863517098112706579516735206487893848641385097629462225687676925630322325887392680242592107887291833883027901019220950053696313004874515487344747860670079515667150254573321155544632442902534364546037745953236578150236379585814226280796081839208976591814696016375020639177682579294888646016218673056812172492967634600721620679210208975868997203275557286900009938923655974771321313087532478745193538648220921974030751867094053285671972542425360311755020155885941718167731634670531741571373204382587516278448925688042058350004610427352623883087499029532075724720876395288916801127670069380561878418567589616249499765007746039494440956081978559933857986038276508067821834082981224795902763871597261715819066401269382506647992372213429577753971964364331561021574064991196525732001046464400432931680808779400226547569782162169210657409253474562635389234857987552265701551241212774745251724985436812692559851498394543557146777663158468106604814828239871061068678315224424541566521033455690545493532106153582478072258117635156790887135443547418897845438692807910273355459665853491381561146941457275688820435048535753837720240813046542304490832874268670680320670520247423710055131860467485567162358587557156345965692695068628235181931631707084061773965879769623785799821839644816337504419396301348516542789896654137686250129507666500380043698578736302934825250352699207196603944432137532865237831071900311860013619505953664405583690728563439138513991568618498275366245118724605805377303196590934151106614603388817593907322513721605335540158801943174358129246776726211450117252425319875957061532719463594362439654834143540912913267778286723640005316607373239550539680438343262462526691514948523938043161095151429431612650435123889512712847700728279860836658415668699126461082828199826467987659410399872847804414076913406097501943596514373809166766436155263924796385872150199667608313080842800503555350135464758988820436662416142461567020169898912788752117287908013510709803336643473234771245590510882822091078769152007939581425383351754456664773906985936212773326837883342149208277290027299355965409838624424873275301693732512466152960240693276656065744888454452662941324310617630514163356383025226515527069063559203190202371342801777402459807750696359992553804390203938823578280426464295151777472022866787559762429323548211305350009473499051058098826133260146226002802149221998949725169980618929641506104880097248895469620544084889405097244317109479392820984015108755478368312770249244373418343723549041693113571232131252964263317382036540884535631621932854403816120411067498642566639896751988138870079068692569108326663679901564046939271122727366866694602351540729860936639172476127029863144614688255833416469134495313616627226092754452883733602749377868328520753219230989001716564742305207760760877331508448875633522790574051998648585351406706093143814683627244073244740610538583629395598832176960687337838383327842944724353168202056793784040817755034376647977284719544430038403570002151454811954588352158369892801660448035905243773402337370898673047940738793695888146617597812222094285701203912109528126304863928321328148895855186058665486453582102071875126128453479207151933927311433131370089431827941322403805484714841293807622007450952471318676936614076584120682046465325765417359587677928684253347889777485598772746362336557889065110240771116957620642669641405035025648511654290245079056753774420814912385197862151821739484567089629028807654706817508734162359614526614506613985717979528065375862385135977522296571557373149008410906060363151942881548326416112630718025551350547411389087979287162421571889828787670470584761073711374515196381158352521994891552611254890347730918431471922924198161318810067970467405573464442007028140594035231070122074966283237586961628002175240203824083695829725342446175760046838543203969929297220474338093399205965800595617909808341203856295413365042205225610216117203468838288724493054546760924849754219789254804791612122496964697431494902881027234933422060214168842704057537938729547846148478008170759281245057033893486650567693561769140803045938396245127335835530401236212597762288405942654000326864294110231826222074323713289678497605500091049620900683578095218028756338778746300841046130039577127178793723644897287189897579554353880465111805406009348342485567252886704176491084746340967980563869403920339784345091739864149585638987484331408346794511261301445963995522921452284624027087278038650746344692897199539700080638984110237149648537399455423793314915327129169326540260942375120038502604404766864363588825198607582957735014326757683753540445554955073502867587182991907697461641865001187674771584187910492361664675556420966194200347494186884111943285349760716652765986130848840287917860054383338326258498067879742586774170489089823899720231083955961923708093075514546511426694459698843417973981420811088198653057885191263807873457984112405683318338341714264688042319606999974136683357317523830166082123827851498149425584600415136503143332622182429233428879358625156393604440080680630692276018816296616295423968112678707788591564181261873063458102161725975351889414583046832696679490969424202286370103352227118406686037550984638201485684000943579658743964970717546702480237049925481618293189416842642152962015529591247892302716110526989036156547624772648191633326092616285656732913742254265432716373440042153206320824064815356865493778954153341079383923903364264772883812456459308762249708958211770599259120606336928121770002907088571812696475896849286078066233189322853954032787772414911940210558372700110674088892890074887541219931740859962247523614687737423545806061666516225035995643769030234488662271299921313718074455489552093428723369150812624337080903333437767832359528647848478337234944161395313411408506062772458676955273614521670158291126410691121709601149628701042755502135255661490022299738658082790626006423003840757080844414403717462531680432804545033564188256424943324827455830571431090587523372011336338829084722528766007733932932557880647832368088554052220852711511032389635353130765436762797276999573450171679224704425610260683265026444873079190710067554962732313219284161849608693755934219269079051232986525822345976761742915672807761599602510769069381438001258013254133116348942517798833681128616171172157850589187683301786138481151552584226517339617175643466018726684042310118096444286426014721994223030662401011456512942783813097214979914893915822045966372498003736934070344414153976511908744051007611301218247364393927497411792750651662410354777066066801703626193076157686913722020859559554915794210656261284403947917892732841740647882620073000207078496901188974530172448195349482518900423536449730491712927820239356457783049721707940431120972290345282072814674531193390537025416219650937522228960958344178077231665090265651592350790614557666262289462769225667355168196074200393658465245930834161090436464000658059020509718940843751387564604407929528250891781145817216713339072295823637134811129829827963104903576002395618492561151390654317745198657407087708201175294927367162207457558725931118120339069675021567277444308019130598020122241423138898352187505103155211488381355417824288618058717339952356499410560085429322486230325104440817014966789992747707558262779660908018023526808169176646981448863645257885401537689552203451786190087276861205945787471622026865398754057105489101610588885714970390662794542680051102610082464535059671069052858263940875264048658540107279378628844398485000044384734993116972123775118091689870128284262875313439974533068056840126160061871620541602661883588912392082985230869054046898679473289549796389982993896082153710407395344666646552655682770102731358391199413705191757550815481733802133804546238367704442461543321045755309135514547428692275649386429223465444509285638744179538271770938496545639252485940601194299796159688250140469389572827562861930726151603780561480859601427467078952082114276336727984708841138960335084063036346628209997311392686294489179702428615233519638751149872012783659074949740246893094669261304368300046397746256279936809189357255685253814505498206746920878340533686347654706055437698653067167947625083141490555090880249502495397525419983566686413905420038472891702039141160364542112032349252864310476160332283888508792744305504004463403767839682597698166471845694988355555510582449001682308717390737091084813578951992924964717535143801440439467559532518468930086797728859257278607466983818733146031362958961536010190041353391142608410586114302170026785276906314140675418161613823035967731249533389956434053204310474496981698846094365707306838415850867890778737669478952405072412283542304537206044315887364023706789114157448154624682697039967683786131127411307735643108619434871040344323083785178650347977144539124371163015325923907082088832703881806639311109384997577543270597640944601293034396466114526578360996374774213318677686687322615834185161028852543888780115272590321137995747772459391033838112494874052332101475511082586199351931587723664993465102465328217214761354635245513503766978405119902927149108349078167834641136624044139085453803828885443144820941793856132239106334687867462491815246308139594308547948325595323497362011913729392179810640736918462112995202686098505860219010582500573940801331333635867042441167874850901132310843152623313192517195987061057170815625839671800924367895722435201797455775365462629347437136049253455336200282697572035717545041177691767221721493543255968605192566022888648209549991286799385266294838367531568707273751604615573596391509446534948711136726606868892006797350775297877852087123186928924434959913990065259182447133518011124902186998760466158906291806156520484889136469943052163847461798151433487913547130894347321821224508211929689638127641086053792177199361701153368835262742558203452497184298578695285732873653812693395552987753379290718670007119854451354862435996022331689757419042049645231921998103078654310892765791515022867778915692030039241373578169249708283276955370730899070676793714910993780019338390437215617666103058280759036525789764326354025130322930292848653262419237166798144821125330900195322263903994791991958730743663754436469598287460649184522752786657803593782931140801224450210116025748815483332399430824086649480951570657004990580538277839586462101423112249066682620560156670628975079444943482097369017039562330757179844788137188891530141710886744816699695433542226917358311426808634605680831397065338469230451634697061439119548253170795883111089540017001746763343284493460609525419240894787657290785227134667697211905644446489703006975361477002954726594497252586082255808272598804990437725169092693489568267316948072745117427047643604172572352042867916696714262868041377566818503914100340291594239220378193756393719994017889685275135314281628778771024938126890966584918739777760344848205351547365557201591089044573770726835434652431222422206375314583397928574102562408783334159925123988686255596712998868586144204955344864164550771717018006698513608527333478867101229781697001982282637546551265498599442292724272053230029239626278218977432184488372171361982199885181996084636197416765032265127080337360494268148568671378723676870398003635799658861727189159103559897419661415404708323903800173962089621249374882652829288824179522608899148134459964198260165711251799370381500976081922336185357966580640560367032963616017713401190564049169081318472441710703835185834646854805408064224994066187480819577686912389794998642524947541352296621387359930064293650654083911217302356377103940362621135662865112029972104939264922742748683220011101664663887581358631222130808684849247866702430496302672429204730715501671846211534549678571567870471161176272622058665758652423186575204325111797017147220147842736908955157779456894761715531876524767216366622752872785404084494306512356833285207517148308124019960874084269492164642314879447261189912890951437452348634993408444162040974072091203026873356851785232099791061526446478045686198859011422074440782028755404276513983653740728772402583783150571113923788705320449318029982690321162673594532420822858506941784234989112545587595630377956361677502887342088779730578264953434909050492293723967227054725696920579686031174117703231317880433142435477442445508499420965376175101904124227094540800149522380263302006890806762503711233744818649337263948546303487301508734223886820460834300292268821691529380091970138072737070260078306505273603042873875434276300021945950728925946076902605625135127765810788751490785024057950833638355249703580704883222450071118784396555068324303280676441628263441155015023950565232109410497530733940586748414947069734149333989797591993493984307469498171566581726389181654952438920494951167543937724989232255343355221156602768009863862386050408593137511579824204869517625963963431007760393759143137458372384064941783346245824517177121586183625863907391274438187953612191593194740675373325281466809447784232348973516414220276559493888203549215729622950591388654786889809286178974424147710438005094000701305832299062866858096197960337196741202826551952285043121747547679345357204600384160125719749734830539014032397379296300425548825721803131762777178930066896358427609229568126801739516650072756830844200411388183639369474869416609912801855837907670283291785082818271132070115508600624816361006081085222253723497929246432469663243513063509386712726659369990871251832257376459376261629491282649946744845090219696018638927969160776355041765509481036537408107131463395845744146484947625980893448593322017273582218104047783229433455198863803088083222144154525120339528081099837491523331952184010022375830275807341000572784609164792149107142559378266629129893133706080186899136866031663400688295503592463601952719201450141554890214685107765086711766778353506244133602728106269924508264876258313589071060891839797160132346698048670861990308491965240734283837009870290680637352204363962728716853813163979521305116867860929592954509520877892051551521019711642671099282813991667188522193319735122042237001020253629700842488352889496149847420790796355711473547623093018903074733202590042454408959140507720099120032978778519993608940235535477055858848961256518315978464263119424659038937132051610854158660028672255312682029279929984996093790945496754932047764963283735090318232382457512634738126414552616359828766227958860406479812632114221261053286707069454155737200316845704118755031179775637435092258966245142205488604999835955309411283306102976608156790692158352804571162295519052980588018118917309360510440788265435364288529249372159606710464593730065021987391793676364580797566020995851946407060017388127673324461490891450120557854371956350734825373382544627911196121403933997235636353435674170008559955624025249300524643311511444138183223080141374768827061982381850926242960920846202803715885699521942856175485714526029954970418129779890092739924211890617715088697116914878160841351448066838111239799023477397414811797296596720113941446372679033135525666182917617058451213942794660005872153948052809987991360858892222030960510524538816979976261197996475733467889016140993683632092475796519107988100338047113700435039840666927881418502209275619438840500228408090651628233012912308434910846615676157822469272134220281896339651742154638060585794455339681495127061211515798221896382669963373752150941033163956602252700327921871744001548640961155125178242686271030174264085563028770860458565892991925160102325253744113562292398852273126621821211188129175428444901400341272717054512611292823795351249918356911011354389819380892637857508078600211263861875082657472531464803135171685327478088110645122236236778941499526656773146368428293133466961220656730110328121971651176392541766789233822673826829397086798081322695041855112218933068261321544163869799759955287496909424435387644086659038196110813811054168319648410950519789801472945142041834979050761534780300041706435433258481146813223932889257645455240176073200195284220815752394384130754841803011531200573975224800686708419095466721682694412978659468280151537940632717873479637843906746452027496203535028517235044572499421332551699228923780006826147744766473987423508865459853128405291646236337391855538218569749570039532023658031926139451495543207798673104344623791152022426545120791769883958976902803430999058024725564136088662170683265403676758275094071310106554777069087846588174070792261770549337774855542436944611758324891481787482015928561396279392573160683757514577521478648263331378242785095699193247096213843280157658583650591859136928756079114405520515123417633454908143261453465791886635913421146425369584519613920181363529949191432316650180870727947318128323116938227742540664108679634201734262415348891792043068467909366662328924341170129714409845242467833742998824477742172491221242477679534863862539591997796557348083751655493926010944579967403530378457794246689045107307662179355319655787705118282187725520405812991005128069721885032483641133524105651588737271728869268321132815433387171571066957270355171945246925583516076936677678605201106188520311124669788521316689352417564420735861393278716125293045993527983417364793071177630411309723818728678823223455004401018058692370030170702589683327820621628605087269143575617784972324893628590946030023653985544020576280068324700233483374024069041691397951017723012002772666756921616578091800444673770352913539811966383524565891911748130253684902364536947346711751134189462121723382958855762548157813130753518587551285532171304856485379767424061798245189983808566545101650358758039220988833736461102778583633311809207233667686439050274198540911220371556690466308391980816461493350895016468679126121254282568194608544017835235920970770132667494900173344033136147595347511088570160786352119659443874028172512147818393877983005239989117651875053247532576924002504510671640916898931105371044754429037123637496767555841857494313422616866700161070982639043547586019528130538518029526261075130043970746891206295848418802590585427045872934162488414156171378148180317534786396197335437887967844735213749346370971309232846974576687834025175016543738858672358839257173980242023836408413187594478235778634858188593751026725740471606594039156674246028832547452637387493984661611126240253891843573575801327808361391640859749261542254430877633131200540674641541447529776551214160145176941766072098232006341913366238199774975080350142927104915418060446423025575000769918423275864657712796341612645156562942582518136441687207387169066112432932864740810329076256627415793590259941574880011184978024946797646325198759960759445478075566920713618238369288275834258665570619921515813850117180663826519367969271159221218693580953827305567659854901193401124984719336338795186495220107599856304003860394835818884315549261716657791020484739715605080430483013130165923114553005118042499983183369915059492488708228751223382414250520861874015161559912914156246205027828603532892567295210006655308551907266470057418682595154577571888273348458898362012154792418796192531073332605893708971331230988661373610710413381156100468643000595011672012806376767091417229243026049869315316783155321326301632377153387366833320378792549077230824836595786860024505641455763909320595022541102571774215335854076465345538427132395038123864538172216107818176496586532469601365400016226809486049657264349381822914340900784462575073492265824810524823805313583306955802707610712368626181649874915639788699183524632279057015607635292737998896461843170571262189244114720644359551245397647749720909502600875513555636277042209824381954377142353909808955062188076299418313237402383461784809712313688166766999014081730939209962439399862070473140332441435136783673590793204272757970262395120180757625547039342568359299264292064133244743450847093402583447583797976185255095443537969504988270093617560531097225687307118907809307483693335956913170261284341765352578083381035722207424462667224298226751515697572698566077007223602480423875386863649058722449659848586819920659426854817339740881290903241734713750197717643585406898599815581244934769351770624762067751779280602256737304021576174999838214947528535356142759479658667324618871352048911382146305732025277847155012353679977698537969906426931335446900452263826625684927793691830118728755330265636811004213552126012207082685536197263338187613840201974562764479958564776276287753385266905576215790338841120517130676507018582390034453387612001060406967182605765094167575161457910657252803334043460743827390859548962650143123334507637325161591068932067384927914697464668978954724387326942378125828948067144243840561518947434110810395428269557578347409433165683360216283351223167672823061599374234763543471560329589613384199590392600922213466746085050394120192863196976509056831672345001726957078863220999590141963775967432133834376674800323242816482203735482586570429202541232400615050903912224171850972044850509235260688987901793027734145252050472048174957636092056174794830796916351546280820467238923780471365616446575841500451247951628913661693476507105476480283552569055960791098086023256491282949569577819050223297575496158152754905896707364407769638031797290444297577880096293302250559923063287751125202194726455792118121845036080018121888241794192372822834994461014134834562790195708207260741805657250949146121544681303758527077395849844700705216891779438989580330060873058856121545590078475246796669578990436622138845592167220111215116157820691291103071475235868855336745818352120063063442603342689471677100098260807910643754226094555095199422043823125070695740102056750151162037414905887053966896429514875489950826991669968640224019529581956385086362841985501471451159491266031000934469175318179427611590691311139585245008492484122747186521098077707357413657868850388426263239107247042010558406132635901867015548461963531749981166314421183627171412693996139381818869396253146461599817725445799948792093226043285816532010927669646914216913425166954856077264212977166618305009440701624971965380419513245014622678315218548162325078835224893280457456544151755153460200064520956247094560416836505878360300924494721949285574008596287757008743607778085242775417097092585959320215287225586687087041769408307853470832818353140156168130715982179772615992121107229768514135088664254132301534640988764611576224657518523274241671168201215143264876130576754106978999473497245993496485567079986654824735971032579239904266585622443322006493726591884432022335932836032133827671785803438656024798808534652618861841263884787548939830540248042410346879596529023813876336036774903121280623476679689607423767105003443971017981126803302693935900161467018227368680512796397043724476470872520236616241642446757341705486946413383751345993833596339870552096722184409891954357655495958186335288552941037671128945020403095604633079252546017680303026819821970840359669995244111989012691541016881778517036630502547277297524622395861850937598837419804459294705566975339020214666273747877348175611133226299076898544740704330502296685200273933733470385330115016065602290483091327824399010948293439338781197764985646402259489556829974373203370982630391225485862423505472872088696820365535442174368978118819627145443830703501717683869083896039543196954518664252070455595305561568592637239437279695760342823982073330759361909920807766264451729465658640850801181885031217995880400532262730883534844724201019721030991305978352838060677531746267055573153133375386121563090704841954947619003786709205985900800434376795287943584181447966193926617345012169196967176271968704002160551646940496027703460119334434319316924528670354015421371843784308600630060040649845885422778683774490623041776997807459933907621012923181324812042326609673422842639238547114056203220664007094767527632647996276974337948351511496304835884489367082512561241972478227628270890259590134559429375607511853783181661273051046745218746337334262870370027138306646962469635141679557355295280835028559871731445696706254604769341805904167793180927677466295264232382338810618507528853277160102528629144045482830287552523425198960167183908792483448684231702158549487049361764231209251594506500953292291968214900472415113280268677424910122594835232283221588579775693143172144600924497533631407753689218342676080686389285186345262949857184321766663989067046301949152934661230762251085475600213914382743109908731617500398715880221996440447937580864599888342077905455098292045428213957069941891506986312931084749810256115587275339560260460069838228219469732826826147845801403324879572223166387736696604708569700367682529184815365595385726718549447499157102894708118976210698837949356519521326092014670353450408839157551894878416815774380166627902439407418406710802573012741503618237345475368347578305242816017216008362949355816833403122498059552015789703353775566947706425683034325262892352356902476716158509513646303550940693097002209830348659699485515284022474293484485390638747718893353987136036838154208220312903709535298627110907664141709285858447137699264205683785927050912368142671522753827759185517417912630195401009760975435122296796230317404045902700940011726478069794328743645297091458194884769802921997923681480305934673424189476888120890191890914192473397627954098595028679600144470696667211693541196147588137933341744616577535089165788820154093862618876215829147258170731031010741756566503049098710940455668788068428942451319462121459903655170759617045465892327668872212838055956424721254360117365384427534139465930946365029932454400553718294014979021452005373267228971537583372806995238515926685450923843433671898031720160423927668017491404565531150582478033643633587211206091175681297360262829905250871760493231701515786452569415945465992386443728702210708343008500112944746552432263946909212336615742036057466845640104742295316588625364130924322541945456383900212298715069022396653789104144984169613599633724279044103942650872387612352337313607114595764522109443225762197300383067517309932969867297998638375985114792043726909461885003914377108411728277479134152011843283015691070476631503099457448541405345904741920777960001372080980149583212476962561739871809195551385854746267690345352192100331490079439012090366803849502373533542265145643168764110211356916242981672515170416982640918706143857711961173088182154990751669192690270804392401738319760155564160572247001028823549357771336907043974876525358665261851932466047045273775118063843015172766475434777395867497396433711800459760591953268641239450689783338395532627110004793823727985333604390466035630053016818555136491464662189957026074181087453364895615082369797227495055922481468964889122797747007525144948119884364651950629137276937923281910144443113834117919721708209385347562738541007374570541177974056258560119259233225978415566850607004292864445222444665199577544238308855273414370426932462644424879434711164644033119298895718634786358748595324644514573361880297295580506042554829244649644422542350703637372988801935862957766677874483441368908319847894952135880256217648740754964219337967817812437023715562825420301756094535882716950039835367354426952206384224390498971103900949053924835024960385787349185169765570540760395324291580689242652751975435328528724505436181057630342068164473723908379277715842007245179893155381012569007923600691484201096732065423082949800286609737990110822865919139560157356080829039851081959309528313878273924836278747519275631271760349682124481373386267102479061625344223531316922546032756824011217459276564079814367017681627819986128841820378033253218163426351312891021027992927772670296850885688128945557045015887120415136315125680038402611137298651290005155505014725430204763155877608898157322408632516472204508306512451711320456213409861022142011671007972518644119082197574488829594722750856119557645854463820619035918185420293115222599321306398882210841561269438020450675531729780941473405365955406363670207583399941731241534142474973362236286857288371481009451653800618590893895624560067575199852841437823956725473318458566338490359532685301138463726412803888458711860182872669370124390060302458897840908698624895258858731769641778235101526245586347871772061216832156654618231750623967544481717255901459178378867767346286381739135973277773011549151500236706589596758714409897171968265384228967285335946481034895161827119359295847264276806335701280246400098051554414062105461286963545408463336695571410883402526114199809093207020616047520538401114946921468765113199361949940091763945715068053883390238463133985903615209018064039631650990298567470948458431338141745790817235596894880231733359842725044943235130690756400376439328721802158452576686684875492887828395361244887865265014590997491198112032453529068081400152617688688840413060640437754587029606648084409927442584677273357997757552696817109588778964363517085991979309021656137159982352540148213820384781938980613951937106652114312370723664115884656582223215310862738352384260569979719519504695942290155357595965642673515421909252651271240634768270074757743728202270027368670355885444880506339312599974717917946443502715711518862292606597981567176832851899393706577199783014874716003353597158491636729978529440936431267409950057896198050206623474615623211274037070275195317236345179992027731087107869258146721977248583084859311023169044405583470444018126532832636263492094656765552634426284216743230146794351267522766350918596965100926851915117698846304898805182337941907604659316537121681873440011028982156705191550345862118787702675750658518969135326215908323515541692759753972101704037125807039933179407810826039250984034411134807003064195983878221264488522880382051607009559996543923454950154577559407943976040680046537668654029759516639259824996873087879391586241381008854210694044642027549563831527264404318775465157013651622575101029465827960761491744078730622283230281642946553261297078243193637101684251811146675272730750874906298109052676822631723588558472004911744372659027902870829103073753930473976868961795598425786001512470347324169699642526638397350223997064664714162542596576938450471585646716631576626677356172087146678204369083918421173616196941916914654029273741915133695706934248362927407067154786509826749652788977652057447294213491975915929847156866364141440622531310975253708314007512372595764873248030721090976552995058289431944643114484676160981363342589141639640514423147125352256691155574088890242349683100541914598852817630937027587798440423978367524153013418820422593572641052905128770311468640996156170258432576613540104076848185157353502998454600882463085645072176511574513657615374837193049255710027248046988483281580617264878359118729281519922144778127208792250306361539243535479324256349123546218291897602306048268422032631826061713671868002771886721394712387552724626646592919901076013918324864428275712129096124127945566618278335000278546596416716477980218938959201240074227667797051940580539134169688248782497355244111879986066225891069362192999508877957324200001157035354736849796016753290512805703790045208368494231328438101272079992313092321975294858723279914745371927272404291029879974961590166317663873401358674370889604279768945682643081519566399455588382159849130556849828325569555165210639606057490010519647653467991845699581770722877357892119065093007676000852606485275773142001727971528683764980854170980444083973811352132727772979168414608561856034865298527831328415237772732934341481030911837575851538172030992258990436565167955946632035375428974786768670432649329201911372826980255449155017965219458060946726708768710931837884426607194095436043664112230736242856413366501536426105465776879607135359943961959024438756210166295587764168670389880449379131141291544695561328428101668342280091221620455660001960366139122503707515940628962767321685787747144901271178317809078580677597028225384765723381029600539150033446066101070692179311463817662268664635670323370353558508690414190800767505964183445558678795058869067851943376616482617980115248870881830788730349484575148731295602795524919459724291501919672558602232980192984566491625758660953895981891039913732493839958564513760591839792830267975909074948272217196853087114951991997222174030129092199417142028305023713238105542814247964925559012174578873568907780811854689124549466715433270206380243828826429742339724804600359658162600236013866844966429289967944736254598996349525663286174993662530272728060226010755274788070117177481314264090036101129202685271158178401576650683417175623471364345911857301141454896982200486199607421676452664757208856395518187681455138701595402267446172713059600213773551794759179087976913117576661364967272853284999801667726692707995067438431328564302675301409436843360729311091468084733879585592644546219344680010392091379659293359918252521100299940848185257765403043811442064924344972065296718680277497555734490858271271846914897319762299970576976543405489991631237250489506471753819888810691945533112496032036264094605658749413262924420671422923194264718674494669850255623736095125939143429483497021686799084605218437272035910867438116160062460474881278494341492719060773903080343235538786776833177210775190315959911461251507627634807840816248436409065545991455168496299605871854736923877913721000115945497662706696695884760427508416930366511676138394990831138942774869809045980053953489282978694233562598987712371849744409159618176026832879869537755724754477640068210098252750928191207840993939759527473215006122050956049635266488556764466208059140432134558993272389298955287564846242641538988898040821530585886135893594170567426374909481708872936850341345812414470474680755560279140774226613463501329765619009212725603115091357092122622054738063828245998935386099969267508530412269884764799710522209423093215571554546682498888930189524783865792976205012539389096722067170752689012462675937307147569173181054593312871504231262800876415207008531481037353629367379653188104611336519817193815493162497037485603755735416457576456113151608668424156307338690435904244838244663161686233820475481400213765266688054941538344698842018980368121066044279929638765039240512164368416478351434720353334505951795579513801550990420376370256636720415784430649558138892453766710232528078102423984627359815444605801439961304283703759664624381055123920940032702222576855187776914424448585960908572116036298437706352032737420129949046676650857043793371988889119231891734075908404311382912628492031971577251786747006717534077509465839159028943323528807689839284146010386282618670621347717629585452244457102097711644690631128465593892905443533421074165933132529885411522045253315323565534600218798048010891120502636107026917471058943053189349929905066038752027564868060199710607781681177177188588104255946931922141139406727176416701667341927298071925732712809157922799471766613036361002212926336015288016336792328638121052298081711628727510460054117380116529024727670520927441904810483870675131982184429574099997308104068930677238303389515929280143815433186511310573460760423658928270806545215379920374477989999382558374267495146953210598934112759507399125724664748989250245389501435847154095345310074287231796454323772514283589457718935217473963682448777162086702624175677229233929813036392288836237487562289859354971185329127373685164295981976924655118213453752837544675910852810013692754200382747358700433842580440159217311630795876940955176183407634473801529117211862939425934478761782780949586579674238697308370140970894554947312549576895988843266201160746572316601135083766776722838470637558259243269279624510449385435705280673657532019452362983083596806608335972206326462982377666752210961620686579406001338778959619553570377975506661386379910602804428568897291041626834138263148075391635590744525825813008154877380099788510161373893385331646895222940676310301913618986986519122595045797778334832783896429962780818712276777865044844852863176252061726183761750693474460746629056690555594274032405871479680576896668334928863803689594706727288697675463068555543481825964148909202867020792364188788916859662076427624632187587996342337007927946497717154523284128588668541229248447268018318488222558583825055767331928962369946934588162614202085241366186330726893174383955677441073014237301765763872600496143411544530105655030332207241499920232494467876005405030957502847681290392239358981431299273640151780997373502118809775992844508675622931441523193240003717659818362431057419218926626230217706457743681396061699347527572434346571613929850252856915459980535964169883520416723910812154171474589412354438799536784477004521164848949717402497430961566183815339607108884590106379977957936243963234568333591691115316090613318670115295031127308836869576795318370696958281579082188397301111083610891135811053922521618583953807033447370983228901383766988618227372373733651420793140237646763835059841354435436253284297948826465230666403015388657483546906263007481276222777190771567068854422555994996451802436981537763907214189604835045467993566345411140606412675612254853882969171053263869330306949558568054888839831877669517181600910592071855468224886645176697460940817239445341759387103045737060417817400948686031112516408409247880264301062243443751521690144648239075243797873924847791721284138169793872470721119752852422625892597070665825437678541108558210124161131796036314536124532557473056757762738168953370044387804907918696132855450656032142685876276953011334292334015728912232800123556807303373698996379530056662880983448039146089321546546144677191624049131352833441015960091300312375566077183986151488879031621360607942262658467112459936674639959486750289291760445962231234905119434094194223808885902194147895339888274672909606702451513300091720164793778799689034626248717865125044238160008919411099409379418046274671823170109599061967511609498861923034907978949290565271075561245070146686714461303077836282650535815546060396607201992750971500104706799745335404168128368117236249817786469825597337263631161320198476754412559791866930970920929429702091467814632366229315858813788244184315711657663963103504621080828811812605011768262654297010609078309780834979190222245101892638366657519380329484937807343453988072512996088976079838627036820387283014663605673840349134664782671645486973931685333607782207650514389617406884781739701600515918859330801866058657063702996862556046174108627072155082964846440682379919631188449165831364022700924950340721538996418831589654672464999187096527971596947034711498610225220551023307076996681734423472062191949392814921576352755089888909379450010756688514168899874816797898920478354856706802457351265806310088476705854561864045075740863478338836745388720662259643291584240126343631694284025196200460792560437109360073414233311998216209733034828882874076234666573514947309242749999925318307465991580649859638129522597460359359926704818768149043449043992552007394707936732454455423490351005213773450609856323002713904467270033728913487181033201150138065505003273921962100087706177158695147419981806222124612180431791269630101417641432953456614803251480105996165221052217381263862492770147154603884070036777296946185216597962662403678901673702921879213278879633583723962440344231421390072968930424032138504372991046602896175798247827937809723402072681456412099510062759339426633142431333536951733975668264161852445359835625195950250100006325162593018423042211007021985834305087610167582721812088673313052725907972605701485492302634941704715986764279913632517647304992875911112036565869961308170083920282285339333467322335638263971971937343563876532097711929994909078379127000976848502779119330821196996593945781234220249811422756801173024091642473754922545124330412688292106209321074901239318872185270045767648430288252268949493105978274835762531736904556048196797518707558699504517851130472169492935240919999860344399425525404413799448964291803357658609518202459888488770435803105950801947132776251531662690169060388356162994707845582809253470934086277296788636767653426022491111974457466776583269130888755247638799506630836015373607133405800758926354882142818407796906641137579352709627250416957050603977729611478992835715067041328834760224564115581407946035022377464187781666834868830471097110038088855300776799336179716987932859187162579724896448621144729889672886311342503393519751808790231030890862853555005993299913921471744645305778505567595525249356859989494575587806717696424650568934679084323423724029536754538986768669064675851564004188500081343264739207395888803469392425109704627075363705139259561699500601180240720504282793733020817477524272933328291220345547746508552282913817788262511450075780963949772781590069325064988970970566021900421985122514112796609545062721617853401220500851703713602077801375764933718129144985418852106456441327819185401337490566111940992102377762430984502020193347792575286888701720349855072944150365195438056520023800621847470845891930619960109839706313893026837194668361013569098710525012868595463527238753167082746705218258430798062222423981819397876469477943537176177022975837435742306729694874560714949436368798482049974972225010459427195865039284424539954788531684996128085950688362254687058650590596597519195032035814082733563520301526760865203990235650338844078911739105988603453772286303509401304836177339353714958873781168974340543557162585948305785389371659661900866830512067466648262023337712449488219789463258611430480248153390548098046625318232014219094898341770009100172573282994289347643230842294826146173990439445862843240615154041521777175134086160366960210389128276965379093193376914515489990290761758641500003532020799955463803564101943018737788714433389617897845130061051419551186701826350042172999320534848630619338784667908361589780680716943242514681106333679212229857141910257764286976674853969801477267878838852724663783262237328888088489451380167733458862191210786477696632951182321089214627035315266489190945876436052415410591775073435907852466015149879937300965727929076794865128662660338936065741859981220169096962825222031651677323616104649343789955523479739354118359376819031851336244074148488360423748169682419863531571296392348612654152283650035749347280298266713934780298069895589858644306003001916029569085555036294561433177617250103400090231631084213477461366899854758778245989402907442910177265571355035707881333016129539936385306402194980127297645228708639339016114975907966877920898193970715464266329911151158809662861057236578414395329337093921868408247394508201094970304691239807354984886490440589152353494590166582027893838712324878332681107699369554299197713280067670050151744233488548704757812715697217226534352773260750768799814156119148889540362280452543513653775574518138699690199544055560420157167299095344595544555063717344093349606154198661919164520730074255193456448220347032955620393985341438241596109982579997411632911542205005375476339317823594866636101777612742296202683201002511373880112376944797789492816191105876726513423122968871812227132756352198020414591491150062388547643681940411070272922317092249913887152504220783000242178804314669499114672925133290091269804645959886380028568803777654997516043361798271643221579129593324362501142962144064129782895535779224602834495080765642284761787848954485605995120152231956771533601320098748686867372960741332786716826391998791116610324350836718503708709950469315112492276109793506621524150407257678949238961124627937836229196470966664478010526389301215939102876754287412201107461838005373458677366645641317199357552869907323308316508271042256936206605871060000197248953463509314756585713968285948457987353183448962193546323079520812049010566204384994930068073991599036686041677644469307433041862235457648979626345997847785126124595969728569834593593122476762407977019332951917327018434212600145244750866986554476019879542625276446268884829667041528924798436797125698905032229607083016716761697250586986021519304341998235444552551778284700047766035248477833129226764267861842005496310047138929758015603430451153875140565850594224973000936345743808198075913812636784537575524159569880597513482954905792240334444658688562988935150053280106739803527171840982088185819740966556056590041471402163951216722678172270234289417082176695777922902446905532974303373851862120535561766474528738270803050409598180492399267021697555933520330812155308480151136265273058238095526705206092003773942208792551025267356982328457393080945531339284042480670888083283583686756582269815777536899832116249692447267214593668760386295884722440828706911821295263492798163386638645224161159331686953096054996252730289408414269905271865826423128107163172329633247151782943478278807342744040101143577233027843767253733684591354981695855620673448477258054843717060992856754686841567320129161806207051268048874107985771316974935519139823773129356351462069654452968099380831952205691912717519540710260018840785879961297510527156108443830457852679356978162898518652232733538252635184202555363518036998834734450599265128948711276309358644285405707967387808713670116967298263407255526529086135664039875307860149850867193637924621955777301681003689350857686007923161083681049318367627254522281400500960564348964431066958014221681578075101033009303188756977349146298431112004440960386977735047416544974803202346479543334139419084063373098872088448253477736521813044561709220142417876254969994737527806888757277627421742988108462465919567984877020445887883954805764866108297815690569527897736348900468420179370067618467580387426298337977480616110801273417575227373318397711958791093831519079115234561151808642773250176662347304279372010079682288926008868516564975556580621168942635175849002250908757016530648566664448516496322326720791007980826897880594591558064655362847578273200179922986608534487453936803489869774160078947738633841942782241361286857241542518798671468720189265232719401250077544389169940773282352166667279739700223036183077343778167215586158957114908119299541035598421098901259030392396378746099135624902562226363954165559061240315022725922824936272060799131005622890875802165291472866947507080881537912579126468020567516275245536209199261862462222042479700899473670804192950026871547146936965600571793080505946177686857067955134502572285480268169319388364248099830667031814894322110539840931847416836955407542668500584489606133568320306888391819180347009257425452883152124808268406497457442772494364028546935920033360515863321961421606290735942474958895593333931579255549503510556532608279764596981116655384915302661297694793272555714540021241661642968535437835656024445198023286869568331391837368621691832131984401975302843041883176644306089606150267348476722090653173877549630362382469504977213263827976036568607578380307717863727769936518356699968042661264615998044705483496656669994113806466797272267738562299107172232628216229287025980307289242355842967580617007341179519562838661871560428917773042311192598391866994184128189222220680687021559383215033158798378021878831103681344425461408204648693152281782668244568997040481740403718422121703095300682759171459748881819545167457511893642190716078747957256836070956698401727406539494701337374451055022188952727337477249398360148751443014174268021171295368152515220300170673941204524838730496610453125939773279449620535673163159326017040822791743986334037853374803955443318037768098066681915372765008623775931925037070280777000992732200410118197328819936081996137349271074691391639182936382129255173841482338884173745996683670363251756377986529937454197470925869955406123947367964162406419272884227765077593861829627147296416706511700687787081464318462289366768194678592380778369536936285683720366387885469086287830708002754889554099818977892138867118628849133936041762649961476709099935024293981474405704841772568730780794007961875857899801989015748328304804294914038664945270472492205708116488731925677523977183360169464091706266393164392851308835528603823432264639377713964333209773045724994884276881117276573795771801808683893649953316162541785926799004090351420308163922200234326724778716694546967821578889389586517669858759521622626442150022785576152987974558087072718228283766778873873827786947899703090159600567620750285527136616969131111042182234690670323581499489673316408402784671840251426436744168446323196669634145188979708631414190999053802970668940516201990716687517542278609669412442554450887924523769380543000099051128717453447722396467205773958209704079231397755861610091247061581613635334663965292253491687826263886174524582871693220380101706065623680733012391237996690672867415103749430598565952759130091313946304349496051459779095820554938693991103405302596371307594611873803705836403120206686353131263210390582047703280576972890178948155537671122998650100085045475217656484609690076262354325945611438058760283421861782971071480795841454901477977654769717508223667528070035933211381586204011021406556703806746879659541525186960255719610791334370056914753158684174605575514967123731847659112832430492367475829680730317236755475594308198409743264219818428753177045162747016641526027717686969945632269958998249844456275496372996805552110802662339808347976240269207859617195932506229604878549118708819704727007436697325820506527646329671334250183899064520897565105477089883728812842642667462992531464766438001724595390566099962024726223421457255002554349750705328390873862392252755152754916472058881190012381691488969742657880346677892904968368841108751380576705318423769385678583620933518175881649968423477880647246205783314953372183384256347153713637134874853356208683997703355691215109046845492099939951613052970490105481505964758896969974702697769113294119750485890500470156961211416410450882568115487504838791485677528822925944480810417422581774537689392583858794691977094080717223124003757495126875402003086154035558039791747010649812105445624831421429714339434072432823073645968801962928979602933464003518109569073775239861802736765280463626977728269820621473521194286671499089799150328731502135551694291102720588349789375867432073597944206266396627149978327836295336811138952668429462047747754647743763345732631773092205010822114026350242728548224620991675682989917264090847746613755883196842707782886074301576952315416400384755536639360670501099286883893775058682201716508219762512402423008378075413956786914234288634868769257290330259042766256417870525859631674616381735239031817899399246154159787565518120380788298200332813776097658597015268763350534757190471094022068143320918322035755496079908460675496344469825850041460845365050720025117789959162012876998392132010915002238649968221823234189004394813930439326324473463884980676522367841251515368289444592551114914374891225780025412305141273421700343734286164215287239586687429398527125734485971329666515840023493798996158798596126779331915992621774950685982925745452448874116569498902315843224984289130709526128239393883597754627849511339715390535906406225651793271718205951052795915541503376991772500225474966623043667262811860423146929675312801344782907083481828205910149244876068830305064559059730950687763470774674097922139582406677420447405397733763499930663500949072856598917647280944485554758634991780752207543973661202517664722915415426613595677990371550747088033192868342116440243504950563323424008763027252981744417343983550053435084077007995639283923874299961737437926227195091775874362249209170596145141884578613501834967348620528578003885570849355444348660092924544448324549899598991462926586002460565922703322253514170582108348659930805437963092722823894983104980535978926523091312789421368712948286288465750728592948108469533921590673510426203560306008214626615846306780383810579064750905963848565707893901983216834580513251669972329775812019363270226006593021964882223614843393896801606564359790468984867734603187239606104828567179434896399101525337871947394417979537611105035791110892813874560673649963031815276378870348962739081275390404809298630685127275022551025076063066866632397350692000820703487313843256308943608438414040468868084279592078344994800071415702885461571378060317850213604862703989645469513275051349308293760339300080293347569930606800102956970283004764398726897205593835601252855618220156429415325406789613617443784171935953908835923747291650608577228214777095777524042773608674221593389574365763771815879144330994075083395373398612278330611707038520039193417358191447873367807545090703778918531114165058052026841044418746221193240670573477241939259143210542073232409868591326497873213443523700396808194674037882141750411428147881277699521648139882331337208246105945623825717745623519114355457000106334073029899998124861911803718456025501962449576648883635768237971452187110210179128091772517216009020384941502170380827358410096401556974462286806720666282891954609283175800926674056117457561803866892590539233163802762980398952362616894471643156030504307629228568375218604971587708367633846744444480408192395973597936751269214873433829463066024324786476860852005647949020987918348177675582155656956146349007806463534924733254393079719158993519753892655584695576978574411069464360863080879007666796063993927593708500635000282246131136160755283120758992555306532770703007001496450572025327475546307655293612246706261061255244337167728382882381898925646779070268727211479924406828646521988539338560374525761779028027753921091732150082054904302817311262565224359478132646887383333870510211048503245732641493205623946587576394672425227427044846322074068768777774724883528457319110703303953956484063828615026767330237728614291086639776319877351356019203215311833712186758958343444135852390309961860790443933528254831018194353221568635825675792321495021270556506580167916643028049144374471819447485597948334315633399411196148990884296381087961958533409788521586678829208887906396275953641108171737521471494847367171721934741605149647718785930256419615217556494927307268429817242186337830941751064963648158409169171784038241759211410768747047687279808381619495570556820444814104585856154222206132049123222298205040279481827048651944693130462600507210028464270786397933705512625933862126298543161172427405433987223498009841541435525503276747874456420430402571548126155273576704586465095727590574908253272745489359671897582185777401441355199719182113487942733577091753416587804769505922764712393183259911332990185863411612786923104752447150564023503588518089100917231206209440597370013568141274816176138817025913723941372192441970899313211664674647818131284232442105613535888449511795814298247906845789614578127252985756527757335630588191401464479666956756706839033898215277644175263315208620619913288196567084048489272571159167312811207452547775635635233709741458977954957253536228866541857132963901742989543652369158540250262525762144842982142313417821988456713200019994271583473940320628493290802197638405156663066663430645135356812153767086606539938344070794147674635041904460366429346689086936330432357481166527649000665143274445007992410310652282218005581646486428564120178883216942716862192687004424007704204874206963880604404673559524806716377916909816764432816783924087000623917113706807822859162059718277003377326112543273229653490614517714997606985511026788139731983269613795148143299942624622249749504439322972814631685002077043867893869879318042133071300620008106746633123886707063636873826859655933719286145987066363288682750549093916152320602609266319105225537882528955355502126974358491262110441139610955574964586819146128804725355329991470454158406576073385108054603667541160071909620984835327210000860472902827359913303860639913451915598788628812172171300447315900709099987033917410919731653180307760454573362660553993098786472366105647753390063509931786115963279358066865484339497054025157923091180421984712902902431964079726068177620755507763132122575659789353356601631455825354626228285963339548049275910188046980688654216882032280481011433375736435371170434504626261939544115202785423648887724599605530125984699929436910975426332467438763214123289415664802172460666754978085308616783919339844784672420897148544277876449370857736260777156417900005244144970148280154759345951476914737450111923782299024403526530833330530008348205117607179833551614479739248272275046901733657216463727797251750652518151907612526208061398049073357925079511486894538570903722290009180203981982673499992818718165835889562452486152966160552655043831726048689653859969582317884985442855237241763697011963707318148404855823468539673481654827741736448495140855246255603751980947694313619614711673549373817358887031831035731360014129416410312111377798815454702439992809687480802533066877103507209608356719225394503098358085969024966030944735807667859428687596451734439161862889086214052110083611202913381725953026887934316213082641327043165259084481367767330670660257582322065439916960073289558602958480173017393735764422902501242553028561059218277020523895812122366520395861055999921683324607596420256263492138666009741447145802044966990510656621542033971932999345152368483393508872403806225032339212088204509934381765426590223170349297390733184266849445605578351149447532385401678305900159655738928863770063144024013272138096781645352059075260060652338808389932743564132164332101222049555769583512556699908142088487343569696684973903163901557002779412293973158112187498021036631198268012588718308803315979990065229572143893951675233352864060705476160038900235073112543682887759580302758085200047068879793924472155272144886090347259074885825917969463723000811452491092277667079011317694772706500799959774878431984601363129670962146010449500531518254889985158026503037344833826307867725040423061711457865917432098751070006431749573117540245189133333010246454568745967346709505608377995779010818382462250253751509174700931661652418950427112032585335800928807557332232452401092962734358695279438343284838224160259746661430091632637795090590748403920065392689298949919996014511355683509898499941847156227199833212288393339118797777556867138378422778067912979992025321263999415260887218485071997217708798027916569719049625294764484766729252000773422866824077921664173828770779114656681077665480932122941729386548082071003308844337668210682679727246019786574396008833653768283637124397662225690701758271059125078184215384225889633204182504306909878266507290631198520985379189566882321333076891729591006485974958451433309113163425338770721008616264280041152356218106557614645276404553694647560646347084204008349532947414800288187017967716757490051364214980586913013232870885975632494650384998396384464442450164166798553709412594944402783398579842135280359364105685865270685559903106559896900900720259260432248035378220371882926989765951953647947619723651937590506688375696582988089348984365546026879556880233556511560165437963264894334417668441763297569792865216285146490380656731557643156067054188528422418718022857649108536547137922207519881977889976416499042407248154207805895581885292911565148447160989947749653492630696870676317673917969034835319669804391516693538524842678216481955067563291348556050095519049139628580093988849895956774010754684767303274463747557354929180680775884905920504086310487553116061861020788322959782560685215058957236666966152167681879994571334433855096230772712191885135058799337248435468276735708093983239815922093579003486473077017813081918504839435576694121275668458854931299439114940563131473140786250756139584252013270814251102455936028632654911469084780695230566719220397384627117084128248368865460302266748407992647330845741350045257978630067486769884356013014928585519181009582408567413014873266550170064253542341261532530846785666238373742065564145255735741959236983428703545399915921590261075929827783203211407989223328383856342190841197148696887528988245099156360616804381183845667797107371486500829767348547414153109994269025538818078858114012654307583497026559436759707794084027853408316297560709789315157319190202694927323222881532008401320982266577415935297825042865063302112081318857413556291885987011409454346604844921290878949947240793872482156238234836392509300443968134463961362223494764780968131603458673249693123772607658421038363056109025431682336556045888844189400811786955163499734201084173586964824932357502137120184494435412641566445122255112178403916307647283323522892820774781911764286565597731231882664864106013142204241250755819141681233982822051407832512214121173348593620794965749626332818370706023839750666735831353312301835265243650720322249069834293193952306144393746891707989849583101460583746770641805171561787840166101253149606679218329426408331369038368549309057737477230674710419463457061775387474350451919958528177061486837184958490698836730255954991927368342791342254423543406619844021314290339854806212480947929930645600112919023001923912354128610395941656450389151162980312296952752970687156660418244430829903630504967393733683948004187099305061075212587989191957565423096525519141790841573663807038168277023416955811658917290854830647941765177485770790868433582077029943034262507163362004709508521508498786580340511884565082150101707400605048631110943488348700765601091093908934777160093737973569588416814510494959804133270921480200412763290826157619548840795010092475262239578340182667865160317058611428240468296508864907828798242231480678695304038481306747553348548026137697980118800751796585429081981713736390164801567895365964023551117979395154720196263477427759529746989878465157288490754108132967787672196111620312439038498550354793529749947989847759702521659249487572940678806056798919144216821335706876397646603175455186885420685487850392875225532763935835340678538733967726155725034296188580184043418717864672150701851848464206607945913698079124613769003689430988351019980071012718054789384428806036329367212886853002509313634099500574263800062031471967361553581639354034250351301379597440646484479517629796874638015206686090230223498670763425641606872239041416995430128129316119458517322478259760552674958004981391673613354698812482709492024470323233320040419050247737843226781861651631493491608544623264760353384237431003236479695683927563450090211163563096054855239147786613309476767415464045559038031777849089473478108514303317151215016211817605581223965972874732776630906025296553404249268162056584476384561222154395725516634798045149168859562984590915565596662008886062727086400688982897052160247675120556935465823450369942822036256441704716848120424989490137834098251938213113920788749774474586603686899148542687380183967185868963739813685920673639288902038966314052532241929829674227933288753767236506250226512347733815060599302581289715787372624678736642256211176403213042433084993211248847879472065753911581384833416586343139173586096772183812003702713517469581392366475945202093517117027720525825637510719822759003915786379985572952335017291554494759578833503052351881158075946038955159182619876483905411692795003385846457616105278990107376522102151966275697321423660295118112975657358611309641496485347766558916841326648650788412600790317046705469028043007279339397015736912397727810062540893717669451569505141818510632055436240977959331109249246761234814495353816173384716264830228105621626952399671292342038387181864948550796194778413262367036833658714046327568882218714184147352911378151743791633002325443595919202775846654644230927055382903295740139488720413777844575621902622381140187678305339060135151586886819801193969971276278288104057370615840691301921412217192007423568466609237239451869794661824337305707946295612515008286314058960093504683734702004161053932123017660258103176315809336547969180516544493016914827661244637837666548173729810380293560792041074468729342071898164667566481856883878099872431039425713343714422416169333229462178850001617108915331150193525668808929149940165769677462964373483980962747410847020754426316952523494725311487415701306224821129482036621886792717538073499718071984342743037397316304424114593061521459149699382882871818770253675836554901722051568958592836898679071101500444253714281993481538242765116663351051670914944445432806377000025576940079889991258707511329547088988445921226774416467580291288399988392158338728673065860927649009377946672004401778753739052680831881310218459032840579947387851738895022608120586677984868561692528106482483277428990258560602172308706507621222867657003534241871355180231660019826188360257397558009757393874091817584545433540955737340683637362700430909825589705440677362937870853816736314706509887862732443191288389288028805181522988589044528014900044060478802968755466639652199779341838151129513730827737278364718593424487050783253443151151874684942714201755105778887238853259657410208581114910311830438855301400773993483917149336367527995297348664573650975976626285758650751569228916792944959205589959153899761975859126774904648542394563764659942836441109940789604653749992042439270152622228790362590606603273474823938727715573256900665549384737892524691087780467248744939836447849572676424733036455786986712234693987148394897798594577224548157585665184823370834476477513815384229662756018270321222519656523317561159641335343086196867250024470774312684748129700178262637109837187885519925385729295840058555367537275007584185708224035630043495471809731897045665080629022282459299658446170003654077772100187830020675122368723202774933508623961933540513946691696186461585569091402540958507602599796136546012432709787748751792382244019469798436353207659059622616074627722742768229467976005713160411118013034296955076175098990388944202319303425301724961078395518749204348976551911137272828409250780478190460557332645054064183886931636165440612319405236732033788211352692167222455313655774169234725867610157425830763107949795552615295285783914360036946973232433353170440046304914589949898299916078052742290176007369313822764585117679034193913832779478389770388795499038914132406003248811537099432368898988924159581105182646589595777298410413151799804882207163900563943369749783953064169125322596333566696936181168124171344236968083210508457691737854836276045010784048904071837602608549165735936181037759454413134691689280631097457722458057055770854330631109513713490067845511910338134575659748847702254592697508629588336528129355163608614048677874443287011619432612067134273632359902288027750689857727694642036053815757610175310871872226515703457052257280571040972503698782305032381669425078327259622930120797755887221376143786461174348683824195730706010758308136931499932941508364554280870865163183593958658916950561965782181547261252966393376195906171894428210443644700909476973774195496977887268686983578506125989934563505911688731605466450121652750790630661503378758331271272675942017042896631748996934231209637912878778863389027755434421572574593817435525898208481847304591255109501089317296232480438824326670164860134868727664301338356239094648417798305846897993140887668592408021296114319218388644380109925668960489968555284472313704427796736224832928919308516682369559295388256175080154022688195293214440384513963255978762077944789476318101352395007566660749314448921187090638126253705335295633690505659141009761339862248176164216467630373526616804503713625830164737115805749956449535701673806279991276327505054152087290059597845557691077855155378484226258454971303639360284111267351948271381992008992442059517211651659096529836083911337008730651670497303387544116803206004079436794858705669612616354469007508652741690255850954241927293001163181344316451906307523431972812767080372082096209117244125631663517281496759007485997340905759096719352113465951392540931753325854654994782059184070561661217937730090873248396671241003346710788232780099925223291680616678387584647358880707374067444772260572191689225645710708550496362493078347926818883305632563386171866169986124819608425580794319008407824367744025209041933194815404664649092623392484712377286458028287452063880909097189903309810088864439595854319890925586876648977768258820507605886507760051716628981141775352751833373596111029433844699613862420089303484723458067792340764580460705711573799090555078103106608959128237531339100922891501285023290087336744864438749583064562334530451102922798414944250103085431058454792109867375830657043769226262318845013548950307197591127683061309055460268502438794581424955669581666593614167937499457029254465584566658428804923453872614284299555533261750152748603190094020711717437319780979100716436289222531185206871776725197107469305960035326760846443358513772284934158812614547372832982443046284486948396755031442271378830413979833810889092271342365635144178521977034477330755741564755803650554538805495629036784548694183834602130307071821143920436801286520724070672592620061340589502076818978434127060705558960797672046745821553980851604936875026081783806605370962000735380020386157316551230478630007136888761884253737649800915091993243951500696331587084081879617783257870086642875681491195718415399828479015906184227900903257486731484635235187124628188536818701437419319515962191768448974417048026306014410460936588881181588360498735757416798358345614394652317200455633458817309718899416331785290162942170760949651678573938889316190450044576752853236742154334142143912105775080282578065070333517758887755834817073423526120923699053789189712621058796743337727035209700595710387636082724632720184467178717916252100891885354188691945422479638382607295339881078592381832808723450534224650308046636387422423553405673077904286219885127892337319953842980196535167510715831844094149314367737971486449749514563744446110308590648751972209066720042170859766765003707574218968665725458307763787985437406964642478588492775486694808144464120698055682333803493491981899263536961375410597766204503539140041454262975940570823047680704203358207251109707182653364453365799442369504148572917420000901375953455238907451712548415368014037905827799915751431356752892532243106913185206328822434057061234084201579694749751378336167556974763315203347081818739846046890617088193845332765075140482278427972017662915020328752306335407334802524507067135765678300453289689641985880910433208168644848310353084879994416272898079506709378275144585035095439983006199054460812230900213031149057048575100083147515325567165873557744657022239086337935525888700728185341643047206425964946314577441399416318333691739981769852978401722420670341580068490957636189726073527849259725217595660751007579037320041731871451872361232699454257108235536532495791111015343340906190129701703159702111194980338817622234446764069382286438562102363550134826327573500859723462582445671935959340186343945466707360012454098529765406446283526656105304715685165875316096630163134226692476983262998373266748536366318679620107431193515662952490899614237225533140377537501545022526819219825133641190818040319472114752920482075646061460389943375822192458356968725278520567811479731130384192778936700477730310398465141067091429383378098170645211428420803609736863407788440995160787769474858304427360379237937430912733287173594426675099978411391307525039179268562733104730032478307668443007046441552972226335269453127401107804574204394535872123022996106783652534901678696040016631909215187736838548745007555776870228341445584691990100595691241215136946603115890869987500933143750921564404684077668001458201207622968797124712012490726197197460600040570610041518573913241785762815321766181059135304691927465887033941812732243212604196984618588240366978146873118118462538432501955804147826857997992345189478681317852248487974271126491431957720595598089665143129643283193570682308227964083828078955635839902761425146145434392606903002812656891687021372719198558343712820782194486329694176510286183922221765302291282200299826626419226384081811888736460225861137465918601259095494179490135850162209676826054615388668515060041082109888382690690377160290498503978893840012010331282047388228161190798416340828210743552056429198665638131846341732269697277114227351365882921850185537650146261309485470534587513303958743688616257090611788282419065980401051255504919067407124172704571572784190136663120083705234158654359183337873250763529843769028904252260405787306942093286579563202615410227357228729653808339513615935067491522558092759892926250129196312391817822662740834934568963982586758457072325596771461356962851887465348253094191739816946143757915867662770296570415766134476327103597752914609584510625101481415592883946392558913522946579600055839051769653840647805585157993920292401428792651010771267987024268349314394932435709873578829196000059963565683965036325713752432137614940375827700008472214410501613051803610552582872507893838150464101693996849806232232786850739001277348159720800963642102793461619709282963211361735730928469433230386462856238039397123882850966030245561644531053257376992591236794770196412099855367489515198062238545969805310659946031904016836956445566957696667976716118673345222161948059348131241189295448665366330367026631051021482291744801286591398834149085939456537216249527524676898275663286904725793939505159128397296694226792925192488009740847757725224916241943364490261661691717250186827484402108660565822715477933945529524230526018746572014956618070854632231343980324800554275439276534117312346130167347611013464094994846714733425724629987408542664179662491207227353972518477780715858412482630048837855724433418707003611838058704147771418320515552473414378287636412571801887819297183121173737753643946475400959881975002192324802785812098245840169764752533149401459653504002134123804265710588710521219458467233113511344630347751125912877458116398501784277579372056809020916986557899588544798866044713464386544182458593872580689102404323546553064577657680743840051881098028100138877412562056899996853367408863637420373772251430286271227943607347012451069474879486465384650990847674040518289571804312135060829546678976188487379461695030040828865800840168605363279790948707259728548002915565261312067768368638296341695596689119626278803394379987399117660212086329776276189714003736274903945482412485578918989362827265886679474763119570940064659253364047148115627970844187182948070498384476292601037275318163406610127832923778231360552476055297025160459033289766275226597463527637168530660165107150130955890120635794439201207317412177182295979681244947027478476128801496449393822167364453348054869269195065255964095944436122858988100094715139438948564032540087148338657299896351457136790445748283621116075533850674512524573519050017131645545359672854993481666695924054428942110421288471949758222345886273724367047140417350289679794418542524731657931741789425634270447761499671920898510036521294823695098603019442110615518103226096603463800633806503327806433109662934129902124687663931393917498964665318398004332325315758040166078491115546071309553237326010383148133379047873507586535673622718981375450052122665415958630924428229338811552634035710019472555642300810367695697980431999150866282242712707308736454755179848879842964816903960927221424243696028211003398778786803272558153777819965706315706674703513475198207180423994026896079275813251270378717669810196499504672337833876144186386716033736415196937068752723856606384554911557490449851808765186825676091350749435774506027908184658258202587914508996270602583022616104773415212926688781141326746405496856612476266867536989907700046274068298120621942484371300976228457147453249519767678178840225282992366151616673467583812964506034504888976133327397746287564189649831437990350537555945261479038195966243075207273316737861896305420890499112109815703923026812613872875557114120468634787080623040689117610297343747531133155617660845673616411218062895227783886610376275474625850405015689685173647904646929722338330246199204736598626279954864731962687553375444106455317719893501238107971803472299214178200260972221837212618335063654820274006780004445624792156656711585974293737139326649039461535981826022929932465807399763252802996911857973981737513779519648604186559612239248123329355608713801309053331497479729700842168064391207248135746664924199584946062441797288208105229418743847500874547221476751364929373532557166269936147902937103686537547816269487123350009517292210938452178179818569441188223621901205826969805845965926273125950546178449313166688079123351981120968881599904001019493648260842225051477590350522065092530609652958554675531810326666990179756628249050022506927847447283977899184005535995391725225963261200056809529275440920324069925210380582473131942879160260337935213991177767689740504081758912594814869948994172513030789388269731842138592113312955676288911972607225376424206543988901837705171111388218054588090224521958501179089011532887943378570822890810805624355871598945559533340930305059873925264813243700839548331676547818979180478400185780117333970418688722971153475001880085912966271515489397141255379092956009199978789060208097663391022244961883942892346374157778353462719707968242234069124748460565205994280875507749006504189785453292428332169057706534763996880890536201573586415782303628691516588566241887390216326538904262097401909737420383109136237563932467583511579757712452810634214493608064650962501714419616433062254213043017248504430187182163252348185488925369307428727018442559647564881367442169692946767646969315561335547672534320165322043344616855748392091726401785753869492138664339026207831477259199808573460924595978437504288131396531900217101809429910804402135214128779674505080460697771096956188167180994298992430252752983662693892563431352918569927533935188090964211442313755353936696224735157021948070183663241199546052965269485937044713916584021440870305736580176537955876650300049025266558458903422642423992819599483758851088755373961098805945925381845991560497395562008836051520145088202187852538851822418605020595558842983723125105216706252877904420854492941695405791237419482506700474783539893183758692621251705953908089476123824842968292122118904368146264716876594067328387436198424963376867839159512320877088889842270898417333345479978089025596352188068362514372178311037475201538714174964591296786875234110623237763867521098064122408998176357230093170143755085821074163253114974896323224930978753342995656273430590043910169958940545823644591472950106018765883103632035517549679218543057401019571588500507324620412465427311394995085548206065159457695695570314880061102326023392392349159553028178980362073464156440524878610537736265459626621686578012444839492095016438276323471078109906599392376961954707407657186738177376177131010569286067393083656579164335163128657904145964343579717103764008646344878779311876614126594259486942165739750476346605872602918462814491348786708186656611546031184529820016491704178673632985573310569931833331442038003368450698041382077960917539228058717166388907658879785200986762838929306107033773428589331607418035470808923630067351379016619104248786599533365085368051158515061398292517322644338676983728758224055819648445955767575591655700071851085172741184552567817790250611465039831837193219143867410344750791699015255720138395023632460247835612429611016171857240267810753377022890300325242233092743599621098634633450256204503788073181885653344730690460989238517665475710394649327905955764130145405409729072232540808294109104293221215827109695421358661509828753915475887205751584158576904986818252323523018332642057861347441233786476833426278320508388671996891311962478248830301048562794389072891156398384564801253293970791954879190527197363447342374812943528669518885279361292468781276483681734435679507647650465894588707356839890780013368769648696514877920254907218538456450149805626202211144793599254858005075841301961897742506780857114128466227986661365825935027016562058733131297738471956505523088186458236258593599714192717118358150145657599369558463259614733040218707035037429073899790115360407744467477360794552949585666960610396398225712511851782117998198996750774475747130429504325675368987292143627800830662952488116061963012374482422472828382993952216585704102828457653984498330363142104575268622621595601880106443748449503905507136784533146732881916589599872248219972365206689343780433058781441298675513363214371075397703568685935200958903347750406286528913462515729929776089874422827021446461551800224631546670898459001175598356855241318727252852565070288817260256167901519180156517302477322148411916298382780157485074960328885391957630220928945930205813555048914011598335358962825189481573093531335574632590704506723593662750228683823389309207989177473864123441589250507269000367065878622935363773173473914649049744123385442166613532018123793864947244889817047529744374093469450141011613782080148866142270077071097913665727022300605471636237268496015400776569195090794505886553600767686289524387444425578789989356128806585596248925936943310797018639833533124297299519009367231451377530573093732746473144111255954583908230716306763336236346706495248110192434374052150601911213244967913940354799593935103630225807011601921783258303999041830075084223611436842399242959774569960058119654098054749304940046790032123402609694259178394626236901288350157921000896064735649802875727912771903093777517090000045786353705283366044904013212950682566304761756676337733870757442138352811724066255529795175121842189528657574314183303106165047361917089961084031071654848494661433889600123414589096506088732647049836232260573598238162719877872848276141820110970290018965042428925852260370709928932682137318029486785666057047647919417488978292862402171569654652447377555088856246134027580241326296221671707049714338819264682420343884711068352982601579684414853462652058944446335928105350094607638367417359059409461450307642477589338544139838511761423373507830598249711729095280999606972359231408531913887608282572164635898069795783100311488364843061165539012483060925989807399097763140165427285985072762544845736096268587299745000873617637002973122482992353231824076352249031205823867470477900566879447836747073652274759992540294930325327527199440798145692546038344850866908201584191367420148278123633704427490994025419657751314811118256435441531314814308900667397853092903891568788624258741342652817080530598416646388606152338512778968791951998382760140030720387824304785470048179892019560020268039234570219407145577415546632076303032814552409722718394927616684431587116937935366921690291708661174070678678759428663280911191933156732901453636467307192073841942598066350787993450473495252497680699133274822155958660094289413836812535733973851009159343085996195763049413834474172618231307413522247322615927903148152084044760007898722068816166344970674160612520856009170989999007189177350128101593305486902191687665074057585933475106410469586060527500634392179686944480171524200118803414884901498928722158150256473193715682376987080308837757572643318292959124567090187400501078416372520943651928910602998483854975845589073483716509090750499280206116230046073811866169346522944542065270726693192980299516689668198761368268127636212836891182265616494142817951679079488915131872799308613219865450183307112641623773246390018479757908779267710903218520276725431747732414506183038008235871109660535990974846211580440854992570653281134812719636809831300933344905061034223660064603532178210277698882819302933719060240650754837984668149782716417447320596176703331220768328274636278058390087728369750452783749821672781892381663173043871399087330755115317240892699947568626578673255051617893560602184938480409838743996386884624315489971339721653559444071676252751918297940266912263058164630982711549360353010604506684967381689809888682399115612418036319750278709990938463703574133263408110098543628428061063291399824824694518047255694059060217179092410021353183038349166996558656496993263587463062229288137740884347602363047947066890758138806803662864929969211603006259178172305314333170028062518645144171014776653904142767582820815485809294272668095070168089277552733351742283482008773649450389326112547878788936904799992197731711695373015418026649046258037360962104299691623615005758055943471056975943204165998278318520807599322296744294648732697997790592124989669447037412079194790275948433816169020308698393176711396823488665431843963555785846043604728879749331854479930607213862375940218679437315011162400554006745085786073803258963488576907265496082856499631706010206883536782829507196053614279132597760886457755308864648851486558787970676986128328073331092734993490657559849927510177671930883965968806058376007914682849173575039835503969080086415562285260488994904533786773328453683011763401105962275196948566965203922948857430635014848120329121448134258852977632614467490989500234396563294177222110112154502073629231645053216547865609718994966711594308794959874178567966579284788405549744246100334688237354625757334502866176128686461395241924165324221151193261685417649788077641559139337073068708672811351512928883667847413707000921161561503045109568168572862311222091000474985405170959568060947126239520263538061687461268125978847032054869461933836315597587937326776316684643337438124519266335187351754765092292592032632920518639339860277383793436945934231766166591512164469085634552327906383166038034093145183659021998722468510272527571268324779544846070157596102579205468191583492831765845810562043843318658837066052192763628225680611238913288969555759204201720700087076343138536035663552274917306695158998253940174577784151278567806345923996343968945059436686539373370938016112341442843945514076788814090031390234932359371121085745197000320623611858978492829268161076310674503575494813157020572216099283570595420336913923826956693135865733233507273340415644064351493685546100476729439123418133822301771320804207982506823775747382574320462870433569547006332199494819597936993238341214376355714246350740412243913659814666144874937062721795171948209032815250203163895403856875194295131995291810716264660961339277008558808078021327697905708863114394964096608616372709392611093306642802762112196523318783872172460977374581535933600586924897374618497942097595186871778287685923337160914913076222474936056019805516034083226483150966151658578545815756666323837847707733275348944682487953855134524716231263907648042903431932066277348377129800918817166802016385519272661196223322955974028152127168691365435984331252020685308722706140722596088132762148822380663161046409344832896179996253766588310199893930172657005437440403549094952507370707496457541915105956316676081110808467218893480846179399693026830156773931300954052986521845964969285018206868223685311998052387518194501505206623147902509823472826542628221961244051728188605343750470752886226985271325233068845050661205623115456558964198576271548040077288700225929126477942388488690906233174024297425381387866612396458159176288465868709679879560490489436118949918544172082150604210475249581796766191077614083389270142358910152398158709744784448555918280813373145644678024725674017286278389337515663603396801872727770630641242226405423010028911362466549348471755609850716560025303700323260014861926153987570634662410982524658951815607851290926287146034182920004197301151172249009174253350800508124166936872895055909838463850675346894608166556999846422692488499318492193092911086861149366848150931446181909382870170423717592958762446260072065353865565340954422740426161953397356771064004376401507948848753575896698164111713482828268358786403407432739197440940402777320284447342931605488469176781493870918389290893494560176181487748081619604002846381731119213507009537045928672221556565475926141500162733841751427693050787697484800601549995303462887913016871538398230322804729435329571195898919816636943898339651117109419402939757588219067385666811932287761367461706206364642477577270070531415746025807173629669438549891680494872274445083967970700274936983408891670578667512858369802397199085370088534345767327099084308437482814903871090931647149728585164260273185846820299824023206607245898457444149798818391772560555880103874537530097633095721073876254108019198804277097876105531366969724952958141230436931491622454621493795898964784930690730943356648899185649280664646049734017800668745246659663585093460034038790204743004099751242079532284333487548456123331265580828006628182780364223785842775791865789243907085175438337767796220824343331747286195718402492172527441421435230825563870023021681120803130526931804914367099426071599291139118640363032012275755664333857778944427238233798111707282207200111289990392010375409520880567844756519167294444425232398997510262362906695796405824527259022017628444402344167637117184388026908197189266566906377803878995064064331288242898055767826347504012298320532108708733157921837530381949440650245288123570085473385928267296670147966377101481264514707409936015043215072590373685555325688644279124999792609452124466530238893399599498969389852075945449457352764332618096840016664153058003614818712230676088670941469547952232578883102591793060286473698498541768330169492780053042309916975040622963051457039583228116202126044035851627267646402448972301995156015661539695292550931290188838021262520069371195541326426653311060201430991416244977204065492150919872998506942339988671469249321784705441714197530963421519157187206378560048447960984494068966739777464188759040953063236991081233808222785872709459638607056678878733567817511765052465315726222280988084038686830218446912774508923434044728411764994237342515202448575753785044367555229780677170273207671412204653456878112396988732477985236331483015528017191161110601428370612089753070908345819501271903325417615743045571751276540743696091362352536310782580802714372607121328225923397469696544744697757391296145081290885835261948467229293150244440665645007909763768893879836559139255146655253870089424562030680076715092529311184360207547044154670483955294558770622187136791481720227296939376955957332857770929282421904590894357268326676338868252412856698527403556294258333099330834050896181617283599784615887733298219526584047839390058164598327947944425251238351171632114979315327202299692273784766439500187050307217330227576385783287129099762256851967936937779790686039328105341842318284568090201123861146221850318703447179438240750421035243586760074703112646851889305618080208500355440116395457230758812470157273816813230495199404328148053924017152479706478659513888969066964970252307113344958504676071399377584830893178696548287692875790078473034565088266149221193166383405342710238545507077277374927911306647167186630791943844661451810965808149415530729294505826714136973980542537588621295594662604984007057019325244574849493261666198670439207692372225953504172002218166047863061719734790611142182575054096033873961101619279245947710172266444629835949180884444396450113433452082840527453315422611945117622022282394502824831475943526668149949087240318047852462680264283351855799548603688882076273493050917249735379835383486699314798564268948523759007366766579642371896812331180838951898343981402811101895659556879013738215039984296269562329768917805138358254442304324117144397313046455675457606694524027895999534128353809269848134958126094198537156731903023228701203337357053556341463045533350770257958836827741363868917518689388418723305357668215493859734903956154536673919286266252358369294830199437129946602585679157386570790197045285159124689553531700903883871886812273983818351077929066128396188760006204062946947679587055195746834360070772789918994018830798490052740250495462902997128478171815641640872583967818644445256937085548150608607624849934186237351905686122880621661937440629080480221781185957144062014432651047657672379704194284523951574695808088708570575149393021940620138048950380159340404295652900937034297345732621970485316413995610760427752117106933004786982669442241995243189409196861487919931537714120580726511361597243230397353953241245886079043655665156975681258407704718122066946179369210348730810367947147152308750083514704652366236555372189290332945194057783612067710188691652347037695910894346042450095083238382956977293511292932555479060256399353503438088814176670734580279244452147723027364917117321906419095349329825664048439449885921960964385397293363398699552499438257230964380483638298738095270897463647441842429164246854645230284188973495713603135569241155396997428288203794768933592928654793119096114733476655061921827536869490519970291416439115318484579652443213372429026615620745241221822627517076996977120125975098202527762127432381815025707640837500936015936922752457368986670009760069213335351137703350141709228895149743343706019659705788034902196378367094318375210637731983263816992113885475915428841876219618406273883807817133551589819930114565977888491277801935026865552517824413663816010732490678488634331394958331537837067944731377769226998341957542521635615416267411413041120313188269582399872674617364259389682252823944327206621829600951897930719733294308963481648192973658588952255547314933743945316590929206296017293864133002850407828088123116443987637300780085517039755745843134623353958428149438372842030487708539264697029816895293895194208916250165323660933068179808653584878940281498573180883479185491931343911469361405958379238797769566207926589609630634422248330782051645081645810475961900459432844524235977862477978817316740681216957726332402321981844200224098704526484565211611531222816154278916681143729593999544781131311693152090974782966375000864424019632240991258540102821878901752286841349910010471119211187822081210939961328531095789013828426267662194396263573262453738720665520638007880337849184871003039671981428346034003766245663371638651250979757500091225570455627775348755929295821232042655862573094093946230294771930617506157852433500003039163575583558028189425349301458116475094018976588287165659152501817515272669881395055448754277938065273748110897467762103392129714086923934568410074248450376398844825611282869446436209147204357693288553279887627091005106383824170399167725042713533033665678563436343795077493482165379170704270837128109257155834003428453043952505807811813172495562916735790089548059610021462659048747845979002194091851002610047181689055499363179693072933742319694639992367160389017260210166645908467946469760078347078297708722819022271025025760586401262794664296434948840834150071625408314436402376803069639771144872294023934008797990086275942294222093940852134539306503625233545086468532034313326682254712814384582527935474031311904751130552622976307130764533965853956250448742901744725734267390629934230283122236345839948778106466766953386323295937439618265327324552532522796966186039611861485445574876270234571197464915317904956660973763205165996005230533347810098026391322056306090136504214945975542897094471210224403290832793279825121546330186628555286827870677003768793574472384320295436087300274436086950862165021704346393776797328521906295622662564651419433997623588814348010095613934156899415436087598764732962298209368896677310174157369870114435714307221179209263298154963474118694822812530452235470542720965497709323349684058481226368062889045983665520364357496501974452219216708045724047551564604327846313764466426671582079195414335037261009058805816678510326719844666965567603866407690897844770149049637187433822580797868430644737699996893468283368436949807133821219692679820359815612695728618735685353827633584527633333816306223134849520035735386701564722186544301067241918775264554024761446511315250307030734099068063696278282876994368187625173166933929026212491770632035471475555441096754066015139782140866048420637021918683890201226439464654738130991918744335345453775273582433916367466319871887019067146192147027804968389937651913834325064172742240039092112163952839640463551014548039117772162467625475759547845837863984515240496423817130090097017421896036834520916871335594815337949119822380971704495529790593183778025717625522310979030620228554401400599625244106074208635279510971510081319666515297266809027083428224489000528895555727224478718711280402279306561308722694828571741715703340116793341154324640124209239974255689568444213514739162642731551939101957437476374930759110219948368883167563064348667728721260137579868604651205871238983130389229464780859137761991197106892244955102063397400809909249795467269228129313214134990958329484293371639370777987096801661646526830039464540443834388841021457780114157418746273725343011045095632116796385024605659317805810196910923458881298788430446711388522132319358983878003591210969554125099191819282902671738098783379989847447763719949577336913169604878512259045166483204868249291046561340742567493694129204377827380846595464232248162326526083805823437455064901904642990100305815549584960682222527217155598903242341712040933951710062845347612736000490428240475133603145910239646274386840834996325418901945709629241132086445313934599703163493210964889030311190559155076549795402261499808303912328231985582850546113921471394319980192669286589970785916337063586361386705661651581595168581144157821238583953398160691013923798855512788149087931770018221900557938773051769941844292778344417657927357365846134609508566576754780894009131526529033992606605661395264508595327284373061568076548604711119674268692447643985128187766970721533566740085723398416102814642745051446536358816389750583059251226406399887381371508148477812457346166082864530848026036720111267858324260536992795339218521273380332709955459910403422576122915424999460196938502732635630103661533508074919771053355514954518580617208765589703379837181107730872664231297640764315295462159669614088746383887278830025216535709360229336256656528970763920199772532312402946290555519585935100394061342728394624738741341858887632162823730447145241486349169041369345306991251390480923035586395308928055815781391040267908209987002958739988831491444292157747266459348692602158048190752624708866864932402962370948404866475478913702518036494350846234585169192713215018311590839502308028086206805399325841881663937059177219845680997986211721227689310315978805871365060505000616621318023585550259334674335152839971937274408467226286359718241936310137206727109903793899104686614951318672616565505669903405814917065332649725416922859410589996035874971544552849571996542618624732006367644776402968581876680254519315125956655708797823661617299385088842735462335876189943201066881249104396726846035773579273124987242029627467684472159609662140628671556283320100404742727814442714886092833648378723655105485424765703209340424166546879386465126012181077003886705084020631508017890577580991876768271442318242815616736371506959281524419952525149545035421066325602749441525098991976410196234601720612003553948489516137602328962652323203397688245367153216700554982243244616022602057491716684597622990074884871463975738197223336259872282216654616509284419502917203662907051238349884553248265430843040589382413576715708591745283087563513530719140088857034564448597938202848164076629551541723093853529189069755881480317905348359168968388857023055543704347363807575408087689310921092077088179531640982704046750806155519180594122999218426194960986841886798899425335342604255715698562110789786714999880413300234432631644050517703858148252998582918453524115361361580233456805732342604087990364721069982161459554381597613163029223084172934459569161788396236084911533503891712200751950561380635814099282796822992818692925702678128120037839586057336566285049405415412571309422544228583361143255236150835891541053960085888579765552800207498842028405954906685119302255830167439555501853682770337742851850909995933298163126628596245857373482087739698858764602054505017157025660658378089272415892837055266500940310863798810281971895039181488644549942557607157275169090670370594717474183648714596357681731717439593307576425841319499549150180042404404761328940061639009183364115377354491247910473791806602444614552718762757561631538418532617542570673180187886487644140543451962889294489103201876635999547988360941250959080497251020020810142432957364950150588442641404049460441515814823835406621083045039186235753921432672636875430048301567007880424420604673686958570865097704819126807187618006052462691256560124377569444067742636262557160180439621089161643301988725420812044532700236125168837472568996762300596416258528264502787240882392888190573387932164706673964510545123509563315753415226231609842233182939900551273856894802823553087353099179261581383667336820914863629790005494884258821835628509217126768919636496296236632940122060469360778835868726237104767977164400305453694272912473795623906788877850135505373419326387719695155713348877562173496708477583558341519859715667405690700374672807595217321430225512136350848221519684110748975794261517892739313451584418127742500703391217693932947211131453692093855617983499190453612659083110878217250318400457072483927968857485109349992354001338053628323011979456704032169243575250627474028173767599429047934495109599970541689123773468893056398153242866570474191825489588945920743491034673766192941865627292549601860200983503382120568034811013418349018585545669427974608744007373681916909719832569090432004240690000427947853852603368767885821193938890136945800528995214597806335721266321115595244164830628383132054332109576570466772936150505925344749751972582945001406692566230474726019459440884640256583795462549213570045697081771245893682165291754969632220517255461368573824336870554306421084818870033703221044511883740237637733747985618050438557626291984533879390946426379877790919334009556645836323130789098669673841384133962158362418532434263792040873415205691393504594092871143637746944647038795473130900102675625096530573808910891374605138933312302683416947625500902102672757957472272024697092054319810207376777732410554941774435420476479971235604235283699687232280890948315357228564272869714999753727474959684464956812023003921259182188004155292939058294685670556122190809848086113347214049492581297403900161857782874641005035609241600085706268335003464704943026683495482164013259813267245110572695141859637605028723918578196212100637021339859857435147851518038160742117950754747102992632427368099585602928551173041039240026967428077782872365482117605815161698680976553505492839514596862935494827024980051273272785659847147424467337125278608419859304920276596659099601053538194330884880648505189420734793457619922011611699995063444940225862839142823629527913522616755405219884679094446280666289322228062766732138581840040481510670878135565130691818232606483688075829160995256252904426952224677275176078790918444486264655853233587247151230895518030467776815403636296865539638916032010996272120714739978151280615157322310570108116226732032701048401347241484812964455209896195636258499636370395422624490930941168296138830962802962567452838835726355162807661831848490256234045928685024713663656924127702328212199597818132244992073318760084043909170358556432092077010464423356681799251749698436799858454214412478263855168729750947240424981724670416034018547718742851864729732831894949554771726430258758917080308733275699998314831624421214501462305728940599627055904618129144367120380092365044342335789608395002431030832877452613166788015354409746839685514042321655500591160415526774148999347003602757447413140948466597674905145931361825299909907918263044987178138520150831644528035621535774560186629401471430349962656844175209015336421315815811577003230042543970544274466295609189469056114224903113624535100091348773124484270570129900520353784920141708785322753916868399294169319464332769274122966843326819935339334047767379657277915651817217905908030411576291514307713581832881046528970563607142704563805305374168700502865933905016869070535083203446211652115516316102869253218827222871506675542058578040715048387862075969502675081655686676109498895110167758717320553249338909674155453530773065818050575427691236904050136163977707876954751178784799610646990654257203377109202223882872552423151466583367122998470712746863066968369153344287893510580820734704757126287791120809587937848215187232771688801602988632492872336697713547289264535494865347945311496640900451381549855138527267102188062955105231136311512362109411227098061014903765349707063635536056011164024016628468492246458020771311100031671896743021860109354010619916148791925951766114668286837896047488612017531705922721804722303536958437431184275143485030025667147243807733260132932783319043035804074208443793254952980697221470501206851498367461343541964225934425934379852032021007950428861264529273386472282239465625089368650586754864739984303338003922926704858739998917871319461749041516032995957144148203338267088348162959385273675127742272957564568986560260031592649386678397069179748745273771634995820626754939704168182716682171596374384428544486686876296872841738328482137425737477455087839771100353711781012651780409822916345212646203676558018979587124531634265413683118798881723778935416371751140124956267280358282077370169036531914640085385151051025321831386085386113215980587277089863006089291780753164528563082041411452914369534837595821910330306259761796533396194176694294980714102041260549300967754702353208799023672173637693494130217117669815489601443775889483325064161290622261740339796722428469292660469291847585139438990274661173029087691522958643921975026089716775373087710146054466313830348919471449483950892638408466785132507281247307124238167106715840362118668995009108459313850815168255406170564467699240065695133682579978950312283478224934361320637607151380755543386663571353168149683145678827233451197820911012955389621290451749448930089574152231885678856181285579045506783475488606742080352267198602953283451884496748839755523948964435036202889472987856139107371392002236624378364387190203649874125301375756180876399243457452147426856052679649085615686409986139818883536227606715207991229914392829025059814553716234136052592515698180360989457699718933976341425493462700548771285056037019526219733608998087194988936440565544950884347495606927710357240016354584793468808145004618382118764678395779959533891049813932121762024296071756125064322599680665237772420529014368666757611119491021410561070732556915267390051333134548341305222057461148502683940871892826225325902643716093760270638571204853463014828590067475166769571186405947574389202745377567134056330451569720047826824195387576122251951570165680174543899986307400756918164079177595535920064442575703219533397019026185442442179529291018701185783261564744604874585443418265794151903510397727291149991882483979805715030128629173819384488883196638744089994506641116478985325197763571701846205379878191571386285161993840396966823592834517793042719112084392519845142437699347688367513723664063871227792197566851677977423783213220417288362313986220530572757334247583158551875657655963458690746992846169316139045354196854559466168747221944710872401681126836706683308053365437292176468033928935051674909473550128531573354527440243541421272862153325723891602781633223370664540400583410301357292150571067379329898863666688029812921721438558440418767556242185580919514937540918708239508100469918284504058032141148638287933630717747535518961945885025973891404647689711321240296623721156772359833068168918997588177259940130568962259650688100691492589467661305084034365708701417666037869773852853685916803755998247175865593027928934013522209161967990037349569293015536655452154079472250591426727193743119289409577273471745415330105752177109321466113468037740483688163211461124928445124220862844796539356472955968639670794278694041727744246265560522769611694416934814989304647381671679577134389906114769298970334276258635638793404369342702583696294417393657549095451760038591675909545745560718319469710147072425161570606764300630316534707803822063221445979329038682339124383876253582737266704629528798517141075698188829216019079036316956756020483749640311445060653007262629748384055369529699606339581719414328664176897872684215783844019625451651151816395616781599854025266695491032955704259016516187719213575325894353846245659201827714264850356298191723337030445599709608216169572528286692723936792875413988906866801868182463272092181764657672317091838961948221527843262035616082026380717854712567842651148428205239905874529629424768969307872025774598516997398144704462502886166224334893581563524708665465222129040303303855902416763933950075220347149440181889908104954132797511363808085456589548726951594196385058946122967989489833415882538792919308035844011551430521555624973414067038396692756253297343108651913568624711889629774914215976051590153410645871466104686495740154122953697833444834280016406887460475261741389865519275850457284068185594061748114717431205453605050871561886559050098679076350424587361098139601965674076985303692038395021593568441342103752605114218774375596748616715579307842097063860955563793892560637656062902504681913750629829600567299805250884903590735236361916385525852085604625272201208355214812583912638599511524629849406436074247912833084478103453942114452584665547227956238717356677222363231151054723109862639659266696672892545609298113983443422885749630109777085122830754280301502863162187386603598117143824647294186344256910853074492994500949467696263036343647308790545308343980874823459964725168013764664265348990359106545127130066199442686753861912394011051504717156882549293928375089627728527375239259808818316710761215406098913724350738877272187883621482045758582640884982417169306720444873701639277309721880190967621424142816234535515823874114667656827626071366706053634973794468095941846386434431158492234590048161286162143406124976956112243507583123364248237050387717683035306670149658651963101748941571941343289829880261558677011366993642500284139843814294081317880872685695572343139669376560320451908897399506663265362603820816942605554727829339768902476443342557353457479248716404133353793036793185049682443866524102509103183720542671280033281565081274262929787097926129200353485703205794736838497392900599342289487742557153559495778169509742825282376038472471014075877798646416005963349800117097310551775901226521667309353924838012703171692121053173446992866178348349304121565682814527254958119422663695660987358563527663133864850115425630100616083352107598782297102332996408377987837660381856270143341529901738203685968123782382377347879643143958608175329465292098821454363553983293688464409389051293365231709244103513783991467499077564676051174768356207400744540131152313838851779562170718452546695733242008672012534122017239738503320587608134950195910249601537339996918868649885977816595673635483484258234449939282542193229775323157956426108336944240926081313461126063445737985576313582699442108826278859420000430100873069048228209367021608819464866512501441023828375188307129689624541696044116435856615561863357366413302020803020613192062370907991495483928188304566475228971507454462238235026120132118755379484932520631369278633538441467378870924650345538968936287871765910737151750004698044536706328311981628510830297750137923297143299911358834713950158783407886473903692470231823030815507131392352599583391361673232600059112389754595622493119369113978447749375556502983704405904962935092690518119082445005024042691723808405121725587218556066802841755922656007562469081745445017690866624820221285091579164175471034230621016175090180443642985461187914853122890397113190478988560594628865160217516256494199726156994298399964390444329998703378393947395401722316095994087607856628257749385124178870217775882122300298629007833883992354057765985016907828729574794551126034209906640077959350861056775190045730616866800949763490666932835249354183466055197208608963027717209070140296554641509144168592372385445467737249283231426131216235894443015122701859111618742067766013068785237407499866663739403350128111404728641053471110286191135397352920001557595659730510954550879422631251298871099098992941858695984566701236600123301591542077562888658724110329095370924775493580010250663608793221652922217485885609791705195961681596214119919871312724946730942676528806345330989356795316932749653060010170418090133082826116671719098336915518719339925285726761932100632268095634594061679462788996861770139158620018706458822988193780436198528092087940116608992874355915727871637023712883638710489193075507949682923454391277426332915152708420673006406533985717493778843607225450846978818023798555941310300018108169226308203714001787847392705900306893270977372567478780219504728361315264458818169565812574852622853308642864011097376828363209755384597856213075258356188720210494890874927336877050089096121249539713640144103171644469701191426478664607913860716901246433863580054037012898459524417316764936819255323120035265958804333118936805939204689696176430124743064006216753263735885740860992178976173543092429199155832640572443591505492516592606354235693105178470569438631409881468279949783421959795161299839786210873450684419143315978722438097253040769464763129483944857070107375677170601607583646576855264387492771119231880581317541798018660142450819982605528708599654805614126209011037821621985039646295640804689310251147757708585457369835644406372163051133385561516444022133620784869583622991396590177296823403050938262167316439951558879044147698974263749910289400954889399888999690632247304523857249749332910686413899045641408798849521143252827949266694224770625248440804969477162131581765160004762308675691712405771448932060351227101963577374224330857366219417020232764725336393924550817147615601904054900797039539601948205565345917721492897840256092919882012664137378598467906727920811180757645883618059283426999024218423679673269573319389994876480594745415820888252659120114478779413871118404153615829493793616053616299407136017707280265538589578389266622831971292583387436875453623520827730719096981911207092551537981048713637302076180038747617660296906800450553104307228624282868315604493629133202625408758791895930721733902542891840316126952392555164785247822673072233383353307046226551930349592312567452235587978618683786770615541122085503747156134180552428427747176865265400380596050915080478175405865128272429348162872624561358916195397546131031298119016674665894298545485046863477041886584581141139781031006976033492952704720705081248039061889957871095655352394539884985528643609768000584512746889721596927659545160051517157938409535389980813114146743361508687926053834826467249759604713104558094090262615664083965731310453258489660806984208688822992709546376492929403088983944744120487577874264249051184906969870516583151596168677686298434198620147706877293687193567538737030167476371860735674229320609445915916981660647273355204679128558707107704934944525111279965959011402503135682253975838738436884499284230760869307985632035649073473252464128230003368999075930361500105782428451082098461687534127417342149595660991018079606594834993520973764037408442418600417615643781208299975650643508827570572720375790366005044384138182650917508315223436121810046249978086634586387327452047228060654782139499971714260931276979332544886471243673886066028179897610917812952322798823959432259208605372424626320549046708783887423628689031768188658245375678142434731825521346134269966926614865551720575797298860450702258510063603744428077107327369226196023136398629076533720742697816976643475721870316502447563527741137047484836274984595599330381028043019482717421728058419397246125349678532115627058307247474462422504161811868720118712393302164546188520054391257841974048012929568130157402585715091801852292604488081837804074831162483495534601337996632379430663436989654903103623857668639240577930004164959638499993944268872150508604663046447725817516184433385961721605658341162825084151532276118399883785965387076206044689644409795952581711922354746277420187695800670979439540354720506858567403560011783441066503655438598969880420988288431243948208336129994927788385550064792289395227824174587764199156276434289910556099245488392352929752582005620084652698639349179170477465358999124851437099076126909537101241626848895199322191976133052929278008315211722796029826283083740978869434350501337402847554525139607563832134927979940266446406210286764485457086039985035636742377113573619713717560946094919919960447005182046075090291400098071740057869465021175703318937570600006692696285019969784213711153347774162346126943812324183149452707457408705342361740802758184722886737593875538201422020234029460579877902381045443856622899367481251336810884039865656270963844073089661370963164484702006507214638281265908929891771163559260873258217793522865727933776068508466992395420182777112442976731451223863832021896024489502468264047952399318367729807789527656665026502796924276146483075149103038136061023397446555838955650697984753832074330433777606643688775278974568264245523727424146400845234846007118195709832401542265968710188871558789267764519675381719411973222457360798367212204453198880251276640399571257342770428222058407565139754844401106603237586695903707991627342415843630633422569697157522257256846572027010704499952373383059805120247057023049138417647104278847037729673086111297728010612441881099854579184069395250453221273111587857317283385784913761979315135281659799238164112546719779680826583905133043383029248211059646258593911028707253188983185346556807737631803530968513220268582974679034937407835346994161324157815212715399215448523790013304167847731285051577635398615270740080952380956176538799247524898123194104447949689594177989735957500757146535368454515954956276131353263476827275690443711577819451667307862649437972113461924159922686489393433134911428670582162841826334655292860362880327804929130733894652864624834041366185297831813359329901429878610309559346259605903541144542702019742474200805041240422465076205911843675162722912327345813690963356899747880472287402475569799226129742874134672441563663246460756122777158816229643596993467487525804404272610836888911062682580798542483150164015007928349166440004513904797530336291262813438430547550388314162624625678157295229489783525022252951914895005333083050599397590205854090881599497155382219829412281973107499017139929816714231954431566607561433848994550657878462244777990539636818951043988405981154786206052075798122082175197710176084084872083041504686002909338133802760000269080369449993080647322072869434489142104771089410531646279465669663428708822780789106583176532129820498757278221148717203399017150588706480160712189832977677526924163380111581786987656559443438969197616640380804419362286499639081002071062925285930802565964865232695476356169411672353654989404451118444935015623902742333043299018853727580673603988011264128709425238630134184239787713123340621817930370078324791640240438000074967886548573020343815854013990164500378536956022156513344757274466217557902643290877056714599440730863821074649745070899558963418844584754315115171327263351875835398942782444859173515931981606979011198942347297912198763651707207754180237464023909384463547122749690119157213443044949621575159374337757798854733432845038236037469960000295331909980512938866921218987596228054196432938130217527730271336423507122989049151556066397398289297005068610663087713146607665957142418921811401747691514977075755591245188899849537768713367571405419697290096416912718171521633479709937779034182666451196522068428638613465855057426223190899085657076506772738081498713200729568721809059521311474605766008860490259985170409794717622197966812914945904096718656290720629969368672883635042110882380605552003553950136835824997329014151037635222163614079718324641631331104286534940605618839863692132170065297621996426973007455932427491068072032828793221112782741124510076901221645190309241354535782488144987438061248186783525759241013208262442283042370266000727022552149567486452376998821527176946820161118761105290435962410816740253544058825728367058140900458220233182820426320747635004419537850883742737006457118906120834530279860392328993885304154313368639850077925301220535485451052322846859029144507883860823972530395243702551480021918634466505290486950550575413804535625350600630189100075795448560345000541314292902283810109897307384559511351794501525531126413668865938951898611749980885084527644502633740825646828938360022788411747579588160219585837285786406306826369763309503682771350427964767804202398009552543856689172970957238528486282501720875369107063212653208413381786679688362326589979822073621982004577210327595805420012544985000374521819158235443711227495230497749930119324405865437623984173191730712453687651480989107178756211832396727097603821317879291125436192923131058514718145540337361572709554491744434906540815428641240494971111222689759059408557931996585231743472375385893965954685916471633337335504719040776224120660783108888627261629631196342416024296425463178116200896136290860103623776652188356116291311181075743153444227058605354636202811932260086685602164949555652372467166397011477359698594389948498338332364142230882713832608961193929023478815569522808788928288998921088263667761102115615051947744610086620901858951419754307179481418267416561036160510830599216577263987394296763434763763703609388821635908789647574967628090249192217980902882888147961195426438953695604345148030208003731088699553217232843404355357512279861672150239205014493238208373573384434970766527625466895028692837367777139742753971708058865456924960684088149241045891035669057825962008895251104886173557125143280759951232988452102280205553890841196756328046189538711037007149398651594409056945378787413870860283777458546544684311890241620877147579722433327913940226919677350348091179992780272324483995615109511622037184622829746575551744570406549709080302393656911521089095224339421226269580481671134308738635311631256019039636541149894035833958838000713818351565456294893724696420305466640234842762673672576362397135447609865118487825197740702909237519050608305636159936321248950576220187939918579446406745111745516116596368066109500034943081049050804222064649972379417032263001707688764828199373617868489782394845199734670127840516596803173582377025172761497924415278563828797458411841811797679099438789123053964703554511937777770986431690271545039558372714112868840951178822849760155384049162820125739173907153613853840838660745970031157886628697524977971669816829593126201520395411798525250462846046925009346212599346314920114300681057326370525793301703940630348395865641773548903265285253591144593179113748358278956035401035543891323838790093111556795592387297558554321566555881983743980221831155687848629203857112861761641287170303584075235981482633030076398266691913615754447573695140884187401629839419216378448077786507605496764455067591595280556092019618124115662625105981135627392146653090751791537121959245880058530101903664237077578723552612807705744345510682571211998319364172145167771088808065446694005278078880716431664580307845533970165847047520977037944632395236067157731835895877116295087802016859215235378219650589094133074968408434789475660021755167791441362267817150186400660289411141035725759297583456183152627290476823835775914808586530680160919351538493093612638124028504891091405026697793600098090981557226785653898029375575559428736911187563151228534424769346883139083694428751620089366996158924225334006548904463495420270916260958425065469565783592275511114417260286615594781151918092028063863328594574267554930645327763416238482394640614256566394034395796867700605108847157728602878257112128487885831395370984121489081114776604738836552919450786425464858907197292688861992890424673464590759336971443923483679953143000030996081170307087486701096235338600285576763708025371764507894105347688470387628963659444342223665928635187940622596681404050570585705101284030462007414495313108014359744746586915924821039344624143509852291672964636811756384209870041644565122542671791800599377763699577036677582368615048427813703371911767707452708449737914091082432195684786793423728945759808755753894430339780100504676689981239672351930489090385893343537030801820091634460917568377414140911167203179343436184475535230298667577055081734907069956964301396181478744565953835439828168882205284779821550470022584492204369990164245207056776386395778598047934845965464051517102975236569018705860455698940486846563866760453460363115088572901813586023978019699298296114041311422501063082285713548637839018087563145867562297206568431194030831125369999112686927281411610281463923607856861503306925703673207099192383517339296066876758567361369154810033648557003419873863537017629635234273199771332358816762531660813049481521952644582413607558611474525116568237652645507126445780113089788112036367452127423871697306621870499658792903205273169519250935297852306204835118111375411321004948312954722967312033618047875678414229989867140277289744551073182062110138663573709537798152191575951705232811972006940838171076563335099305450177908783234073529811593125677695087122791652059808645126964835941835840897779660928397536161422644583772004698377635605669464296189729504167516914672311656338775807491046951279871777758918039180741846914180077763665399401327997808908165038101759119279554926470312015691070494179773521207835272615879232817597377351858495498892426199062304214756229035779739164795118677692010305902110948100482078234212696592779472165819991115534024194784680137601264539689505596866700453304142601198815551364450161444117192625449731115992362271056566003881796834466395387178736653263956884323464983556591928038220912728979757685675112877190642767924720225425804100499234815119628497344731038461202391126264661011316012134157022629145807713764768673190765394103040489581003004388331556765117103193927099704981986928407465297113925549703557140404735461959255980292213216085535172665424228166858967847517157472335817048526314327780746923051915972094280247628202244515337717273651301659165433947667138633520536772095399573243916673185159085852380765712499507332405247628276015394918205781405964893277124340542497822051472694146448558478230570661657133694555946471449498968857731008136106798523758162873667787420733447272191607960927834519713765436723099780973610025787808612648853748310614548326064671715360201440728368583588304115276091953433238222705220869801672077477166133417258017414813088432707442702482456010388336291311538183707901683302281435290641683015103173281825780978966898749086312956051853365974727244228819438154407755327782313315716814716871968363907293703169548738411885178881991215413839491364900514707013220345202610338032217988504386072054208406928196069743230281530229790318478933274610399800640121301436459208172762411800419559652883881459395461876143390101020250205458313623000394831044003723464135555853451088291306427756086445961176269542470821094487128403612225386046759945063238801709981619872272324454953078046671572787052050884290487367482001829489023490444676413655715105779754094703889875940781248849842555092422392631619245284541498858909805080901867235632363630612714753080510091285147050705338867297444681371235351141843317320015445379947377455528447168516313955026406732897711021674532816662804198028526317472048606250795805944550907114159729166820804842989206041485878702738627568850332171463881750012441376806446524194729520780125579693835068921351746322710267394956858566595108799577448601911280437493033347651572643067359380642068080869448765341630784170668780729603562715788188635581648774857467974027793201714224172386023544506277173094819825540116105551351834579714919367963728529173167066049799347785811099157071034896817318488095205191755334175275961729496083841158405694005790188942232940397397159648413055698966335994103619484472042961085263926542325675223136810611197726128431752182846864110760159575437655625285140424722383417841933913098859233659618292241492889800902379047625590266042573937964944600442420244393734346386024987417446448635655646084138854660121757620295641115151467982823618667469571508300722285389158472383305147689975625394821167267569202143086125422081189882485145942060838354790943481117249866602301663187331866572752465428197004236855161625336880180334064682279589369666164442146296039598086590608864723700208395420569831849772825839227959965294893755723494569799377238471465720846741956220100472380166106857818783216093022582918265172682278148749287080955856301247039725724425406510012817457352455558259147902021938596553228494349829367143840763358633225195699925806040405167007306415042723728227443187190520259345312241269282131596412619247878452680744110367483006175238673720753043759596815665532745532341846746680733140815921240656853069163674558272719957820483662006063006024343427482184352198079665166048056090940850189171706130595875279139803921941893772232068407831888069059453555091302131402806030272788340376091786947015996596225439153451402300244165049550804211623091704151134389144066861871846143648732362690110596659898454964563750761792101679089186168068500874420572462421546227709183856506071132973020943093392393915389426428524237662845761866300704630558005163616101592165772954287103738904463698849207916598500740868155088979050212132414856523029046944840100572669288754739650390179969344188657928815726844177280109645959472139352598390762043993741645696579298807568776569071964888206430061416877926318637922968565318498880586327422936553421100383167096019172654852234955195088271061227047975513815653951548763520511025079645994414479096543111717864248959608990167758255138195352987297395987622830228897883297817078388951510517590259578715949792960999372291816586054575350065699503934959691012916679488820039980528740461076929645942694709229075882338004298404863420579270513915202249789804159340867343121259630569341079578675856657869158738168112974533121354042368119602828639608036214342418810393305448120902789657591889952268655264873633564757251358239850342700537002866895131468647270292934721912699213272109936692571093274086354189659047974486729896241404790349552863153777196598207248614172521417063032429136015601500962864114427475541887237689321548300955149381158441271952987372926614271307497171415551551648337975869819568648744780708438805936980705699563840344529237001813350058599164658907973225515315656926373387388674943238333861021572216133819718845986190382562332922130574448713894992417379786447666651503264896923119557923121124322071605842422403159190508611685711999923278657764388416899217957868493013165526497427595703404459859292799187695453562134448206797498953605349593508173775752681338990821941795900217530710952536688933985455598303326136677914272234783254023256037810077746417049584207556069631141465019879076259383682441094146517475321535082976263956079466332111190314060173772661594023013498132574589819524113703528689408354634143123455291445147741365654643885300896833612181049889010581064023525745142960166840960969318813063897486259868093547928115926387420566489770432701490456217640313012208457709031075531131214684849517758586181089371743013963781738100830403797887030482568210405417836098210850565840936397856518364101827666895823242082725889934562263148116991689928383120967367502019089375090180410217604158792407880691284053197885905556517143266663204675196999487419497397085259411844719151086317563138457002632004052654698117600152386745411109824452114772758883873624382947984819258172385149722075803436836169175941206247957322328786983816451459677967098729034564335578865700032259217390570247770048943968070929070153230324345306270421498820099156882325103239309016468848148552083988005840338542414638629668919308383979136569644857749095623801165243179336335189576013431782366590287070984617398761868283856292039782847137556006891062022743843450355605622284090139223708916909757276014395485331621229646802967058835458231829213587354572621085884516064183718374619184052998748492532206459773670141282241807871374953976849731676470045300740689970814969096567798081727667905310910888293688244956789857849663921429870181548767755044493713396680210887036398330305864389105275395851542353640446908745236432661277167859222458325068173382079484177271987840453096232375200630434587286151693436583039064701876867296143774373751935770758120492053567579294423772857483447504313539683553320006351756408989405334851183996999646538220229849454794422321667972919621331696823262341588815221642145521812759202007260140489185944968316522789100675957303860101884768427741643288310917788893697323627091775118383774771739417926017305456532543254382255342597118636324142155644610640825557646707864341073355544886752055587948427078002354766317792635022003809723992556079564753421248521274028632107515486005257709820031896769828759863353317267116570650360344483054663403959107203651474012955351804569689559497843525478752223521723253794328416891008900067841678774365308334259192337243133070963157394186590469766206229746403875307622887231808402090047364079111131840407892917615381806793086627857605513006647460489866222843758190991997111879281543149851110822793473102252351303092223689317316810578535787193538045536946821129656872751548280710849043775425534832150306543538167936151085398757451580777586587143171220626169797015650669429415374872440578940218827695578996539981425702344265119857318461601845456070745668411655142256446763380678549497155594923188945741539856021208697116349844595610878826326608842086862703658940953196956430424189691370464675622272105193311763254592586374409861669975595256147910958713750431069458336714085482819073629946740931019218162816744680825210625227411007012691110599093234642552616443165472319166221886154445228784634594403631433211325842052711358684467775859207574355009221595653274283255096820431212315735218155619537221663826782928919519402011059455129225421038127193682474838659599244749112970098859259710020919934390602922329002918066400195922186847071598063743453382848052151467338482959857048848278629490827443987131858200375714427084345401084723892370120532331842114502891144790905176706758074727946020224380225920874340107059779675321639012492477291349450429839229052947248537107687140652892896944910147975344051144203476108746048913575775978754113925081757975893207281502934065232909063751575226963503380545768585638192254801105794889030346360377644472399755980671117450102980796691099391391531187361691032202093546494168848547401482815566241009600530098239006837776903005826004745337741015894044037268740578311093200964533913118960517112377493892816953229172439854024617312897098350083997084437465798094855778277970936193269084038254056410494623038984290882094001126043613650240059031344419933140889113157574182478843159145394652782742655398430705501711574527564563580801027921101070595514599203168585397074944380513538799307044668525875743527066070341765625524352724339599029161077448217902191413833781311994517863307524014814048401974222450665092836422953435578429942516123424165910904622381064851823018929111427037066682892425003199748058533179844615478158021326798632435587196339768803561803394881792741100909384907288480574861435310932452126244139702667774034798003023700245128611509180665487322613305430190308088581705343478987655449399912831448328671395252107704625134186345991544593081036141172582931230758114184781640849083525188363088325100722136043525660200278364318675557912812529620963924496440411503926804092691854223791120687388858444473640724661558236968823740402798793260653620721744817093466345185934018050105101223233596314408738300985453432999225016114615380355944686546876232035626658305388792924352052304063221309519109266057476959422970118495200874937745983311662226777830895243125743010473157957101893894160841244705874929963962776064888033383101103189787588122845009848574298949666822931396189914242306413940029281940221672262025114898083338955758837868692662454407265792914932657945085494062010490734985537304767509313980018899433293934029483320380060012800922274371885394469013382352717783864438502282567967331441303724330983469551161103332923682110452153617655872375365823939797873100404437550096364120593455716009937174925764685152976231055718556286569024885860501451889281421407615748420814775471142546567619304217232709254003056402339614681056678900296015132656930811678875912220989210586206048128682394147850809629840195122752495464243824291848528547627103616087957601755984566985859727633419883103421225806447714037006033260166077636257587672703240328774033442503914527423034362674285879359817838366070475776904800955203416007405475693262908640619183089520687857899547729724474860906467220438692743350008665829184738516715787879062542996239557998780124337553095994204754023581508952174649215514572538526970118806947551400852696921034515263372360335504871184013486251266295834120865387263980760118334083843532473774768269023834102761499220006407268354172320305730384933621370408642727697236799646255855857918077857509473967049458101878149635976306736295145300405839476135962690308377313111719683430078382543680833707706884274551258554094012336101855599279374071649720474503431381925985502189630891660697680697532291082762158731916922826728483093064605817744603251451701209964618222837331170421913168387655673573851227353901452087847867386511572657863408808744563304531802713025912593834962343922329248031162779582770609537522152211923293222856994293965979093246756564139600574998550995929017000129797212685641194690818579300328597266739223207247326549646654414005338362728199483046650780565919131682060657236499757185467592017473060765976085561470099375790919093616985772620235233219621822837001404505977149735195715952611359695985596091165865358230309137849644042937938041133645416665022059255543365174592491684136407744118235083982373092277925301889489379367358930860625053873276391387472885835278431359371130586264842739638877187246926970128853753059520204975165328504180138596530398658768385680821586753955242953116417647946447403616336294246751177308620452082016883162318877384432704424624533208254788387050679071983870103354512333296604901201217023204274301605898229146145724650440846598723428104452901545932214239541103509650806239147606121800047867430539314984966452684824691840859366685210529327237748447606630151339513916058805214428439994575502970953375749908527432558140512381345992388918527094806858589666473566221288249499449136642748020915918949087715089919644022901945383579344046636246958448731092730035751158551370493175614325851179463621219228692443226888521118818875516905211012113561144843893553662636520239323081134554672984406446370900793745145460090663346352197207410641585427224476800423424029491889446859858108075941741032569394377988357319727008048647032990176700798803469253159891825503769518171126752449917333220833790695640765857768758244918867923199082616642758165252173199602890284222882163853198355379468815753604262024770146240278083670878080114382274053710529575877977147524808749697289616092343586694651057800089738333598495302442628968388662747740674890187972194562525930851955436263013482027720771754661009987162209655058176512842345007956461793130308080534706141050939172980557297958386453955295869343386699860393426227510592186300954671902216914058390375045159677046960579700738453057529034532189629033162936661020801523757092880393318071372374365457131030921970769329350789931747993698927021822555403115852348686002175690715912148927861442430459964950268382664544577631446205831588882099368636034264887060386075262137747375943076344253252020103154467476399318875369331516346760941981771397907330724746550793654675206502876759329389146276927248419890135556805088683483778323821731001888058954355995275024559627320818107855159847505802048134003980907771151995011044380244321026011591026260473870141768627861584496871559520587068056328517329917435766524007065820985187874502834132907726216373839288427754525150763013339641415644876827167099142557984809794967297116124684982317122132421824842099963754804923387279850608318487754387653409511179206120448273935526675019506511352699349819007619883331242479668547362963404263944913837582733692202019545003730936444209878507658817308054058657420284008840507105598876006659932674542691814138183472490341232442361122949288063364532942124288271668196660976537960458171272070831189282714237123122381573200049421034169657058568667919920358775905902792772528111759754344305570462878767182517682612581976281800582120151554612758435234009646120722687520125347707874830808736340985360370039821153684827245734674972479733885319944589733789911788401063156370983765825046499060797278056317806831761659633894126485121920017965896694587701833078125180962572174395820864216383388677348201080699705818369833271499120232271408596059667695218727119832275817035042004242885567851560885289385349016617617899969353780275326803935606553518654121605514381572058132922518638117379367965487214336820619093845243428913131459939604654423182361141135876660903808466915647559876168772282640701633930591036944153236473952552254143580147227917664983086035834638392329426660586768346703996026152689354551011138512597861140498666748368336336294036074436002963327736672574062531698326427650988739185475048789840188809178757577148838200911889241674974871756844905429742088186903236222719522899736251150737460889376543980574675949053636307407221112382350547039672915475562033742742850159040512966525370073630035264318810760869782400278502854447412196397423588938004865852283194136013694061880683206337091016585919086718002649168852754780516691359786502618368297687344596338815377090818410493924681104035084019095406745738885359302007590198290532231805162387811249189405120664894866857506462832457654596926083624530575033703566905379073605562352814988622684866663285479901533356163741376520105668275851374984798719374259917479541074959164558810562955945444732394735806943137880235479185370638908050493202403580548289209588077599032625779743441246805366705230865162565991414078276327082747313960343044112133675399006595345385206657267442942070529660683842742270166257518974260090392585665622831842338076114367489253672904372020765734166362292521320849384971858097323046778969196735646670669736635409822889504860698433637077401724241228449511505756271879114555629603332892632843895405618898680274439698279297174817124287208097631562795586974209992920521263739754236590866522062663386298370949665116278523210878801678638868959859329581125519275622027193184404466512186602065493134384934692597686564259806491320473453161873670214710720144922101754522187859149981531844621838181178835989200368610846228158393474718630356583198412983981844384793511181914059490960420604765881778447323389216510865970301414541027607533500003300692106498891318119153820219568688805304352517492583058989941375054778418241569102127725517809829334771193298324044432049098716310162586374585419131534335138324966085339121996719847148280422532130462295321136892181487672309183806980524832986968027603312296692453822102766520997259203311957260171287836292095434680479122856027171599141348123519698829805323612763248153997956346964656912418929939820628151485819142776771192772046846483823393456558986620716745315935983406847768149279048206667045267226197776129858137748818665957267533906489020394648824190360605726834964293632370421951614724743301028698368091188083557151923297624055350544498464810077277485713900540568198627209841761977866748692634830966816654631364614584682286269116318924332784845420947073291080506196139975223755367610725084707871036424170471520278273308513851490826072430305642782642496235204296099308259565080061756146025145281431423883595579781939472149071120847593740732107387177813333506540605983348953287983420245913068855866510570840835686482890232317825935479631917348555566681126327175295235453115477962948458617995632585230416650876831355431688555622960145676333049886233117149891951837334708601344135696201737871328251009365509971299873556590024835760481233502755644528098241257977185856887553277180972546429546435276250702009261415088500605889369009081759256644028835614320035825482323363467813976004776476683587506725390143822395290895129902500997256250603947111762341346907838600272338489557223183302710814834421472160461936027887829907878311189453731122428623249202776961718729381781754483727722132576258001207452780273303181886410718119993768973139897252277534836612183710834419785438693159510831037561094502585783054669773300619516402715206452567241422197686912068225634898421200853810363992173877900918181414029250112299323909349056311523054290179881691815117724104831649910140636686446538947084638109130372897981921810452231652949704727131432422070344405843700075800641284999391011606988251407012447462038178655800036889516931994475484390451685168459209167587346148122390454936098457740027097512067048596755272796984200287389053581206764874231781883435044819354984616645697539078488523187520427000699431301971991066094187616088070861274768752924031491567569560610404797993343587707279905216241563765538973367979079311710487121912728644777902694828599349802521015431390781108596561252744321088513824254849088398252827165713132018006579768744344356499572922577362885853633737007969945850295904196345512986928378873693599618521097617652615055619598802483536918517303925696454245965689436782086052591092080753006614381980192446954075635857893312815083857180565616222618345688331731291952811376605286965107053586590290303020357803290883292179983540395411808345718622268268762598618847237323278538537037963467030382292049732105125553702361859079686852049509944422448592612159129068529422553986519135261253410788587684889225757882770979308634102064872335480658210926058907752642024217401288108873184337958608082054501639482150065345997658166006452835661587374264820835318686972067168515641636238585872736631232926523318845704444942769059480498611668413574493286802760785422850018300549514556553179150995649239417172825664012912412234654905935988217434749930602061646069312408510448322140160811332598267212688067394760918461747956727846777557566455158527479362622238781315804864194068663189761679214256760958042277866024073322187274508046708620031919958188522323621646965817957721585785312815367240708011869775914092700092580774786828626801280382634210607120240171218220265722222056546741158513651776699988428390300882563242785272042213477601769454123149613164087479392364487294758001332162445390939411970282252904256579103615707297646073989650178809546638466275980846559920102925091898504728160426184897250604908600334541097289046520278986324055176571174372172664260511307758474367671720774946615640048263164223569920485306476783287500620268909382777944357595103215309764971411635758276577429649613787260763883390637396447809268868104658624549520685593032260814766202986940359533196686775876954600393975922284760258213898138447453436182592075500149944351254868370832236459235199197664365761905169993405500375959763790964428878692920956400828659312384263413015431161933404115306336076491908034878291686688953978227545530390537434960323648151396799691197782988939127049206011025027742437562588983138271363764427981209072081313730467884239683561147069581845269711273786539263993601198852549224133261901770763945928666285813409411153334900231890237920446366857940418720329286162541207943326522926133244228588373136557474284745786463399080577826357442540624735194837465392954147287033132996742357836689217276092791759669204695389197928340479422423467029468282775901376831000694675630145313291712918180156880476122330509863448739454762270983189131373598713756566863721395466384389180771713895368706994714560565945722735107682374761086078304622908173982081114747271653281758986366693316342687836369045014319177217585418435351900323343483750304180318689031370163029440445612680855290824066652102470054245461900003963345240515733560580983955860333153652837171587769747040716758465346537712674210694566944537050666882727731165802546271893750610906821137112544590787040460902652421635279853276068986632420690993707956469802662617935448059155375880730510584747248306913721703584509022735129160966454802115697300400861946477315846806745126910141058566213598631474731819859588065407996275836923237204251692657249300166037656491193189248397474941843745662790839668582015422548111542360503724907230074994823325545854180520812766240986516005985165345917476705606379943150714171602174772425862344074424204400475156150759018426908159548245497846474955753769565828515868389770781674807285449024936389751252520002614654982120121702037106250699515557574907956242665372368636985558529326335508891289717957808504657404815200810482262290919457034448637268201594718801494488259825527701582757586832064805011724457014775018304376210922987788709874799852984185551278176728549867695814836242491825131393870923779354779378986970165526574158172583319123987656965631451558647512986285263920090474352278340028824653815810847255259924649906462942535742282383293589556609733033971530764720132598075235583623446251146198763938071234472150792549151592830961601184821171841329631848416041648786856833968122505287335799091082780454262433864258027651780114713897629233283452600248514622945954595237746101371460697696953088328242211996042701218414184996045079556157657742665484957198458877820768644684105091598211490232841673698400558299570288347153123100074647590867614498867588980752943160015783824386976474400281742258068015312655639556291310875226377164093733938220775410487930078743163953399301609310182189768625800751330527406935698222790540125931418785373381509146354184812365742259325530772041080018239239870809492042221375661224962910143947593831600822920656975779089803868866880977859010504672112090324439262351289808560955681079225588474813256051457420956678350359284485052842608409397160451279647474150423710773793984363452897872394869867149890665077711543126793125234452592056122778964825832113789438096014446687515334319483537858194692291856636462219508186117258414267314577706849187003809139141508444329241764626168095893872621127044506965731650487838525199215042552533317458965260577671918078467961896953248012883567972315201547110008153203701714203288656457691006019243646253850210301990871588276557579578965728306686857847431600575764140614261243663893818365998304390235012659966690769319157446055989851509506700419198301379026564276888292344089219816121504950897302505160683667995695315955721337956880125494201737914179667385909911909132491343558858576703143210326127915224927013193851510397270201758379710542086106019199192776638752797038805879536994730849590430357193335207691321230537211718746266207941100125121445736289138024455730915598661439079265251825375786390850374841198137039347580070718901371765579221536316276855590404804633122042991599254159699002094197892394360359769619103383776333244944461261445121584908489790433398425388619542056706900340553725296143038198200316163651325485068015671092914547365600703164389117022116084130778733672266765369919136328699317646594908284839641010794223394385790348661629446620313032418347523736975626498233851409399364116957587888951043867526294191546732626227688757005307227719826054775014605323515611949188802580072570934939090231260141586638985434432301219618945581670239488390952133694889316001561214112621287856656052077102876764704730073572070423876757435502606334317705863086477126814485600333257082576055699593419910825960300563987167404861478190012161531051357909969070729495665873016770528538765436723777898635548023359214625372927442385662236474431363253444635253264823060769184266157173364639317242981634838068067075161089783425256066234179527180195615061371124342953059676363665486315694381458173714929548072712758684191548480756456878042129649615811352910726603128461746198911638271772824367645618098306549509339918643112946322723269245415505612147282205127808172906427621226950376932350082951055702012492900140936735645702761955211974847429962014444731509085681165067912818308161354140979028911410740719426784205302281274942562167930376616546299906906725746432440950187346719722483837586602564660733210078292481302274179927974293021351332559210954714884126709238392742667719964539508036783035186031436461303617841232322123059590167381583648044158566084166875680075699183752394049444778762007013045655264002279525876380600389408183770440224183018876424680297900892756236482725584280194735640443975614318113624060830377540304627809240907109057773086433909450004679504440167942118747601917693257549905550482883941604036058670466612872113839139443067496542677767557802218744359570061369694860108512324470889675517728457176901724537193120326229832963298134390206583545679878372916207340745422372717862362966584805382777612192028933595544885459140441376012821525081318309429802128467515717915056443198415027621930548781890442103318493011170303012383856430956395665260104777062096077060293539340064297918875365880390706641421744304380824160597170492003567705543064713934989856834021850274459012645738131036059229114201087686468045475261426337974637843993028177892490760784948921520993409475138007982741562668476135617983715430656679019860381139663804901225766106767432687672798656493765789132340743762119267539478778745987841277141253845612338016345746540459435916448548834942421578804436722074979334261415601198542176400219223824552345622454978613590409217494580898103370027647799372937683826216432939836779992895307312427138578435161348152395544634853555933172101060396244145463372395773740188830228044447945230083982115866318707546637465559309452680534921973832839684168137811794178336294067761063071752502055719542181486956987611241752627493442481064359076606286280324130920893668601085801866728155997026239433139574845056553018182459695341695668945261852158651563558281235272819974104920519359709973732252604026049948320561822740619236404136494924810360036817456464397198341487366679612217589662673266741234616625929311874160321573463661343848473401408497295457830107354084527803933074843564474989868426532968931117474423821788561180427123402785194849999999498807717836287283466168981923783445953288323722131607278173099571207249223532500671105159371929500843088933210945674788967175569696616748121837679681743012205527761973678061085264373397709046073326640945329255483866259772210342118924260323774348272813164214779458162596039114620124665335687571048189518662076929513315893292886566887749803625753462868981302597495021325150153613008526013633466778662500057453075659599310667205758877595181049618480485927312238719211033068592389774032285818831227744240077120010313907663300630156072793338751584662076210450805756689725805482289448519761383161397683392317814116820067374294823873007447606219370324497396317313309123070055875527407935478448982171339599073608272684637210006581989156097018208017860991593159398431113364900354009925851388911349039465076994739612258412816240367110473246162881470429197626994665122044028828700860222565702614562599272732831252393034669291826901890296343183596574181540792201857049058277193167853654591044470366692659868288581518473840038016066140477887718134872098290231824132379631286250092827539128585187950003479495228501944698625203086351011664221375905219463764034697424314745933539555376276188681683687109062975251472308761307731955360395931250617567394882743516793707466593148916325704749921318860512611389712664928770327384217401964862110600360107663937295223002206678177238422596335896294250882412657973702928471534817294299617547761847287580315212190735640023784111337755068385737051219230473773802185983672262441665940803783395677025781377617574371154825264485055476498939441945159852081244912751210510654105743270034793963211647249088600548416447255818503869442895660039183464826024356304612647666068065959591893220045676098443328421433772762677734400917460518016452549296700950754615434987417572854698472851715049548557632418209711237330807143123598551699269239109962120487960277377523167837516406519795022763198318416479738278484599537477549831377848410178271610837762711005335642820699155095807977410840797098723407503037543353067408834005120498056623917318818021655776509535609873739096009509749254177206792840317176222957443002404787119520530401534029544411564863301723544058938625116817771598871654964791086995741894886609416446609072277873579397412436990631783288982325129027788948471712244460215033812393027550096842780985166123116097487698013514115605702896258155003196384296107011593012971723306321715949619943224938429695707571826755888590151946271708182018571880846977556054880479384850508693390947837937570945117441317917424226239033838458854491411374796205990267183733914468950155277853775952667795284507921444742716600537928001800371291712801367291734606092729112840470677389461127990839918132642851362402036848848001875579011988904227180041833414754065606987080389049873368907900927245865095773480234102951778249170754230624869200187650031712850696285804717213122972746900180339450667739199624714393263568274746718230586328508541890589139218199239544977974323455360315542140258157392598134898391243407000312581470936862030080545260712994212164897211970141027671967537333838212831188737929918943111950463363433310172895723357470738450640828529384245358143762668132244086372481730598937701147662301797356757621824421483886865729767761131423101260585947136277791714594851023112483223587833568050854459056425950266323978321089214926631789728935568788585028594886333741427154130319982036772576775020790025756310046388477219663399699517924604235604472364641807879687166661055547155192252485719542303607127935488964805537588935892812451497404936756946751891128526659861053383110105662336723311146437976281341503775039884038079901352925077118956908889419763654917360635487647965756915998882878908511790758637474507148724454731297262110301982055387079786571048158904254013780630033288027058786950711486939091750453731624971634288385449026785129981595202378366496215318650347407456114694545712347714264501881922955844561719865636765569852379600732253698084434779092303778569951332155428964722725971139853419588175100342127663154548688606153844715411483091451126391955096741945167870037054074525050337218442179247487548254002459034995519015514273329851985042187565822014127573834020806426476004324144162718017916197324249197254003448290721804606441172005694383682616983019282264292786376610082420336901318787386091032428956752957247207846967176307008108366234125387579127793418351034465930782194147701058923496675005395127274305239065298019718155173738728026252737563243821734641962754919161409570839148520633737149537376097225162507520078576268619523676526494761948569963445451989402978186222765468803020602223366156358930085801108144228449485049831402124915069490095977298220676603396306524278826624716252191225737507980351500376423780745856589025816767461965355929987033415406828238242916646134478188191157076292061817496731940429759244606012999300896188659417626036856290018671124746229387536057095525312507995731933177065801887180941851287058715718355461921597092149167384690982088819240357628236271105899351051863400047436319379569728410844386345634875024710769408546482039826685580355441025705034397522986933171799609879961146652175688166421434427651165931034805098446244791923927965962610416576660188016174143071967180667881376876330108017695884551778598327705074963239448907099362311652773003649123687855711920812911836475698944142885846725951676422283784445520993809453825448333335902488410501091236866321087518927930005658976927248252472413712311665571620122781948184701654643635246091308342667090804649665259119816373248088652421956240009932969240766442592352007303550069776398443279377932227721836163786971597601684582549389679726482119838556303517760120141714255913378693814005292300334050458780340615994460368125144316252128170086334540766655186711253392150363763721151424960310352625529511940550701761100988991412395292663201096501469621799873664274342706501053518913718640397830759883592856260192834408628839567774470518259805520985022062017413788198039392771366174539161273049374909042274182108882708777639112420257816204682154551336230867521443818778656411965763052151236644336359657559977763915135285637114782593148828864191236400187281711166984957054386178618129959016052287517771890336621691792937708312033175868918264153758611755050220899594105159938237399369938163588089263852193128389665608184616372561020309759019805335378110407990474397889720481912522368288034292839119045099962005262433399560854948842836844231459091365762894026690665240679078062042785926174072621321846094011970221130828940718509625373690203870585960398525704804841182535029300833087265606654860988934642120570421626539167580525238372969695670447387468597822699712138924963609812608670524283255145007502250532913318084003246096011136016598001630946389261579813024041995011338529023320035916417760490271244612815271977637523553690130257410684024057249979746387615602738083184366788616955350381711750121950066954843963676896885134550547752995782354405587038806649937634616839678304654794373543393000457524668995274024816006144179255643975635573498565616773857342244743754248325640958452379564765345664961799939196632623877338561662893714357063482021962936088126633884453591911271652447973055902062096546247291260779553857901301751623522008472161179884731026315756872375065945857245000512960523258354297108249352443288095344251265793652180084775821271519232002020995294241961692713211583954239783051664850263127980256875577299093610880768578349075686780019653600832718339750774998159652518259212894753443105220811645445491338369072556540730408855281681210860390087120797859926476312944252971888219403865473352003253915765852361605029482863031172469643401534817098216049543599207390270506755840786514930786880468426017647718373244355344832922836072085273657396131672070732438545397300581133236307049146535911552747614622568537914729863370790846732304991590208187651484278321671144525147928010699292428666206716070512234830982827800486782988850525726258585705481643003918513075906655509745135387066026450707895098431989238832465404809629568581723627812909325432485261938515147433973365214382752902159515268660178406025046376270945193793043684718347570388283553892123130424701760049593235574081678738744598116392245428139237022488140165161379377690565590258183563930928104279450512463973483394604327650403878010654141276595972730030532473657999174246775592226928562579563013619836330398024276353422071392834496133601100086032258214488927312170291107075295116065925837351056636409043438842375235433605527282301316549324709940048296558134547563118438665999970728379396436739676465202045664205051345332058304505317849265359984133591922412886498003591627412120746839779747545230438989463911904547996201582748736858530343581209500625491268453436583107140057234458277257975117041364543990735146769638381374697647051006638441497488462474606862890854349037643501233278504727243495565257737429599958553401413262293623429278515670546668928858031449794068697475528235120660425692172638578651086521059860478537165528882614281627852317144800095395543219824529431876393407120321850272178298149047500316551725446463101580268415103112884083022838724694010044811317671900123039688216259424042163954917492980001490611544028896451146527930172233621440636600143429471075170965257951624737382513457514620671509966409720356181819896981113824872712016024819754486568369015444205804076600435831802640542492417211825762275319041497282663556373871085577058408356652475832891768474914958067357088962291448565018894213523649959590617137597481989330864513534962098024203609320670474460955941497814472897880085440253789946930054608067716221122282795079087768610466546940084585497111877963195785855502662248651232811920645954232815438026035858380905810112654798061027827164979537809284941728393917611036621412244679972284163834305029129558689546911766886144372372388213881098117667747325078213340235651862534964928033503420584383464849783065456520683549710253448401904595843260688911241781725347065954836601442949798209767819104536715366930546709195693083813037903352972917984981421772303080688297128705642078765835139863399277782399798626969965747689810426715498883887508478057894069955490586905651958035223950422665238616729460635829790944302228770703281726302171651654057026518728630577486212657364722069877220802549855690430798238793167996252943533887138204925986494570450166490074242611427989215904740692329790636584115272103300409419748193547558605802506186089453356293246840352495177763169943260004311900317122306066827355297555670002165487815695387979859753081827057968039064965738034355995404851207804021772341898312925811142900127649566903669789639354917945322634104092873452913084696543686209546866165922648382904955992318284728359200683603869264671332889862356550303627954700878428633340511959589045702616511407590341783357622884090153011469633798309296022796030439021291302317559321466025550428714464031327000288891301566397013211112892409680327522453212851210377612137547070689912939838535692612882043330257542913140279053753545522667620213370305427100090667947736228277643915207262611971411580032301467513548567941619483189405204101841863747845833258994280835410323931804096654098938794088830180238210775727651239005791872433855479090515752605920625646765479161620614163359078735729729329141472942424257901685412829726060333016453117116071061405754716227804918340208599955168843649843672299741418087224633431361230476820226620150864651549614944487963874420840938687699082397218426775922508075634079561331025774439013915674288769035496159164796035898609023173790816186862789529848228439120740388939651289999549349084305457783963709588772026434889901712105478035446932429532428272498403346245553402435895633182479466787904988421355503289025135017632965101282784791045736864816381231213422792994885589263200465467979252903205690552054750058084179252923141969856100978196960487493162372256288933140154393120882839147996456053722897622848448161421550642422792821058284266754372037446971880426018174868594809748696423298431572812389122847014667019314416899651243599039440235841626446214206420347246603088931952099327747376399772660555170618215778849792930624110320605752443440253480582253561607078666928570156978902708339768737187018654789469848571966814567428120048644478125736377747479245169996620827380641240818140579544958179873599940495259658947840267747131136603511700855264723394237366098290062729233868559380578292317737846085626017290439835488366126790342148032555079538227822160042275251640510004284456086064675379508055579652103153524937398149989295048517016727752406597076202259340707615510330909122851850253690126977866992743307792023032864969607507305870748431581520859991133609734741283693632431439787073212706492382602836422972283950998787246598517330337607723882340964730203303242802381047543338331871291095166687375509928620496903842738202687566602554087618356922950707246723902203223328542528736636209173099071786481352562765634340615071069953840409819308059347141391978908850217509813577663797081454516766444307225544798470554875021086550419402241639001928113168127628630798189522543034189067015548098538050113429646998298727713893345738477332841443765572126915950809837735592572021291701537008094659493708115796498767649277409666706737746841345534567545087200285252612563406688562269513828883192243382778301494633344093764080836270689741497072494862355740522904385319756538436524222856779820198221316431111158849275668116546980421831792713429117646963413050320727561735791064925919676190004443777997476716110468167480644853746114778547100299483982202783818468390367848947430715709427857747415139184517354658265463506883829177522431432162432194363835687719036362333731640568107026267666027246187369016022590670606404775757461816763067547633169950304102032203806374425658091450069885971822266470980658383876409084048818135911846658574965684025311507465618940823641766303072884524641359112706706220871086539220363056000317612378293491830677356897149376868470807116750892765261278154827454705717892809019804630249360088118402961792591433125021878514746497168239483887481073078464981148835498595840768395117862338058893840729578887817590370009399258719574815221907506446787769510280225639648911258622419823208443365585361891926263942919217163645867508478140947398125665991259315275354193589901937640342162659911517452514591027396985287854605936451403450876569067586202199257091093811229042151191946011473168785495837308590462872212573847014081400541238139915818240727154213694422185700435257994073202072777469139918084823619910719469478040235140711096855010320735647147535669763964069525149824734283141556613784322435420396472606086336937552758197450499930447864398426900175755453735620135248314244788586713637904236135317031807095133830726114186882077001016556062891971570359492599964109784432416567098560337169308837356309024236357879871810277154821009616070433552076472666999369746505703368382173772480901101711759961844069660750871999404366848895357385941543155130901885592436103964442887631076815036023231201893546948641715816757277037804715700040612185821299056347661071013240597018564261218107550945549781679129624073863968356169618278961669785827176223413032387760916844022167564900641590339949815156985543031931355623418582793996319773225596665254348292601734040856736495551497661732838249193857086188726548086637986828107803889845220850051942347648376211554326097294798768182324279817445536099362097861799501555943140984482257912342142626469548371469058723341021662962038039041050402250682089640865644602353876208758956513978158945763141529135800271904116562339625556757741831513440766123335769965795349436364091481653251876063622829152099036146016497905048203775280061732898317780287402452965245598528851860606183715438394283826049995156427036934577898186864628079861943561929775446225216834678589640238340673845597041376887221596216488864099400695246654980252887980976251275003422790519112564754979743633656866562359279424486573131269794377521578008727505912919599334593097008296871736140233128170756220745876516634322974610525640796042773588300174925211290650363807338195932602356784561153747902099957532623002491551475588106905688998201312184121996714078056068467829272126507264942965700881359811538566907688201973359205195718083904285566634224070095769310144976892690545194823845534241620575632724477287530575792101748964477574101215030338705058084562492616311102291420053558875315706757932752066644906845063845761075410379037998729253301087101722033776440844404536881509819965716812735931012947471527771019050406378695346785908298655881016099703163155837374762865648973009532422809697306103009700326167447405103928194959114968871649162469775709863339122645426058854037114293534784279250943175366678271571827950216557736792445704456670565771873100646577265567085908599491280691829977261138351919120420341195262394850856934632951153098906064350083772865583934592213334822809248135275718931556583046451061957708067335080778414604704883397036304489266842922788619048408939521341142075217131239145122117624314981578040760682095056031738081865647543639134768391333193036133257536915317845451883258037110589254593744426354819507992854072154552085081699424979289457274372801609593867742838706880719534065501413707316981446270691743270747494619406704020887034294008403660009586720157001316775893156341379591520508649890327706009812134882338118784972076116035028804885947045105548465726106514317218608548114192877725086331084807513543790755851978472208043059016900547239350762267339758195763276619069805367312167967039199025478692936017247912912886733130033053788628090520020752940251844997375353978703658681025296812220051871105513386973699753912904205311684498055302111487746169318094644592685342612174035846864035463323339524963718320102630825019433693167242854036388949743892982929355405229365458902015369671012345650707319532664489791723983590784796607657677518277660848606155577205775230835476077673315558591193905996661674357123679442528583432862260644999079960848424051704003275240580471569085509098875008978157256286390865843713094727914919864323789944036110795497080880552418112268448504413615275229018613452914061993274589761878700020864682971868278076064756645426853007077621798569227641450694156691871874521546386777389997762881962787279912095755869626474516406635568688664069341060340179581544378807606991767376323203443054321496232782966577041713523962157414690740267619971530517688517690653731152408783860982327296948456111782142408563556840448048823655076631730783140867162122823714018070712305620778301110662079387182850176712523856594965667367194763400225949380273741154022040362744827553133315167068723881121223658621970676056462436085145394810833194970973780006563010182972977992806137059672013591963837682719187372273568212410178723760002230253862489719762867527637811343076998271779761140494726017074381017524665404677316317941959555748307993744157038707752396922329442211613736441707265420889053285972784268240157658561067341444576910857205888042445346796107546389639401568417419751009493164733813852544847395436239564026800448054554834173366189719884473352219785007900981797665969763362353992878483469514990487231245827340165412043741900296678506244578924712124179887526878386490593867620189686965554354703801820628953837244983015383392652198838600953250367776569958566148958443216838093934197792243391095143296864595466887608748751945278776012454298429674319102243926001465784961664645135675951286456267343024740759668298664601361793808322366387814019212526305076097439514400056007565606730025161374810531075142096007811409245267084199846863949520284675359854219363847339134134431272923560633557863289710679023429927026250570611134456261047920519994930224694593579552144438073821258228298973140199517685805634936123065016430112858745726560180729535084186122238278251412524742584300957206251030856689015823269146024388108420465147346839099306635911985818018456724096975664620815690202869301949502581241525107842605584895492542696265896938534447465607182821093879342233234804963795447217058223387787734105208650998363828607735573615063686400315663638887884541909913576298240585587030477479398679685841020181571129467960144232859563765944389380791366903998609220718611529989509811158046986138934225343253622535481957968711216223770723993141456337133827753349663914857200231664651099809065883496390578356152673161414203404204161338083425889413813894740242418217462049883156452801330800808429900569748949167607388899054187951842857307950859522912154400048805398968710979242869293054323869530124192910367528016076434521561607452540948652001095250010956653168909416465439673909619672181584303337071683855990631362357627766563688693661433238612002384091042912805358925286613518723081561444416736916982253521781875474556171377036552971195559052911056308938676330151602388226411597048392949105360344586169867045876502981788709634080967995163493892838559084894016905659290298218405479455930954429260432685853824084992877532755698830842346948451447749973489940313884846389616079135519618511820016987884356554479356232167819608274244097726952064091947116135626904931606349239795676752374097788911354657309375897775472250731805766372714105507202019650530111627622071806936318294099230313089505032976954121360644134547273966193768084622995173609715213339081764054449581382787352913293566835678648669766468673658703009736578445758215431824573507775991714849302956511122860277904105149146940835121448565035104949401074031721472227766570227951118097901809053854888199135939559915446470743574887416049277175858684728400573549157599313155276767615311634461937831716846399057699794621368697876184631536026504137821451382531362875342362833829777787368696748597544260421632105719148668754015746593244551475959457238971833291813983352659578275415098440934839043453522353174032839428115964771511762966284361059162291565662878035501494708352935737731552686220971452070994839518188258905694465281324581549045364584369735045306270787457168508841142936393211005255041000907568828916150686837757856530673966837793158370124795296178871284844881436752441675362640852736286906320249265639691370142236779571781501801030929227392949253296964596980989320383585685624117511488068842684832448675400961961321078371665583668175753592583239945101622139328036043948089835735537430901389109076885431567861449472664666008344153486949764141092623019129339157187786799874041549573248130219563496980158201392203912635573239201012611012013405689774178780942319038644992264003245533262023843937931199117327386227551438839307518505588214251460816820457223591018515732680142462661309476436767846498091036774052738043463806459974863107370534022599063986940367083577966238027666785044666413990030665288572723773815339722399020974740071816201653867701235467970413992832976496148640630291007392508514271587453251320189111799100037710324521798207248421484631276474225495944105841338115499975176910819642970955192805501718249191693088762642207651671095520843286044458385313760207207097729527618807818635074923515321074614504083771070280963586343162927147605903507155778480355655055717807091655586917569578854474638492845018096923196217900600287131971405392686305046365155647182447870440316689742389816142497666905588931601365618342109497958066560902912992407306514603286358923783131899953360207725945625983827720864667249459718042749987016500651677686936785780423377734458766218606110095902391759991546362500447562194950941046522306582194054277734825051697645428803838691221614967397865498209421161468407307561087141728499956318540671241946442136816991495696106223621847784860689814486748574191499266885368045564568267757116818440784327719993618116926983247641224040307796823030266334743481467408460019457605614589308278462648968304417386606853235164983504963338648792310546079043692149119208974652076782535377376155946880740663029546708851458828727789941041075004449321146100594855635321819409060284543865350487900306582651043154458813626493637025831354344895364211044133692435751791058481678033363939867906193925484939751014237448089689285162454846053172320001182506722533257500445573767032768119476770157265966181828609438498359056207397459346821019073803513594982810763877846649619037532305378347266567102307393078068176934913446833998801435877237081109508889658866977562568653582882517373401456653701452085780916104269446943371885124151337279002267889940220364259108999693916620103910767336942555025620944500165326881616518284832245566719246192620249055189014824036662306671576194619390200705229874383734137730775712653132303884992375863576012104173419014561265691196365053293528203785671767475536304857825541251165129146837526035653705764762938521575408497954190310466432400240172465629714884631102081270057206864018212634415288879146535854685052416758608547808738736446006931212216904213391244414390985032635248853202825047853051630867999211505307952206174006581275598518266521498277542131038518876536940866527634920956377529330666942650020596652805868583999886087054152948694859823220038169068027113805918953027314088752492741866226418815954749264532683814011935512903874808022278606347945074750197573280756736420656646530411054367372994823652307163498758628537261758137546186633504383429696107039682803813967133904192319917175975198373803071031894181757750119478767702527296306703490283832509481284300808426141041893361432066431804561911290344104465530442130905751962124860388575009710001877020677065741026323996375321933400564888916895518715485298291612575775256154008672752316254960848373466057432830469712944534883535126433228531715387847531150528530556635640615456282862342168399854297967673141572594778720787544888586302503985964547269482378345353623461134987478875269862877827215630166757378341790510837709219333855653049231664152172549271566352273492881212720004342842443482033534802795787056210451298830541915339965028852697223890481268828677785072704576701540155911848606734815468938879810191315793368326825125060074089281966288613470391023858009160249897192408148064617095963541632920462588531764009266542114014875248571162568061456511078574592324200880373990363609789912958379187751126827821161830171034717380111770417195516793631764222836891724618234281524878331624625765291230756243191483090921987113378055531813072587772745788006620884603641886006749440782495644304603765072117335275266457243098421274001791607826738311342195293029446069522741693154269682395287052502367773440170832307937683782875577098769918232806704304770496875167620919519103330653331940044206394975385084748912485368624679040313092416664241457887189575064110457049294538246236183472235911884518650685293319436247543210633591170296968972208701418675339123266041923590080844584950548556291527337098470227306260932494081891914810148004506124511357928164690011837231467962846432460295673212680840998562195003746076723572516563013094246916253251489614074643128147478480991642162384471300786099585316402758573767363881560701244220155228721552543996235138447538863934470842452962970170372191884069088364653121734837343402074730786239048177368135918559717833227280220188480788213102262550207530026713402779819360990314263146354851214757457173760937243030466653638141083545963127938975072961922976363473279331632042817045014517468208296581137906729074108840435786076265746611603498036968713977973975119606425951700375689304938299983357580317506699710216209162975229621965149218790975524890473849666652428063935333288368121670154667158036915606516485357659296071478516592461880892639463238783718350940973036329374531815493535710701884947458657100048301178909989524033477991399350108703999403924865228765105197558316870612026113153569993029069796044682457292279698061424084498395790990801978440404467548442896892352720062055789985844758361301000585436358209776684799841568824094311424489935886371755108122550816088091076952715534020349432346464077304361962398302528782207075290410447459137873888882837285710684780563280560065101871633805015991228792060483812158252620195904396488946603553075597532237302640817586708646132242244785667219266155107380666448398719546584142898853929042115331768668149240564025241699706185529752169496597838663893892783909443812340373684413737351354475067286532792019416587803086084439345124825804549205606040904121683134477937375407121085153765908490607399920154422536347435612583641928098372593903263639827879945288292334294526443216037636567815407472616364332596269349184046755644104652987264976879456509686695501346753985001669235404070246797845083631788491499548202629959530721765791125097807843573381487704354256242195869130920047447856834432167843046451575640504909155054862422138368146302973004418268171791215464197798715829776075136723428257416969947641977372527267935578286517164738763980613690849222424080010800608639413930785489222067075717641257684339724853522954093273694089242755479467974130777717379626342483145622809241741808540940989114937941176558964550088841274670638391169056552022829600693240764043127692117136836019499357134153946497373306259353639723239962315924646615432523171328242311895336525219648952640975566083854463567998671990331726995273401312641512998808743748243255440955987126376723853621284348593928234961681817726897861419437620430792384315117900268189434095336694242790901126346058834672284941388576720771894730387333950454120126584584329521038224913694450519257672932492624682236501667149254987331630602986940754168667355845079826600896428594943251944690226199939563112481318692652030873610126055324487191831562331743104924880475434948016389646909341206672410211047592187523522701496549217743168166819284584399738201781201053012785003827651180581805965590945744932389535222959357410629410990744581114299343800032714386088012398309484071369307726484819761114175972446662188636443095117320933835515738408421706408216149927995422271602195082689550623784959734859938049948058311532316541538985393845285666901817831102085239072029481404781023249679333141494158399921799906178467321412835595556397709243846176993221684589373841174051535045108103110597560477448527435196483755626358524581916770505102583320189597346638765834700763437781711566034833619274034291072952646011710918537272690546126569852678728211908045293900788310322967766926310976362213797096435357043422269197991997603979244067693883161640547114469966041998738222330343292085794668180211160651508431867468986912349286216152595637415775367279424224978070431906376107351334630624020163002088174162723392914888184067284573262568319406455602240139670902335232829072663592435358301709716388566004479066847189234016520998588402005345606904965587807857441638496144115016988483494817145175563989054184882752789225465293352913569532339352400122508632229256558577721122220422558656740098320495245996606466352540856511373670061487167006172231805745426652339332881348103099426350772298472036900689276418668230783577652316602843716224439897221035565702225768807175762444252066723115230303337752707999801756004173155883083776941898504857654978958938474264478874082766541054339089191499721474798907395379776478031489259089940459284930463615534605520377639074259637942627686709424606268651303551547184265196159488772059882638386191554790673780080832485898715897361187826374258768508632697873655308479241261488374122542081449074438373969026938409529741338158734455840376565115431579299187228385948087442266478711624283861381836794557170483074466573697465182879340890266976543672400783870499875009420388449328558725648936512001544598638617973004533648229013831863167966991676189501088390761566589495615942940182870283923203132889024524390991998262930568445519847640766314582996593793146674596494691716661881102099602218359257015060623681557070213979704062531106499675416342101149869722954194117929604063017509800038067033053948475830518206432991001897495280745706044807943391457865864153987317301907287559389871775392356805371076275047282003840407277646629547502115225779452557216502441983467553608233480164203632595196194971787382011842566387589952596810226755368221070116777299568648932088267491948194180579105490068929548132348530993592788246910076051020774403701232592330059562140413823726583791017711700323031716451714749278545644332988460555501097189036782996777219159698232855152134579915724156173559033220627762994106433672193239125771934277122916794408674643729701462872955911969050209140254013651535331940258352846347878747265249419518509151770185431464829357565865666985452545188399541750710535622247195858649570746965305489168112845827077210733946676990911640957988461410306233851077157211894533860056256623845808730078533706880933268879176266098979458442768997238195657388821051586301112326129216886360570165497796908338279565675016529646076548787874168199013786931138988720115792473181573235000757543663969659873843422381889640921439198242584093236825141578552052057360072420293587779134989389685408860445784441807801979806882049703629459815182303173468823501681436142153569948069178133784518564818246643784061966319696540512417623544881350913744619429181457425571545313577595733503084838142065954376053184338259953286184642440824790231312469284013100116751067447993722395699184245196881390931215679770887932825084596105119252083734831878006306824450457598289858157814091687887066606530819660989338788418193686493763437673049873133402510522610310096954701733290708999525819663719138568349035524549689118098976270624475924838016742646402130588480963112980151033424695674221749899748641258308082523310258418803721548887713271134267965228296253000306861598143697296217189949482983553906397641543122948478875654141134312225967642973622286873177552637466748306841206901423270781047212814957406071180306401144236338144062341109265948736692319243748861175204434908479119015540702561878701104912168223043263636840620585894199349515786794670348738744236657268723967026003557540163772957565874350653177368231957882081393032370546716746938073291883130962844970457380056206204502199638436143367156536730803932153751183716982174246704754811590476652465440426048215866158557938137155199352866373001299217688601229139200460906666948987231211294446996974776538140280361129317049749505714227282043247942689970568609329682159668134684315317615311274133219090534993739562665243797781460043470971074986013480379680556153682086434033138989940795578022089726420545070672015118733015042178419364454085596406382178934711575040867336254761362226303280281166266108237061830891679432104897751000950042231864667408747090664776684078802485654181910335748090941996904773792781029388601698601043032236586809887537823540880382392601341207523875372761238614680189398642192608489343871878955911204080194514207783091494076168561259527349277324973692256944750773181530115420215454910304385894924252142858235861281780992441756058543475494373517388984193043693286943679430896714528014394392140239582650031109104037655984767209343545192448988817997650492311212526540086957690567690711151411022045942658214076117646265876787359125259678022506390761619190872377618432454131494520068849284374988902137497829487344841138321787763900569442087767260574912551030589850529548895533815305840601475516621767625071852449163347501936940611909876286868865792498820012516579987609497955042323972680769581993754163729902542248710527331313794072795613541672941118716623465400582883961597439396210371966524466067219061380959921579581215254960546024108620075534984755819467110151726810754257820534642578645794503155134069683909042681988907634331350967118361535369929479882897358749814028265307733528998378943068943152004675520169357056333433495155337462948525775979153315676457412265651302587146950913728771065702915529341314024874490614530470876649274145614344351127049078021958445741703609318011444343714598125736528737614112565873727083680481205644668611108390440187457587437374352486773846174553329101825831300832162115587759437061298401550097910662799074112230922999329383728999730771793799108337214523670792911826508373616445279258730174178100810398907557074010590465363034463372925611343470553162267749049531103694414743344748558488329969784663521966810938210821801452702846298761868929837283484044601814593788533977764137513258445911585054437272817806384704613271590116187107879816723280402624575322520486865856258571051055468220787290026404172191662227801255113122171298668428339451951052141372468875293095426341100636943772422720260023324791778548305301109818263901905612959723074050456420055034861961003862238203778888103318528519804372122029010033599963350899357400027539373093049754100189587041613555398226276955502047917133726425765990353303861812274150781702749471324855861511440428951455824557889663559081937667426651521890869504698976074665653548443029477616461289651416196089639020163381928189586433678378284154223111098469773851507764786744385899690873003696042709598126468430213926793288047025487938266964044144353926189808296763058614561768274067737254455259543789765290393074110092273093539747301032954540100755252930721854787625657892174299364762187717473543023919101732289479617821129139723472401130389444400199688023256342795499487840801796514470534700147764566015982834218441293397210730866060413658298554071061275251935669023244754755137555637370161230601815527780934189469858203965527229284954682448348101528071348560218923525835072807526763918483871887926453656552301866226490007419624994517112419798843690891667232059470927704134153246024791851685484213369753829201582196286568419041979717922348839612014789787861086263088604942766700518191113971713538007871296428700975263590165289582037856097902473428620742629896931867266118743777098378738288899109014930956224325197939823599570132140971923466356946669711518048165761613657482392403583959933289773922810988785072473425557393040288871159600316834336777437240096790509473671595185082730737117144120619296138293445313132343645302407322620908470482995496939120604945096560338581426736658939812649055356413120712317785861966838035003529726738261299160911485330903349948035112042632216348706960185152800267585575904188057409770429101832377862124433572233408475580794631428899438734634026238832649791917843095065369421678696028787222909502972588095352479476166950229325477483287607805981048727558212207856665562966386931668369693213893645474260755495466416241274715638479214400654155882979773285544145308839450690931742388739596743266002951616830560914503485989242605989079915373153318236883106629832409695592215127410572346278738527878779458707321635655745216092084093571429514578732917426951735475699944010769889658657223263281094109804388820294301111066638023373525711043636746620875927624105168422043039918280922357231482561352734439374361359376946147097449508515496138302013771062126903808370054044202860022694507166175287076269465975765679370591462465677657905608558296235047914952038528369236409565489801249160486415450050865626178142728624576541625820188434812154061339000981293248279712398526122152885910038628798231380109001236924816941865035590766234122804847624500901847166721539986282081838077225497834741408564081146713228149427466682523156638560598706286845361696553426123765231163322096521772146547425196490061496226589085071448729997865032017635767350436814161639827401563591040275648349189078847707881588747301942795459737052976825385722743839684474542037526797830673926482220350261973926103325368155956770481089339235375279760107817758134671109700540616431763025920438949793041759738574678991464353088933858828027840818147192211908846853569684122214892768734004866937803833010574176774668262268959878257214811720834781831049215897267609940919698524258158917488206686435146182919830687761212296747033842660073607897269266555895145776209877158622582447330943298034578910312850407013241200182117903275747101156412325396055710093772466908321093222169361862205127661265846956897513609926191044722167100820788029865886504908695113546980145295036340546745839457529085821863869190364191749166408249982825082536788262219256746993522444751196263008062222707191951775241509632790414752340609370630286799834128175423292184663304800300134802738992233328766614672656654473147960562995569070458434042909830830096496955358972064506707085504458267118489856983213825251637606338539279533849681468529720148369196305462443924813801663252750816635176765928094260335772612034139344108084442700722274833420812994991757035239683016914582568310670369916672648899245941116331270368468784031302044064646116772260772288777148560278448271764002492316420384041774156548688228995674217369857578801765792250434529409154846806185364031193453909787949155626508747888171548753483059875258759597270713016023288693451140079281545688165771140196255867652733318764866124658335895869522627948380057556931756989788251277199542767639879366732878924475262521481974228258469553130675812322205442497121682847180115734986352593696580824128010940705097696855823690579809111305559785953780420935236941989535195304025854363450981230693281056283905036419596636650882554536365616589914437769158785179832619254800582447160552087781786310994622891605291729142410158376648355280486106996139905895384797665877197726825169790595800891669760301432333837523219658093632967196005438925837426422332092247986805416542447304271721251590678531875252097951313047797524432640222653079085763449065229608637082930510280841424085145060141982938296819649489016034004241250555643196813675963304266070974658391996093667841015778832087661618376252647281331583570328689365805346463921872577512244693842828989040637756045930519128134856486288672180605669516684979440944256261601015930769034670436515216025529151797542584051791791467132127625476535790928594096495499145087556090758853718757687494993527198904796446471735424807398435122908160587992603237392851879107658799209375585282537860009236458605668013622246422969588705160011228837272342262346695619643221889249203736679964107091705954593217867587930338927866308050598081665326201208169377736334133618951232639550912716307066640443889096652862235399276744384556704447476473916796334562709866494493121198026427357207746338700490076501225062633036937063510980525366768703283036413702220606092275693573540337758542903249304895677483775123376014108883681981826261936904173985065320968819821092518692367990898821597391961519516949294632849767421099969586823169532123934324273239036189150457855338437876362812683507473458079102778622381151545026662624768965538547877239753350249035570051860441079114905425335754138790381099699744747746014215397594955008731267147537373737406439157867135888354342876051580680699672045884026804433187462243695101157276988687934445393832817548022635150262848523336633245516605516784892449302781463710761612241666678479002222817392522374221474633662999761327457683414002097295088032439520498215825911201836875840396503847932956348866385060458184862370922685987244508751266881961334252253186207585920496762629665601926897019658912105469984484776121860693011766146237357441725402706970710121624735298013868266001535983704901179732561004542694813323559673501769179810415495721190854260051847954119340675191888967923319978626511287066496449105495913259213568128532834232622293782931736877233048499513725954048508312500811947153613229802167350437726704678907649607175209835431151423254404899869043876963910316594413565570054217884531053130435438748566035352162731619081908027517515527532394701222913107630835414852112356576517923255489601013221574842332371134998294103659290760157458763509215394070081594457193682095158240378462490929157396485944994162620253144329264915337661546928601747312796295175178239496794260242651066574357510635062275580613928329210298861460920279578307122575840240476553360482797279805109057414869950298823939460068338286480073470391774861118399806968082299388348639568484159479774409796787561540680310832947608776366778421335331015495892777930292405980498614984669905665277366078342003729669227104257691751064277341477344827394447744042239210537468669452300383681632862638969985398515494367863024377942937941838877798134473987921142660735420743854985650025782694049433225972730065985165031753471795521720933408676752052017273667448838967165443241264927129192997870674866465146260100881445913398039191101646049121773617898021137490527405235413696156264270650512363208209157777646155683991488061946108254373193432076306053408209872988217868675216237791605143223132392238873604473144763945446717882161595541469848268561357216442549906565723835539844182230316511035800687857431244169054781198397181416050152827901471827916394101165632083820932932710279183302115254661592619601926557792912518878792360933569656442265709965811025496129447260713527735366316856687224778906487122037606896837175239385889858963157329928441380907237763356821846017375066091481992259296460416286176561372857009889499407966014185762362316392418752552919008070629122640886939841693335103083742623872066178588369036313153928998100267494224477412934398883149430964487370850294584635342556637228260284065510750966180045603650474463124321541028046965184263632220267237755470390365417583205026566408380094413556918948293653122676768691629413315650630805263968963037066409763471550678641855463325753532083351268440264066815215112187753731118387944704006316532484690613032466876095089925646379458538814011673073637177655759717914809227228408321766175391182043394244626647534277265689749431869213115987203629913846889108161772596502208347784666744468614510735443137005087029953453624207111847661808018436199901624975275340052430691957130655746812107113222890558851915998258015730625154253631744091549167778039988018649748149495994357430088294528963319631119982185977849293908815427168194640835432587950083864190770069018269092285745798073936570583255908706317500386921429288261828362015578281131185973157259465885424642533298612576846157268239273866002182577118164686842110307305479016936675565049004654164112852542776058333576317514883950362073654922351242293120022375267837490534084909630463078084832912577091654907323789994524255403770828817313738848197229110456545268404664829897057180070797848871880806893527139985187184619176672595421799898688677348221908913201135617105192295763233384645866303951909690054340530738973621583067782557618884162881514844920839904092779463493884522651312444321261937542733307401165877332890166004979607508353101744464781351079132402177376345678525764523983240945539991839826589961764183482852169498024116827095529773452196857971086775543819736420714186357085237810584743594656286038606379543170716327112601717771953069399057389476386658962884075701452490776151073439540602102405420877486922468612818270466134942954575951803162825629113592933435135861537262665391286631404897100312417958071256858034397485034800104429003784388082459787964188850097440421861728921929232961855284541144325864521347218039418545874303848291029042602551468070031137707508167067253395429103024055145068070875111501591427351850407762638892025255226651042309697486744113951179893865319241509208415629296764481598274388756529545888889900204786004883292836534715871156862104072733590727864819942759857521936269913433649112039809307052850934457508601019417394026915586088748658742051152403588938806004510278151221967361152987609914753848026411282680447423593796877363737703612597064174815840280961939125711875453403615397869602227887358554914077179837531001111088431023384880518504530741501610998978375786864251848422018039823584015824834454126705708167374658179253584678122133552669029141698568366260265277805353596841213935299596606381297472351142234025883635934480958012935780620342835675212797383204697202316391929831058441897486277075864993219050355692091504455537138967941477247041847477039777235856851063535180898748509516709925483784063461887195068799383670590441247899212545747296498610225370037899747931868314902321931328564383612369034142520095050150845102842214825391457937489308920649654532022990239306345846772507089755993320075379133337646520666736918579079037216119591865715024112028442194132317205764700656858783390287310073712213211478103972990886759988329289971139482501339453135537682317369311860353934838320111627786884108648740622815031940819054486279423808526567783891165669417345535076980842844941410296608768956967568894542896505055336181915577485959044924127422477042351010388939451078483391598067370844577845161359091740338912600001728432749769753662519097670808073401224284826114966641963713139156156967987034866412074332672495035635858846838719827120830922561841224982599315801252629037859547989421195573964456303004042354739644021360894631128335217507466764211292292974135319446232478907878690149653673333894384944587832678751926954146441312493983012147271990887288623463514077811695650443608524644370972976138739107265568150063128284158908808642237975455870311586590765395013139029777617520399799596369062407213321648886024160515232766578391905843221533438467559285742138061047211476214933073898606046097936090011597170518186613948864768864843889837313538632363202793350725050758527605639325670548461406647068533115628883497281828743858869031623230909011226989226265997696248639176852807861533962871544346255645410204340804486722365969980035089556794779279925748512684989713986864636902710103856480044085407532347075587213197773992362554925728152866024205823496708688686673273323875998316205227089517689828396213618159870783090200235826011760893600109592666180066366853972957910401716112440953025293759411754568113285175041518347875436580648123377164968334335097148424114974523329717742053393344623166940219123918431151456133593074633940866358941215904781525036721178800532327504893108839940013893219303408801194418000745873720008487672594035967262778241563590781994809745756874594285759615200740872623722892268248569556957045598570984367005567001911537768193628853386183312590613913895653203563493045606958627256654447526178880356083368670106296855465994211726052828320580372243278801927941509590735299474980700228576528593035165727558748487200040205696227020751322623472586642121435344338978973471488683264917771303808728763083522150651023317547620608466485152892483429070733518525074857520725594242084143925436504497400963146174997293735845542051599868347658587546207536688882007975594228003166354124527977054223832838419370623095239904176691409228644643281895742731605701044015702413031768412847387504768848740946944052488033696473141536143008066853041353256977588349405713101631847881163285919892316697558595541108359352555796140975065901355928939232645260432171859797140628592218333291004530001246064464669742146556903660112869061307933593149465909008739478795713253699318246443818980257581393953802472492127703464570559728694300388578188039525481683792638614181365437142668179859730682229907515341863017368521956417234479985996075257622257580621787654402592705327269335866393892755575822920513668980848174189959221048615189937828274127951756727578174430627478648049861880462039187741194735112271831437873640484224889553969335136106067761459426421345443336234861415267371160002423465506748129833543495638791690974575538858529246034002597256111924811014662118065004490378435931504310787279928890069412066253248618475697675417518148676259626560669442531002514351843014123356983289071026452592236891780891380811645308022384027359693750552036604867506590993491148138785396586820483804630419564232745775405032814178765391719450154731797142321298672140529816284501671922266713716196454179269150806093231823421109897865308781437948490705820995545139894314387977275914644682715763995744240095639265610392091582494242116834889739706489689397698714691793699395351578975061328329005750033088960603687986815205343873375408137873489999648095676281690953264982493903850227272424917946928694809478864094924214558133334925673959084853054184469959801374096946920104771600283338039585765165566835602565080484008015907216515375196040063747556168745337460751857795378163549974095668730994364732457585495383247996976739458470957596984907525627675845717555219747427868597875005671072661959503852696509196643950132039991912848762038334306695185942155205094177664697704267171182180389635727088719261355876662719038071611378039621952003402697014212712318729235227388670848902541788512428058764148053363920686578554622993929078524134685862671486412954344997200174052700991129212199148612854491524048569478160298919198557011697331678440378091882412382519609916274416980903220645490351326847014988998759345671693151616649738779861789775170991500378977897763995153775862611405197531756648813306932470234272193421057536019319234301632585295533134976901079667629490735446397725860421515661648698218722047877108501917066080812570739462781220516695145241443259108089887975804825889216828443826668090060342625049325555337825627506429123876496046425195751294127054474032933828742197479948335800781157897742841419265696691091922970481207796431532986540918594010120516554010071476721693724630361760266257076160119341838907560768727960273851640482485936879275050459695031440211561401623264223571371450877552293953023086779959692022254881034970143074211855426656834846309480627525011160260771174246968031459054645335976934088266793998639141044130053909975229511002123736825885717492198057924133971479926276410596907647079322594330781428468916406182693870069129923364301878248955336289449174713399819784290062793903518111453575494676843731886838197956973172144818664481061559751213220754651379936038957396623406401590242593564011081583663244709667909442050050983965958803385284026491182920568425998129173462384731844877297587069690804223638622808216132486954330419467604806319503558351224279386702888910595810541712153098957797748030777337296505919739662982046058671142941402527367573330612694248513205064811603877302835585517837410741227994860046325893335710036099153691332707545879036823173423677747417653866988648758974759998154129290217059911343235646309340880289206198427128500475153222719688995306479663350820747520362989688729215295808236170496212296316171956230215742077960448456877105424411020661889869572016242244021771670560139021521178731567275436665920181044039827478332605573313824858442318010591505636227830803258227172738464777103144664578760595444277079036125348839402638436041511311503107038546456497406826444279285434497008163584287880471273142077011391453703945490813028670621390262181548898717928628439266601381461690622616486573105922579424258565602990030076168798097595651770062742355704282642224783155263734330413740306495202211722759196358312239276122809292041978563708218036005524716800094924659556475259089383132269930980076055613724011390844475709079656691594657902315449015138550200547793557523198224238961533738811154472558461522763651919930555120943981868595827723878889304221115445005111227067949322794215599845521504915449230366672927901957471305448017606843610321021316589428265379825965957035776073135803453950728002775006309658388481154734932877927699231620660649359567718419705072254949517064114164347675138982691261797002751478140693114030264537669253423481172051774130192420627910407787530587619879836006350355975615264488678019744466303833510927038633572297733377259485775615497686350119664075280980843086463549660632562797963291663519846700148897392275210475423629868542578536922276999996240837892739964227657313721280139242937709443154335732476745730145572559379508679251361202503346673232840660874108142768233860697999925560691433539637381479351758408748898350412862829258695055510916669385586076657462285419649527618095636922282633592280272641758442266827893369613948914269164505709708598328016800426677874891132863158632917050090968209233065147127664115968452352640591742133550120328749500048643873778325836275934911562353709109833921694483122834257355161376888255380401652643149627246665859752062029489389369005989978325227273904523878258918883253576886293516697852848612243332597507544482213710910202805088582383525641805607319714077010895968538302261465589505724765679561748518927623534530846002983128554918542707451362622824357699910138074599381888846371404339916087903573712956366495857558220010501342277259661863236344943428458611384287276785907026982553164036829145121245609345990526366604903407311977724670934609898265256216743909980195984789023870073103899234645383153589793037415597076168648178700333760947671684202193875797026219604772350044720107660544645527744657678591825679569412990985707739448749600156832291539701241750769913335735979448316883375501335785936901047453185315284461939671747443297574025266245434446693074072972286513194993129387225401083683140514355806505090645777950014920101558927776742938144385535181900802296956679280720201560129684020774225886443692683305330912797260928062999757328732005737905690630156421047591226621265712118656781761287655550176357172802869622941726088997939614310078500173699654815970561877839667270859728317055544924325999703140440182231115319509285529941253486887830197371631372357886214213154063234677759616381571954759138055757207017686332366785729887754613269717258325071394152877512973433594219426294536328333260517707705878593693956931650236392756657632967334488255199775753784822747445076262157052674072409030749410723608005832384722271702875053731170896879797570799568354524729077741623350805520591745942950219366502842515797727772465285743498676736879204560701538427117163138318492069605415804749410816141183017750151969483723147129729529489016310957759403688757441790777726057828870793134878120731038275925651498262747952911769414903728009908412779683498299011448915261001445182333393097767239691019890729467752101913245734838828069149016679467076534084627432102591371717988656018510346499750912361975835862388574588898891033863529371539825802523197839986260722706604207317610081301243886833058348878709074759969072050946155268799506373103468784472222593235574788814610923093005095695464896335906991918794182718364710653323338453148577991685940181116947163833311304143066045534497872162575661979176888925091601970102538600376488333866526684601834755236595520478390117024778845934748062283668135058696125406047950958304278532052655472441903043249805543981241809657478090161416515806020039359987520835309211044793304004425517227320125073849831988446797546237994190784483843747238576485667089625274031935998944366420959685403706070510778552268766574338563580471888238553492653907334326499097361752113801325944702210639854180103109985406265282931036376074651843489337915658961539196692822771339891464522054030037445034404636077561999455226304426350504960649895647308019909874034845168887156342247463899522148516980470159330082326346704356843772481542286877437040941709481166405086631420748279919597842417995381523773345827440551673818723611950004740700252053614415141296750419516285475792605253427951122369155871451661396743088022582980274210990276349066016392248350116462346345189895475505905274642250131731467642557323052474785401009934766682824621273562153021949426433559572576929710509405056109339149733621463932926237292177586164414950098453272608709951489676599707765219344539419237191807221539379278971535142574463892678868336297852720365774562561203814372233952666246824723337575086298309574567881656229137942575266943184556389483723515395679858305035467607630739262733308898364070263952108224072363170839147577487410415255093689935634453939031751318613800677025839866616268559909418029758183239398827603532307856168146496280540553657423379872580318192752525459868840055709478763203678590352515854933285552059980980057954823300010380633956272986064612663421184887928424836732542955443601032774471090938709892506991173940593828442347004805019651790949132538744699421983116857268211396686100884613213378879463715369352538754721366748630575732437193022499876009301034858956336707653551251711440105048179819043913935112831688508897019548935509819512626996784082691979284234066479102382098317668111504545911629924949520113527924253059075064111258009876392011947581681839324988914240780336916168900513587937980636576102813797401209885752810123472759607832824661604900361714026262856858471156739621426204141297873018881181507234412874207549816061605074831186224453006069738191317657580816450218320494407920486061919309265817420211869307406822707106867972747318913063047063561218591901123735861757886365733136283932907494641597434478533668073137843238460204384227832084635780867057538045518026875541584979330649143087035243890128955697987472687540611785052470982006413159387103229026590418081509241803914548721547351108142355543337741021292907477583581829714640835467689976727012081511183264084498843989837653311790678247416929726827169586070129263304179462287827223605379592813237703622608245404894018518780179323538343528127048076544669083619921364076937549701875070066375984074605674933921250894790258607458772812900767895197111057692210053148388197986727121154214569859101851031801749687924255390231148840005905557194986128885853205594064318401603596457084816128178194825419922151531003392600381991694161154192108130769899797861129657100441135286600585162270049038899083894530129456787485855982628658785558308383835810939575601546423180532259930625763479280406508478655035457155756778927167092497447474803666313656622712009834117886748722477277539405399463709731722075804449646910134725081951344830969580185702664296205327412641500204366972053990853570914985828171096137897922072214410734051111611196399444130667184504216448214705378628817457350943927621400930953156464562366002211223206080055669292114189098442183037690343242946300857130828828075627171310977803330610196629009675666528757498912463248062321127756140833981527464445278220965193984442080435748897637267063627418818993710639810312675633211740245272825451357769489028540207327674710364014187210500064534223344009105807921449606230110415122037385747528786422832998890845921094882352881633935106921979860703510691196200550085934696856820797425192610838325199784240774691517455116733756590558524070451249704538852197620116283920359240444342027665015220918910607796584350948374348421245582148767137935034069685332099509736170157406539835227126017548919787875535349037333600081532160059538766686561729125384208994837660634099131284380456544935798547547538513062342904170343651568692308778156625001792709405574666990634773269186977927026509351049826248610919223377462624779720408348958994518076385743531466374801454915117113338748761963645834390983228698401198640036051365721917493303795575658808392868438022975460170032086463123419229071683951482664489804022681386255440943419548759981197861728484237327781815263766478127141728590355853061586474115435085764010907960208804347927250341005507396247698933794403725737633497910005272164785367518031056343368390874155646052736788054805930294504532957800339656752717608278028623546658726148983668236319413742984626630176836212307473143841801860551504504946331652013072172995468609799266699720786474806192098273402055783426084868452877012913773147095356379529205743446873659305224598933033381148259284598742870673653809631334725687413246672578982034353714036011640607469321838166101764573635130160421700042181397663528848313936110950282906243990237464742514947857358896962872145877073806410267865432034539674726788648642337099730666436550958728679603497284035356696669522878402838095783090392366979990409441972657253011667053098339752387964500947316831735557243322876411168755820493469128177390031085638234589580798477761642358476343186394832992522623854714427332820953561469876161694137751615130951059990253996874932582700733923875818867258708323251813731084640925479946658027833217878410656277427598844696664513329999284700945895518260396000065991797274905720549280065659063755265329954106597119511030270252693213530609769497823980561033658829675764230816897985086724119025049916888472724083678573188106859987868809639658736597345898718635344132824652252507155990859555502316167058037000398098050394686373427133284336884970336975651559814749767813776941381681580485086462928476286345265470947867546999031534024718038192960393246877118923918736803976884533269286695510018164125181496805612996775780508467500635337081194036966883630469910134610620038682128604448648357999033176898250362951617060736369442282164542290972739133109249811395786340218072785235764633924825709662625975830944938234918649758709480213407352007687249590071188791998999493672005352723175564851883368528934382502020165751259610715076431187607728222045080788133487186259567906479763293745401379357949716573616788171401714161008027491331499237731433346269163023115328229620068086171299275007312536454864352129752175178631657469918077925523248022543251112664757725284536029787819189916336784054514110961331135591135619053550913551670586399436026225615370200687240858899673052911530631293003039664653569126896079762866585120023779670599721208165606916932319020705863865689333132236507693602338029347977658447528967824843822403039366516715637125998569487195308815231969461303628319783319259489076341159300308701439195343986491942855772396717287727628220218638567308900636349836862758558893789205678039590042397432348934147931147568490780735090854167437639508022350639977658986034056095178186325712541250121108167971845849934311533216320593103531691684302321503478317648179235084654201419168722727110604196529360434770758420743371630843274611315866259720846861863488736685431985344569823293564280827044647041720051318395089266855940427658653160298519536964056427615447083456821011586832940068260322760881777903240922601217745640166809896730448297160067184723784070960246090315999893714836219158276182388425810869154846122166407156073835685726855523502518012566051166014544122391425865481041303706570410564300438719290068540293311163964701406985180891228263873320252785839415838177578104892316344088171881933984950171029862947080922942574465008765160057311531388719140567177969662383863239265367886279688065391311667097064489541381889206601396825701447728997015403618628255659218900671133559246480207300531481188218055998843307730565825055734144744934619419463381875862474775556185072180125535994560751575692501584562386721449124539858766937407236969517301139642333596665538351621809319395625163446047985800058515394290160159957106891589934695072243948587617328842863409723050204712056236317354481754270502125954001852127770763335143402135614989802644508476420853763351842201783937188190666850909235350465064017388178415575512876737255840026373035301251029653434788019925520421425872484970451162657985408919740031852042344363831159008108329620989559835160431925620795051970849945104065961321935170687430981808593107435249788689098330990454930487131181933501229699399172212956028661969567544484209716723116029382393426255299115159169040613206692833785882785967661333327350138185912472106670880934773005439763763389741411851345582356216832700540665192115679939183652991203981995570091656710005973656916409102320460500820841099989856641118180441575733115558785681464438203959556710995791202681951446158479861286285385756612532020051556892105764547389204112532857741787982670384005435052519545741220364749372501398117298493602136089488009768681871335777943770565919911055528891849580497126599082087102482705433363244122229871498617650011720323374210624053680986698951115596851233047501172805615985383731755520063951622719832916723642325286453885363131307528904219785363565500240894657561017770112026760055398868433400168204026053706852983620409680244981819062638374246265583644589786985346571316426243650717823794242649744474739392966492263506995897479667502253591245680666405333341132223159088598411192252198046704779068846950906407921745420243880323677211297646290696248231316611392409261314928276364309536571270557963408135599858454865167252518104055855290653595742608200509700425846643779888298099382034461439798834487654119372074286342081970019325155974476488082217523873316885257264798009434921483346256056078360185754664667134479033980258917054188591604647418160421182442942975978255939674598912454938495877781183629417693842830199622810938547115482870074284073856070839559983844298974985652274584554212928907630594756198902380082086869695337843908895806930702730938923133281937207354556326660922088596762135924006513486055251141356111975737381631738825455047380608947291161743406531637625253599405444538568252195277394589569893311730970561143167698625814239795771046991285356096106427889295380372127269900481628145549587610957696642550814042228874131783474693947044047445723983706175579152790913768273716509436478423050136302521818110006270671498761179010480082917347767681938526613573779697910880626398879520622906619863942006131368694266500416115179686147054938896312019286607284777012989868152923235273652374914699378268959840114152284554611901704632119857338852549041567839507421880312543174060703373530394004373408954828127956383304877769912098557323244393062266556173329613479467573264716649832623888349809553926798825840206889075617267268176803329199752134280773110751101215685437741050795171984620463977403408666618223818761933284803385662707088467268137817923782608907462319094996312780556176366865999335034075616169491464550043137077455443740200462913941983902620994223421663811466709120117241720581412344084148732019977490598285189054402300329703960753312717266066046434908440778060245384658505899487810411461202407955465110624525197359346909232791626461420092648160126699384835791510987624074681457618894184188308648653500253146010481751870103897226154313791468621556275494293765182822807732457893179391758116212040796048774328820385777812912502729343103850764861601147366478190408413153120425863528606203383920083581773008838057682962788474555345550373874327836237483460237011139844489762617332736868126760416277264961318289008267012320201872663896048468618656676295981090607636417169931946790661789980490975926721505222036457893898264022004503359454273463947153694306526396996306148396152234095374631977092228345216574110228384855952981231604724341259455316954227723223735093054442148028273098253343247057665515495265654050376774446419894803812821897432419368221289826905386678336827244521334794158750811113689783827621912176453101568667705650745634781946570617775588827974272121012589280792797231515933367454668874437948752417485268555207091136918268566807011708786493470535902859936762682106156518830045159291622565111766175207392240673999813431815912265495183143798149181166124394266104626549767540365351234262064071495149973871343125807789536917015646240389928240223177851357079131630316177616937611026863722268218567307708392775513172688158410172532358577999723082847154719119515823656950390498420524911775246619969602488753752390195062817544365650561480210958518651620035812312858903725348532820415362974469877293330338681991774421971682195945866384786582034281167690595184490815162568490515502076154451189526288516579734569278558112368411542097704844538707511294178639921973312546402911815937410008411173431572016975662977922253514193175832356304895652078134103260081838706178818943134062864111394097394848620835382444166707966951276704622282146991416042069340726920981019405272482158331982517713842382690291695516341881968668962836720808324861503973537006403333496301427795688075584743588589880113227162763213600332237102360651226388069116827833013780773954953961093196080487211549886207260163509699400049751289528932619606398021047032308443431355610355872830416047612410063996610779578194294376481237193550260024339290917597885763491198201839828460961531076888240254942223444141733828966354249142910907264789408821862637031188107744939511957835451956867611024342011117715388310455734186629761502115477299938134595692667373344804015675941143103345632132850251506558119209652354843285742303275825367099531985513444655040685311308037302335358913309789717829908977240938745935429643090811662241218442417702248393509367281915846528176652133472264842244812040650009015194267019955957408406815174961144184067529417304750083566699879643272827906113583041103986016412011470212261110244758119195132280981493290256615430697014957961741478734134557144946709171682900202017046716387434162646573668708796368033575876440450701145212615639748257649048621733681271866109160379334666133193660722037000964488539613879663232504956171406184708159274104324912204024881050509144029791776639721534327419611264622300066294652032810640248084684499875555094483790312951218827376104130847308566801758050476990111248185444772814128489645297241760292193560524726458165699118281621261030153259865050987553751166058443020253224469827452882063282502943353923359502077787144163067045878061111830626408033862149947790753465671014130159904077495990458859902561570503812786289473888805420924161306150012879025616264563786260900838943536722589575869933167855056158401939846848982119435133233320021660743862944099493585668008000138201992873158610995687401654664235527977158793749048839745154405798281154636453195461176076095820508913864200114888591572299847773119289839350314915591977109891797852141155153769947886457329329478099597018120580726276663040825198235947222505228523253473609861955168426981568141957327516484088904887432965518176047829723386675713120096036074818149637437593636745802346652516376402457593995443536070719609113603620947725440846676767949637493589370583076345441612796445623081452264296027663419247737981145709470582630462571131848826585162797252910894085408199136543611413536967125466317134599899797500355268763389553508702522018279933234161801796787158370195804168574244079760575861127917395535013561693984389977664466357965407461036525054701446471391930075985564841593445823602825106496199439482370939053908105048145939368687415183007186599133351581976675769744014798916686213488081664794891564772858798398498768836919445083018204477005371809186310587017806819072738661104838207014597553648746180935093598382673067068771465063456198139432567552797792371740988367651891404918149789669856893734403256901970478341014877082806338860785119555022144866453287355224231562668828331987791379529532957885654963155906013294620408575116651248876558787308722480489504166935859732525923403896095050212560368100623134249224159754705626595404152289872843189956173497846051811546528767324338675325560428858680369935228895894408002870353415182785422561139214997894478699310086548500320297062524749194261312457192334301276539857106926594977539407139803338880972830376724388809749240431260428483344022693213542760550359656085026426456418870229025344549463282114860442150793010524274675385099502952231970047414393303311631202692863571546739348167910796217796786515188497148310961326459466596506134369799508810907624155002602598037364292597283653229409975113440346866998776839936596093635748517358537675893982040369878879839422552449706706853484525637406233006565638692652688776388553641526301580115477787418958158362597061051261514533531343822030811513227144950055514909476972965728999667075235505792909254808108657411291494979746179817864163410741769573774112699714200959394742537726237985169232775191774173092664274169328008453723470998254389926342544944841786151010232770066548660108530429187364859435471019451113871591864108001002517312731093675761324038536003208209849318201197469380875760952212927542235127539324672906427816514675058256068431967583420016245509455270402441344002119056655838595504215697526195861565383745514489132275897293817319887483499125071445736061993933138076580019373203104805617105428811819139714284016264795156280916973777537038054864615477764908458428257208919998958857809175740238736912197677467280031096935523147585300216486562844008620861991335015291589773892927691206480895742821847207472504588109256807067970997215934060546490375063425192471704254816151513378021893721411199651671612904022279652031274085369745234210087703254862485823867037216867908543684694126530324828919666044492662903840572891903432833971513424234549850231632231473688174653277324870179849532778483803804140461679287791211448592124627142291407279461029801868434842529693055364038182077853606718919591478795182547998597477983092321927740149222449996888416879297586340431615300104414960662770665764441408104232932061461255228379182551024309032621730051651460193547893257382532606834379257954782214773354559079064084783552444524586380242879506873033723034085695242977418017672594955706374996372729988738640573291988140253471404901243207250411318810192499249949635841981973552545954819440752536633469338624790624534373526179672486732374959683231252306867032388632542957314454595013015377568774415138465858352124902152998807399078435115365342517865159891382639857705604818724482278614133728228589657436010114060872975162432745245883470701532103406772765502220170684358330630835628429711434191428813146285951773518494620087325792281223680534472360842696855473481810361988788669567628245597534814863552751553630632498962892892821209040454748332988916063823511492804163136243252907177391726756057748590533305492213429462124493743247913081684373492965197009429693798312328701953668537681879515811657878777932644998910406490449940869727415967305586335187320571688644335938496906212465587435254747402745241037907712872091008817534087817542273814757179917756097863165273747707220916494563431630672409743297905362241775439047347749493806453514255445305664295436908305926835949367864873941131498255095038355781665900963514600467316518254207724041201355578016272264170817300197898206460349652468399448774729152178932986109147622511950148835402099850317160186460110495096829451728968317575741762060296036796255707505957326408452836984497273995505048014363009525729444293813782441869019471768335892886646099465469319778502891077250063886443687641365563304293910743657534575819643227693744205519282625714976614422138064433694801521255251042041195313749532982644957346627504812134093354548603347394686245322259164481744352685455785464171821507607515943785511603199147761037249095164245568243529553281265369015908233510071512601299208585455719570220906825392828580983249868749609072726870169439143491870260367900270016958490907010379455109772046974220787710891717487153412130768516965905043093193676164787491333974013031089736416955285649343578540269789448687509023844610875053507183487739407181684544800723032202522284818236331807752328554096601013289017407085472818199877448995196816499412645882187220537253280806789478731857643141093370598344716016249754630656050885547140891107471625126247376715864935867212223805007132918346862092623117987373654064408340331790233589520165903061612707503424696867369305808609985270076531338969542682550996247512920380074153379063991991764208139210701087319089694629875486165412759031796670928913649383264683283863629091185916915981208852578108472488890921638796282018881173421122113860919700873404714980866249361270015490718277636099674431985100072012702627592657832250920994588056104371439353764202599638073504200452467687525510447497414152364394372804698606351926522634457889819090435344779959212347059528552803638549943322098306263732866735734859037040017435175224773572525138091192268772083107390875945302106938410703403674117150649060522571753697909559066160172215589206676333384129761088764767049375493877912694672858349043022117131536060351263494852531301296236590277848875262116324518722064241679600322211631656901736073819471410808359720954631598215455143244678300305134662819623454724900203689869895008044872850433191715607449700591933454286147769760169411249661526450287727951857690378766987723656834277377783876459220566568071544719290301092892478449537142917444942500862202424731064909975188446172179863124037188925649224521094920062407893188619700147405699366615675579305446230356019031110496005635756451428444848923790318735624864024827335953393535202435028602882620609183876695269295633115966845665852458702010128503735942409365909155058793989816653479016932056603112230309803913694989370832904269592387446503513581984264966129887886353919313176137259099788159169268915050684468802893016934641790968811476012426990446847591091017991281443691181545230976226861977920950151797113273067429024067120911949265854581094941624333965705876624636185713542416750529696891923218541484597689733774520142163435457379138972346792191292561507369139571642107421965489755936662995364434481115259048783597427485309625261337672935976000099200614150638121574556958992695912567988038894495708939289154088091268250154956287362974809463189007598189056948359384522925781467481632881000290471234597883977763234535784305729613517214213321243364008536655315885418447193913599446165281497608090017157378478000546784074215082777061824880949054203748186860164980420060690481322811196956284260672683578070406550798777447028711021119003505944706168490638294181292250541247380328214741534011443627660550128074717986094201934312207891974626673456974353720222697353199613090940243972979301262714453884798692241947723875773336753660855628211043091031069606540819485144828135921021347547033070027645139339044728208477905041615649699614892253106133382804164018790329968004481695041379501791939364866191263062755334034760791403422981098743099842545265565497765193438248954261126414215935608435130492804604540778275004499440655445264559657502370264812275044607737538639962944209149196530810428108385810316359353659273670698025174317308239557512784075701202859666896574235410065149814198762751420800025125744477607051713018550419700714404831575111964227366648018479748293190738428777672709527352276879828526618105409578821780353187567241462209475201000997606420706618379110441999954040848062374922423366773268471333658266592827470355971966902978541683029451276525109021952668073109469196992197451051987302394052227584329860479584709032820172113740458433316479055915731044772404759112338632751827202768178489767567485006439867908040336098619461387304133004742058947059823142322667475979438794442351230458392558992923613726979053946201233723412080800356572663506598075634249985725492907894466548213239660290659862632329218855905536256758377890814267679258443625697301208143696417812495309638867965953535702731054343624290921252619266078626345357787738841958167134373994955013421781584726096093906115170005808723355684106360243017878317989123834612061113657759359880955114951452799988980869886516284149947414659567763345408529078519017356962203657734105757564751649065858530686398462193943162279170671294582666848419248788342237539167273244445303630005183303695952777423109957387545103436342423803117321613687496826924353333893719454800906251616792111533327962213236649419614933245315995783191186410628474177304585633354400521834591002668942806881096769829968422171009377170347001217389902989169979558745743081894097327748408313373464408853316550777749485768327195344700783147774220672762493711959518655072463808023159379626718877904168359545956620894883091287895839501344835136045230933020478330112990792320688853540291217054074525313409850651271060122777689757045252196128443816711981242308064455324378978734211726249209091984565965277320447346572239244276653739245089667812364625307665073482778933598488258998982450206089671920538924936586783174584020610199345799767318605304610206010231344495094112428001396906246572760842421903288364922685133142381052510324654774621636601306294698759112819525376345351918253918623714735487764628802895962108786385289009551748571882569828753319628472079411880265375222842898127103357621940943842888614889024406654696150582177745379720745201811723329194307968790123475407053141135105054608760234083586525862702700323785522199639692913329431718062684084866864737405769138798374097316587880207335902858799091134137896401370217175274361854061799567925454624065734017855252181942707622664460576073722929609687414074990134886888763777073246210100754779788285452400743881326955659478370953757836042223078716743694493240426992234321052267263126393504050441869688317798808473137461118928819828365569906697953383855707564298715496084970878176947735433604694282768199520027392259840308372478495267739345299484142133501171379007657902728902527571907531972282593215431423125027327667354096777779328312659624720324027968192387502838356245153015423807632752660694280182558864105865728860805049569063902867745729933236303679961333109381874984813229473697163261776034170342407163692045503982121901222698599440101793637867108916195223647852137042884266778359616360878350262819960040530735319374469790503255912270724100316827327521629213832431752099367953140677606281230197851926877716252202568295300272076387267112258785803631442082847154923927798068022618983103713212797041802678415840781073984452110546577062033464635992566242738427455704193838545536890879708009916977705584242135034368473846164995527422149140310212941382883058953602970070491061193883228981992192637768340312035322686253894918708750903439795390658815783365141832774139203232544379225655130722517328702520500596511146442328502089823855216577445616342764015163112865120636991707923335661945255298707241593093951979264167948820661476957242886018796336959720665779451141808101317241820480910291360716037933901939824037772286080457182746674112149436123054236712962954820016602538931110528921868607111482417779597710365746738505199019920960470392266312103696909543069343082656786643110810892434897355614426626858331701176263439140517878816047055977772270718350677515371937420410740968141704722687215133501647569609710524219565412532692501378787851220375771870065329298340196064048043801689119981960442340411831913351616091603846222446671940235407932956694643419202869577669465663671390609656511728591536319788536686793683118655332297406204846417282189221901410367230780329183574243369264591497517443820897486807983145634822666613328199469838916931065169989786549895221466534176310641021555444750029314984921108911637295684130477424009512225452759083421841097096346767392231886485232363685543843591329624484581815550915475038031021516212077637515111528187542841593959595215857255755732135573974213762165521370802423736843787528358700053818015859346616583609776311272755717494352955621315488263992557864169913643326404285226823202999343452617124648264988727380089239654095162668525687886692237342113582587303970947963158084951657790504641262730846335991081204387845382538090247695854393951325304439278949827774704653398128914593257213675547009935965139795574317068054815249237025492108321430559672990524776775760162504330006791565269470721946586722914743914322644927385602061712978280075814296670565088754360123920487035509476967493657554460560786424704928243359669474107608983546380110081916306413659305007570660453728075707436556808407351730720914200911874038335913184308719233176993174034476449309301130815241767516146651852811521681053167138852019045655918277106417057934093242305986477873977915465063463435257016418903138808427358149619586683169528936103210737596905009021533706086864972288436117926959069860820040966941857426730996654340487208648932746577692815977137607282794411013233006719669874430467190067670557288924470488291847061371726630070468102316982284208319613456281720045693609415302038839186300891564028461250106441669831525430037426243941184434769304374284627876003061933972117516732872367313483759895059549780361431349118554538678193316365569036654334394540303287489745086905907780274801737940015045801755621304752121177840658998555959003039632968275852019781200614751563739340182292096590414830672532885028964406603051954420151288385059879952519284942281783048963573153477381638739070337786472431954250396117295740588723123626647943592370767714446057502940564875939574525310065503467918422369201434494000912311743551961361483170260305038177353875648203652349919560227798658199203273232851968708283238308331229254460338293971629903103338487148836841295733440052639125705497834760433656672481495981037986555176124392672410830925063858787299734550979599684790584949878765864816998353609824566204384498950445987314208712362750844916136553851381423002997706236481572925091677950956476522352568852346917710906575660522293072291470792506848732943847991235424707330007705336722525102262239476669723991929607350599984511696307953275590641912428117256678305834802694868014803744283963140688143542447205013856042002127930721591085724436579031513100638229361327928371693875572366833765333841931535181766190647947255550291256839809649657827557376056360769696101030962043812697753704703746944857384371121414516035357010680225043346928196637453044700317588957064081148321955309326618543183925336064578267625109950689567934085542417659055518340432358508150959283334333274814814613959659237122564106608772674709424417471186608591681575382982738386988544454009924397650660753253109690490887084305952797707328350672787527417289053324550918048989944496710956920331279148683378083528121962843693401325906127076095478505574398996303292269415966486085640686855368246907250620327235070532950732113578744008410756766203499653491698231539444109644730671716828649329860129877985983468226201189508141149507851257978564197802800776193817510612887364429910093065072821656767005478832486530166635019408288930697249648302082442371811153733114162803762999483716396157964499010104707906132352692274628535274864037853578064370324086178676913066515754858196602556908528051672888359977735133911912355312093387742952978083183618195518518356949989962363226197252773020002854281528942071170269871846061545551876346814999686495685708355199750481601938007254598008201312008576476057368000663524598689049961309893632630565179937736284561692034542054603083357441732752129001984579180919206032461204204857307901592248345264151970728046223039675151568982160742622932859946078971032308513616224918678007696005510116535125170814478534046180201056745165798695606988756673229732480898802672617122764692153360886552168249435183716376420776290232827079943956145093904948840655623906705218767837969420333922666788784107445729718231456640991100645708012388653921906948535264690448273991865767939301386248654303349871946667848888696976351211321486512655152388631812518647475804438512876844072175416880996059933817232814347383889989294578849595076550570818447123325509495667239842409664909673997910462622216149938959845248012231119882198051039247809129320135455119350600940663051074560986664655405741649536102449170828047152192158074747483129420345102941150342895721842219809047959367236976913351793573941473710024539105420558747057418539135922077715320116157578447832797794437620765243447271973655626650738765436108514070918033219895734445427069261955289198767690550499066064904848710697845499587368944815710489237716198510062886615322812695655013069522402232256370603262172932758847483052684467150761130137921264689431531253788983058319940352473369838444021552010081575036113452301344745784887779443963640368338425311015813699999349200002185634949788451726704213866877683055226680620720917352882765429903561027044465789885905466965183737045401154288565840099789545128489653899027995353982228571130325864136322706749194550446645740407022740524560042538977982768256265744072870589840121072986364362378706546603419012121485020865363165883740843328017376528653250937036994437731486512584823253996322828746429955194547990278766779483566014609532200596167177095495268276893597869592764609078699958279364346067561312434053364600774510989662208021736879278483090334034448488434495418735015384338775530315146571120955603838275919567795182667491063466522521795639482354734877304838247481594933440445564443407571168608915453150430948975032263900789136277201304202496901102863101009453345982831503547085049414145708243749470062038386386023399014927527144445405633565106451414052252861022880650322336487824730258085060469365982021987716964727311846560024654880817511282204112583186640538416546216018834992761874638642268890972735437868324181765420078284806423711024333636309279978950086801329585500199969437872622773393929109689567037620611119333458537590571078722527091926656360328339543419246199777314918965087911741491483344229084990735463111167321533793497054920423308890661465089773198652279132637540363946107769361429131890017651776775369581659901174005159880470548518824569661595443160588692330375679881032442940882925339241358162234874609205504808540331597988480083774140207386700957250520927478717465807031391034960601401623433585939431774634381998176408097300063754713203702273223051643458872133800706739200813595165263173052411587556759064938816925085863732392442846939154884347024927954202016032050740541089527959596382672279533804851461128642614923494011068090950980970601281504428083032393095455430760697116745939690340093792033429169422440770519682984702712192197910933945356152452574873889132015861522475181452762346334373589693423290192285437294106013512257377724070679481334276593357673932833097687772772318283648451183966054733000350198282348714452518887709150390521619233027824969627215683237313533873338216524915634736261152664148788755980859413294003141614451545007959428159118091839693300910025040161531649342991222476309955167253169014984854983327904344442451896554822654102876456862451260128555714218468751466186841333321594362352829868623553685421117661550866816095372086254745408366405566815893118128987345119886165509625565107253813508707534325527012495191323979909630818992556898210054509053389914658424196609864107377818868112788257872086397435580062779175325684964644584283346317351112717101233231140607753194097139853739315966427048780415009807811992302508045022072005708699433259297682179186810211200936455111789571451255314741402071211097297111699394566937051311974086059725759827620350522753258802189442479406603157084694739060734033169474157291067904113075546294608827957370676082081562481296681143421873590440321757328346110945116114831666185546003373981162450723220256135505060844974453236144568050415767550820996933469582499014372993214150585822560488135905419538951160860336970015187174278039588333384951455501007861912915365761161358139258699636792765570261991004021778161894395006553344844649758361993656749567158105270284015063381833777509659571013263287808258332196784575486096480501032712160702870636156424111002166749432011883734476653058483171701557610625804961221481906793074812543718925250610868877987372059168471088725077254574102509552811209971914615917876670543842753008131199713598619095328127437360276833235305334401683436979249349296805483978666877267134344936805414479189634319207417802939033739850577847854066791489767367352886525939124374964862054094760158177588811879868344261472787766735202648372481902232563339126478361318116424784523969221351639619557174649580032948085146217678137464456644005421501111417605365250309421084853583250817723416724839687886449580287704159886317496592712330166757910958647728243960138224473328536687579131319718295985441932254501587545319628307748800408914214341198848307060353984953846942191519669647856346580392618154107322028491505139090141179446936786006180616017390139752485771320967269363328119349465986095731363834399094272578294151911971564636213987452933798369153132047552464564342018145769126169144313795095155269826870794533300043394918410293107637933088157499217569210110694407095791367736487058935901492976365410849944591898003630969132785515186878707979712630908735889476314652948517012906734825100415622651778276048290242817313324108313041670896846929875178217061189073863124757044595081255294454152378528466604739820879696656715184225594456549051014838380643385493723808001869190196934489725897044202347552822074288951774359579468052113244752992535490914597368296921848065497419125181561988820369612017811717124198637176117571629414224169773825019289799166844446150785601676986742536455381671900282213037149337464892380486781772677106499920802344309138839881150397629955609852961422917539504278664423083445859006894919394230498876406716552172263569789419768867593376304504323855570880311899560293482003439746042118335775818030694054985762642663968029821310472510258848804235945796383822226331196430913181797298873432855991765485255719089894922969126843027099902297690504360966074727202302492587497515644544962813206595227563446276547471131482616080043140381120134208047898388065585158997550785479431239060955774047849154103241874689836254692416278390994866844711714078602589310704039482632399994415931523017455171742817360436295610603362890303961664818516133663216755807047618048301862373290473457530573205908369624291828765582707145881902905179147547390861281800532789287069329872775499129511404393906251408770994309824491398196657449107859640104800989583778041770658513225549435614204801574948157699487729922491665214811450332412030497885405191214382028981104072215669717705725642278375391449901999523797617504927475637374696276910365723241039944965929979873157781030783206053107097308247030293029035319805900793992131792182925763772065228021127981352369699338799464913155802822241499576084424477694294721659729525510540416642163247938694566233074834009690054025897874742892717167524987192918259670921401083089301649974563324529253556418240644499728441783415124112789270240494338432742893108421852322680726694518847629205247863154939154742252372951492901719755579551861209092678574985684653432454323760930447499585341959501358172097590626912762481729609433619319071237892712199116414670477352051134068640521808986353637304926273278186321724558719406772106459574957786013933803742901589462594853240439801683135445045752950501467643164971117625454237305459075951972064171188151312249537005388711169062668849792072451525917650710575717729187496527919880549446379176515815498600284862885207691226431084466711299056527911393228053107052532828630624641047509195404691784015979129387995477211405276332725079757205621306041441700279661628437462872305628242315880124745101679754283475117568265683407035084638445673160882182345501229987442686471551457493711650089182131771568775817525411280767633414355748028987758011872561867913608827142582972796585502294445063025878948550641070063180210231455035950343333300355802832542938931200870455363860322059449687026718044100582819509199535064402819301320270364947089628313054031661254003667517142404571987999626649331374313071108225744132414694094834250342622044943999206439262531103863393484540550707363050902144287804317241361804300383322354812697366124870835040078104721795126402577396201925587669065852641477954193066694069936827676703300480689757326787662597393451730600650362803005786551413527545737794712640445726594817870628936318678799450012113081976808975680005763342431558090683667989353064474897929785456736982269793451878923634761984142861834208793723808622544967504164247889352510181346386456615559287599804600921779155947325000279113991495135393885723976781497003459247454245211930980363527146673176273974671697191884206668186213414685014055649892001902792467911431564276308572508203085472478855860098049582672866024978473034449291001620837363378997620244799835224677470712760954629606526935808239735707834225075301715584452075862072494468009105129927965899563956282801667387587644036056467099305774951252194037843466278563746749023248653890014591547037974317591234386184515904537740026513523243283860138958952739218859408231085600795222548211444801322376686387247581313065320660544201338663072515614465798493520944634508290669705935976920505270758618173234220510667589497939239186922159214195991302857828351462808724159187205449950706418529800656352398784014726664198619838812630170335014853288119467986224059405897408680687041622423186614233306751580484607707701771228852380920453540905486210802830239640722005089377643757629940397605448890474009727359830744768018831506376538962762425039468210849499708366589046660810821120310790320082416431948768615943116095110972297396653532889976014027948684641049680090140650677633109656848924945967274170581897273090391776297865318775406751347595848800954191357222079106029205095725439625318984102233588710192651246589113479957618976177139655680578587734328011488653000018418088060666463156918226447687321880308347379023406379846521516210662927814323359007695659895332949030072086173833725579927138500561358032598181564963873881370468927431084570718083113919270599722051931938551471235487431980350340494975692309778929183690824452118982928491984082357078950946027555349051781314454493329231337216030618786604122869450441878579984375657635749020644782241981362575173814012138158125599812320655378456573422700937603933915286478075511331016703044787486682679093836727346082366575238329788715010713155533435436436152297967685092789226617498934778199865084961015178432039720683329910117794884226440422105898697644652190428221511320704107052280600943356646839005229107491644966038063987943588862345230567726691747611539233267971994045224874076544851210570100438456504447487545166738800367107013790387459847959688612683194275295685297430200228219915765217176647734026966736572867983677398397710091783716957256633990574205216677253199426022607529593814665313093491152131775727397514273046987453132533825331778683179667893364377070348337187719514172041210502147639527131759709206411217579480145930674519097429469962015294425814248520871220124480341985903970482731765732396639756670035803756640562340261314563131731213696917393815090837566716751682409428561073195976832229651019213754711322408240210973467114928943587312005435311875046969238793672198575435627327895097181422087452941754385243311878122135499562375433999046224271616157560680803215098930694666297090659188979756992883703278597623471063378149808521239476987974563859624339514213811657496622214417214958543921187697579229133374089560354772343350711856056476077829939066470588492321105717779498964072927500207100460775116205172792864596472961831967085912508282264230965269557851656873302893965690211196456431790620619551670281096031989347487829623155370826979516229938067045638359947799324598817953551489993835968822858751379693704268252214272962221842719118586812617756250221189843086880088253437153784580467745066750464311394535485249057669116947517167875309159584895961854622478111179354833939303881199585755074886318263506689226933842922126498252589938768383716462353871054886487951902251765155338658644944631128549093659741766878408229973518308236962504624915407218154705089711298958488214346349351581108391887981609725411242907373657830376332785650145182452340844630894328696119099843290127937934221516017368619278111065569889599550431552974607412749876274801154383830141650714806648831756226058643801591818948168726155648151613448152233767278279372091962444260383865185629098103254462774155229743955818587001424426647236053222004291233360694857463750411408154196040237082414820687552910588711541930617239294622776255422324982421400529873311414695559324531785156011998967142133394209467166669258644029315642581630800541145782561925150384422185427642979348171483757786641031956545329828248666734751023495885624135580723118272322474586244759353440568175941949300379338957445875545807658928542935156401114897289332285026725499675011443133399129048422955719584913282519082218483187591181307085519383671918918342318090341566459491691052732380935986410833269963264372652440697404930596556359113674755808115516618080722674224857196524461964727989716903569242672259822592213894811569689523727937783698737653449556995896857127372235513684445047373497711122809385496549976882586983025485873148677987776453983655533605943878725539425801911152948032534581721475178021272685869715153501925098579793244671800673968960075985046353381788766793669938270823953488694634653385199223093079474334124698622279684427250604437974883614789153933324400376808325262849915951595313280494505629385376376461596451066060853555181010002731373289138881588995367977691266301574666902447948733996390847227237518762319051531116815097502359994930335429414311229913340663374115688582445157866494817187804077126355642113307102220231047578824201427413701028207245216981739355064178539041967569006613639112173693712716031161871496741757115285171981009856838256502190622827128733717183723888407155986476781149979979982520605024957594812747002889341846501309272736917158605175925796356647326048580416420311718838188273880880362205587897530490118659036721721608028789174064958595540354617436536697732255529930766909785229493044967984099153997979977407280761115781237583600627356664282017873016313740950374370927786347504203567208283536702633429315799292632368581196507332637540566210223897720556275653522233678642016044201573969486982722041364977892164197871742894219572394169364074199465299821945611110164989558585863131061818973235475985053392400823146676171152270462664903665500194564363870126278897265331796817928522658107606417239413166415511348793263342812822392908771883921460267849253600209209094927180785998752914723745536594089417795996768598308315646396026832859285234212752543977767366615171697186059305441139666165707937137923130888644967022824725852555299523508353294759196003159496641202305678126017082054576321663529119135160457706468398487309091359381604991214108475582306476682448846561273089280885706520310472323336215127166461301240971050425003128166319347605420066889577918650487115475493111560709580737417991963697880613498734800184082376224197147164714047554587216275050288612579964575740388907724180808129264122343817923593850377390431157011418171403597520970346405920431685216514033501512360919626502477791013722906291667172735802861381653484199652979847290308945887456888152295340421289974876265551764714692917811014601298678981984587555058061826103849035966541507857011264639045384813324142146129362587921052948807480752751772316885834148398775645400155544160655085427926930102486563736440987637251463786180025811961204534488695106621725299488777998980151388613314964118737369149373676982313314791332679670727589829438642881990690698174582806352008202352165941514211255743289766117026351549225302259509876563394945686489743196673627518273863163203135497262754948398682612005833585137352705568940700531624711504858300110320170204607690884916458606531566596434019874573051530887427163719726459882041656797079703328559428279697104913423261221116596730162927962082441907455359072473992332131824678120669462565711369386747130078334662210954002726802879202917884499643694854663097368012388816426004860930277446445879218478372833200319036976846526856368827946892810917314879073352182834862297667238855782167573845909141308834027669349154274658615982420062012038946965531791684297523269090432565964836744381567702932638118465742770774626340222833531631249345765128759388688631602253346863772045061509216830299920077098845160821492721632557323388031994686770928306663106731699593405305013782676059206907411747352032078030545806424666613299489124751729835730592777844564277168214910324009888199182682420506285739721450446763660175448535340333263605079302641129628392886883161844568092189618298067462262864497215326590068455977216512750364181988843963311375206345091187910390366857184818603667057164790139994842499979307308052966086081687539181979096297936355401474421360284134999303379528866345850041320064184711236742740603457669339942057497524253860958300072398829380562342731341484809981193630464962854033705371794942888637722294705760350102897807311914552521897672618385865714734040608583562731559251833903152448749870412048106529747463175005096313871791102866487547921414009434819150715642747073745932565282918258149237789770161894383756053696740836510844183464441103223204564153138628967413312782442619971297491975463479152388245187133623183701299861244510319848073877726745992830663615481999894050824323323702107781505594100473078508684227354883490838580779609528330713972036389834087789952557986993229442985321478845877042786808755309317935234100158604964244852707299002019699522714206046012558966771541586445226405909433911083877057382070388969770093533199217770811632453204283977550452653127244514026088101812889384756146936689938301416508124931922909184581624873692807321403364926025439596303810314398398723954010674131143427592003595129192456175186614803028673759897132283381238391294816934229051538576660554363937316158662251204463014839753695255873468295214080441416904054824693714837728601198992059002175467581927626668282412826998149626359339456865785307237236797116338416132457052560337728027925077391181943586516588099645872671366993891773100017800044966264978072895929723277929466685605974871404905197430470869591370159311096797893474732616489116549814639477838314045666179348606606202311536080568321671958417415876898674554766828777081608722244512383002402667184158187641014333378125758808159018760170971552716175937147548887665328543105904010028386600784913739688999411826517683475942081997081537638665018805903619666256520798306912610761438740438414999299700357657954175954316523013273005533078063886524445773216197391949056454782021592860211300402567124816700535932188166247400572538033975429176088031739904660270498292029591431205655460001576317383824712091216125993111182235361602740057283934854390526054834490233627099420607726338199722266325452135827259805596540685207376517434479042503540715719686863790534477453319530812802171044189092252405084263766260997343902637048118590668436988307410636762002215164267810731356552692149337153963114476081810042074310753128971846568557536589073378337736461784752894186369992966816824621157222215202426597548632134422477283204691796520684765562028848956174648724638532409061137837236459103582837119233000155353426528055532461662152666344727936926926166194365145127030034050559417762408022769718932633353497074352660088500859675334923387999407732146542352108331386374649831642697804228267202357614665317746508135941144823824672004314513738296697879509312160016141710368162577018888364603222109432545534402611823403309727153928160249934751932683615984165653814627973942139738182457867823597648404248186572060830039888617098728267761746470236769575838238555096105386080450535094050152112340695505384224429744320238432912545190861197656135774170706405073461880232597989173438738880810645046736368937324072425002758539727996688915693944749517980888917858596664715850547832838202711558445375208179122513653581896241091890158438949407338163786343659313349844457575687556091275806915317088613588815992610836538237799111347446886106222301859812307912705824186443916494430043359232790360451747411666465072086107215486786649217095354250682069696918873545663385048116876601901060187042111911031635046957316513250398877062848742309843617782051059378022388332237650910005119972086087232107974017256801108617500704288682799368259504052593136076871479788869913463447300791241904268290483143193685487044712503182569780629098810270547925759487837092992944678405148424054378749887400839995543563296153379710841170152820226043579513751263833467831531308901812089921340003497853593458862914211132586402520235169191830059362015935988697147469453728231947382851139209411992212626306995058035042753869165800388026137636161124397680880398840229586011914268107934366773449890167046311907603355391664731957980748992640147131658992715486640070263815120449995888154327125002432774617970115866727258171083298424106317085527574189940333168155570856412664790393140026300023238495040381032192181136479702551560466508090195608700365317801231348816746299671655152867047230080076412941121573519296391147745046289532206608521544160722553365102936409980096106201189464864960904038056909140355557611844800223732787357137654045515472643102182257809003033165362980500305561470937192891266178650240230163023184112675745557924243734425712281004850520628929762148563554155648090116150009485266827965286801710608667117546006535654071138171783534833840082485746580018430355784758849089356565509245066692126704482543457950822958960481012405886418864829674728507648612624838015548972485037120559698451570745607788608800876109951257417930874718777917468181156038257898375581452605226270353772924341964314687222886057907027495729125827688035943708198359076318776993471115526904950400036966710772745227097270383635533225300318501034505262763305894426506682276951557015927610879087725490175705773821640118396074871029329357745983691552366452924507279658586670449569751561388654504885226063852589387668742288262047747708037001401958145051020039772598580152219895452682661902563094794880491912990687138790233819941079368623856862838476996173416692236700016194087397534448490115523613519496006597761972902230696594456466093020729883640686316046643858891009417345822063972214499157679739847715495542125184943857328322990081130100930244943388825806871682238434738630508699218716570917510160735249876179991713997290445313390247747225768946703784909176924411800850076085413323146941302098485828424730573541600690093438846211949700120145459970026472712595688804230919080667844541847834760706643796200837916627536563128268322997760118531616515787581250944522311632663923575470650318376290417163223063783330781196995744381952556151032376760280034078223483118523932341033009035954003729389840565035511684346880248092672627655990833962225857035680210137991725582748215638359737579549940860947024136518342076638068442236284340187920815225069456462986156874173191434054712069518137540670128983525304207111452232468019288618659269786494868651779377927737758881823413716390010236433503323965715097084318968311015659396329174369946875245273244951749576374489459880362623379239497909384790447728528547502960522683167056579157206517685511429009245329374545552020465453484659235962957769422683545920250886624332276874818755267190917558112633499091405719959337116547213170095392326973791892831238644293045160007181500039285212941449782336728568545636648719845483300156591662128944137879466913626265037829789034609194612700838361584985593555868397654377632984159318892260862325609920651063681838649980270285298457619210889162983459015387001167570541039101200506479318719577214827085450846338899442596393518116685941103829853430333466872026064811103431701269132721670460403372058359915075699544498019188265153007409410184161282171375188949025810466425544164039819016652487725666082591721062154939016933946523331100209085707605194253057601719038495151284071628939917001379266599478057218334854492779417418699369119256631256590692941092680438082413663381121402341869317397510409357022704219446043081090932965382036468518983673611989944218393367215110579978151192237783143441712748434522201484981080046077127057064834038389291726634073567037943513948576128235515632887746266634237438085525544020093937619122176305727136991163388744822135703988558441116912327306508366634709468506889192443018763049010715169670585516821080519650696973094201295184813430355865222856671337321413573772174216864120055893038748010471861654623535005045346196947180821005871900676759831796376114567345817777811874510729679188099969252473724436496179730612388508752213026194600535707032283398853682770353954346838695096041723889348763041968671540522051088360756836799632471372981567824339866759773035971936845755520531220152831014944653113058469857959797755414350797458017184047735812358414670055287030951699394252176663011556849933355546333807869357471378917708770987839326789778697322589049053591808598693466704527803040654934177038507224677860062134859564921722332720425565424369956719679475934139737580404166274058581208189483401233049311225555654804104333561877175179870366536659379010544164968806146776226258474492122156929262676492930067491797864415071110807734858751271090214248324405199661984338144377204826058651123538898020688205160322403533616734024740008204677383382855688228317307154746302715977153006862724208675156742435279020177573185999704438530569665151549594331288159715847592327507356423621707037799677960197871208039701581749897216873189759629774978985829575492001575204187673865780136112284564970614027387066337764411018657410810067489543332902639327552783949567347388966718067442164294804673424094369679335755146547894228143799087826839032053958769188913038737370060079340798395500277880283098114370701134003683961622319071849872908888923755172385440447999906895725505684022660168340064631569372183513146219513609604904821272679041813189547701106704213986516463553855788442225681452079678497015236783621146483395520688362458911949866941529848585825483989764368373569977571694307898465138523203783753657643845029733297576591663841149338747056512846050710562968902042842564793823114666296499709748598314579200995610039149321520531560784434847931080888027816323899227972648501087314281418004117060064472379838665464253450892280198633704841723780330887716966591342521203711091999316299653579642755501397144517627415268915975630656299062329809229393319784018633795852629398667675992605044928974828766633175956070930977598876134415790299230664749359157831638823455390149677233101646233744735994162120690479046779157040815418296867220171223910130102693326254612497054836117484899969074442088993306971544979556883051119069505486616192983193604214519925433299764363522931923526955152837176373503282333599769303442511269047025234638640937700630245028141790500104847908108094896650709455678848362695876845319979481261335721552926791043351700823238893760801465309983722831455020673809455748902873589388023352692373264255851701061759783477663679417012064607261861387691937028983902070430318351903956836948987938060926577843230914557608772415334263335332416459048765786715069102650974321249180761827365743751202554302600739588808646262508830228091904444693758058195519243902994448306111841846525136664241972361639378838541231296289692070596062637968174197531798714336898559955046942005650991449241623901105631259463852782033948396353913091298764457009094190589804862329530379910708130188721175927474890316504313712033659647682341942133924314263322392406330921582403140292341786847813311086605852001586478097250607809509699251269349386739942227520471686082227837501794138729028100507229531653287435144126751301259123967892046654916746939986573548650239232938756510368005963227889970848871949716258614188456907232604292269565759422169631731987199189196556544261249082110293316258126799009442709696621905480599335911567624514603215402680714641377471986762328070967245402813984140642928236891752590138218332117098802401991068436201158007971087042093900586318057496028260765057660745778222591733800258364411002769061244819744772630691419745365501349342179167103657856506179423907722195441773406629365255933771570497823030677814590002536482675741053323347906607275283508158380390127988353862261893110431684768254623885570522720344053143223194184254081468754450676700953100500843438262003813973094541627325905851329293919316443029058601891868008964720900738522102262450228150523358183395659713038453060507611029643575143189426409536138829656191564467675279465211285961549440906281130876397664836966350848550697413098640145172031337840915492192262391821235980055087219837141252797069850772143721072915875028807839830631834972344869354207545558257009780242888024368168936849349092616762092080332919927406957753017572347850745956977236164120016308463703086667286794020469082369030001357065841402972139364144611098600956748238191031837528237262768660513212944468767860133225165345466843675712692143991003936335114886177574590755897046226561437898327607192262025082738349592357305910467555569862527498743359009623046814998914415443310427066120563493363881403969438868319216772592652973592597384323216276985525346850758147886267344968906260861588656350155331523137589423072724036234259217530099861088372125395977284377806221030115546028400950187806177493662068708363208635328115169888620651240777716643215454157810529186592120533058537974025074499186042623748693619474024891918299038633639751644989085382471977454593416491824954684050682768341278937700574193017133214819933580025147585221894314047777212465560499637665282688393754335809251284927151860516658699231691046386788579276583749837364486566418239267966564325750612828490457079926146186953505542039639226093561160001134061473307961525544841957602318453835379832233947083883508490516443687181663151294228776427459070321978026229305407276894680895077484007602469815545789449589739999220169544074762701020749991485691855462936578820377899670398814034961018964705848172112292795071644156059762265529662419744168614148734836112828056444899963889939980144628327093083841570427224196292187866561939215543817222471125231346285027021627005539329776960102841493596643042768548897770166801788457678902670343125854599283184473183971627757320598883593445381760065410770765321393809258440389210270907182941354088608912180619597503363326023649487796471567711803943452306338755659689854755576568871828787115801981554985697689657301376458146905140377997989826010253520964117812333885125646235462716746942620929862338485898437109252255514144281293271840634279113619370011838945239036275697497352236638509440225964075632399122092018884088131269468108456579709314137654931611953001931866117625662154114421782705799510458913154344175960768882257454979698826112174012777010877927581210435352466997772438917676053891891677537205196805808361016356984975086013416216411058840651741482538109507576011572861099500600637902732345672415755705065607699201996321126675175882794091016533536574276694593831698075735517877495037070305755452701749377352185910588304720810430321632566624101424534642535003078381072889214402273354805561674528956220022890021323345142499437064124192739306123872600713416703646217971563151213658047596811161392776481984459269771855321297636573956650332231323716909056138450496961741020581278605721717483793546226579395699918475598388972575350303842545442350202076152455685583894792179310338283492286562338858003780583210301138466294917667812003705351513570177299485627847015557666666782598179687961569690935197991116240114511837322433499988186573268320103541677959575593876044257263035481733377749329045816698721159518157167506888673718053871051545722867080337679568615727077815254999902274235115075516077677416308275576163264199003590397591968167987349794742687887461569110784719249944188250454231288183416254427049644956992496862629541145102129545126647015057195765142394553924811210700999043711156195033154597012272947138654537096419257283233352544099707284567351456403750288952336946403128463286008931922631727845748009763424097233998539467202769212425609442969967154749411369556865401871118144835674247886156727719883025964214485667812408947337201179415501636482540798712824498499156222451512932714674513275429749386606250562527965061167872109173661364332930798653644780209455621084614576519146313544402237840377556795485944817160943200308604282004132290715498601441966070898621278809812817712531657276716684295895038350885003834813583848831398931735745767698452107154873014983349828348277630671086071239722890880691497296835895195824255127693008705221583222779862005844861690546142788315229064211624628006202503210331645434980654237033128494112577719554064096468907172258510254502596253717635931177300181675275479968580848040698822166034074959651957994311154564252995084890905967068319139095335830973347737470505490444479521332825065364825742673117338597702076949148135503087844846575509481754505844198435167586402839823340463316094932540789217596026236197596716399232509297583870708526018196761286606850302896537953366020368676845422606429450853997850405840541235616313748763625612804340605132584752170058066104790845493493013205808056390369001763363745423444913773945077954473906570340507484064092226724767335048170055623858388683982875491456173544537191876325831221174317310502212281732557583156481918464682982350861088312917705539668035136188175862474591790304311281438098715711844974218502332200640663501306498305150810630938854924019984652173513283898330207314537727814080659151658712452357359747637297731337078121866525988559233825893025018135898774346443485258506305482028318950111377868559290211847526302399894784372554421155822536166672104878952673846881942328593327923821098187024748229659183269473860392769713316434489637166202666817975058743041065160361102950051457251002455821076100291832014942360512099614995679225539033245067499661187919880541725529891992261167612279885433954308386486799918352486694776815418247068447598263875843842704841601216025527646526740851111703714247099745279412958308724166099198972344275407544926716087740846835556217189193230310753034325907786969443798220546353577841475656827455739336859348463463207947707887969703006456714726226892479467283230856212407954861991696660612971652429962595700795845054169324855190060648618293717274129513914148921184731144538106274575718881935523157215808120988721882922189983684728392564970771314107557179585002886355214534348229708084312906077279267916778978152091668379442407152457902086427271151343959491904337405277285448829916409047197009092569003908920336835176031873229868579396230849041980528795039067180395816791282928510748790669175022212524365846900044652373806438890311157085445393288201487380953529133289295772204099120527082218514485486461350564073406889500349122388870934804529817993251087896839383410821234751081536901816302284955557105800496214754311320619926157415009163186855379813481653479382792080821823024774791190863530515174677603145102780237478573457150353537839187444430031721527923230678321109622068319520904643932986024116027361724455103462335788991882054256476697017783880247197038258203740302675537229788834110173314693991142540499629786452786176704856672966848686634053123806197496882717290948114875515938072202455646261904111871594680122476667192495918332601795863163845987115677903031386230702880446133223294025835465446739669322622509718067628093412053625050759347489968800804679577525642062955251142779538195959345399772968667880580999854067543764474376368125243584973369845402677014757126094202314616396553037759791963786110090014069681663120781869660589450585074749504750263687221122840511856279116290433949499429542117049419209496647178182702758380555594789779966018906367069079163854966524826915792061002462694213517059403519174475688986639867672587188309324900485524222281584307412940274264242153685565463062312714320017360853483448976074518541706450269058518284317879061633874900281297824655013054837114559962401534496947160893185880720627629293842752325798609534656904935861985625336128585080172881714062136379152389450121771592223700446512675238060722723957510160494765373146086200362739266182636122149411851529242360663112810009860551472879319771015528367017681539443303542986549788717036591891059001969592608079358018167832007570694800259083409163498232561003457946545266737313161476891165307230108605287775175929303381279136975076574511071017105588400523791594570374254004110846038034992837724385351588659327716116475378132861070688170189614525696825784257675623625301705118768807655373817817893053961805747995419296625648449773819094353929095118057831038245471388027507125404067372741758190504900023668656799355815166359142320519795950438478846349863333161027547535654765786526956378945254949130431406545908074485010667925095944376892091199204075092829589024242181951960281313501822256479556087255551030633039287510281085855236478533600183461697900069442486282957123294298960630773257136481539338794945716375320644973743018790494327991686798260364478309859898839131983641032424509743239340357413866845000833418978220628757900103037525156941416847797535324448228547431959897687393150591098583084077905970620785426599379715528278856442392457989636565568317615483324107770696280078348570178607842197279525896582541010622345273711193378589550756998707606650915730917769217395676896579069660304931431644676856230706725410394428166143482734475421308153346822361068656104974389946680639152173673082576640769258443392098633452301811458814841374984732878936216200475556745670296425180891685409423884631681498717585687471164827729768220066654558366893829673452502682812054459015573583724486754335191206224388393103556052824376183088772005814411354662290996444510771341164002083254048006078311302417053361203141105783348319448414677969550592801653720284296092386874706659957738990900772724119368860724131011219995077797890122052170372571910145485638320264432709178198907269911471766983462096147015666601294600266724280364185013824701466804181024166460215237760616043235461637929006189381511325171473075779416843803744201180832263320265210450673001419192600848048808620981721227732463001428511617220539832876724212519040843457357326784256499802806940700113438931705456079242728348867284409860249270246604351765252829401343889395593736945559443173054545411126746006323039150807328758935427347572933502198915029727112983937443298635994257760798426648890613273830198537897362249761495630420533796490344921964303494272129026226164631925343978914247099050379790444299892065538825695137160652516230211612626696774459350480376208949623013128310405533570452543177123420868762164593838546299600748468231908026913619372896811276603880951229379915454263599576101490311195824011402603222220514314908225723034855782767569086821755553792666381970509586469330921571009888668895896702456994158562648604863682075280896162438259824624152294260636637237346648411200297846232770708585871801284510250060912959919394302767737191246923113647457695843495723516244733395315719039284874191162649360110620926343127757241925513903327418322835342181775053507186372074175877562734225102371617212603303466067559656685312729726921489535191023626927970790119451402942038855152587555607736432404196073919212794624414614005983585790026682678604782907693287971204090345111014089526780162388764087587072053462787696088619092319013037959368761190816985001934269393143677572587203952752474513803871657426233084258969985233497764401409156727967194903359759191046033099655528351681210862454572431385382104285322598948368810712607515859488621358166917271964309787052704080683897708297185901139293278521389178842569001359088166269134147258859203413339948123442625371728116591258026358335300196795750737395356595688608004991446576023552438994443724807082796081185920436635718742542111916634953838324153092318419759907189035605438568546144587919587426039502226095313161946463170090317458424357467688864573310618888778411002478702677137850546020444740470127733794696186489262176892148462802638651692677886514227678940188240737997299013726425656736820292132194612558094372051155785466732291810779560584965781616411466459045766837635348796417039747059268143750797435687250546157467436180845371435574192898004396877003511375669069699408294972403916692246186324471281267890815018749089388174349470311390060523826184208806522611284963131413343953514718618128881909149085583638632190278733622107114820963166851345665363690969725732994232096983931302265278792370133344522761191418822840602701976526630857963678985341681991180372577044059085381763599306134718121477063839296455754149771587248644415705283933827687721945762508541719423469209581039647091150107691017270448632977951891941054010000528282811141231587096024713886224296686782986697207172902568331881499589016060338616496182928334203303974675848917850954952231361242918189718224776048550267183563404083148134644995898690491411420701181171246703540217787634166554699434870986391046632042085105382702050319064875219324216683366988463250870623999082358969703566743623977511973765697698900321181290507468537447541405306483734659188497744794579059280216457529560089756340427013387198421097120710463497591650386932139191462229847908494408941396841639501682592946616532046666214966328034105755812525159083834250569777434637038134908742765340613230773510452911088271650291447429994148459622318444774165592416515439231566695372646426846207234975134951365405727066834834172188838677808790145153063657837711179078883445309630173499229318165154035951933806113732131592042648132302771405244670510304476521684235424834025400274950331211529045155410980977045572189158593021006117542474635712485498417485955205613879737756791446038202600165344280088294252404500948987645743619880169877366736042151578568457005702715372637365557383445323616740435975806078251299586045875484187665373403085459073128759708732209003199850966149908945229704837586632223879782135125569603630597298794426297260587125194646027747398337480668092109640716115786709421665005237790086829926547712037763035844734648521479486240727031356383687184044254274600446709531948824363638448615102990852211591008599327238516266770192895709236983663182669149958369240016293444831486483985141229647975221033530425992452483790872550771535041402821190266717584429996113037185598092195642483971958225484611487967508250948261915369901937841850342467568565747168477012774375814651981007483595247509678898450288457003277911565451958918807612284254055314864865933139581002549226525945653453167987437356677873448363437428713060605146470102138683817025488147515076731912631955263509741602949587370802746549216754317235419280766348228449823102365954752070348638624294993864089421921986122223754289474671686909608636557437180857193070749058840635141906102286687732550641594720906760364365479625118601460517566281513906381601071830892591685281215731611703443446641012783414922645622884852852308208477097825568844460079454332079861840723110525684484962985511358348829644803052283485350673496868513171060162709159468945216849707524796881346533972627710717939025450631026491447238858001293990387088441262559293079848009587120714996602431130673343649001548210640392075997411766095184142709550014395050033179383275051646368395639867002796124555486751385726667624323542607441526271304069778800154776932254620681171207285875715841483014169642907864359980013238062525721552866146965886423941221234994326129047364492382462717194181896631665671172411381482769726674111358369352319533708236917456551062489067509165969941760156888450286052017402460920615949549557488397141965392652665359083118013961335512603931476863972869452926145219070895121998784279600442389121568306739900365692021108070268195614145956382874965183501721141618927956026634962878303934609523902144475638420311981043668045329030255830976897748300950400262454417932233661000906178006775035251630653536230782026786542957715011444482618252490778972478056654083598674090083200331408098732531917561835291730243781122122116773522800521709962269679877751611750229834688437595123990137261886178999075014075043162851479360972846073412456241273867478761049960669718221249915535440802968132588500278242406993087171295825922537555635008324828098126775825804832494651340699722888351594833553217326779969901631652216943972188691673644662104157519125900966198839533062068510873689953105125252815674183323069287228653229387841643360565104816996879619407621276184336802456931020218809920500045056286433058171748175351010019821261839443166776382877876507669258023873843200407165631327853000077828468547212432363245800362186996020406942418165269325727373714980985333022438799116583437631249226284736413947054385673068355179230316186767423775074857516298928482556681663355795582735623789581606758220888844770563518591608607300393993568581331954623102003944907197825974286346662798467502694097734970868151055240984593707126632401278216710028296548965530460869039718777328500175310456608732174157860404678803298729048053068410738467904039522414407488507032311049870467833913799989947223282673988029819323433820306268005327877948282452745009922393535621679204073234972973035544393886320488272552354240229572534896841664735042640927475990958239940922190634642520808777245924419997760833591026516918408177170530849941460732189846825082558875281200068361290153690930869893093099137628092031153946869388578540074116676466308649555606509545997537818419164286430804319424292409061732722867605052338485675769152089283926255619547158087501434340236562012187939985744466779985825681323272759012546273637154183436078525049519451805829375992639209884385986178658313610316548844980400810230136956573136673985522345027841614285075158840206984953635407624828694147952062360867882457482934446051147699547154247568380190422385401938620480511669420075961585408664213132747216479298486627932065712033884818976130413062483760883754571030361496748856791284702361636424036426641643282885524676094463567005194538294749335166151325136981917668984076420366496870178256295941510786056891087082864267179533451882443905065681113779272172831718794858433918600581011055901324808474656913977333187974884043041791614605856086940604450373365932275969686380869236463688038041602877284062322752909448200125328534145941287816411319247944892744959237696761482347396284336567854861334943360234192549406149490861164895681327795527920414599570789891942914718076680302078481529449656118014068129450712546042732840108033944800610119600926760959388984985286530361816735212167696500716791419200487767580352382598570329753369131427533424198945196079589598421854925586777004689379954618784790195221508585881709186857749130607430812683423514605892448741131126827096013982702310038552910771101154081693263048230896197522445479049533707649935268065316112155406155542315511557890940823664608700313933170663191680298107600545268128647392018090531454760111682487302538083836995495418333230064481256087347275261091955911310038547008974050797639653081111361917539009378908557459730228824673045019996510156007092674766569634283630029534520696602464584121285986954176374689827305207376193319207463054190720200619325911964532896708024947675784384842949646299523210493588267078730159722274536992863479995253046219646955187269801777055668862221937312991765146292317946160364065372948340182716207547742921462002019214452506657956065676082087216848688036903594534561506355616860352001213686343052042994638688958347268107150389740480247951916176076004490958079347782702235000852180947193208347177705289238059717528568608387766586140662688323409143905314607668661769119130961124608113211234146205519811382628321741207000534569467212596068785604035185949570171635893543303154590538174946779524912213466818897646449712850142287587897927688784019228830938007007451672912928805131993675140062497522309088607824859903158766940316790152445440488970716099271963525753016531889400858476609858003679867805013078685699287542477383917290897700085570125621030505316867292884444920306690916043942732796549706552213132658738819418962808020340922884725825291675903699659568699244816360512707912363496332705069771190736205738702128704185766056400236076461286132144890860996033349264665549462759207384484395888540586361920232066529084983519005667401209710230281141474030454626142083074382276117665798256537491477615772996295806764831017837024905070919992926598597947040360496938015048500724937378301588262175634197534913299374751914436213763929245303877717744793376994000890411454175076231070475361117280247951071062764297699863131622184475802701061259949775253796972988440390756952290328299826660841663001250161247970061399659009159506073138127569171534516874528375684693917416491755455372348342713087779528407594800240547864842939795571696367212216566188462773917278347592572445152743261911667144187724647699041859065700578598406770803785328022153629623606129846516338403805231760116572453542375533148905838891173487135346316667593235463292236699154363017566772274156124070997801606899650777772982825139162756268565420632250142246435004033076083494677240148066443875131838941767269405418211631186316113136801244884433809164016197458395558284731216385846147961009282839922098513108839848023122279160065107474978020432426244037042339904791377351681241718929742894090174134043048249082835283067937172223168155938531179144036149135593960928762928966816123843310515444619198533461401473733985699612497579484796010937666114071966896201222773279033211685290686044605796738394464342018480183396455615011179433032488226808705696406964402501958260681389784193221146393331913653107043418863277544795679969005679244580854574788725295308475849154730945193697361422453264678547744316000111074093770701036354067290702460626596861659044634058566958788048890776052652242747532484373354453114693367370205929045193762990559581397743884246454552738722529965320492403116614867510427892720373083833465689460009200152831921821270601580510248754321380529335730263850974082260496284413621759965692182668401607401054645089131249524083002406785304896833260782208857305786777009088644487532178526716836119299734237290450583610054989316152344023270311012619381149823984232302650129419080347164721644359311616981594474567932056638973117704674885826181493791565484496732584653404508642916460075478693210154565467551940640358095330286831062199027683673280907276098646500638792855402475627567085954074856141880137008334389196582568339585708466855387627241282204637485387129474882396397657457455803952096796160074061326906155281908422228614201880223095076942458780443355629741262131783570671280533399537911376433112022889711401109908964475364093023614676466749649586239397027581534643466151215044801114494394679199486559224406531957750233216300576216226422352312614161154853503512071277740541571730327045811502032640588286231226457180741254839518723838665239703456087801624270127798027058311916759896599943409379148090646282327720760677578328839480094945161092525270115058407893172468117023958879577073789669179443433087611141526257999462847658429863509193290335696292223860516661622719422308592291482140856250160370957454627028708916841904650668700387302219340198535152903527711825712684250532219666003034855661182536963661388264955213676742377873325929785530472481266538044401648265174902674555913294475281645972385578850524911097479655502259269684978580102282248023610502939886543020379529995786655921867527105065338261916095219700004990176046370620895063282141596156276486211124641251723669852177356480446630181539304300431563545898120504335357159268973848183699161340811222847485630706676592226152966396471432332574211809117510810751086495188720680077579249766580819139158789162558104005605877085400208976086787551034554225453847464806363779555813615381246401552641954915339453220611213333692456593364765857219279271106090000871028888873040524580360236373480416295598211117534154549217226038202077012683747793605461485877798722727421838919902326239450016270095612135169169391109123603436635226845055478395439777620137473332334003181129827430957706834208501753812868860648461719583491262398826362960807485377354060142101539005454116063610885015151832165537179786161619996566529476549857213690582770194084445450940970684796011287218180840322257222562360526890349593477500702470621926100168583416221874583934803643091148920340924766874652115706809108145276015720750764000712703598238807905404423810361872630153067601960577211423866082150000297682821047198949392309652291509299275654049523098135598992664100057403171593356738825963541452179433304080932297709266174094847142359695690989217801435279644860725172151479801838897867263630476522560476486006158236649987965337400729424582457634577430819627624097981104190578011456872048714355900964442845522883046574708740705467656608202902398160209550772810092477674939181513992536981676256398978125113225372516025982645434880741888280267792146396853419314734920257045458313736037865217869843128710035672833834356341585046204996214208647770264959431652003985921946244648728039934986408421824953427083294810667168437371057382763554794693785125712164282613760155718214230560957588029246146558539668776793553766845110628128594355168363301207025887941648599928025205715797158160188904877276921935290463303928644854736120054773779062529794179491599688925569881532440749315945330295441010511214344162572295351876008328131520885125811281009554749489510161425970009009192925272016468770609144585162057604607643376134634042557302817987108766606725054207291607968988330288055192115271331336712348295018077346321968934004380818550467745772222242444471305619954104200489619509552662071001268339200844689820710417175145456300991468188589789626839781548741963979464732359269968703485373129939538930700068185349602972813786054488892226323481933488046131716599396439969494663925212633638617571199279228983308921642765195998702660288232446534991286810264032444920549401133292094528305399835856447076551502819820492123219811585469750763077073902531281079147138471798000863400305377116651631436933618885908156608861906667280939413069923608019188040163243198342521112772161241177395965413631027527499876865040725358916288243571198251901245761392093523867959411907448595769450947008412208752903945185795583919222393135031716172322156094734644437005387234983876632429371410551632328556568124356156672350107980828528546808527548869331063822389909441283940565957833210866723001074311735451539499568946331771249578716926602397321932488872213324523121985340699341307806230506069404468422262814530442929637807446138416999289179182823885367053037276109773099169689422460627762454021587712023082860276518299284587274062249869720846645641759768354840846360589454818109540056284934405336979925602126321507213011840408056848618697631450225344593533729221819643910696875360376146426860854222371698729037745901739294040345606845601306029828575730351970453829887036999098798543272315535878995145380575306672758381159090541591382676492309441401797328765201473011677950473483509389139527960619554384545164060952311597842199919132223594876935329552366079275337597701418408482556451497086016368509258887769782636695231486765914018037132625181883311174888585766838320368769305796728442373058334097390388314766594731224035293692616846858754322566140399030361906069715722361026054504474065673967079580164162736200659637123938983136307784796598888126756971604159093519742653354067666829557917581806576908161732598510572520963392068777467977091672844074567549236010864349877228917879523371630852222496519094002442343044809422757317242624885134866692274437012873621956014777167024041001375307341402094592307290727357319230637504402876662032809425601292310138839448605658291115276149561807711519555759091364177337589057355520658262744965308821365869294876953974783688834824450652255869468917449259853745482999078505425204891958515191921867065179507984445648461846339935260652849814374418805266846913616074835969613080009451689593331788077835054652725111166520942100201688743845209521619591919905106400614449558226984419155415581232805896024512773003317462620324942968113705754892280555667967920604708230740316501949268069043760778136519625044345868692257973903858852999790245258457779713900476682582887492646156749455138855696027881220386150522225982534825726309127075725251299985935511577179413292541273421621234833800147389313384315436429268611378829242800479297631452082865533432597248686891061018065218597188195827089476079960212323777798677749073525089861982119078717619175231159920861534410293962768831414127800470084243214516758835544118332597545184087164672023231137551793956183927616304048476540620182373737076873469849971827517969193628437394715344899517789364432229527423461773084360263809037617560796048672115717117316440424361054331755491708812146842009668981420362491188579572119966037464356192724255301232956276445236025336450619457369047964560807382470289817588660145161381493066975266615958907526289408622589346280598996360861999263639739246407879578088530365296515535145069061942248119107305775454898252613582228086928860167744922011482071492512416931405556798532028159502711151882309558791389418589590464339415466117282638401693250332626776128972907559612595235172658041301787113671706533360345653218252681350467677253087333689984977084159594912494344268582947690820823709031022850288258266532379955741541221896054751783105785502444699227040932952116198919200253840957328537364745363128019415119706209188078001295967321072186336177503591536402358869027421369699226717895578537436520644329987944243095053116190889192650858271298868474414372253011403628852514558467455193536737497727236410077646605484446328247671711436522554474386157121588259571494216860228073719636260926241376413553231544701198218687110923714515779867011454646866027630199643529500283491267457137152837550280802792407665609487884222128633724340485440733711222087834224676082341459681249751166398252626776985841253289528223065357235040927599760216349418685928068596548004749946065852741562017579452094846002646028393264223344968579849183449551706011702303428639626944353730630442031953456851786999487423457385262371628110844223356217243625395579337411903476019522312951878869486881366876188795599711099056262062381242071446807674840100122368883400598508440802171350726171479938542315935280044597376314689803511310339435203184804524832667817660192838529702336920059627716744310715066732080803626041323675452485675861842775699546410632939747899992096853856212892408046839511809059685535781523552988735818475621098743503685061801735740874792989524810008116873765894662493767517644343964606108448242289990944025480858861714140637338183477242487262181477813688430790218171782232124396406162287124028337969563770768973987130057150948215357648715064213379406566431850157048803038120909454889109170246195663409563742390594690423822090679161673596672629870284261600523389010140760506885868967050689452792780165281038904627694996300491241678117143708969058180708095638887118822943020912531926723671892636945042204647719875114700056267002821280824427839345134189747082490945182544039938328669265287538307156893263463559672132709777466001408128517156528659399870663904365254741142984329474870168765156897652685783637969715145635848305411868682779391043154785564711325916972543709220943179820377213862139620517840416745949498224075894090416671914559015680483713414052940389311169511799670869175764360722844166288471203169309587968174332701272643414337711402928732295613222908122006711943672307790376548715039444454488833033211604079118735797428577881881271291914514805499061378857437592559243597509230348095949878424695023218919091718812252660362347630456338743671555386816847782310066035932301999978249839889857106588206399534810288590344497728051177168641938627433249608680367596090686713806957412205137711645825559130533337600657092968685914390680906263895295878345740580546174850480153775441732288258893095682643175686418705975919955515746159219120765595012873149325708410535009323321723199937405970290245744753982310584422960780352670536152195952361565914080560679199754640136170636229072116624192813754733503201679676053541020606181172029304816211764403020828815327560916868853103541261459313607875010478575817742628300281832145548990014422419402653589536526432163404168710486546622716923494888472123003731697062759146954006692131229519310819284789660184148830264021526628672801842794075432277849353068891838466990981393766767818291378440036477138149943268215244097692816176879294833164335053991221497546463331385250382001331369207443477524715562805372574300276112500794256209448687172050209712280145010519280226937369503067044222805376100461588480771819889498588900215023362838818324831609839929920931254850035398076990186076302450688697546172972968460626326158292375689148019468760175918242842086951466424994683228155909731945961600208325397967820735945115695497895781684351302372514533398905676635995938008216341329423390635915781641075267865543750057222568288938686021571679871486569914220820872403834391270224866868751256585917393332932697053007629654902643513214201494012512432169101665234920046107454535006568414744633259682641358162476368052872905856336878849643052218465247502147288895120524781517702775190696652651093320000019929306919704834866712367367478665489035868855055966167664176282290516946091490613373759951767816330671493235211064766090966479175375729699076660524881561486244119945470243311297328742963906081646305855507920627179289382394190730151868007144160511110948406441783605362089080138982811800099469386831066808422491599463405892462480208162523930410302816427578135411838489882323955339606943720874979594452192557500700700329822833523298741430168694334233055836442334615894474265463842333399675564021192671978586551221105023536396223230311352486025592639808052245049020715447227879092424311786897204477655084947246999274052713833311799865296875464603997879317805094196906364591166353761158787613221413923300008608734480109922455157470182652433944770443437956535374969135074666138286788648482310525092540799008590886352273596295614306598391529309517618821009745047986191726558457509736638932409771650217480472600915127346707460848792894910945330305542848513062113108231473800112227063324350539851370087061988444362246397862321017001403495768341232599782755993987720474145998629768860604037854394251010710036794778743440764190539681735476081451878784656973798196655536470444458933809061090842198359558583039369799734649262491330262763103382659404182480849287659144074512714268646484255454243780342228626306238137987139542791281010489356375703325759387991026594624682826792903257059276952412461453870295154166657359047080393015352821217826315911185849060543330888690009791491640997722316914264522529726670146998690362670847123959088205784434102490997930056292417640777450423382428110325230573740280862207859235018529933457399367011564565098109901100053677738907308574924872267804830661299750419350486634613582869460238093763332085189596149602135742267460562006359603026302150479522108600595714239113608329576798548958036505644629786764443853837519490543730398008723397037124267944536888251061378127502482313377687672152087419799779302348479716323268843463162491520476548540706235264371804245936855801011606291129567205258911943082644600242785355440684270707441801805838910251575615947358252517833382459855631360114328622348861041752704943585556096790357913310327139086874039687506119988989728750371010380284126292937373193539290720126750709264735910654600540545959324042106814408267689741409628823755079384823072521395221880742676762920464614051087111244356858063191284130731497111531426964899962913959602846293798246277818755489157045719191704110577293139401183701434027411872929101824662404534194242718707140416118197058414791615399536226071742558748254549571253572355186949205050239717805967933524157532475137056666241161594466745242548263997800532912370745189172073364255604996268042919096720979599491194021471587965407331523344607864109659474014525479832343758384293832212048186281549287033885536462388456390328775306250757324295981510815650933943187481356499973426596953696116533950588508593815620204422788712790641977533585216111049949002746304354821855268680547008973193474116390145682611959224264980074669190458505822499452684087166657811962818946235533578701109110377130428501831096888017706232770708694080159774124245063992243822498279731113537713349821682425656171869536125524377150072276699128258724132088105785475788482841775126730785282478549116140731889301151706159743933730100642817677116425076490882423479778168496749128373227479215882063565013320650994571118053660238051248986581197910854028802895814501068896498987788816282532932459055946220191872830301508679264811276492410216987950064470111896177988734319356312482246837221172960153503926111072633440037056999229587557965133964872457875662756937760910226127511436788485072787297920159327133814251533969666036902721379489604767701732616390079144199118260494254485503870112570544711774647465743230143725470257570788540226296561526741233529223377736144980379784691369056014627335237600415569240812000684599492455398669934808576475326357357397797817022022979770900820785464664893301177984808388730651557307379486186238686574143812383411041964817306621938766935205844397315890828502513165577346654265962041081371629717517825824104269307115683511832858271663971013699937424352903584597380773911830793256370638745214127908533292264386310713097211009266307374368499461983252278049660045918722921539388561435033562901519092942531105510157057659209964424209826367247213868676357705083026143978703756246348246882358008157175845776027955401852608928385420327188659950456612266161894705946288020329058962364437440196857074426284487512305632541342567847256316648386337181975036190799365368023679186224378265523204565484798074930067066777367918518294898570877805948144770653603273780578396927784842409057173389365767828850729347811470913735537858503199436041364714539679123419692379452316731296044099004049060331379465721240879494913815345942249139682417258585441480740808236994705719118138195266519752934935457193331011098910327311046767406760736893008465350224888787703300948334857485233618985486190118517608292458938817737768038297219404978780600856781347100930274419509962901829641986890852025797558051612294018122453881202593150007894737493199704705218737719645620070045481538125223742564416504948969775961981855479612667397465339852157197878612636906554299947051354576381576099996087446805365028996789497658979702504406349476333632600580680597222722404137379215280159656334874454990786808859268907854414266428139570718974147321641907384107414232822083572320713821783979052667147772975423475552282922045750888264044051578165165214926486638654657493118828663437204656204087719080865241882321538319223748105367329132243078544796439000456159252189187342562353977634125790496629917095307383051107203843660801235344695329110598577159091216535533191977871944741044527711359263396287864191053511723863520824494179786693222586587474334108554032252383794440996892143201448465336268920577457522812227011114445505449055364220876361204999666895023380538148327366507822095080129414301224689829850951644795714008804871331274193215212768881823774388726958619716946540279072627593409157553392544566416138314957000873608830183082084665229037233156383386349287696464183645537592343186141271920960310545197026859626347885940589734885241481284266561919457808010404127033179412444432411255340627434881405565133833698079091577778598921891972155817129964911410973988332446387700423231656832780639161361002304031009477606543253224840080360652264499320357721852340869691996929228592969585270159668145992204555207402576493243562587434288280620298651445815321278217752369312014736915978371915644650758528798356510395782983336377049640118801173876467229096053847167697775363382496479927212652052398710649211279517303939753295226670024584556218619483859344278107827992772987774876343993821698087507251724398128400341732141614891246055418568562179210022296611370480184549696605616247620459914525288612972149616006436033780411724598806644943683754820768894717590695621608541211681181865127249355716615547467354223938351303597467739305914868413749069225896598012316558658703148828580189538016237619389058227165720252141186815541449275621729919023244212746900510420728894683003993841283952134414572093729630674400765110941902343757646053453721377326262617320096123806704458286981919318036235561708742387702160655328543008756871767939110229214934391176901883475582896851809088527214914180112678056402251062266343054823903892699199191229066925110513144858613882287902650728508420478909941199795433259473191591009456766779752618012394539009188914859562021376125220354500107687226078077945700666247232547965577014004402545824828560239830946126540206039743401471674617766498969137423987419400424784514827670492498521771890015683788450067377249070251649709634013351330133558950051994234493593736559397680241498007001939591288043069104073783357915512896171809509054120763512794294606538934048689571208947867420413916153264214079624036842484549380553302924431468733972800317506864290387977071039298158517643472692549239399492393076306496441629964980339279335454810193577772989732845083589616166790990687141977478221339284485743573172807322577395506258381196516018271242446077055176880231247144271928673049166663953579704204442131264794655612900516169411984298601015340081259940798680895462295674101147568694999773382774988433032643572299814218609980237940772170945482543867866047453717712475802595476748051885038358418444994285134394392808947481339148252852579435368393297561332784122332997239698440273053198338191104325883988914330220215757429760108463141097521470309117803901019912713293137915658594804943626550749300449232259565680455888215340230513627182699491455094158696724705762985382542226849830431628829319960538668422592617694497323340744914530788155783329135041972287533504010622368170948382945213989828509755888580797577408716520950946216491139795349595937939497235816485811612598597711469751807118434711037845221937628915080018601826788466449294557040169082393523741739794118907788825004946537285578822607670482277346514185095976344465897240382972330279623770027099526073699398092363892934378642853760211661350726089236125292911758300786494545582411971919434685902512022519992587040767233797484714089874969183512542260096933388363829565015612647934950803606205449652380551088319076725568970915040069299275233315162976566158992224159061463033801535973915241135940059691766191908842900096317772879665372360033785122545210956107778517109867148417207605358428572896181613386488925404423582530025035590936459159202155157996588718486508556819530988403187680890555548411234048425773094911558843616496441369530129565182828103013833312229344326648709839999420254032693013236305152890191730672633057662533479076919359012457253649076949547059166693107294428088461976770184849459956524745545664665895760156632867016535681804306866072202100915011877784570958791416542847974521861926199000303358644351628330901864948656036419058886296254527145806150111262687593186915698189508045724222205985600557583411087349407740928202987809445688419595432030103439648921981209916666772683566736732899891165237014640672547061588519175666317365328909581778087243302130656733905380145021045847751308110487315766155604082030246319027608184603835847569827898759697451523182068937766614803575262680443559544612287503972188206002189970377394150200173269884513889194674447972727917063014058527354867008349397609253458884238968553918396818419855663179347789095408542275246637461850344123193838781012366890131535846051956440314441382579580471098685745099745914027936156460012504272800611347472166099732205774868796600374968465662469254139604565924608278953647287259719538258728419928209889707562621534544127674081219362879983910695876009093478787487935979738300242020054706272017578471584140886645288830335668132699651957256958555862059442064397788978453857359539096025544513917061195537776287955266915359172446829835495227038968426410991655844428953595074140467044353003508747890047742469798579960379524127351373585578981468060249902396009141326899917071722997944360949457103266663544755086455040467636533717051187220142413102193871160574603645379537420662039213236759493408551191059494608501600195654117952073920654771895890679262582410246752103567655833846192953094895507051700743514007141690803303610501382057116269295564934364502016487280260412982267459333932328598849035799947855721027123802266465891726730867305918655187648381105604184593250404054956282230029585229920394564381775543675191298211308802392167241693897932258638013806439774643284204997740285771004928821104000200621724812803102840143899161307987837589294931805066520195114871184502532674903820036522259728081723395913928462842065737288148888524072289079193377773411898577708815325597729829297491658428547639160959452238050152250791503199674317784128062779961122817053416811347409468779331125311634589295011446748924544819494619658763567141817644105171372597739628131161720839577011065970920295734177008348893383433848372452565677609530610253778007972839662584447681838292100717583104881628025792219223440321615319028713168382633372719907964286281064635487870790805931509015856586537595433874189131921587194769103292347231565084040122182535751318280866305056778712070492511086170510685468721408293287849315364998818534219234590093266855179142717486639829268853657381787187897495938434460776445882497876343846266169210921540692484570792156706053524602242574595635935119710871284757688488257323888748700803222798239078679964684052991396272470240981537523096248941944759744254770421304604212660026161470901021699956594048918761494656613814317373050847342268199140341465029927317500396139963038152455216054501231389309783256879110336176868117556900209347134361683961185044898013755526810032482844845196847542325336355862930473474908370122194387475871515476595070960057636090214185708567764935743585760427522153104451188976472974784724889908464329930664756954483080052408559724216779515872004586341453843411907469898768390467623814871710906224665292773616494099549324719492952188163916621345175254320478887055201020036018073071523890886953792312202107081906546827624305763375950444218351513197964178767973399247848339487367584698072654962075462828572809529374777384027775187452658519827330789367301984001696730414192894246093062009199637145899524133001662178068429044177618451409999079449232694585181473018613710595214785335941276538748896512996090987472524202043542800994342435320866792582815831731011832962965581493738766589753482897250244435013295774563976727377502296969653986634692826107443745510380920390050227368380368255954492788627713418613645952289254280461502664759485012761883671811631360537077581832686125938162841692329075982693739499788728471687376789895864216139591371318220088045407029105218049075302333136113739460234893294018857308505461603737912428894248900065076803086367370082339905212504044583900131399208349572894187248629215349927031404776150239535632259716309019247105103293352684441610435776155119854111540761286709094799722164261367153366574757513224049109717409533566558246628895528487097642904125753851584678834111914820659836183272748370845940857510205321873900828812983550619887523875619275588656891053974846679210856345494167999117865630748494658005076933478202459665416179426517928937234018064087000652973069208043748857361460208666266386346629578103591421341051503673647834074729098733164857073662713708383795016058024108107473053925533757052670808418979941857708068514722178584820588850557304260685241778526989613516575129114162112089279368090649078381329997402059574905846275508725153725186764717712734409172043026272338805864284393395944244824514682573432317661201402603007946971397636778447693686457717689256969865447177865848124016625170152870626271293725426956593300279124839192368888401442436647298417606163154790246112540143885625355559225247032841933944151591839399890768504853095296739296218812151649303474599783423089015402127690454386564390921002733097359452973965054972408628362393984020128803940238182703386198712652374537593462982138411907452571413605563010644761050688767646825870957368272856860051741737334841426429017668274030247189687432208939450629063427147858739109668771397529220279702475861447817966523316802659960328120332022872222847496815535668138467662662186491636727762706605497048520235417376288224154932097024241636160260870563584527080375027763821394076354406472500403597462796426775468064371670522497366232983413962622946838831102049303006948148872199520498417748679408659961445272108744627725169206281196588032600501183091865573326734183933480906282718230324968763864568882626173077354747514264857699606837069691446497237354049631760792286327202381443117434175999488400438931997353173518901977998046926684339612138303423477521580223404203566843098369834106690319767036053722351525591696085049958849320144815568516622372575001478428321470099330124922920187617040368977379930429514880982355185638786943152540801962269847668162569243485798051954225988776859177326552217052401364347147475758479359011160720579193065302042703656370685560970676032804310007625182438747016399187600180085727393513489322711165181573299265796552937245817255250381324917884411598403219939237744180609647692584445912148578750474949590398614103174362139181173185047600753998274948514213207626131426507866051006031925744310860149981031889434236130413558978848979806320223835222857984588233412038666867927569691294246531138626427764178505198566592965351566739709221668770829669524171698510731577205938154437021542517304225812604830592100207564838801362345879486870350127087253118342295960545155169449359170854746709089468358358271155285739303614857699672068554383606093754709867950533792042265308317712750266941538746712063599613916067332852285629213286566410224052522851136718841189499845743730282640864305505267624422026996728850677387668327647696223241959392244467133892798968388460014803769907269908674423015758674979345236656114278073588012538215339986657400251451615834606851207574725412431280193751877017854507106284415795202742917041500639566352093449023318450414600897772318657365800807932747859211471078683548131849991651704971616411806703856776200853005948869516788551887825364428592056842447302243267119366490782598421677618699095710466167676533823696613170931804777632352967356191836235283976853177766917217736300093243522444389278378102694728237878438113473560986406162516426448976836627458723970808742980371583227493884223346327786578943868517257544068358364744752209323721437847802579383176680219891295072878317023204525653494141352333970253221921597540924421872736382322433836436098723549700356142887160140642835787900168999202816175167267663270035570269420131211350894305229317633331957568969655661184613304588850618245540047035461113362159626611576109614791320450880943917149122138047169878172663265017366690314935832316672421109880776082113638474832123417025991723646072588892358872190174424525234924020783173037558886739694847178974072455613495544402546296779923187197104064067236373471809380487288956741120405635563867105186312081800625852417918979155097310354870927812379535063530969523013355840255077141013979255619501886724532997433132502380042703230064788737373258878644057793284917501905345195121255705305544664465201586234118579139278600611843246857705082070500176092180128019205189883007972041249425433709044724856352721271328887532785141160163487214451976594538226635413094721556712821443507414271024229912488922615678177326400399622471422342049829407034699252374522213413615008998335731458236263666347635269222741694814753799502430476698280675684429556207397891877993832282016126012404442773653250966454044760766741239301760176148046960549283046142642812082228689447168432566165049670138933494494133958761487817710505781602814744600473499520612848945322050990012643109070737306660366647938894563115786442251696191805969165448271326277645150963448459228434723751244066201500195193803751033307805876969331793793270112460481316978370970427813248008250972822705314435318029804748917027784772900291679205982490326163983846783102577086510823158259786458152728579945080968897619750543151240686923507719761059656468591317021886372981156777110863933452019657491073416495856103057336882146228565843131531576866665272299769120218198242210237553996702407804279379942598082881890050762292755988080068178238730848517909483586614160909604496605279773632730621901237092120543522994018816859500571433015662696475028134854733549258298025876856305471316384715741206062117236856457833809062299378935221764791319912795776751920749378862170011373093137718014993727799586450658859915285986472145418197461073145708390111681799383711836886045244165926116016082038565777557347737811401701267183659389822939688496675736765546061375815343377199566654011631539031122273307231974632516261640413382482751544690395740297831903038381559163283392312493814300614072632182756027218763899386291739465325065923156715917137846104906966857369245029019285593790491932374959743530622295632353546243998877773522877750221178566048556981635811251700717570318700442810971884170434871099870571141707260838142593947787034914266977901874417443567101980584673877105342381857330778775181586491948837059990886340297461035724609921352587583391308891800013399886979814727756083172662115353528573059560289857244050910833608299730607230299421584503185473974136418221370566533085852412401275499477004936980853066845105117554272745707739498322762405576410905648134355444521389847500092417806841668731860850271069905308426534282896735227951574224710695298865456383563374417748137454545285328028167378631576977460356346568719742596913604554491259708436600426113945544899920392237426135713292013681966755138317664482423156876542287350369497254680932675738923780483908234360083581409853821766565330842535626158249267428317281575613932958285203880518855140408560851737029933461853350572265091372860487970224775960481321897113540813941418811475212640493720026009861483245381250262822723525065179032349958866504363410408071613650521244049524496324757016505403468232156050286860560732675757692090842160955589232145514325241608162679517488683211785018977935356133232663422804252790592758653443166137065006428412010251063961001304658475177672173132201474376632409435738155856830946400094703657689078089183055155303670445317681831932179664097739809416663420670636347293685076717630349379360270094455826881396646579038500697596064269263404991305166626700804523800597018361874773427286686516402643308316093774457028465825023405861856313017232074495224110236363152713455285641484152002451922814584631993010648546228571819233806771824255689313075450683451533468227010706805891934490823989423835648627656749954345962815350002959232518889807109042677960554546651285082867295030025537823030267805983457476547704076470408454408369966699775243691934897129719192130164586001750021993517735805264734621351727597694553650783195377706497696471802774816913192418991437843377165033807589410139735738078396075786984102218334598673158724995545069548399833425803221898566874538540512082528498274529039817227433345548936442834413961532975478669743422115837378641047116143563103776426202240609536109782707742674922085188863903133218537150866709869443627478014881190745089362138452497966363950871279098960964314490025193092247803698611762716355001963047412910520529483772527051610522690272502503972997889225801084458411614267931849404628976941092753024840364413661309536196120279482451048174297318983475962626804913112942682985731256307115881059459140505024989018627373038518400777040197486458696715620623541666731980332111234403229387713924152831687841539325933968737982674249573761277908712142799284914459435528107474900601780591151862523286462421609252430698544841471440659842031562933321035594687458197390333358758268455214351553040819944071532553527488144587991135755724988743505750276006170330038797580805704603934746891693452465174534382939590904515330475762710681498638278417391750521065500232186358525458161492752587407337401687030711556173564181489743193255739415335400085998627838558219861517206342103799781177662825632256655190187303919117657679606143091875640265161509838698329334000774620097186126279455017638803395216182555361619493865521766007588420483605810574326974696031585311798242644462031638069607657944314480956063521762826418763619384076691328596528171619644465001488767183626752581178013542499879044625342460355063025902295099727630869719361177183521639272146608470763187932484031044736067088929324890578608832322896823023831894117092484804278816634233964569462703180793113500297809318919151688741678286930953932186106904409584632714140200384279459320577606356150623320164959822826591134946094732321009858920312152912820626480025134410294535619456328457640752385832120749863238629660289354404536330731820793062517611967858794773546459755472437948772926408217990834152049342363604162161425712321526421964000718007294705037457293743843119333550455575363020332636076375900567803764864317442493161659984472080192632382640856238540317537076311103000969571788682007490159529962096097152378943772042731224565755152388003471101430740107245396058136428649043302457482413644565375748068549834237216511620103785865722516807633427203454422885314981393731985136283070167653291301711432717683852472599003226913328614963331777607530119473680435131660394409317005539573715096135357789262924464453873451865409421635645450139321338232891666737439118537485758052762696730277592247322234801153933160914157628402605855878982072145936588705060819097085821170863873556503547108252176292582030840916383044951022944030492331784191952586897803245145162930191646561392122341039316769964666922991789854773348351105965803590125983977202780055954941524433855865379440962942277520221514846286519211798719518426489545230808422226102473776282767492020977123835685226348979042556310477586448603465906280178886061742098615156631034724334782676374302129807156931548936393322881859297505392304564029075516075338754315417951836000195861351077248507078823703457578524331898571427613066600137760855935082301478042016960471073022247653156556276418355625716968927606613081710638170176090073664535208206157031279766659107877536953799135683911345793595662926562389119049855314017208153968251590174943166371488977387829235322111030547376957306113399685238671638727711523331011948269392312461584937831932608136569918388645166517836375892115174729058147733935791960887629620470691461518482206351555363512989928721429418306828518797089363608489287164219728727632375595843334973710487179488328967511894841690725363468473942764386004651445614545318394133668822242202645929847071996323855583140900247892298208056813931695822829903256287203820270749430027128310292299890470236704311160988631258537215547772213179669934425999779275968628920315643308645762927532548788003652676047184413514252963045920513051226940613371555470251355953214147303852356320531393218868252604009539249089580130013164552843351196427066453822017903731100975757179452189340654431065037133573987560043524644706160993348309659585352652234580643670048333552389217177173506849395562650877120717200136678740238188502077084301375143086048341044984106863166502094714831690658382415295891168748019629820722592596600147218787384540051724151722415617936062494935972114189343281037170494152235267430772953822746137649385299863215353416468574713657027699629696579142740040236431991587728142452343716770077342815465131416666871316394002711064614718217073896661298650804802452791304128517886971998471908088232380102137316685892301761334764856190443252929340427798116723160201285609244244355402852067819873070601166574707803563939243991951161227346525350889112097377156504086098050049662724583564908652577880919798485810599491379042158498083326667863877544326128171735300893964108287576733010593444377365782631189987350810503648129184961764051221788424599818169288489597735021273404898712316108844159672327732111937441794947428076368522477521287033015615830066351201649912180450617301925225504337845833569051003124230501839033321305890873741014506927714761072151851049207699470384655715148460592180034134876750601790267503604986637425460086225506783322333382166282496563729894440478173042673714807310152842152637030793540499107156916905119684163439721623140216744126634262489273800413293233469376723680989512810158458173063271034714885541330753055844256254584379284130044996225061805820501579234254306208353653690038522040457851889417189515494542713114124633395076836717034432187139272893454030365257509330190187722537016313017669756392762306899003371220827389355586535058367398773856942427391763218595369481625168267162091614965275500221572454197790290149926260038982939379073044794322877426777913107910380756269363544187441910043597072802170801731228399330008461712899156424632536542686249563229614593759526134221804346652419419733213125031209491450208573142530400420720860209384856706431562604660533556927757397981011548752309675863330902863929716068835097436223393673056179829196602175492784040671465041565453593473400641716898232237243949114451814473698597825290772756519817194626606538163535890617670023897661715688211419531403251860754332470036351855808546486695232274817057070213248063853326642113195770395655119904223099622895719648659064233126532367777661260657392808446926592265219481851615274351998690931759820569788894174416425566412158433453687172280000175916929169569278473624250893925146407111920330705846645836217875831655320202071428606140704390536032793649426092567095477745200794107989760879922567624442484309929448313148171819179616475954988071589617782978797212279998311234089344871180258180966716786466622912413172091714342786510479206563725508248522075660260465734490051709843426086270169424935509572811750454723857077705303400704183433960894495322551200434719583207510526368911271173085822360038266058068550753465648210873433622862475351371954975140140988969902517450452880991624007228442982634383854396379045293764683677611571566290957374946633984456816099900248292894981227248168899700440222144206741516681968478233690525416045903686708621596121774466229513500941930862305228585675461111313751123628748746441320997926706969363156598132904222559574321815098329262437509084266659139269183707008363688114582403937598405729747069761326461327633924680643619143008806918322888903184772460038844799746292419414341259667187347138957437918969321551664479721042681394246936721159866532089463009595261286724717966088918587157529920396167832180671878904347170920896409067904196778516339932666304694237380580062517907459885604350645918592427872840140299299105433710432340717096413234529013644386147968777293678528528980789900762928402404616739201495226862762113211218690636615315604227981483239442782295965023161855672980906464005845269583654258335783897098826908493703429338895806417760235487740214351119773246259396441647331600949652678752192736874453182525117014779039854013136773123361312286591276126764162383653596024096477525564497067890917880325224737666252347742159175713552720867514850658051497491752781317398227355760018949307489214172800286594408974004501770266922161613171361910839348517530114709078745020260798773292559896728400027707692697554980716296681715818183635385398936034493889283037518804799038166461650754353409226150085789162083519619398282382655440376212845168078077031375566954434872105788603166091647965588522063356345392799530425702252114707775367236868095969850594860081778505012626305657669043247669308213494447165960541666777852361697091841036409850755109437476193913368229171896275724203994854984081456302152401387948239383698347668084348100649445264279392623659192227376751488580482838112416170509483507137800666441485262148053852008189840880053437099985822805221984926534351909334751674149169013174843613638942569635649026173395185022532540096020182470057673652656588152473300841210659074257805168679511416201869701370356611222565816766700898537137502930927167347909665220095257097778531543519124941523186749367700448298152110816124978681848351570104519839672290667376838088418443266287372110219906995288200242972082950614830170550180600469840008805358599129043456689367780284797290019788014293843689132507139519562010053269357679551879291516797247637792808159745850947478920858338617448413644721418276927165682452473793334421414796210246350788340865454338546107029766034854189922617015214567074008425421294245328529227706254331886350494113166849435729308345525309866378129869486447248395260449307375236419710323160936723938564107735409237971010655121556605811712369946920422342786150340627760430873346670188753097658810764282524598692840304555043188696636235178246666091760055305469795599996709021967327538149391273143001765693531163227068642104561264799614328198301066092219089535449568341989310650896882078236936344389234930358186623051092106948859834140362499720064051922547482868310742459784067172378654060836803455036033173484679494719490652602909899720716215882087466091634890083296300393593387916098343149310197803745008713523446821874372608013479448421119267516483603474636862301722591591529581251337281756247410452608590393693836496532579886668537607310980894558471086989223958105306501594312330789370919956952415580937004113093008040080783757991477454940716976380182843204577797721263916123101701290635936560976308136671771200484378269820684309741717359080100615909790139387018946732374627668869088560388047671173471605878488090735322980608588415534177831773964096497776890040841281008262163500179856851886818780880430123800846125059411968044155443111256868925324811354502711152972088789129300135267437845730995715221035562331286937480587827180464170415338894621223626023956241286196611313584275526053598154963340499401070010300737572065258521613153252074968157084566862754645759792095309135352731795389907455540579977982687618909633912394030329235291228905976981588499040597428196154680365312606536748222939003155605584874890777287946985831810508089543687879494718814137009842099095247120203023839066214132880968307182996403292830886653211367409726957117204717985840967528694761640742863537567582054824490116626601895304506839677669567694713201081299029400223463124801683969327742384868793434530169233024488997254522482882468806949456521926938578824422843134885823045376256764692261431443892974378165358832233717844540933855779165905653872672024242753644648222330343153291978479018514865919517412978685193655831208384046540308357752079276958685962349531877097032904744104316674774204666014772085816180405915010703479684009334025714891791793427813626321755401791721881235114088108666521701123058780721506404695367835495590641150344496631250743264741299835573521831016960897059564409755710424339861338650141912166619054366716632059699202547411034982099162829463046368511954095255844400132428315134231059704871516638518000735435631150093619153384386020745531942433354684984259881329656292690506144662021827540364630971152719681315489048598048312529388285443591727369493357000445902413582422090439514522268121054775650152023372386783007714985068620405585253272457770767204852980256048473501481039506843659698822672259037689502291488520255885074512676676895103446020012811838940605526590360471202392361511943634255222130899390283440750737682319264036615549824015553054727332276949996414417539121719784980860574012526819359909084879951529045384469657093468199589778787244141321078186020325892515252177417318250126595495202393836373626132882422495413281658106738745631299722125737610400944922164876246117020725464725634517017052390863032506491553659760324906100824341187715461452719629228423061237014588833031491880429165986997011244082750011380078965947871470495759263264097069813070514948833334874977331533923579194593828407682789204965705264338736394740616719877634494363003641337609818550859120753568400922229238047944990090723456708452901839861311307837644574907191425426989661761798374260566122245570886498156740233949750690565372340422080395579452313589722516915832975312076046990855040615511666843322951519117188494121213246976519823334368054418369795324943516751224427324978314730410797149188850413655958431216303102857743697763675518395616576206281865537704160852903620331918635339490881699347096290919892754686369518589545082207650128101180258574513680708892080191483506121700811060766368037353694741865895188161642964140351253819021213514437688275095274140874948355044616829239088176965457067526908780172348259920835915599058439785404623558272930094133396609664890312200987359811023770489502654706697704786792398300712710569054552642372822767046681511206728128012868074943778909138047714668471140035666738810769750026555763656535777761387027851354981227137694796250097771075633854102410415421337460886702586678797117595164691223293256990802070758018913571043403506258867459703028529816939780790002455125162397724323850322944103027301122933413834412893130468733491938582559885538690265123326542328859470512712867354076481300642387388949152358510009312894176826963665829716340059987363729636195692252931665543696471275306023226024007945720586039301279022777387968398950247637375951743372141677465827998201676008612070538916705252495452465814698384843189308704380466572804709148626951578813273659248853957024668669494134506333667380287135470259915032982418504227809804394106807145019496700588785258466215311342695923202504149785692524642227433190113945540816462900731819460931933072103950110565175568472679968044922821128003176307769469153174891503694334980717096181019870378955187873261605715897725290040127959423514475299453490814378918867975784474496729059361788098157391343956696778175931524427183285925427272961244138656291843170701761176862392739592051060936187033763235946269026958834027168635717342160962249700607712058270363022284046863373907251570184240198425430681921113284496287906124394375974945440961280923615820130867614658019685601547079783357213532582000304276046469984656063240053004838368463544224281617050262792190736791010397775239473531013125780728956814090454451437383184827938341039410171156349795571250516100685187573810411965465892083936934618620895972382269284891701253716605158411083410978656029684494353051179746678889578886596826577604957796397564360958405957431729701258520785391678307162429357013106994008700935542049291320957018891461806354321635202382975252182959901326477157426715085669212627837360961175395739223614975337712519363935148924092490058065625316294008951906346213145653393234414949861892584620647995317159315501774613446059586693781642429563839904837954336467551788878616333048051555838530959758412492150172502417240874054434850834308991930556662593292203329171919948323140539960356541995149079927672034369166010896549189548827215160931936627842111862026758384532198036677259212834264609809452971164807330281033088416402489927897886186035130450871138577601602149420572372890607640063768421269795890617973671290202307294387363920761938934329367959909002250101480024461903758709710126443848069851276238579282489880612411906034991911735283818612942608267337067024302527499168931674748360731827933462480084723665428502490358634690641539649572001256375118222518463916418962886973066623591766447126653140947797368110922974646326483184693793706764716977683154623982899367215567338960359264601598283694750413573793492660898378530772400884980795545919510615524583549665070629277540546617591140630618894383238922010176433457307844370630898379102605752147041178086662852877682512138816766174494612412197619979557945363794252549268800094536282437585799752547025044712249738553784505666839099113599762571814241019603565385388702855357304865763522957013467672265996680583694880590491334090289858963499928266359898917568874746548321683499695279880475231022993183967863099579628553294274728103690560516133084760368935104596128332144128041736475721676378910545131831014584457472087996797860808181682109611807876357959509600043512245184379320290636013383752749058989362237993661510022078717175558503988428001445316962865899445584533189772022292108558373591175553297221954394409591224862066340947838960230413680266317601793571400110271593986621064689130869952908540285610949501692786902532824188549348797285202950099598116359501974409364410083493719919432186259411566344454309814263192506062275798685684244554321813683514479150613174328093564435546980300289292718988952789559886505885569769615331577922090779446008057614208928392336886995756537003932547053218170965016184075139039741202549590759487171791556652019810105706541215126267390308162807003590866909870222184801638165477531096527517227531338166504087157804410679405267589362764010404229344958500702140098777477811889153814668191850517180595543813284229525383189713122223927178497565233671039586315732397508634650895660675891404609109797750232215537931505408939328469326901017574391841729763337665075998072954507650183451131836952805384516184679755825642618981950222155278348024805723259013500406159979427172483541784766176023140942571587805077066855110726200195591781233172706747847852857306088426130100541990131830846559106558815177901649929789179320140926244770178454272074673654854940156747183305369608053653719165724549366324009211634333697262430710670287718485719488363325371743192354453317549149089023255036305794862689325031661139803685328151564250765209520869218085668904440005200890617932904977845630169924835128327795707942153397261805177824530757361264436290032264280949490650801564397551617617462864791426470512928843363912135451565383413989331877127370604421267583588272242834512101475889422637310550694973134197734862663241873481084607066724747460056636398509062196726926696288507802336709997521613029514304655825300306607634041291594981370251310651492703259340491900684007772859703948832342139253375169378092567844967459898367095449796720919791251343829685248044167044891483763941869445436303201416630259152657230966882662793668015947165275905508170268096823638158313651148298895046503018986037165688972223721384220394636659288541626099890945036088522300747523544503232595557380798466594239959567586337754119722656244433346483372402089584238788970989381005488194888821013831756076851365492700803240210222882060382493331798454783628208825975906624581725314275121659192959169059434187587722040122723738442807246958410095305747395974421714722700947922491245988700727306202650326880063891365818154641516980828095637536932688546089538480059351338212538934609162621171430465914953016179073179279439324547572876744942448254710046941281785553444900085023496089404758829908926748219357030394195656533643598029370545322546354790156793005397574084367858607607545279509165187273051722466727863400195670619135604020832217946735730813849918243842364133431394214172906061123714359887934910032124226513721991263634310935194596656376624704099808453666214945720294408378610361654633514202043673548859580550404457261017835990682114048813340208651957651960049104742120063340013322488171822533249280096093990432990609374160428752896349311782292004224757236042099251725880190300006262395571957836914800111446314771973191376523902299507588662020372809864430241728560633151506001710992631132716985554360774181830964288540140622033794301604067883857142712478967931032318580586037439226245765822068209301642184576502799082146137626303034616580151200207901870794338747338733252399833346409604097154246794285112049133164160842154662742084550641424730643600471611961446099403584879137715316076683294066426481389289970221908939938893073434204154831125838564002487597469442502158129344418414817499297498169058208386185813120179423579641471454968265946761984905451608313885341641693554536976199073767463856933447247282116718047250763750723156947899381947320575349004787978205507417670322492210073889194017713698981088232257165825301387870252828700906018251497575276917987952561235613952725827931983091504809763674615478911938784920862273459432259183321000682435590994276113998243475282968364241976054198205516472993823949777949797163736159494221473086376564418974007656159692622787698598791504514444886502341297373839572074298625116046135862456562273814924199641130104522623854486451466134839012217024306165628852414210126938650169130414295555278901416016498712230766136242922801368139210618875541445579198741201842196898609046627427252044784910176960337887599149421314423428483311626256851716400934251655761543824080247671737280382549909496247516156176070386785680487434239007286009027102620594428360634457799001245024843906307290559496881039832520433736371350348112830809131062685094719612819517685050649707022694427865356433406245361022890120026970707642508854483935604995982883643111770658973126376223531832061585012362206298113295160439556467466876061994254116478506536199491630991605584731747172798680416741451454757438760081365796598139765090917452543369697297301546415665911643742362956408093799734259668935886676515642832676337907301900528931766027053773301696777381680404201824193978107239168293111347649474113430730340230647015983090285229977060789863530675743710786703588678237242457965660304157963708866440465185836153411712734340985701754128976844685089269061475298999081221080213976164114313898319344199258974249732257770344912635435373065822272757737261600196667930027954370167751920665914543137075559169373288548593257921445725939886759439708567752984547678953951317063133936241193321342494790125724453098184805137722891313075325541155732311406314824161808766539162071218667980348065813516933175112308262505614318499492278769430836103571656459191340085770162822833996107423393208582494657397870467456974592673355588947658862352761269772877196442947533706276683897287900565533127093291111472431650563703770708204671079454281146968551392813194868744021976750969820418097111761061471089090907289680264504141840460302851263371952557567461734975315464794303636544486513603803947798061949359118926128434740427245516927872375998767576273090828936150512073901076799998538080857396251572621246662170352415673690682447264239946108449876458534960855030086598299681148589444457273653129873474689869518090474450582586156766048350874793882516969519857905947130691889472142610148136689523480058113837988760701276855852255805852324707560745591440744414994790941602547598722828762348165602676359373974282942237761218067973858501505846285120654080990098063853395774213637953562000967871691072971977286363965419375136615823254335026251330872324381788733362856409808526288933387839785166626764649490785449315030889239056771908413514453571269573089013960660864281268316038132066569215105862222798888825035528264622376604104383180293921603471954647562987438398168525301377597218434820714423712112767546012103048346022476602285489936172133120009123943054371692787644040271362032880979787326479214848188356617087912989252111906005246281700928832971504964647379371384510978885456721659810671669779278888990206084485522367440262099813168062483095826319587036568589172413816743393163037251349490031926586749897990070423783235145245931711389651312151495423408197184024629778334370135505303461118852204383819179939427584363566840555521237266155687289384037580139124435913344366755609945434411741208733840429910428799077017288753881139928369611475157323811690239387946269588353391106883431871655639557193446580132169580946145457261287419943366373167100711075278544731908700187879749653327031059620916004847050308527759515614988236128216076442553696245255857511421283705555382596578261107715738352212285942289738938095458079838068863007736489860279849187671013979394959033131252404518705606072454628755929011863708471384474035538427625547167755393367104708208194568325743193628668487663130284907239826774526245323381001864432882226765355196559118008990261740699293355635422076211474427777621274176452257060154479117338221325061764757137792975492727046806967050470437106663113075661124812151572767707694802721554763327547085152150921234419230890229838237856940973660006946825446299373130323474178787620748057789490222562162400675672733718176383331034116285786765580517189476287943233366323034852210707003790041946210531602111918609027945737530300546093036797665117014133551693658770799357252459292036093856386480606788729372371276985545939219053016416607266941984418192750552046156099375331964890194436431282007371110412486301874514469481830781728428142042427669734548551943682451618382594920878350775310449348578652841186780608357204500011679193976650699664389603411682382202980278596021716533090022972928538423004642570304735118508517081866641233288598408630973495213040712910007454547857107309570648073046910462094906421221010456002433734513850050329108925168433706506767331905250244894278346095032084638632110458106411969519072947387179762288126559107981900904148650142939739444101431394673272988772989182184002820301449812510302384125697536074199707344731591764966264825270412072603941762232641210863915773285391479225246978757142332623366585960070490530544465355440352918189629963729798987021598453998861382874404372421068197391813749196161492109713899117410284074512526314007331368228457656862937841669644733912198081972393473204125684329291510722884564950242348587572209190221984267006549722495206963370861689758447806639960072500370559476083441563356913952966050634612778169690874664724181853567835587541330524215739993688556688143844295887626892959969286272063681357595236480850121385242290305660216867013468448840849367460056953749360514991903931960998168527645279469431954519256391104348690527187043651403451753097347085145715127803319573607676159772990265517745749520103014079225876296841834010837855575169408743103687414627110337452083850667680262206023871878998505428808512788946475483107602377971061792131642371939462563093509492219020127814559846102184568732210228961726748065817392841210884035724085793247144924353075406170521647704831573227549183988059586440907515134180290644415050000808818503689152463501243245077957492842087968051264852315446608157571152803075028368249334509343204817472889985617176568253710266907193352705140355792320093091405693258685722008955997866331227612976550358393801170562344200970556977602620867515639605834564911371909147175715365700298932589729498462445848821799746022240843458873061706174088633709617043478241910700762094067587041173164028461985049080325328558510625499349644005954936110752924024522780071452220676380795731897318837017924644646951369925446050557191292376716078553990169560291114111554226599210414372837863287416685796566405311099285785040953228584863476499544701099591299485409514705157602460990763719368299492793073814362295290992061430716093421666641211832171173158838478845929982350460276518180819365152836640182146539971375226237891518908130181820559138399369350825519204537762102882126790175895911782277396336801571292403890820574840031868611700284183924702085562957732701948028389356357115050408712509676677351313506585625088714189130424853002445169070560697147197041475941811494710144923767649679361750739460615596072261762788319376636089970612831402002656773100210229479838169166409461698600256514923351538436999060870663584357321453498358977695174339491830911347298676150525776330813144741981874155712976449820077083332298994491045220235481054650810828723299735067182089643025651494126342271543650728147176410290890074025906389131726931069202998796758187666628928676899472036914702979393239470092098960104633285562377897639455880032194170864612006618738332081232113633187532395280743120016560843020138756933828426450957343807597335937459497554317451885801772659390440021298024780369265707713537393730736613314426940421993190834865598637771642499495931799879506331150803376772206390556287138699402026555695539498171785344137320443057012566429297967595049427264444073283771973216793352012167525726815461058757549396135774406398055878140513981493016779775870869529373256771709834034360164747256550383525361578889735978695084428614887557821715567068508782148818481707125936145101750312105163651450747821746530735190482764230318902376094658485668646617174940930073283667911677530448834019016310034228644196571898742744202388891067087471115600687940544958966871879801457744197263663984525114683223087300760323755238827820983034331953129585108932162439379541542388381882009167316180901436592963943622538027808559854466904741727243871530486925515173512854615963585487847665282466492499373094475093699625445910812629045704814968406577453057775670340688401063522779898446582879898848945345438649614871633309421150510876514546026232296834063521926298666036496850028436247903798051964615230223869436020651861590731690172135878286763608805507577520614741913095798063011325040474763562020558452534517970506536308745332558808615917195312311854550804859038614291418831541732645697160015654193248959823730172925321543368455825817331594231776980776172623810157339961666448469899829092875248744960730322296071585324849051333800836899888468284159142882507042997743062897505339553834380620800817468767616914353316217562085074167290250190987818966199708592654834254747365087601431093344012492184577364557884274605900152924390643168115858204208294425193404745681087452808719065460913450481605762781659478809296891948100640599003240252705084690398472033185197413623738668592808948983674849294247649326324553149709932993529905575033952716406725048273680596138328260865888289307075012833996735196518719536856793339724095429972938063524828139718477152503876436071253419518770172951356897879676097824631613053394712880708824380884958438664855436710257640400224590936769442228157566365758630114789860448858517933882511847011153881993528468779170164577099672666596606565407809861064786112817472810601012877074226482783037747563392396714543024995275296719286963353197161951809499344855656322402091949685826547507081526762989215382869344019518546168210718526095981350046356736978422146940657590291414281861307597421655627535243574422797196757414693786997596306471441274449010092043968609521099175342460948780945478018947990382870064664674277176828229095268103413001427812702298950340052071082430080248533317669958183034382719560664597585102517583850682932826727086688681431976496377766663271371407554167298191474441425919560821396376297564053776252475643063015650668879864049870619186340650368404331173542857080686412329494964704314298528740864827778265976303898798453388288588218817815308885801437925874511759920830262265163307285947972460996304556705255957931754007989986292983525140290679908697479474932935230664557264732249543999539256819429488981672235530737737146069787173967676278821389912385292287201747125132561108612005488129602285703819783650847545868494210255126780311679940712595558099693996563179680781532134867485019043390083400409546194443453574698895680785832864757795971079436169586870214792463561975373890907681025176094032441614460217754062049319459462717646588112083949505546440084707711910697128130816319646668729647096954235219480725108865172217563676189788204681833952313658526923796207536001947348662785298095517823898201168241050242747054717095645475665863337561674082587855039223872664426070972535944402269074067499027380246433429880410072143901689508599934507565389568708486240046356431092642304822194510512633313256037204913700219674446778867750643002120739447266253694141106242083326566868717509941325096850478863090220713154105985066149660804427434732688525406203877894742117451357322443873598443737962888305034783535287178657904253070190907711759819282135107727681706910646673634722979168718420378352902132154133826921032233431470192929160304167800518943695897402524795731257718648367048749285042055773317084260905251063208048098788820450262414512830695355215320441233909860951060131583624697281463877284140814405902451816649106098309518211328768995956329073927399841557217050115994307098457873614666160418567026503855705336107867930272234037501477992333485882453080117938338134953193552113263777882634692052050689771174242056350451379960806054032992476736792982659451513994509700940191044665865856678685380971603617618454295947032227543847672628473833584668216118493835079827897026989397882231682449621058815347661494415066460681901131430266528309427601326172728755255924448520739976248525235379726805575573873929160552054458180690744075230879210945699933786770149300740123885215177900072115071612883869999999021995571889836028235428530597168188551967287510591170857794643270674795500630082845561186728471560365838805254903981987973082138804401845896898131016485224237764670251587424642596589302062760295467020452656418486791832803487600790549577175336824324755947531155990045078552260325189442157913112075793163239287186539032596238547722844997860185190297368075055488556304640511911629569175311066411078032768441124516086990873830626840671369446323320670269022815442609203556638174889183544963940611060114116106511153552369879583597110267722125972299271315729065729997733482923675760438954973453641868410023842391950997983182000315147051420682838652146119873723674373425383320897226944646219009017328961597597104644040432668252906422748530815898843581063985766529089672488560395063088751478618845024976279488807484982015927548554191564756210542566077444689399857762633173286857772570371494299032440193727892940839157473111341979759404269359953561724819027682397074705302296435247755805076179022171861764303500438029533391112159931679299671443748434733417839150023757085851333528535438451878935821873538524835102534621251240048728284274350115302918111923930279474922146790673729132508573253717833441947938232088027150995280851036494690306522586163129302578933216760228453299059085311574321955543672793330395168628355750965274307793147998752743620621415328120283704529796939368452535335927893336388766650045968587532030500985210427856587390375020214794170864486345148757778472524364805954607282362475075044270837804322852843050418520362260516993786621523017416311099673525027242203113229042308501191812836030588392445978930856353698611524756072114395180264529865481554450064289345951437343422931423789770535865401644777083572015876353057692878368687949221090672670337131429582761564791762185778446338981269180751477919741198447272097629929541841918528244500654910999441750809403054121833177129352444401596989259740531691366462344849191430236009242403557448993558505769918014968596125437510042275269082875875705093648233997620129197195184534715253337505883772103039373801722222710259614800406255340296595022479721888567142507316077607093387823150138577506531615484579508465171037004334833146715402496395748235542210825304984435385417552289521885830290741912942028508783143045698311662772774142647130342467712840971941203069962636067350614998572690022097920883751567043858476849572251502442521226921955703164328048074382057181360986016244458310740848935538664613314525451310546163739984877869353061749893418619754197086117980083077892889996576252200084523143842126117732005326185282016648201064022527992553753647486611407549567484972651170661032814274812328103512839654679927417076537589604317255228083308966218258526296332210519181579750587855423804059058730378697389728484216336738097130785983060463185717892603914795738822604453146890891184389934286991056610395211283801846780106376415736410992669006145383820602717637639845164845021423494894061998025757083143924460502979185479753837532303061010103085452249958706370621132080528978284287712243335559069859415537865399941765321387627746608625446636445270660012824031009505162309544832181181326683872468705028752657356007478710473814788740112549218984150637900663474268444218827864495207447900649600733239398987892908625272419780690451150988239105835473768293435860071355242016494669855947846251560730979687705688727566779867779521507309174895447077478993327899186810529945395080541405578417775898900200015257881057442728570939269823455865398919017751195525974417584585763467910053454289458123412725639159778878364140350397618729746754209131210311454442014049578594169930555975044650965908510420209818827346085117711385478574507831848201689061805012730589196598642438709075763020801066378969089540023953951714400491484358498304441502103376872981871015109646775240408574467498683513475189972637069178629669288440176065645387478124551969779748957090329513583533682176934241288076192553099125115505380618740710744668171364508140779497556502083665594478492957548511555413542172542340815971114538090517505272805502996026497809876478003010867372781058494283859379685694604379622662252998382771908968776369208880140177369958469848394208213941385480628761081640385295768148867943408751761135565762995030884044382469664501933379937703479498583501410766464813896666373130847110877060634954288992075523297022181886507074328310291256895018781046545093861410925674953889288466484351715214744361800336350003615901963926582717291354224343391805023279056331955674868286107469207127398552485872088302535811316360015949263173607801997539181380597455177885532264429928772864035447148675343494342427083207314396647776566755773555417103312083721983402115511336715188233949984334400766344856843080440630119069798465950839510297466927513732591636388308074544823541860756724915830545883297414961112909516040210306118359852273455856640794198459740037321672039626140592437513228201127252744459436546914318143205503013162319119844493336859605937224206971951789190687581284194349030100304271576445868882243154428904992835121833854156674050377238276875523854189910163955049320787889614336723007931727753425537676627050236505395092606741710362236521820918712723087239016620118530624892541027400465457712786537013003152062415463028575789572605000164694099751164532635778199386866596059911996534276438785684861164365187130392532432636718690724268099806402758176994785546419838331842191033054696522111167374463521074452493217130143410179256305531951758614250618636372405486582873628672137506994041409207156973186936990685824790417161661379127036594171624680015659700102068065463500621152826086761288500233244255404408746822093741588897724382861388308619695634447760066365312267633067598589876874806569977152338341592468377213596297823954106263610290237105904435015202947278660312126213289862311678369475191122334224416496453591401541180725171783170176714690468148287475909748773948795370071917783548457175277567487977404999443213405968076085744320340273253409667939145407230596657007173510103279166930589044319403890980016650951618649968906888393714828389906406029050160340416418956262362086207731554300657683894442515927760876900343333892999063949212257646651884132008400141170229564690780796495601697297985330286666921773555501106320079675576754484778706949501875881710441108987288531497786248284733715947621102877614798930942221425514358867471234031897682311862163298694092831091775188049355515348524972943781922658894079469054444370422621319339323192922062011381125446718008191940098508031793759777273703612565804424973373654790948462552111929224648185161502784520085661107655098161042744862958980828437767506366912218894236216822423538466815620668884101046449741743657932047246706658477277219489586429428735397523220010677460238803193302497440561392779469405154791266575683811228086292619173098946551179100699576610928016983744299559313935178149179626056881552561588628178982917090331760237762670220205172925387279595099119256512268878988596980492791716994572527425598826607058607065701297134746190938318276929507902142898660958399581211543269823906874850336769300446298620156469563708821602106115855790878923918394283358814855915449907695944654546390486522826608347243841636814935565980145564015254156445550080199081989687645435864758014854389092857959703342933801854105229768361068038533759702079269943477207869957972412716704858409287672487514579547917926864189283982301777605928640946194691096937480826777287513593193738918096980987556385710921234063711882035551801506740827432253948798253185926780492257160826833946965655455640006954698764998704285701488784095040486698267389879449599700124066625581069701162429758519118612312499293838738504123407300007818908294622612624912205288160278851051747070451075069569580024100360191502626096137394035909017245961771346856229743720724098883390200830003244611171667294087259104887031587650648213115531704238274359919322621844101817806499847705820036480774610997877028262591761518424676903135208244089201095634318964380563788312974716633488899212649032887592225502954912115270044740361490567325595599984305136242033775132706637231793116120867366479036878606544567151606399265909712332726631465865917214560514067128126559146345659803780034412922740573942985844643529954878183545039135042125377038579725064433848806499810104380470248832391850908102226292182164594649500011325324002675611930350895795735059549920126455077784406143672546042085024202212933237614767699683186130727248408195713915652382590452822471077000376775903523409060591907828294330174651136533507278336733782925882737960827457593820710795704147584403564076777945993302727032344568179101400247991461111403805241043526198687788975059414969471116696455199376912798753433304458965317281970164520851170822765312613721055524447552167717768515033126656170036869357738799682929898257342584824803064325185388958492675698644230003269542746269815007485720514483934514640549277918554627248647222753244986256615336210291700014478439434172816533325536080321433255457020079727959183661776914863725979937111909341044177470251119348504193228165723538336105079415436547492596479050383187820417097026487099619777661082159570110592405187195925693325764038708876962532150595227149031439899180273845771168226217185010958573852365984153481976950508979492425687331701171861002839620962279367180624446308768936693275059915417024599115962021147675962014125556088622079736050587826407151068669975113488681804144454373429708236391180607917900200786457617722618522938801448679449556578695424495152920211244777384756326647141702474121210003563142487795164714360124133431012424042008687487095499519183297901655693184497109394483326316571509178096304919772785627420132874820221359094893410358436246351567204879002672320096701557306665089037948372947621657111781771498589535495781316947277344638309667322775569528690529684575463163900203893618257184334524429667219056780413875949374559543936952698993352899346187158987276604257075639116523250709895717987100852897312119842495852105440547856431063143077478713106352140877012268265955903940184923993447611201971639802054907453238054873054903449482711368769226654718549676151410625638039635789964311451269389026413842604936404283106320535645756083597099551229190862115508356526936096598062384355873569319117517650396095406079596401373671808380873028604794759766336886120217777915296332745793945382143967344860483394116793945184075516266691801136927587130651841442790222685204099420584141525825956906919850112427706177714199701298988428001765366824126951073757981084785698510564108327480401776845335109257787450556713735340195027210628283383973549762401113888440234489891075140571463187282899552888864875959934162861756045648543386557042714725190450518992553275854794031156697831858934517444398369617866940045420332923048690296984752807768690837742817737334887606149830262138357506109903964946472245896455327385194626691728294000376035827018309330763744612433012974489884499651939607362393207386195306040313686695935847764687982858928920925080578098066071309574308874803680334080312882185700565681040452680686835999032787944117454093269037586496759951047977080589235510946336895191412626474173963621500294729531147254874218067993173753847055579059450017279413605249409520718300893265325061752128852846455028493712764780139497460781904838041145150877501015681208654374305660089998990020968272785415051474063248334453648681147212043430363982625441259136519256227417068161639674199596538928627588078238094828292699875360793034312519555719256238932341021082789276108278574737277184289361638692683856107486292535070483819733105830777160058380026387031588086989124885289472026635565097428618760445636395071645247620557230213003509762305485735692947931790603548856307932834786418799496485255194784663464283732689644923905457260327257534806736462498787459179716667249727437861074182008820220346545924919899626734850205299578229965022829446466661142483916409293595785377438292592725996296703696581026830118773061766982538309188128473904634997125088889721712642263363184166757665491455377859383412717764453891847351377907287924426498823220714406250248652286849914508765847124497631667944387824557842440149656882558054795014071648468676662539852060132866708684135115198559260802507909628942139457780313303102998148859111781095418591305112096941801529498119372284748810786683388286929569377232013971880489544662464609696284609368380219469629469624092751646249678122778611344372958175690933813712214813946857957744437947536561316306708691129642820620201476388803613960752244397040840575273971559524745982270632466915070045337902959612059723095459262166767428360399018403667172298537504610828462460114735178694021633540584861617645783827848642652467307211842536871604799170431562733692210828865794794308205891078497325246441173821475688205578771594251276081160814284100617720842371315029117196699592735833977435026137160040518641227228116866354272193537962424727669101212339270286768783251611034150702447216730859560926814633579691542767435906314586266611957084695181415156561947177165982941945349598510416136447774144655582664800725790423979526267778190690295590424094807611713201208022182771433121465810579900133426986562898440640091286537751137493043953381791629770450292575173913041344054176829613907594351650996856493675639519844235455099499634806343447770622357541070413010211918567491332267285334635533469677184283106408122731359678843045100985153819592754865607290269249583290633052957217799650282542428243687544141145661337682908804473247087683028068668444094885841829445255008819345112653672975933939996655790521929683997274564662769750760756618202884762150190661691058948807599155925845151718578703552153449334069864072206688447347036431615067685908061224515513615473700428491409000830650142107340772802320459528219087281051404885355173418893331836791703771835712607308999727978693671740526211770396625304784284271994246120134687112670002619529280899136088166573012870339059041819736961349478658631722259213767985094462748880814237787159554635648097740438763504061554112396648084409377630165727493348557291888676142310661148135548046328621202973958838946713311490961617647889696929507374535054284951636107326522600664543865010360678409276144874206100016363181019927666964998309764817013884953431839704660753518007116345863278209489870260973302211952905064123031187571056507305352585335982670535048362856179829227783038077194714560357849599079868787973908072015407926495665245123107272305751351573369507846169656329676240102374940603316205367943996161447182851622900284473237489726216446564356367169966156418604776331101674297761401373465677813225173555843757749858667527688128040869895309242703093940105190104187009776897288402753089480051547287008870711386188492194182330753016145495558196811644112729760005990831773119395865155196810524991413695757442744560032660956543172571776951363890270065716174795918194194559672839692606543193514233196524675643525965014212578390773661782184221838702889621263849848783381410117240594112397892073715463876833076466580016216326437044955291048605195961990806981652985890296929161709435068923030330532803162588955388962015310044088537542187744477165540468848510421789115520034577650960278152941499020649149263277642417073246771950510954249334216215642437023548057725637490984720356918692456034945659079545167982719977461300316548140682042903115498071970508113597096227837178846316679550291247893923278690813506970501705789078676537669029898501567043655891396913849149492684250014088139439226502227900811777521593901301317004980960910736951576361472422714181227241864797098885694284953449576621549300783242438697324485572122628816379950142723754425909696252131297217900315768663074313303185289169755908405831566407986109651027091218416631668363978481305967788251154261719394708602531125019949072166083825093552703533294902997447894817188828475715953026369816597253382104966650439181672069200652500070829878834960369827623712817167011891017908276013470141437461702288310351179190858236799697576430021482717525527672906560188375116357196148908483363340651646935452887479652400468380920463795988949725441133716744335377502215979666069110574269365548039389887153892792353406562585219476715502426039966181178871479242777290311213349937369071455112097826368659877463616545692337872593708147497997920714438453600114488369581706382566412555226199674101749385272619207180202034573181576038307125017184873408134179473656182267746518031994398179029261262987969936281220883852145049147342872595947388051645466430346362649471628596925798481295945117430916885541784482170197530624550923558382068821302872750630810944755844597187082139219847935986671632788664393908541989525514193138156818314716080433715222081570329348834393911161175820868976010170694702159251070920479746932369608009447876335040677654452379476194680430224990472026119397698334929236473169026752948796780130540637212110621272944895516537178541270294878412399084632664449556107648420782742750411338600926596620600502526931036909446591701436493329919979278227483062456925569010372451125042583916328930251057290186701604858335048269427776134354651143629619925137404086798454917224563454992301885687484435532864938386456638512047632097221904157729497805464980951680603379174097502053875419120554886295463491132200017854564980593020755863131468330110796317678216372144981125134686813332792737588628244985190779065496775469820423489906078682239115648166974360993831268039524521722078187810784747510439513840431005999311081227472699163839059806358569359593386977507328847463903942552575406039451780447519310471022489771934138881487740480375625080396669025794175995520680342087440299948031834243244607784405274770810974981874012221333590692655303100928455476030521254392046006631086888303196440341318848838349352189597948527259613979087714751229982274975630208466843921099537904660128125223117763826450804273621627745753957030957471154182481900814844636019312265579304566514518612765601793869085979249734699343376659429556194196527766049719748777369569337480303721631545220587960149812156604314150021224941798102044771614079927607618800781716635680044079256675250470986460917880067074233461841408746223642961203987196641189687663788293632483171342811989179197392525790260812837677486572321920800826521176126313827651985000333020702812671730939925426817027113888717379241272763763914128687169138871331486450803243744436550140579139897070046151555964985695656102139954384227846505245124335398229261295685136898484461833512178992402613484737712671288908621660024553344173957223708597278023273278857172890728104763262236039476828224668554529554233026385808467614144356272591668308170047395656733481884611774896712375254102740715057131653319484573128738903341342122925887900833149801246049910021300652413545545274544312250149223005564447611026447087178443728899648096668894644133632618385741649565749952083045544363815619637375600251001696584943505809112018472743719405059604044903616442978981896285886916483917672570206553898696906950641031897961220482347460327935903903010635533374523802203802638130533347379779560877819660633483567214037652659688425785019632986988356148519349728263855337419081265473187874377994936746515508335220099216378547515619081227256580833543860106859471172349985653252692178274236380287222198258492724497260448840925526788361619934996991349324351993696893386364375763201991475629038615106679571861491918107796101642897073504716178045779148567516157613413354235806418578065527585252159469335943942302528737122001692384977416966483912066944664444758422839739395075485995324197776167315132257150354260492404039460983998821025025496614504215027279764642688761761406258057870690618090249721153477819719720425327431622107952297566321488452372419183553565199068415301900139928404617542872870598692787615405885987782259382104081790524972935630502679350969690180185779327158513100568740433062654818177374698996470825821752931553645709503789287770170292521958018968602570029561786624718296465266484602807938188360863644371981542813471371821914717393915117253508773304006528721817749887263646353973459988504240171723153830772298932096629598176731739839843361498419509141905878534322150341199534346259064408149818207756335689460065917127781264022967116947057170847764482695355539199161777463648927334772687184316973142284032084918982627677329246327068939380800632670331903974843081161821944153452386682507398771177543967998675657098744344775236763519998466665983453875131979742996100175431333163264546777210470869403035895964984773488150270229937549351262809206701755312421971103486985094751727086575613387722986551403838076908385204369231329851593409757303612181075171215407290627306521631279300459289627064581693574802202165988623087557093119301748885024203175685266584519835103253525329950544801332386718780133707136705805786091981732990679593312555219150980153194935667304743853669840200411834307169301116141787736238292371045481634244692520909930989014458250718580861719696386722918268259456140174124244186937144138465294785310051493541712123362761441569221591668159757916305384254547848678685625389986860322568593137561167786077404275495028478334784542746457852751505621104444418271159947493377852568881208035926663261591667140064926828097785316351519625908130418897881862634796441113242107356156262078392641281225868490678614515186512006515764667129452712458512071331720930274408356144344036405094676033676438917845252371232047085077203211727288273849565737437566453501331672026953964392459767161568916188773198314187132516660205828296544147251211328780324509841047066511480751385415549887252102783372858292737841172623435216245255963431025419891436600469861411349458501185637157062637107615095884143550672397766810696693329362729681322535903798953080208150411969015371767928637547445536836934917235463628090243059912509650006192532108068459193814837073239146332926031322733269377949096905163147587174947293311773703100380487729789821321867096597513075274322292173245782305853833130820452621659911710282711427382324270076055304040429798979898977371319177037513456741158190846720788396052120871025319881994750143406819433197793323605795040166009185496641403586094045250301909369217587396148444775021752282331811249309373852540845385157416172217458295507221129507855281203202520078053679897668394016681597392543214300785132666343381050218575934110850092175004047131402128683624882224588692014225278751042943030799248732377237397026436193856485204748973431493875762324961875915127912031254794466248514705451019252521501671695162144553214974160039809459651130341200578990039121854266315470354142975877192331519347093701191523605713608626109685958992807900083564008230477252168907384559160639411027172991807855438595499144520763405676331049345091217364002933676442958855525000752799398678042343898098213011504753118610040516381546094557777282808583820944567340445714278198526942093504323681437141635042001865257162838847882548323291219382328435827280854253585732654733929733546361031586552933314737008787735447593148106071320760786086400235846704373649815663534493268476481657079553189138008664003686794825342127060952314844763497192801732186503007773903374781191754226069568083180931491038747095056233422912100280130162975404731608956931434832464559043229957381427229275874016670816557326416427772435353470647048734360257714066771446664723362919739693959694785766682816406297231728303241556025254353793655042238973106927198665383102041357911702097880566450153078260472577509637105189373095592601644557209209534046732163790421775848368676081375817457055467226989411250677007119426230309484722903152517052293980507168561576758205302184806349127866442884196130864617918167586770258692746361776394612148682774739411461753606129369535453434208995858039723576127684080327987140597762032601961784383191971862190854597540390847240266164589616773499418253137483630262841670022475898645745449515154612144454847677423214242070383349927752336726925276400362847824089507478185681287176059151249794472373341373735693865831680701672967041061070232627236218580527937708931933165353095232553062967890450934397346181925046805527419406759119748053104138239527923307523237809424962451937517465470079808849113312458764872845012506657584509274620979557362935571485837290276240029169472149996969170436760565150173697034967329271937969045239690671537327900351224353698011024714480994886473362289249567190778981946709171142466740133925672060801404207859296968964131119241658146542384333944049864388921521740711486536408562324568124588870080757323351825499874789070990376488564966567025190141732545445989696269480279277668559938566103509321567045969017006229177725431017921114636188222583458863139658127433514034329248182752076470280807742835882689400992937318835201609909638812271050612277096073878026836712676827372735708067618401954986883862522476107065052449378190877497230580095780570308645344010860345317500566126659918518558453145300761111751975724625968533667508058100438804614136262041838209805780792575049844916123023982311242996567923433044283841991130625225490014179046229378496444416925569670668110170580816016701481166342468909245503041244687725287524779404230620095857358645246032780338069788095309178403022355678421421424414255386375543706971200715968435670538693818719590763021169987099224141494991990594107932935298243393406794602141750363329038257140916217606033101877353305997282123576706702356301982987089403546002724016386294389437051680360184834406874852805801254776095886490079901297544522814375558890375149980029246619535523645732258709639661927052778158147567297352920746064679233244459409801356647590554919209163917264436691793117124601969397538930464654241157782469886621559761230914898747700368668174263362201792122923635784483436765525215317223312222328305999439198471985189296058269229432185692303399348448820860305647487203238032793863248857382861531004146794636747481120957041278304705550717974135056166347085668317131610712209087319741400529970052959956877409829741445898865427337125526415206219945219312422312192798665519663525726984538547403124420328870200502200403358697206796042425728081244507476520297805960894011098942388890624072835754761948368845237184928713861190481144731140772173457605784910914600356185255401796275269206519933956312041067789234913741069278066066054688013628394539029720209035943882670961270991171801677144442445344827029210275183375346064823726851472443763232793278667448800684929211405994803510201879670738145539588128447128887624258385925518891684755309684031593913025131085127824089710882211366103859435862334710352638843811528186059767191968791842424619147728653589635318681890074167492792123049801548694152854366432405953775435232230217466581750543633998767741107667651386622226219803542215277691441247551001830318058777271924382730883390387149213251473595369711204359843068434238218340029517362635605759114153514840935171668606570305113129478915209720256247096514626678629777922712165841172364791304150579733143531554774172284279764269264624624299527797439039568706289545104888356333904581964703344890141542896936027482112421811758738673194557560093470683633843522018235191004878456325580672676929948322550255032348116145147262842813618327360201460903533079121821165664119283947836451386033383220167805581140184751451716307450068892560282534341807826627678008170197428207248918017020951055177109930768754232411531404194751775145884180753537048347892353304702160059436807968093377979049774446727591110672240216975163993374033249957180846338272866323979608024244217655077164325815682124211097514950800407888163199003169136634301552632943639687148847570280751899134734019064873521770910830620645415197085862294815567909583760379760131464362944438363700564481694973120356573381964924227023428960744289151764648868319094457595288366815549849650076829652462299887152934981540477178288794153890337890998641373004166644904813281486732465944150487452555625156497991371775478165525862105477716911994250369692536698602165347763803580911885579759510800148172908703249719672268678837635251129822395529031404960753320989171535071096093904695509190276113999805818984818820268090693948451923874538535078775990973316870759317806691437621101804791617191068470484254064529024954369173269573234343718318754666252711361751146884639778047121423503036375882310495972481903804879052270275643185282691859203130971339869399907677911418823818901370357860127026784027552060161256252408224455699045798491728262587771082508347382546824804717711550597824471322010902621788709159681115728597207098008169392886193480082066421833797809716478809997914679717494741879255197230877618291229458622619295186368579958037320530117464737103897125286166372765984752135230877029956077242871244648735850456983997995871182082343365621011828832816932609424932478382937645532074851127689502185684450787123073198508521195940784196427914447523594640523058434989709874251915696749498232451459844892599593270525445681996273891445914209232754220119646832727258673711676251416488525071838429864940244737396929633409472009048107900461878390046829726410536147510086497544308323531508617163489827512434916396730196584830420017938082638148977154942292855134816706249283466190933689124054740875593606516154453900478277015844575608758075425852171087099801660896430437875008066379246836728600999985870961467530187443584333728044750291471571120598861867981092508633397460617902849100501664055339701845099572496262240671212782379821169765895865735173988047478001168756053677567618094343133352972682253386308603612175739910751819964310703382667071804032237208843108200216178093761200313534828485928085379739756798213849109717145680038954083924849708252428260824646064387077782865576984524751034536128279729399684883197798272138433886986662386816102458813644399329069425342404506582482926206085833057743939670731304678121161135939250943164853631064250568666924078478499538700173864218124775495934685241848355297329214057641743473391395857724898906263935646151566759626518684060264628663237102220299620345174775937590974722008122667662571162947697658755233557529878865760768791021463713441719240430003466029136581144283452752614118174165054970134825692608546338942162630567695179970237122481938587466343008321762140579883302193930303687104660568133172693380906984585169044756602643604264068770343361629491977571737209738899478989087336632614372618154578519067812907045528040305783839611776233387573133876219318419306193985353390477771507971454088699643778657765378778744570261816528061952733106203409165719384401046953184733894352366788599324458564737958061298738995277775626558269270687839616144399063225836705681220781303200032401360220824501282518163398010296736548910510627153127061593610622285201195059057115096948429042752162165813661906435871815646761819590249795249939327081702766324382950053455021388034598484390156931663287977763394071990451416923246709758089532079676247773620207530201504457709331995832389349209008423749073282890323363517037854756680442540011211402335861444454398129251604723511658078609749064220112553495023249986354813853879896907671335652767519508315366441103272552080092274371051050766789581730264481397707928826524211780687819302510782684983928109445881048401579115061412717622349371637674133857123326516053702718483099019359835220432202437609082536075831057637169053780353812164215775245994093639972079081240978888171412573916106077623399492375341216362152960262803626995043052375432914669022912019385305923814800614355462610242888204921874077469292546511350710525802167471945158915382261672784534327787837088736168127372657402757480110790275871592814331628613273608017673737917605131289955751232889351624762191058947006139096065283059680279789686830438724254081884374030047428878412516357314430378802047553818789338117512960103657886285860677731086661754469325681725716016754683474301402649994068588491098242791567438970492347535971106330494465406447940591580701794393110296209385334251397157536122312883995279285260721475424796275136575750939919839734987333866198620281066202981713528221458662461994934975330574968547441264537268304406197691468572904137060590446871223267018547206278335953692217904995200664592257264244707167745837678939103852289669930431563284561544604435231085838646659966692006739163723078019653396906242645609703586598215031063646737456128714375558246860247375584140608969677225467722917897466405564253069615382210999213315777836136348339078736090325926145083444125923694667546372126471452182328232321633929072775288508341159635831542813409859749887172554914663730276209260982463087666595229133531037298658805058948336807352839388454855942202213470174314378151041030441106131775543224246325393618389831077217450172294667748950651242446386477991312704732999304005758540157790489880853259366813740450954674639673685289949567296800576046917086943903844506416110914907966788583780935095866309616250251258842305884841170163509915398143611022897061875636509431347525051355943247434716632886363228740837805857221494363969946908746420470451813780788049842676439633208383300446820653481742856708819123704035449339403893763374904681018606994237799318528092108730237818049234684518634556165277753579054236501039682558840075653536125095998879323851607134263266282289427161240647521201646552659008313830832838005941341133526063639145489946562211309460898498223717229995779283852701381525697251674376587701891399878521790542317092255585560265417313340978014761464576021177282585512636188895814853126321418002045393136931228168906226442446114719513399119782729552385180361822158925342262294055340304256391720052371397696752179340020354274472180009160799580015835734250339436510489887846983204432661893313816435469594999033868631307432421452591798736230393733386506200573727997300030070704588224120505359932684414401698171069983327721936884245477792320147505907313817781149741161582181206734569768074916690898882073151619357259658965709079381186945807111847736740318066816525019655338935893928855101894752108666925725143433556441862595035003173231513405229931388192602690380224694800849563736237332128761550244627113995880039685060838447795858650523545839598589251034701915180775847070719066572607023404730624601589605904482965127169683249354743126162896711646232592907499004577675495833064012097246283372097627400639314250929315825697278094986390265904979943748380343550978829738580746660852904917616527373593719276739797374507590961381159607707819027390125277817448209516917581860121228956673132820467432028679340639347489269383630710768861173194353640126734371602306444707336569031603216921183219295145793329964752620633373357618621006249034917316242590855422560475394668539222133894857086143345606438451386287664619077921162509939439698119193126517262112095410944323705772433530272045734420232320832845101344242139617845832134593404572424800399206012767411269942306090880653088624932029242686545151739988003514191344280948442610709290021779983776468015562598335379821516314303753378829443547697619631124058312703969152925523925975302379363032891350126484792319030406158135974796921716589916836628113058224555415205813428330170613284309572475405472558838430322640170170004883803422120881797998365788669466141347332357512418792762266817900878347559555774317499481571353572081926681685800822057619150620570163150558986648345071975534791750851576723092948583971561382761800105438357611528833644645353588422676426928249884405721588676117387349803204784696190408938580989977715633751402705923533127207312241268106873818623128773111885957157939464424485447845983227684414600981529459213948360823361800562187444394391653701420573449641817437672632985993619575335825131862639672123350937777158054231688040264870831708679043715282652197915937293886574392257654042343554418618785661116804291499604567064224592213881502006515531139723815940158590986672924020295957595576043710405627069434243060595831856737350027602117284586301288204384575476754193006290562931367726832039386405527625664654841101896904497384648421490387833220004673935304764264465719617996171542857308248800744942525585511416468716319904549496687300332668270329155779760598516497148596971750947833767843541040257277436871031120762695543079559642404661681308693960806418260164412867646263365966113677507735872350934976991027588741938034819684067200740377876555042346501021768599499587895649945084039245020730319575928539284395592987810001548142047000452635346240867968379401229034699312147400082643575481131868939052695723924017897996285134058911042678160633937092853856047829159669512969373212613153868341865919359545459515704369144879093283935239009164411829045602561905013023353267570279720153053282733284293708348890059415144421490788315490585367108924400419174660548791439534904334302966085451944253208403496523836252764549294955468242944645567092965612728153859247389452517662615640625674018375422845520965097549749818547804232062024474536975956707064565109533551283254656081289229636625686232786148294759403577850551368599571504726774186002306598300364318206285268124286799184638851754704508184222205556635031374473477631263041292103802733403450513818119810086177148749487560434860159457416010260645526807924615822042452703409127195269585253201418433293180415731692242670491980649410365578917376856905774337539941929940392509235902157476788652529887932504922133736612527108318529126571745783601700283658635710231038992660786113815359110654501707503063058116286365089888526214127519990664024278727289930833611517227230038698246059670627994391985652788766517781627482198283537543061701699632671105646886013453164398224706289158285096275910140807599019807499947464029359615312703204663402357491728875967659927836878894637225788104732119869433809456021551165421501727167499403270736358229298013467901855231549038078783738264093002618425703904488673381099104460572192560437311082210899129682030172290829823961310530237585709715685506383602596607790789863601968808586706391818271462973664272060673828033559790237593896357772605258174254251673966876001200101346135030914897998777300777560755698886256566801947134722551946223404106065938508094365112027213829312757949746939689010723137204958176899658502193588398893937890892661109497975470657261717098131935068835052973799881844394958358927448503213082752887724074736965480615818771104626659580814118394039218715770358985659828359375154136128769877490695049749159359419149448393611123300321614037361780821742788827198968153375158611414609775378075033442045338185598359616585310384362743746811682273134620005380728468630186757481609353972030313921349033457620933626364375189471479465791117426287257859900150155792711354425449846520905804765420947195288468479346323938433672273433457668406205265662689331945007847666476032246767892320945031113841747995975803998542739605129132170598733132143532275362438895188302672146239909807561304605756966187201723182735525633329757670096309429540933361549336262287307113112764613705034298917477890629175827703422241759075409049165997292034648166601299413188225677612045516523222564524423333472159255147059702441674034980496369528167922363053804095279627557083599348092943782667660069297669322870042521744096237516915242508311538820171787266313912514461562609733715338049465822143838589448875512376959913694006580155441996477023453686833554277499872920351671782013958939036918343637589984410928477446390769962901420627801257374242773877292313151891959600113059843843287193633925404301025251862492140626817638777194746255700784624597891961994885033367964519642752621499852897646044387474460861709576597166723066307815945535884516153880064387063197633361661415122827630561207004753104700761156392833470656377894824811603438732536584086659326694727247789091430456091824506330090435871809721031118255437981352719075346340234565919591058344958775970711124906480618202322745646401221390697324093349257320818468231926704595094734865149295628492595241712412596100957049969905466558953228508816017364373109516189627910166269118542140792282713353340941532007515885930772176546441666560280607585703600297404012198996221268785199515879325198788765562861460219446618972237944542491458524143706199500190439750915873951799841985085558765645424750250793812942835691910166404898550765847321304867718899484054380255924183684133182064671659464495415336224196422491458695894620107671230229100608450535306083579134125744561898357075501339288774127637179895067228370879957198238351165399330898662749359615553722238318827823305281092228390044920808345010079856848731761563289792812432334942762101561356606087285129905547311643508145944043293452321323888549847671943942238367993830374923074709385090147282628693870204743734516673299301773272790193489405072312505451570332332782854662181205002973505792932615356084465468019484378957000186647343983596324745452980470886247102519394711039968731552954086639752511630763157429542844535433912702018145957998220173042399368647554321594103517826627109757791369856183844392910905979303333228447484489260101014212383904677363996666593330949239587614765866694084700162475828333409655412647046021189802225745434828874235662753376259953506588090507387028284037201991878218416688948009154776941297391257941519730202880181085416421665230877460931350936747257174450360191375527964465289962320840372705304600056198011512423765107403993973898088271789870601305298358439208335641621662644410942305912702094542416474234466607538884491720306756418351815010522022399286711571219061502153123005039466093289363097273720075011442774931178940110308792137368637391914212751121496023416165968006023351667838961195160315980094797550102475621208494840561266714782326730597685843360493486425441238107539993151848425567988655290623481816121580204746433914519263841575717591854252570472093205546512146062979388572617364877933128637607455721450614978371142251415263647794084406883429041522144418389005811656316474919271756730196451844474900583053846871932959157723321895665882174758191660322343274037467653520152602978898128875102606441692093713352001466183865011976411275986469148138731429417177654562712266872447768697255442355732525912535767988398394623160382463474949765051161030320833228566318722957073535293020271343581810677339515178961692801165416166821491219327992113158257440906857138565554967756318167092321523015009565562245182648330583213285595199085492086691402916522984319838867422432477080622425369078169362602520575959024783427265122378146248485798430795930655182371709262577297314636590544395532052372901806226027123487009067314376063156339146593422487878629278133819478173292167670557760274495201930646527792439939459365047920717554175371307317124984498871528847149437448956588599152370174908739516883967219453059924668693281133757693213479968391974170764092863379124295047177854250942937778341934112689232136934402535921453014111489253398789743280230392483845571602474846136717517392226375768109408007120763977996549723942074787880306835005285840384577400441805945813213921193670352860678808199440835095606028299723187503191239373182345988780901785942835836149175566082742808024560367325629515555657925513527715379266931395059177665657457681831515435892272413647841002170044859316851995142853523947958316675660392184242113628325173677514628442859630830158599990496059083796962988315988281917292360686430125756684446284482757966973717900604295535346005373497457280837455298598511152400417942472777994134920437157261126099891930214774156354165112925251069152417424750394504439462297851396288957102344314645847202191994843903301635290793850732244839660357493077047418197389655737239085120674750558409451731999224174175967906191236491283259031983310193432142999395752988379992482636433024258364372708927728707348026877655430504059854265229148013914056301027328345184589880753039412318900873363688323801847033938829339322913568899785411899710287471912324532712693099742419569643016684959394441943161096912800909813491787340911342140750950727159192216608755240109319852976166473437313976990465578599360696919025749169664042989645167739975712795707784246308505467901752691806140856409667791125626511339543833977895151317819777840670971665268097951498355815205489430438066419628524325047234364495539157365573191646092499899176112408263029965354798366702050971185764126431074647678964416987401618097637311371233924427417351363104294410980122044001903956732382059042755778141011949373385668902906693794706090763247333821075288119732626732587240787890283374081363368733027789529861390657053475786436133865729060284733114454145157860636348245508385348661585604702015149849225366166676790012456037822333415376650463396982254277141350512651749822965945049108663880603801374800715672929099293984608065278151169032599007519494659745160343786909503268184127506242521796776792300907182740196488455207374774601832976790326454790292477814838083899609692851910310194796115987994272998945607387199070202950784736207803959448553632654554622114109833991701677145468076713718330642909352303281920895974940724478850793033143523004359396841023039716915406776510627001002408160862885242877802803833773064918042988645026984591041598671526355528534772024261338353782259167110843321418442659411811678099931935618989845703467001375035723455631433149472976478640054737102824469383712790294533243426960678991508218272611899429766511284766559022724050917302996308273016110053366267749056282909954387421010449187893162753287622160391062662216641792462602122485917140527990741347311772659479799788642138774794560260718033076783979743254859735663736654603028794731417372921148798062027715394638765108102686704913807492657589366807756024952569702510281601192400148557208676258099952108085961210378577488547225862044113668828740929774573565965800221151700176892793480055711919587299150050172371639296908934680540188899910005062038131166210359365854312694698870057066266068528817485836211953475842863273119895741415396623707584329051919266756794108993046802217942548713507344293156509408484501383830790842446669596002163480034776086755599610713796996666397894659558692058402008118555707207174026003761737951100762089712135081681018109893944476554848981692530689345675039454029741599687080265819992647468514285662034722819655133925652287870357394869934951606544040729636286821373613064999095371396692115869130004081104151086451138748998790076069815944672836638983138623834823113308291945309571073967686442824847681470107858585307730317248373127674779908169859500714379651174994606670308809460584206612708819011723053324889131674948477017646491083095070697676437556838221695079981683264630530014533131697833015772211441913467514432882994103401041985055406689936652296153841368067177503525076503820949581985025308175706101433231167150599832178564638591328794149372314407916754916546715299938323870564816371113307537132460157906869497377460843139653914463687582957132238953917428715282488712687080389127442563258704915963813173188792315231815172850401789669498601591390589040284707251639892049851743036060745546830150508448842284237941837485341664203205156722814757120513319409127792589554293654612075895562637804675239415715224877804850963816388516070676201683617392888709827926987267767589016733421787197347747076755389735484009429203311589141158723750563301055553345247167962282251645832219723089852161292589082311500787716305189681569383405991431545388257168396475503152378609641499755801846677450640773653547112807728152374835897834348828404075977274571369834998851203962708761936980579035119818260639734334189582246086231760719981666642677986046974432565670433193402200293092059681325151414777841797599208457196082730334467152036600446009455173115320803103224654794908793714836614621428419579443972131975746708354670767246813858340416983465792454326338921948424972209494711058183731581359724631453642508531676984874294325418551139734312684432577496997439825441611093037827662421553653379832402164986034409704507787503107859575388154370815350378685112632990938135500006211515500624746023236132927827087354517990082310786560784480045210794578995078053631018470899759676136498427076097487278322052791400459991466652873940059712357922005231191524494723856125374484825794247611481397493616571238060363937970101372666145443740745611300432127261018863812052173288551415859670126080651767670778904806257613892134388334760809501350232339084227276596857872166451220920923587836091557069309012754402585104297812082088099399624392213380418190470440802225267441790121878227827414978203097737522809363700916069549288820455906735481642443140097911872857315070660324969151365516931185533195581484555808129670294519330787461178702422552367864165916262145745185234357666471807021352684355971938773267482212680856497841141013514011315608702836292915737584908080393303505033571031227415231279147236754803440199287421860981716506890518441641378808430232761580919336770897587537875034528951643963216637559297048058267861104945608443613391167602500485402105937223880457735977948927559770597403591197234938342214895821078930169869287483568329301934425828152558675681131630016046598031710408465880936818424339459926591749188636789240331931499324515326951492288485750034365957444560021965272134345905785417362438780487390839122083754487530913201094283616770257795514325692727635329540225476930397329360305921978395247574508844528817974522096592234573891691901306661837270750736314649059890181064336088734830335257336602601296269587398151438931589554515668607086372987366265402850467863236065302884300821198712070665051918346574116807468412996137629049204144001756387416418274895436788429250203081164228998451131835573953650020874666511207546724583255423622938474902673591468679384635915070684808419636524051939880886127077227557179434335798112644100353387371455166850117789892206975056937050824143445099598944180719460224225714124403629918843196267130047427102813741670358479527720744474285515248484905013407509685946874033285213075240297342712124431571203021643373115416975391038985715386619351450885461189789791714217768302184851784582412115067305951353750559785160592056372400525523555022304129430765321521778897910703950940823090733660427171862384461295982784479324319495906316519298209596378220160780181499257533991542871666167782542480771348513199926147934578477276300123582786469787053554867853003352760656746069726715102224882634498198744000619797115426331660692135041837863077928201293041895919187781696274740449905167322762913142228623189417893023142096035563154191228365285863107498113672259505195047371207728178921592547264461414197767990659755834740527287045147734963607320071987829030172887491063643612918409092022576069589862421625087567704898251642182993174403780400882251706147182095775369738982665537469889103988285666000816772953635415401001450083147207084577409809269252270343601997147220959855524909326151344483117264855818831665947558690193714267456373330670748334679224751373983686885513556871162045710080495735488073042261696713359349795566168293581743239316041441447057264335679678585650879341143445593557292851812978253421011976394757197962554958801992581246096209171279708228373197975175270082766169568014110664886580284498484082680774663100499782007074396821129382834126389540979619286652836435760268933607983738988606839896075148685877962827890582877466935960642501201264343633068362008840557991603390247984516862508418156110081986517847776667035975687419876782310331739209711776030978185293801626884845769505051539223669524191432577054435055585616144983640931773745801655476968085331805856006305556901124219946180810356283748828604061751352848631462158484494966510567796175835918745444443390816233452362382795870595814123176545932351978608177149084222222945694334903243349518619572059734294494398661915341354261456845680776130378242608805916150712579438916832472007184735389874434195375618512873314917915454962546336991916764535958012188296684926554174559149407411525611893816996752436338556076670788480955675248187869028709754349114873982290357228506946746300219770677466504916829562391197014854435652552498537087598195428593399363285316085146405015959411725852829330154880019101545123845992764188827448523273793884166249074163840747172078172209063049724966017413513490752752408076926871547031161175374238547666155564950731536517547249947445957518465649200300512544079909348731280608272102745658148636829879191173097353872608804403566290394867181470926733693036851262665657113118355061791078285955020643513459671022199094188931593581523005432355053241423374823763509400095688591206704523299920541011259845086362468982509382615668676840556616720195697785280431237598681068754423210117692078679046475994021317707715519872539925170799153506694186606746187429122156091490811579072481069610734730506449593327795305247007886879444347433677748321006917158002568006556404203461534895488431979613880099152177605224440032714914024107404763080380341848611570805497971726064205199730235342237529748551269219169195678248837633925092915902078079869603497201713104079239715161681574687586916923850622789459633483596859374037751803666992413381369427332009886816779508514694551655444789950693388373463457676089316205891454135604616601335516889606420538085611756231127158637802298173765533917001414309470137631893019664446755921233735267645009352557739001509845903007497164377251256737678860961882269792571777896652446479114703252330849516678135721879731345379688677317700288634820924497143239370067507276736825947828112012576906424685528548048472396812288310134902466191852965694320738578706925778962840039060930096183457795430467820543064653409303095629654351056445941435249394338533362101274624176454005253668748460040785811386504505530533329646414671767033645395765569261209576322840166169333586215693583050915617566799484097754303479292215165299017555366773113064606509246176771529633011303951515168306625267030475216461345253452999905140636212263842419361161175766085869985954380812941865438972333840156457712195234150828830405604340104936287913941126295779980062695683656472139891988000496018103048544768990186091538343442949884851759158750224920128999049453780105984491172499664902434191546743318637014350968967455844452123885742545768709118847659460127781576133392871330459881180940377073888814434736401402146493590202622931574629835669014568380672644740850169345819427966780513726430904865057286412845704398891657208137700235732810130393131377439187979738798785153225321398281018715007114432119901771500778886773229855552321029761289184915781909761151374765729591334681998044075024307446203635165725814653020632043612682615007190324390663172142591354305571421684786702577292862121470857185989544212823865270678732560660210742080746160158147847460847904196333023393574846518108339004951741499743408208437531668131722295253571754127707340197402730929390317988191194458861444892149030244906911685463887960463106465214388366273243448614934048897894573054316908297807355432383809386997849827029593458225743632560499714976903559504218132330079146845199788217855994904830751157574523572316590807983335148261221084385144373264734404534582181995271650775360710036216114778429771946569702434886156861787539261548075608178691172023486642659401104422783619374442675316754908444496345785514154036273932360890348257652819815512098638706664667507529940377517363833663288215791620783647993938054463825320130288108005131580375227157938465500052418866281153860708776434471994939559031514991678278964646581069669751659046294006892956824641333475948211433634398124747112151537664735911007096064429643105493467253211545761236540221269601495817319038469113948135530175362861800790302798638864468483683525534974108186414770888747296719250041023402542685922035179747037554519229081917320624446780622413150290966394706752608124605810367115793733025447580018852505344137057053667370117855157507190032187952693342743681092501999418987867504416428080585161863712976818028096543069130310947818367880551154149530026801512549490171629441947368302987841527772055041538870801857572690554922408841824760967535036354688816016962261365448732162479965589903386946664560662700536983767411045534169282575364966997368129686876697605572632155853723900664526114745529434227977289225078837430420826013002090301403734931325564093570011362149998783765845833964757384025065508903395067122137922559873075336043940945745957669066360540219213738361769576898761710641287147492514493408762214759819576310033925836915272011807338202038522199502645377243772731764647250544699997549309678547673421855142720827523742018065283511471813955989323359497446772141902941552764909889571299433929355213772192658418235078622077946601867763533176305477564238490995491503357777014747590369022224027170115408308225623130121395500395742228119245998230209301247012350670411881956054757177553093598039654864283081286026934740313469929039742891574357926644306103443425448679863785215940726620657747354954355686630481629241708555298200752594567010552351974064039710782217157824841195422146862267385572982711679025462809864615416183399885832032039408918613532529628042100980557672446435272334271399714859566675448197013280805563116952547690963831966522132202131377002646059940384480587014197917983401931142960523030300546941454623259571585572971238022530125520769766942835967519564284806535602765673444900255951527799396094460267279109264016297681925964060552030854619238554138930202595294432233918139708249052046028264861954595022742865396489958190414926696884943973752247348878896905478520794236908974580296032934645835284840800511210829789863254740496577694319110213144695157713699052499515083045611702644615109912306938577958326455602456317418886786898700504557731752370256194770719998241593456713025298335737825188304455387352871779552610246780190590908676272614202653012423455137640327315851946393595782638225732212942232874707501665303838083120251982320112294655694328941235187093692230744570761680770552507299446313172185774594124982372923865512442122256471547511577095021589726050630395415496330196142615777934698601601686135787938073190799267438597847771124359489466029742265229779870902952548747350756203114995207749745037546314124181366714084608091480808620714919424931977751402758937767270284491794219878396939474474351832023823989566818666429776930890684909456817894135118206521743518128208321847425149880064222227610823870342090262883626801201837635103155008024016173654616669767568977160902672063570810762287348850633872916716588261241182653868260006866580844106895747350078897388971164047931088457744145000668205399708843863651630633639771279696318003245228607875490832033248405723684407831166577836526046763125481610293051224510223059702250663221399582892640390763650579980509097551155363406122637842198797137672205603403389116803038772965775818038545874680277095287242730074176500438594824090718393643082759408842028196391577961790733823739495759994307792129843290360039032959047342706240030483373853285764113956775256247873980080529661552036848443251944489233028877622620283827038943058033698364306646834282453849969243389404010738873666563186141790335252931777376444558521001405634703817472377559101673345517649254026867332547661918155231598909909681030592929029807802115050344759970865418796018155104398033892661399068126556378016571634813781745572661102779697158016636731549915931098292827017383920563239735992708071448354790311804813975741496448215123531638891914336858618929254351542381396718557085727949551843127793188608088295406232859499061040833722490563060251913916655419149142209931706366639788671226637395289549018954072423758200385847727273338217927662505618674265232242852678797264382252806315336772206357068908659843314820635277278283598256413972709207204361845236069742536748564054740052048582700826434257891182983308241831762284543426217806583681116564680715537063284450651002403036050096298859015366960456761125633956067015225126518276082359789284958316757488777577876497060363983748306403221442884265528660314184116080044394304832609607912425363855814443678995141610280578239922717820927909364492125662281249559924342882025865532691695251369686363206090811059135893717213286827724848454710454704452299129967237790207694271288587164780008644875840361338568644413694623292484294727726564941331365279511578045297339447985219206830180169559894160513958903434824261412754248741808478315393145491425415560649959788776755856900145517340057990294996375179712899952789041000139303504353587416386361026987766712334703343249621532365702095156112173264278269902411718377433423138477211788509008297620885291572065419102921557907135714927016045595478847550642988484394878638494260743045809064173554817256222228047661754822823612747257732646642909905814596448602566377331302077827067443359103257617899479959053493744177527123749010949267916505376375708318474526378189805865037313036887311336921418397648005188771048976905705677641446348367732680685544521273506003262780726168482363687360716622905280942437379011745702885274090066287984504599877706301544052936153948454943823789184175660310653442828077437515038045270868300496359755403673089859242846465878705500595028072224959099609249666707936092167204214707621118130201562010669825267923141022185110332127996540303299285892001514079844783792201687224866890522503353309522388160930304891186086542589034570888027776450962588506669105507667281572693760673812352968302261490072259602472494427419005506262202199052550064122974538211735219395626392475287561914273617751816436748509652235303807918407366113727410666328062211375784586520948732135684480566458358360519076258499597858317231928233672400357054956053925700715645150516038829446481242302945585878734244187695122320723317963821273467690073428018895960323261118527212908082990461964446694400057174150956913131640753055955959098802596678919434315458784084845061311231660568266453668861383287629400696284745894535672552785455325973446382855047170922707333987378010052112305504095875420647684306933985479776468899869280341646158505080538358151040824288139302272639336015796134040307769051689212858376513775998605895721410481288717584139848172683260392525809510052234010497945904986846664040678856965049274966596328284326153235045554909943565539129304176817909035989205227489638439190906149521593397920121254886394370006426268692434416128106968278070227800675559579886454099835189411423169025262122609707796492419039140615507785299099874873937938423521193860273442813736379223417063823695898830733906223808956875969412178187851354626477557877357483352505893443825037569295070941900043479990269999140923107303171350031655809388075151445595521982255450867559516520994960542504310113773815080704128148602573636298849583173201741287128807083309194066219720554111127382806021024082739859810205163905432095598437413372502587901867932876709587561928992770219686353054310432443261436237668400789330148925020218746820435225681277724315473642188547343517132320674034853280066783485732085248054349002190446105058699690693543404102060270735508965488712874042750654086105512595894217738701628151657175724730842910001762198009958376965710355681775022240901124704634580094372302048112743757929790365729240893026053099802128457405562106601027849877327557573579036686869416815798259222838223619619793067421346756526708083809743990143943379540482267366163106269839163791007747580655092741579738689461688596894378795241263718456281724056270857364519676980231368158220261968077036564312131264355258569811316067559119732091956429920186428689562249660120430159008002568868191421383402042117769334401069410312836909666392906897172167340974153754883754752447768227618659770062183976610534508888967354882538079553624331838006469253479680605786368034595726098927986745080142185953402983965187678864591406133160618462162654699937955986412361327574125149446314286489413937075108561958604005518805552701006099169956450393069705844510596897339567761275885659442151662690324229237424190883500064899191237248355294145399067591498187056511713400038024590083112773182457155885562569329150080416085242625663097328977229149190820892316566990379985101631097615679574446531311632764686455444877221113176720306431603191000870977590377215734713917479943662123134629967071891365908639575534691281166089487215804057786733859492625558947080416737140405575981963542304941938839420757081004435333117882565063433735270479934701133494784233951275028371086694190399137835013951276396021087134878513088623300568995487854831499612372450048146405428745708351682433442591936634697491690680748271472285214347005346033983342502283826376161588395903141057648661810948571571580386320335753636147734625501180003640040780212014371272987816568358425738617441922307499324117661403398212208762291618458323089714719947533919059690339182193742353475242032749920951026022993410440597420665394551878361028586331494125871096612390688710297896363206584417035116995843148345609213077451066822170248210238336777963577828158358297788083727051253851999299255757043432777663572844372837015973132833149549557257889874806664275398390959157224519608495234409250334863150016726024845284643555417435684977801365519047143035682040082482518004292365070797437279276191080285478473960926730773982860974969829539014756760269097507408086372050430900368893701678858478806124789685222475081735953837135406169015156593577617060192912013742608964907262346874162631241164130335860844567450046236636489649792029016986469546629843575665626813108548606731834877958855655322866170163819627108822131485989353995291994295489015314437512860190633890534246039263861019576162365124174824758275703173940809779775272178532939507119111976988702725715428162023328143201212522476969978554439494340158848294731662065049785239553452273235548289028337664200991184602034974736521794934219668677455227900972920084982318933126337070405050181592958118938933239077312566692466992218446633062084950574030567256488042510783489072303903629329079996933369996428337372152822418429080617942886401030743272755136881166199346982039400002663819877661008012465436135104742266737383906200581496437626096094142158627275298650032875131420136275495691480296019491400856184789442905265095560133495749095718398845155838991824713496750940301941597233651961271711207962070270208479044846368555332523498635772077295846269952542772767797986618659714047753453893602649198408971174984928081261888887331760663749624294433480664687209970649562975673361679275375351684181742265323225706260509761692036696194461488379363173478729917255489099662818283835085259866919230482723350967915832979726620545052681810120395082994506969465828336779390452692139911609595374363220304035870787209558773721923263900715371456170453224748666533096494387117643902006973336712202411406098906223804151829835766767014338291747490900059129277052116799559257505775032940055319964094457865970030831592180222054193560423492287438168521942494076181756394486952136857393836320298439027500556133860863173040440154753900292114397380401963716430322132356751998816282146799899049210719632397113015858021002387594316269304755443159820573820313811524909588864981778619444553950526699699200168848382595839461173639861806476076232479356353807723096827953116349288645971270952326128342151008981599499835883403051183680672335698571561568846800150331411577609998097782889759827756101491981686661481396801394048702708274576998786076031193665839640755888260267521104767866893024494630076641981696096829792037204147437172603353232856902308114933736894811692863787951548578082497527900309586369254443797065513489508594665836684017632576021989177231423120852475047997342733740586222861886345678179533199584923923122814757936621255521341924467406114297621585174731313171379397003734708206622233828624305375036117950835988211647954065646318088217571268844516060115895113641670514308634703706090901431260703580490438275412811708009002095466902504189855672134324203042822519862502595194503745568472897325442366058853008679419853572648597411319211492504339461855953753061552559794154170398486042674894347164372243438255981338164940712593404389242442175214196303276329094125878011517543642649014062425182426060169657096721524740278033137013883357530280614945552065784093874214409596303365751853982839698922640744863250296943696741542484741722686372871565291026535356471044066733998933922600069575909948289620494684664400477374341577909694605563432911752633570122243555299593206820521529071161806683187780395339313206234481048837300477130899096841763301552072008223015419166878280647826644299310295353624905410107389902971491203199561276723871966189762776044768873767474526262337308629035367654498250295359288143756930977043077755234337395836646813478894772681798250321809848713962844563784843234051587772702506908320613301599225412460865970551330359165157347587616829802024034597993267910812647814357308067713494990134092109914033330851592374902745624544135580147589987784384897095156125909191530867646321039910004062538625667061053727861284807881033062123195683772794628041070361032558414701890938695092354782062418386303205835154041471221395823027179173266451557908322954311669640589511180818714279401804741757898560799419306396698284608391583653064642644943792479618997022585941720902697393027510677024629695095817526483771752791072814499703471489746553914066031216649242331450599375231271222400319801356236809082389300840487911464047722764869076896534653874147946165587382139615451051869846164135793229693123485006157405044648957583976785465413960638098955957143775226633214612003735536076182874288071812142276365156771377687486982740939914495905290100102806614424648194182292422829505922194028115959678454756394283713250935253781010157998406268798312049958306865028856453676689652889041946187088925808658197504065271848985768371861194613183688917156972867003694600191994736027381826241911942598237130277015733725110700004060232526436251450355469813330934747755645509836115869917663333289745768587691633088988414680305360556580066195396733991964503070507382237403286553363958577949935851153362400175785083624702694858288009509679645930608264711550042359242093599324514937252946507968089870915854398497409624667676186149965766233390989893682084320250319354879549739369414512868155165115968471675373052577962959420554728427586620887530551956357599835074332620487054909889144380744909594867427008739079502263340364092504763548561728289751037845695075563882109946723365523659188994370154447946404886931019381787136024138050881917024150983100423860118316192406364711180575863115600423593799555408608418345054285203194913672100220389069932996312624187521198205105883777598240484992764804571131341835310049992676176483827265207495919481719082262178296802682086092252981770814608373060959435821081503849551735455320354732239034645094593057344673575042539435262614341321423255164197103642025659405016249191378292349662107158004701564653921099236523407569946739342954589819024933944682199789065109530525544116173616723903629658579473803643765316229328326857444662816291819683611905173634843581925526470652314545202414644307648016271035306738588017627691114023165252836851314979295922126752780522258085146477291183505495285911745144752012497691370817269201948911584637685066476505166201221286680788256669398106315486382735009295151071931307379911444910936040200055718832452873798041839102319201930462189828360953507880962154491476514542381124296933079602937850607275739636405519717218735170655694888328678087706771088315362575286343222285224657620732230977555741499730667719681037597153526307751142613278436783930181054910414890165762978612350254856759497341325253876381229746041822300958503073599073281650204602140368903155618276974725094673168211780223524452534153826818518975764740569272500577061484778812009131763110679437206126070284533879056086966361292176912007756715114264172388024455956520066212558072938376284611582978153249392496112040670089794168722774555919089880364491786352175772646247841336958279882388634297344443146026399180228706359183399470151741589518502467430909311874754454189282624624560769628805420671470376151911748192517944047737395976138125696791280468661443946219516178732865173887002683378882812700266055450326260923605560967251924755219376764180122208293801585842549628829115339887949007271499448581502075475355545408558656075021864601557958967766606840166742749045365547877371307448572511362878581839963235226051348390439652361983527115801421442550844673396316285187880911191923980979638214930440505677882427910863741224209436268844085546189753086025966352210399216044446882951748102993416732687913132510436995519631270057489989381763603317897336239949822258416388746950909534618726128915526710724996099948529967824554900851841478269894122708129771927205826454008494160002143398610537426221016465463843330064964280932684689009349028846368274385363818406321745437308714479337119606445711917782982058922873884856090764302982972412032056325841303250871356911466517091185364817245128010724204294643376690562685642471594938123589787674084178297125752654998756846792948203007850353371478197361893767560248412860819417277529051602207699457029197636843639292680043763917672294649510271525106584906112849955042668587850468659471812373692471709616258971788748761480815927656877418977539391469284651158287976503231906116090179797286058063506629717765601103460873875188692057272059379367032401539966106311834044832076560393480384071459483710059011699591523565442034753181058460744587994447758744572651729415154893354075471521161932267704855123137064195739425129671558028183452138006063291573524029708404668951211545570629994982393300210952493836689340309107710482824811106327498438874037881775229697980611288802843969329292983796924458498233096807800893695029061837994516913131938216781145658110858107698503387865306070671644719395817696316090043251408523469382592432740156182056795045165290842632953489509251708576194513512997362576949172040585287146134142852417800171579795566591025557338749612910602715771253797519824139865812374811876639652912247206045814465490671536642615808432198772517306236076455932926146265547418865418130986347062613531957630236270431184496350031495857992750643669677789266493028307634302719268894572685691260668540783369752730128229079083105157804123756096868092680073680593022972276370143927594578191751690741842440953760170205647116473260833891039102908220499869753838080604764370353072477679916653153763627337444506253138711190358645874496502382955043138063756268333666912686664228309188437284888778110374728393236313426431194161852882702481710804731258900234643834121446989046295580630274124685161163151663055229324201179489732018546070376528631840420323766697189528664309848816336692197411854112298995547298198593290830560955240527882288526474121517967415343487102047644846415210109512660427149006886145735190101420542079038601946588741561526158850080688655343668541164832357920364177094204737241783749034634585221991937124338461439433359925116616943378870168917842252948043129806062003363383739566386207343181247252045261779299125250379293582362503316329586285801908306093156259245301477288765046936316543480368819408490422317026419242446765687586568527791337549495929090824394029478821063578677077506998615390122077156868456831165593489701805362775804674318418533126692777639312213257989443784297991396600874727226070848158204391446874853503688450126840220696170993618301994233234064396980123813158307564576600089615033962852350237472864411308279319806120266079225846747711268398919788170144108667411444434677839691161872081394842155178041376553054055360720767654856631753301105421955939710792539305572664757057894702683020095907374281150806402582650105474550986129306584958545487805964547722030313463379533974992173794940080655430832506750219587010771636935511761710346444661206348414996274639894452621245520873534583433132003414487640740087816570720205766621226647684765061333815489147708685857670937417736980183301533904774235564236205008112442569554691226509146777343746386584110662633858170920885191265508237486527112795453069501275636841258882961998470356291546997993532297578891313809340207135837167198494086937576072594913734955367754514681182145676964721376469505960678112973775479034054975875851758716576161571743318985541429068864344009730575980046863665147500429340674799087339132450223474086535522163640032795751775664621088771811492560450172101022086317056186638956916562200886020996311963616005725489761383247972855295003238025981091601443510511392350580683045032103766819667667687035757018316726976553328523214481496077791598753245625402207848249729301252197894283503965961523647864810632364706695826656956389984626195040074470600585836842279152314226214966393356870774697362405382197475692023169193900997698565364094276975435513854497261599709041134445145389176025867481516472367307415847255942736164434534968167491122505974143467742267143288185811335288812199594034613130505163229255814873572152390438898199023969822104469323283211993194158700639892182442046642033912737753670910188561018427983367868468368788853639955017143679260447385311887878143750132089259206370583216328103522380196531656854176994575967309200915514034430000833512089721982955969076352984858762751274817561458876273548216242966208815475437787431447842186002477607613408310022931291990228396762496698903213939252236978119111752730762742117269075469376451464010462630620783908413910359624133844615768209099328323984695924024879022681174252235238070979876662402488516130268819683556348550378037091240492475527253099166929485014620859366726535595567345536336800126351277942965323103132800543895671316629518612351395521815134410453167942550107353923230382165768009819879511081659503949290936952690994543456117298838076522386863313594136751420973044427038996345890633825110325363290581629104997479350109224608540918735455011222740796412678108312193502685295052221188452957136799394533580205708081959962133528599247468558860475768857308377904113506361760378948811957289248248301660773605471090866436159332754577338912048135167360919224429433027730579957326285445796474689736290560377375067337213796297206751016350858904988564584549537014410605703916665212527813557055580059305606323613756317790667410666871223519860974747714028188435513536870191953341731384137469164214527043390385154828821375357637739355569006657451452302333707168608751234753823468439468054415489997289950104494636259220383504168745730003991417767527077539766687585918439222406057190346625408832967640330341355988183668923937255079724973441130803847855452562402989722346329289820303213385966222323368529267519358643641808766536551470442528598383127062200788190440497173758423195233429082958450425228336338987971176782189223332065463991244395395724227833393183337944249728669880385844807954225910238933282517663457063312085094378204241201213886875622227210291470326096373900159225276027590918811258533277067289366339954494016502525546693472857409879557938141736203195615395300799172946833653333882725487020615167655468549701704874607265766993602813634638947357566353828189300468691808600978849543562989243111276249482194298130565366990425795602278596770382185150910151211108483553366379415855824050267681653512670685905776672395915522993497025099464653901933738138146605181313011961699692692639005054524733386019360154534147094588696526681542406664814031685948793146436201390354705426632876870066035916354068457187796329564058416327625984031560045217124388125774547339955741317629071982070080909531239801990786344707542553707785862917032036341995808643241930660937609308350800271713414164940742646690911077330224968123740780812439119082800914381312995016652966058873724485834008248859792759736967055543893631274849399740413407325953066586173598307035881165065732740336535257160372580646531331664581234963027519623504282969318185912886905681280880387742225672497136251622565970266190087550422471728173590131812173201234849482721291489460153319834793270880889448154687161060466374773269189418461759609694655907472086641300526738934046579727620727275233059806707117828263967580872150323383638859694816383028982576167133204360132141334368210165837500227744752369039210819835336769426634760044994915896584591700394253329866012696823164674764218618915784195229635028329537313953432170278740353820102616939590518137679677782519684928298337311171869660511418226566714175628018446127525356034562138345133840082071298493337479017334521503820645741100238367781654890192941523280175024270555505025874346787495845802773862071431883987609465494144944884707595144164777160733707882270097912674838181649000088639417522099478355886029974211548332729688833714637994722059648317521990013596645989051777978057366472391338833659559356129518895756075573517855835172414079409887175907834118718234886062007948793482097748249055643171497118684534901683191074326271365745317061690062579642327851468801388765471530544938406640159497551590207492130351810651254563481194091419749020182337364732782118878722777228955380821179372092483735356353081195802806529507948082802807267522394894142491617438808120189697405988771302104171420412499016424266394985332354547312041382822816176459172467121515915033156552918371314725003236853702896915146982573286301738904624072394526884906556606100740969330505933845080076879757540393253813878496148186634913869360476002370195440225469669621240426633296244463100358708312048161126411961514871626857458549891237693782198630069485743439808694778419013536171857824230525406339622386042236222235540513338983407710640728261500927857685167138908427737371109293473104950696748851817953082666588805042872911486595617977030933691815022046508837063907151563615144689366982541774447681834255248769689161752506691914847062046247125043951641479878849962125744237503311053622536267107765118124223343518833941490261039623248644418546662279429170672651349724442604636647970592354663677305634807246320903963560977918509769267734008352405442786533993961826216045215413273547305731041749811793580687111712386574339260409262593082702550010230197625046783086416707481082669295371418597165725694528285186856190489013411652244584706495239456160674079388452881424770526662225069278306468114949592105089615362261394476492266256416494860304860738743858542637595208894051717571277818830566138101016852838805856871077237810335501345530632793354281798444122015404805843649239087946491651669413400321388425880895285008320715954358316906495801102583821863022340913060571149196683250901562336921788147943483331725763068690395177879656471322973505029534069107526269736673795960713575550856329295124694024869375958178300471425649538692088108050879445352310323080826190245053008400614258573225226325866331268820564649865942785365643481422908569772866139454983183908177612042179527338804371147732314899103542826802107024334721882163467646881454685836358158794546147140046264813711067945420915937219153289566105561818915890239212331027186611498086341520407388337175977911026459925300092063935674027422471714926012413820798052835742787501039851748247417489639938786782259061576348192875517575525872825554530183470846416172859455391698532264868595128190416447162819802564267999815342214537777769132728159907683952192848427497145385358152684694835930448089037766077916476186153181067032968270459776332376182061209906087056921525640805644216801942311572860987412638780559912541742077506330420331098870691819071353699406344243806501366331710777546442005400454557811472282760922860582944930568546696258002951043982792564475635260710230973423562722933721730072132413357871922425233296829647085229540580306732074920572016202544773500721785612912627655369147659500596158278738422531494003331468475961670729619943416152041804679737950470877062428741803104991400554318078111806071099645428324952975338866625826918097557980854226634885581384686289323733053757778651504414468763831129123317474413550740038683459654388047520904401194605548915859050093564821605422430740866094024176189011675521346319765987776121872712996663558470955213173746023369246675563577023572727524689625914762309685462276512531590543314538431303431748488594605268253177683278306454288856832038742950147818133576210572636684976255072162366793496869544141123089341288990578585720472697259715899807034886517701520092177803227057685209013698084224927782102342665933129609908111016455554783148834316373965297093307492228543064369413537581122717878500448911583598983629730114134148128307948923747135622610352965495782773210246270709711358403563530984958341440385345243631184790522367323889060375282337045753422429648406373825447738443999740040391609294441757684878588832777881703200603866789171035677143077246192310677997895148513516935021473155595841593621589542491341044986061002193703191091271894089503474929381788649379621661677040379905691248066774817504923237569282074289019611186720163507611478524512471885957235039704617693197813106986392160840225010610186580149713850757946040804121527368396283471393057107177603082979634644383075831730282138312025703041029623460955073073828246792330334387025377602281570737743271884037204588598425590895444740203708993670625686901763508334944917589335333590429641371729232328660876328602515042079493907642736510073796382650363897917036419561751902060499241449821131560919117336329112853856587340769826278881941496717644976712071452069408171082301450401611172612379593276715607914510922678770030442944280756393711866431343893640800946120151042022076268469391721922890402654865079251118956962549167216829452842421584984774579441106573477529610876044199127341019375210535103620326928989127423446376381375892249691774803122689621215525706998284813304517867577227557783540510153526892878901714830470585258594287536084950917306336298502509232976570315587864941608767701188464998760841733096816251368581894936063254404559654778271688677127499958840948979043374976719998523198200178393822447686646722744860560220165421107342027631553619854303236726740632021865354575095295026101212954722068576245475362294030001400690853045846865055001614403541221416752359585503974715131550747734862697510667900827407527062992255454970524911845210382451764303454996937505234383678691916675745235246545860254661347734929175127536284550993092537474951095939368200519854096014436961396489734062937578454199944201826051825682689974517532937268017740055875469849619868954720465829365371583903938036254796913581826432006851498121342842983498045432937262518365023894135108068493616666325425689135487528739376668385550567634329946533590933242899182887408264354280911145543609951447461422879418496537323720779233443027855954300983120429218239191167808344021569427623627595922784513272843073152516508077654842320392054494141817100260847204439082175501863988409090242562656857813444172652040588234084359776815390277464028497473418806946230159742671437729312729435330101276969016151885338446236928745432699731078095152231804710292853386050268574271024897397870539579713526331117636906070150373202046423867957499689069270659585582344783195401063339224516240316739391274078265541227590397624016484487645067829296682896457258715218047758157091917550864153014059344644079365326578205020424847681053630653722096766038801609942756526587837617195173570334151189652177453483687741234218974933316605272047441850077163567133803429400958143619824539722486578935440363623575483886880065253426183959035918453756512676523830436900927240874628471973247019683414527930580672698108215437699084629881770435881282934926658700699598055382095612023820438005641810686393927871777034636039940972806185717863040729814594443372427428942685634075456114732696894298513333419272187505292770035535070880006320344504345438484007695394193587322368440350445230239696718019778773941117040444348724694294577596969423394138009545710541800254830136472652899418813036075321898701908635874166194181707556649851704071376113579976472039184332227043210038894046375330902041926114537641831454492757578912686892668919147822655306482726884366129897858653732755369219067812932131461833834876145249916629011574755712901659144370546261985190295267109049127142656433123164160650047787905865234539599172696767030628674028866921745945516343537289236215487988867171787380836423284948908412891493544817535375701564342888217529238675033191756627041248231844719833240760099992024933490843886051856564187847963887563058046027223290323021468039374892979151399986928801901378693795975330414940798253697614710194827264756632856798514064983141117994767041454968294915502226161068882460664504261181925056220725158823266887596947751772474229627386463785317263785404535982131643044638873253825836933337340514480432430491987454013431396114885449450906413039686458057698331569849877544097052110408377071228104263846169849099596896636574329468784772497259688877309182742841177256464990857835075115723499437553638017166691236826330720529003146184125077587792666508651651592410193912033845374776030337042099006837297250548113089668690896517632040495529011381210324632813304829467352575312187460946220354175759025807680206699094697038522431425937824928134251328148548632199035057221016673904856355170843501489612633820603983557462480543547719471289262001147898064046422675496718827314377008602513122040001636456485099254600365774404622481430427730122421600275787051824126624578275677075249732916636452992027151438073364119189904133498269113557259891028333298620758931640388248881911407457522680549703448897444747905953020555452326485763929489295327461428270875725956365716067928781889340449895741325564607725855918091787999549037530698378181244718511229478709694380168625461478315610148478531806492655767867370011242439968157199273008053227570715637113764458307681357711229163439437460435419391369628039036662917562080479358033330076782107707232701007880494325977831952434613566610010494014569574793651382077271124688083413515775813450775455389601248533100136220555327749439622626659663076202692841691296831489470590462554524429605288775466307045849465666130126033412226663332701451714255941482537906174244617896780479272999082284906487535225289725785113423126468099219063005152308021946367557421952282171102151444183727675739311146329110051887888317459632649352439783722238004446492429579308400536324849793620002589045033557381490544615995308949690471266198273591051036811676536345985161453208974082852356558329618645790583055740877162584996540122748216852290500410834268851309662610150287870574477042499833352126111787376308152217060930030954915122644227199885544797359300040810199330625091105397746520373747123311737385581391275372892973168255064558768815636128966341660035067375792961621506989233279158763809795646801653103369119023714526892979967275128879476570129425805342083805322666152263985337956158700871788859747433723843462905931220749481658601608673705970677911908416287683638865900593827322699526693887323527012200790609405784011685718592041546834915628316167837072759282948830281885521560297121629058374098207897024365463664336075496479938872232582540084792653236342109937735324971234639623430560455489301118485979968389175419278401744357634316120679613294482301676845103336991334893938302891523325065730325743591702324080451171455830326332870223606115142080240558380421416110163608556542003324691557487361801763589270715641195863705091274729139852292137157765180085713084183462727105290784059073381710506493404072443054075156251595940949953975001911465033825796593660847698077916912727598946954651434621587939611334366716995816830563685050999881877049316342441226572780119150078253763926854480273939118135362992640699308666512546743673795220716328411840754339953695745587478722468595822407268994766780613986998759641836649527489454518243042134569735178928892979799144619499685810651204750158720642576505024848703595506415364503661959173581919439287715833029118560311011414780395575436451874166774325153032213297229084522047771255340138260851097918613883921856466672167456546155453612143025375218843040001215111281212368414722415049297160792135682982961213832213164048292828583013609146299898321310710782199569752904591528317749165945586667337526669938634693184126217493813707841557240771139176688451484988188198124429929831958697786974465944706291145185853904039635130436022497102799449642788198288765320019420243413525969120350354907228685717067107209137316913860017352181536860523037295769161179571642680111935935799312559603872863226380781553223001656885702038888530466848260980160132434410759700034626456766531921173808162164389427177878821451414999380502815917067486568253832082419793623178180756623668879485757688361682681076316809791384916998769329374642952312912333681343054604514146342842285584897793328779505090074498678363697512697203243713607415604940495848129574169686422523094032478849767650218430014339965716356166514033273397350484288466400780240668651178612000063060510022390124089283559490753752666504148181645227976797403943513132900114581207162942980538465186197370450909230196968196140696737130394589325867420628664957801723527332103536367876548151130023826571218794672627240940409201404411882500758041452048040674755897518006005192861771864225937705154615517126900061434952561667956205435863945737048255025167755124390861235978559745270336438256329974805725088431023405386036333740696321784489095460677553931547538820207093872556017492098122427789242796777069704557145561821628072282078653464473166233367694617539086325106116362956791278402660718693498375777891126171256250580356662568752006013882047435048105244923770578659607388011027559903030482247938755244355365260987579420185378361484490277402425758652846908419495557881496278431950601938314399198162240165353462900673905264767646704549180914425966800661812707859040912472339852135486972249906067473643598309820332286529956224980995823193715716962231166977532413183350305626206057385051938235224475206177427054893988165401084513029017181929419555425527859959528977698284489199609835125408718655381309665459756480866564709425217790466909421870473056992003890074735940383293883638565303212879357010897659187114289973369314070342619725184045556157284545496878771756677285529701191193516032845068838522827447081959202112436035454574683609889479011644919357278271973774378448017138970972136502313891359523584963913377134677945551727264507704204843723894590548442158846509962897889353684931921304239971951099629807607243062549426417162130652127549487017822097951838265334934619210761796961244756438967482548913589536344290411209610921127730386779435116698539789861492130551531818300239858735320325060805627291346697433927158104272983233587263907733966574645541081578809824505869273686267002296821208676802615861605594071222572268626420041240900974417713025498590711567647329633649855748444496428102108391963487698689819971702539008485312461777624033234986601793794512490471535802655392713049033468599122386991385672257745464836764025519544258729159872720778562913621602780613208247561340805092172245855542368794225566627801050492943326716198894588797758505889260038940174791565915100912535968699272942502068857026935059994435593936934275889847643523053852126394535232370325158528927829595150324685401189534973187449314843629701626858669472854363359372371982154214084026925508773245722402171226746095346282065473380823601437120567119077451948717176716037620976476053584807222547745778384704474044116522139774838763213112591238237359138184662545178375915340015104401490380469848560497602342052079088020568351993129816509705825716985579356529798896220933010332757632080948926960284971596567702857731654263385666510277464174928234978983928253625063875743297401228875869821146298903432168760332451100542877399400317612837769414130714053372837522025061491118232691221822466812687465580603577017201616975204160679939817150995884530159885937266359794019692250957868758284886346559899094667902108449668612482916758288903958061204918752370748006651486912254529156034563311744032916139258032170728026716014111499628220883801701259300409062748276739838341015091633369080450654933094062186379964647396426334547541827321042657866507672247970302954249852009513723498612574536756293644359942396254377583843409753347649870058013125522193744381038735957416657670441464542697078210620416838671212539437692370720935905309101621345796962098909819780945843801569278567068833611393972366074262810856885080971156010922724568995983202667458624676931955267123346018925259745324972358663219912675570133434940494848186860732436867500558099697927278560537051992656584927388589426856134280104173972302022071201184264221451415242132978284652758890380981145694829915315178072865450864953556669118117689095721343339505496121331257155133693098662685313941020845307757291109566264689525021071663841274671379142877047895311204412520073288308529460462197408786230313634118533926422361943245083782508203102965591247855021761914215489168062018572113298108152243175507689164123148854377154114167519650918809299988143247181791846028040467703769782802188908021328943072674967078728258517961350461156329999146240798000838183404781671996885499990751340251984910070177577427348523736173261094588834641471979991022746475190115297019756983571400800905032768019792007005113787662733006016443781662110152190759797353759087538119824448074384973610859740147697867690150175854814233425536240759517972294856741712046191770386587953043019984655998155133857373483005509852264202871081391263002473290706815649835489283928768367767396729132200098377462610563375469123758307112973912627392951542711672604596078618507294681842552328123976826574913456012277230869067700927705536560884086722722053069009171857675013354311822570093085223331200714812511944585023582946188948535912416154224323251671135157573734566210185367713614167751943566603303310125951247289856460433964661881935456750748777043426450724746598283504148252725637242071234034902477779238120614529534948179200343903422922889859401251358633711653784749179838910527058410014508860242831689274575485356703911022780220852431592621009636142170680447712234594679461213296416266961337008134458058306950305927063641630638691324712610550189007902045653139719569017686341172310341956546686059865791229324560579659333749296448852339336663967512103852231103739036873516467938594607191465865039328017789639258793630391196188907887507342568104038585300744071248012950554124635674974919647252148060205395919210313087769668205044632202529764867255547139777022719860726314045682849580827768944509083796545630416459851175206634088878308518082079228884756520370857248108319031996752559993055180327038736496013523262772987805192921358781883529731735801129792762684695435060972110993624704714230966441241218670898490839721383290812523978229834146446006924903692354467871702154032425328414679645096498427620988096489957193841205085815316191358418121500057580813368770277257972854386966036960302565844420747564538625119133446223040015481128665991519869421789719782615736430347065686896380303479116094284753521276310393038415900300538537332612265117113338309550318333571915415172479806447641039491606385812467294143891698464842341413831984805465393532184626434501950275454446801749642008934617748179563227685168540108703880869903866016814937736022758223257588424515005782285507427779592044912028054187715520638414907033437712607409574489185959491638231699360445534070133755043431567116626575802149548038568188053744634223406595162866706061680290552515585312110441826196090611585300569035944112886205900224791525867450838139224536123586540977576743670734601839786040344021657360143501111068908184620096067864226028489287764790784386758156892494495545015362227437840901150532445756224904238213701457201584304806876084302246497642238207147678245408243809414745647061622026759180069211204451988314881901945156904191357111790409481861970054115517632833765802449990851161170326399587782236363814828233747882796164490863363243653827489383967456923348919906188750295417159593968049645653326641799436561016075144868450402972800211759716840034107516483623051280497726832872706599641266748519062854378982656127333276301628543177076620267268741667992558235368759393066975900059300983721608104953538983799173099453265357550275677133199549408983184443319259486575537803393944711447401315456528599047357039994277946799587119110761811607324836610255695970707535750981856291579955679600849709277211550083525062096756563685871703883029072914884073560898678646799847705173603962495970002951091893700595610431731965344375638656590204338845278697145813587480053101749891056374758638523913977394899112544524134044840884207123428980402211521716641134620323107041565499559744052628029451545901046940385855455422182357183022594248090971949630740778431167975090406241008728756480932350878893275650057600008858748391352595859851101886109104478312677457990199960264018841872829362339319568060578320352410552431663583336140404321681248445094825552854186911292853540988994199409514610016349123290314012621772554426357168637826210290966946173140418502630181264752056468786317112168357868461927206225197524230138002859980215537357318504145732123618969882933771281349802739456718744676410790699006370801919338685092628419392456324125322686596889019018043713459662688961235382839296575747975548322304111763885205414349382362114386839689632650751229473316430129478705322156339834904735179509096220791186113204856421782701376702776605368729543000545635953166162657641590447708063681327150041957059007305756427772356833985682124142150404249522063758492831427445491531030799766015203460329267155921757204116309483392878980180400608654111145024792745416289221640794492065107333856411088708690457256692341606743832575524779354063011988755148668283759264529526238812325724188945815936783113821419358391300978940661583232369919883501510647893322467179269776317787143898941912689401055324310230125351105673970009891230096192474213549448771570218891199079486165691750233444471443258231999591733803624898668772640851631814841125615916467693672499197028196808607561911491888276917015623881444923265559008228401874083155542859096761735358606526934390831037816222663588656811943415751341204157941126978345446166295684910222870427443419357746013622507160329634358771232980100062535841442423717964309598637927649442512411559287995634971749350939533520319618048781025376162470176097550177220732216772665381860893803581182223355279553972132158319152938837113991094192579241237530764950695205193619226764811357444581283894491378404480369273052839270422680991364695991789547252004544290954623605978789496288930604855831354138177388840842696787042545399279425132864063064395410678650315895856587700749020279276080505093397070640457932690944537988498171303643185307277402506923300841642624364841051288239754152324544576415883439860618800716277712697221225214097871581659823107010569313203421517379961721095800184154314667859743376013647842388026891466094540980414880079596826324967539149235630225512973150180017650153535204382424904373681408046583138514708413169106680768749709633846305650604460868433341020405951375376864917988036196947787446926570016512309656958568120150295168842995528721595254641671669760464482968144352854248484111221181205520446071710652369029571856130704265668542797418167101436034700004304345819812153746941704916026716427292732764969745297334811778334964671803445004993239679236310178703967196200619565074378512870731092903490583212855290435417378200044880816010678447278425258433378112905084578871814276572239052676514870726073650424312476250171523805404618371618346627458000973288814118468111510722775885668822582516418752151339881932377610920269624294151554136137576849865795850067611371144331804153456483735431464786255086383420252183046161741790433132123261523150575629284089875480021903303903777240866095977439085496167555711816524093451916257870777989479041343542470114341303687684017115638005330175304026087771219368742128227096945246529425891986813627426839046255341023602064507629815975354112013341322137607691966717818904163436072390874840512613575454876987583411053655421687674767794208619958798108892824336941708678206228138123593222357504106506048247166383089415206864625885773032807517574904579285535781150177053687910854863458999677766133467811306719412258131164328382293306746423448406242564487178384413121600743792979184516724928827172312560166187466635013700171783566178086571924313764317484233794509704290550502290390846982940110822583568195422813922925380852519394742173322724244257407772622570916696089254948710496851453384168822887259187325589932153113953170330852690376225551911361586335166692449036576061645699986877064283371783314021182028147342341060870499938141365195927529638571836294094248989785114935023890618469334355647367493373228471883524078663496673204875930880385503690323403758939141392842877700421800377303419412875797567826910132396587190288930631168848498443255077440475192946002274790027751749124194290230167514078281875324611600647817863080441901236661906134940005518283050427829956231039824200222539712278483903868744594344569496085827185369829414400598554382010485544279128094467254687270417865566636662336825808231064213602393515292005710846078543886184524416196758387242368635425413737368788149377941648952354400283986128005706389640489232383899114306953152433405398649787856713390470865394568843577286562288373103884565287332537230736300148185364406248283288088751845585186642892800481610632236130995996970570155613482659232742233197985523912162697833813819200726638538700354304818224743258344463198427637389631795851026624020480407866905344540788918515469669071381089925036530371604391069595739708036501270396795583572681043312452319187008174719772263083599078846052317751628833097227652301233034451713301829460149854453351670441109946684121208551471169404278871017281832307842822011282450417793503244159498658538519928113858775023793940286363405461749315433493995162253163214315438031799046452966844165979457112737537628197367239617770360960593523466761918828134872466226026027665698630978701875402771221368511386379460912212361523200460847543340106148351713191012233856772761800321078395298777144526750648807112387281322457750009504293175364640945348816403438053331051988366373191990395850789704296423914226354000279622144937333796037326380978235897624239974700596508553549219823877111417449774946382248213197157828999948291628884194038481653255102995045272716667393644116509233655297686595479827078158924289968984616150249450271834418431816743433032638320770802541856350751815717641099507242905976958017648107170025308964236113440493970129395303207117317233105425429399961338702033711433653351891597383913549180054031742131254310521692695646022254385443548110497003256070679989776518990618406299234471527126933718852688289931477111718887852716775024592220427835750762115189500440708173133409392083947363317246689960512145633783621618936978351961729154541751347723318429540068087737129844750609355575700344799007009248987047982710761937002216419012995849236129651735666554361540410421178849799746067493401494114831981659332053817156290652134673000923887552813981242893502655107786698752966327216443046437502604181711236241991559374492437145648216317369660002233883719231940189776010839370675184437650934286561486520804433427241258221862942862737346036924095208872309098172769760939131701484029862886679307258370981575192014328718471843288574788683460404393220334271268598498624466506833415163985840787323603242926331877672416794246550305748134959804636986776500253726806566978419812938806863647339531974191611484455737411009685205637870147166489217860348405110790034254307742348928519608742337101946746536690530975809393915124155517485741670654760691753386993222218525599378536665106949774126056679420618325571710832836123976613424403479798903699388294619471269260039826092924881414811739792249727111052691247539975952809865486825861023999344727169629240988842375288198407554136859120354130025811402905905561385123071634252699790036667116872941143012987104145401249568467834091035109325076508322273827804333852112896924171873061984028260502361565836924280698699608552014327854954379979908065321825210145685360915050352542958671750699005811454154039952043752524927375675674872167118556350904013831798988869388851990828526359487170037550217941511471665930622823370832293485031184083933720641893256682605838629654620299426751718734810613974742462937184157216537959263740202248512899516314980226203786841479467776124441940419351125664794370029650994875867391264493310926845365203844670492573779103469320681154245701088186050377512685517930343770186213674488472576274727095780017483793689168459933465537753990976992203103691326147490495886665814213710576460702688079766430963639702481289495012012073606220180161079505616803641686708324267725571317659408954835767930573900864842322116634596453573574960037621833568677860989410394645267181781118357560477215023844502610510464165712802678539429176492913835708476885820080336614039316632010890306941399764250618434214557256075498470985630139901607501873609542207763136008713925952042620674160855571868733396548142320020613042053886466549512001382294532459464204704087495893606962869584145051228415121855467528016922768922725987973954085212667380635079428921705277426691506299008194576700353054371973933974644395217315924866979209685285432027546065359766064059629626500560497369120427463983378736235509073578191204922771691897072321064440590845730668872608325313250322547524249946587434294341353682364652732289348512874727993892527644016579083689027589257415505298352942021188223440825832136809193582698063514049053310813256848504640625632174029000856014960747538787560839355442628095261313732474835475239838606052503871856129166557396131806409446451869699796977171537495776203527813521137101321770281492539471269536414885714050910057365702628034042616989559203958922737374149006444388382364779118275323358858731219008930497351080785419179738188395919833544486009913183984940946991831798003957233990835306708821411950964876011749045552631467628569180296376228950003825400587176449817569393133378726162488905337472088567659292445356993715511370505876234629866156435263587899985599443767600406920673599182693212822665996880888839913686481327981356475155116949470103666004152432325919073021261026963754181322704874639884754771055898218891750429512316309661687841448954225435677608856667151714489465171193338902335423087651668076326299795657089716046367379979670216957153117258384687758468121068710020629959962086757305831707619539326524120760633024451048964243422763462994698960758902231168602022288201561579941487421650658364673974018641448519705262495619082139338003421389246751156880044174839677262875912256786192862408453302646818547406851091250946784846805469910607595668323981434832354095757704673660331377129395585757597344319577529020533022445512708055603460424203445953873644986458233655690352594649427529526003703430176915183140439473393060899925955091904453879610904578025228190407851899975863123315485545409026678750321392411091331711146024590279507219264505038064542356458624852302609598649184464441627864810566535783313351186024132377579266857195136961738304994199789226465175444108664240042329127883905645083155990521372063608398827096358828715776262808493987453160124345746304055505771089637515419934189343135328758515896170267675117629220708852090782500344604158765390596894517051623828926777123735268432989576555720607712702502490658087305565467174010077882711903420785878083276763892033644488946878013248877085285137014052641414310389334836264292268700274537697772248119435832335852063200048612205577397278706511095360060819105438531488231193607573466335680783426199730509054271285175830475825110001364020719434148404923309352074924020625530669474075087716027922903531404229413906983918767175940390939540274912175462168811647443043706387189935715084552995391382564783933770486571778663018937812476459216827817360878952254571220621857627834791808155520518181543271084673573511074167529939670562870906435623172613381550611210611891873304988491187468997215363626379466593419667955063466789187891851121865971517607189405627300933599683377596044006950980821990843318253735609105915058112529765933191969415961715517982482975654620511555324431255639063853151193223965919536870983564121358983244512198496116601652106364992259689247577128148101177567613804337259189636424814213453534393343909634231653410312039869234822108347798226508679284354818672217388189004293203731003187427187656187486790062500633661784281472145889426210884748194835147548774939107432035710676258195240395782049272088404107385660572805281194372330134590069719048200380416797592071343235081912292445106824989726545250505960318439921794226505494823661625208016695687742144117871377615551060322066723550580095665482797064411137070011378687033115615212033416518386951915762061640072024321021197137088611670319662433503670750110321012825192581926178185520848757359323647685865532079074596259726200916116384089287651847278920567480046449106022913903292539228521609577883678380762190901450514159011015746250963004211071247870077803050162036591170950155175598065325311334368619809931660121339798779609840447087961594098955751182940163014906656034357611085418813344535723375877902756863667239311400710020964805160602136633038136225193781238035855632580774635200146694476453898919730001543778303115202583636548947623162593512443368821324433169584710993059359194817287367269019413778303095754549308088395652462827074656831235022500233621361472522425539987911334602856921944517109359526586121524176796451442584678411513642764767874693286643399505066893555640074635163945579456420861206257042481870304831906416183379522350395038641547895613055855662534188762369635455836724860954133301125100073585473216528588262402540940357619860995031313023136934911562646509150337983921262582056030314633243600735860991842745016793071080567929486677406524223360585743359642329739473532640122820132827226576911815882646080321851920027997952199098972569275547681969026873341280491341827585139954556196422428272772365949828379022796054301520545718588466858975888137675626170249015149569544183233307315675240205689432704903567847672710529346976038553693044342620538168515141887626353764005320228596849299165585511682768052535433843098420215456525626498190867762728627730369869800006718951973383746732523947085556063206555994801224588845455631472858452759986333058375435189367412857436761254036068580110557361055136559109009917476850664920506119959846164642679241883276306617162558609083808273961491170227763583090195368851588141085627034591327418861528303097376400632802463324227373613339651194348893931903276343166069730338460278074308051430337562558000180737417286449766253528968935165381441770984461359992063855635877939897689185625549573120069141544990318508969098462368686114938390723855266618653803543489016338988220832898324939072602790476806616934949317844822723420078938843840181882034735601717641348995241021536969979400967178870020768594983939075862801877958984486171985277965111566092424220736998166294015388896429258743917487964376922851362919869060641130060424383479794136415023630140117917924272482228540712279553215060448809836808003136733995813301643786336232671606120526819329771015164081249254911620661555916247058248167001172664104978749850822748007157001959585950481041793700530195958844267185683482652499223798406718795991176967832789015884725235766123429062512661422426642026570596795444185164938034382035848002884568177059249068114951762572735387946291926364128355492408991058906334190895023143376468904779181901630309105464904291165762676715434420781106181187051268154575386539550577385346720559067137123128551236033985086450113530683477486588296723872824615470874955214881274106676028894292404246104518432197060611685006336984643775349898913277838755254012731467307008072893081567380907846177627056882984610846221248921315124951023418162635396444640135955633673326458780225882523559971223303025834347917103987827529896229205263312049827512583716498333015022508128739621479643790835678983083995203531803594927946807042295629930509983967805130642759189324394829929114572974138806748284608804478905865442409482285883289134261311267495502075675101920656220339821958866804092831362762382693922917862140145059757484239842888608636686448941701138839017324722159337932706204022819895037661361134771466822144441262557573520476446813236135908887004549247656117624935933039906305880473295514700789698519123452006256360540817334233880415792937304308090607037361202225503505482121197158848307641578595886489016838056766109179212879330755644673937729157032914510860324835444568513949059722985364189829876779408364929727063498626783233173643610249393221190887645729252653268977513661305311204872894849704216236897424328422532683171436184722663310567081284839280859371423064303785122219917906058583686300793082929651389648815955887761200974530303600663693225198398756624156553087653210326933527918747263068810537852981779600565837638070369376510495785154466687695013320284814238058639600891148520078348493399758593831900920124715779761801805678997416953336594525088282385643990136202116210975356660743914060531411855913193639545124192145270765251347681200350355252242232213614983844586582470976064853578997034150732440774749683608466486905482447295714330603012577548689569265403637708111662553013211909322654075548977022134026207936482154868137602317688503141973485917896928615130017363785229655046182821031296501247067031086390669298211223683449837029469613546842845979301318684535997178145656839268621691840532929642578820385022178586872256334531753150159669339002104846101079775681930866065743756465710323142636919668400032478480959815230242806053932124937788957069858764935134753547372530270453819401488050744571005802921683069204569245760684638513942997048504083121049101399611653629604034362310274295245358728742413623636875098075117525012569425370099823195112590495087226461517230597360021096720911248127755600517346921814047077974661543444146269891483701923429283437305650751587413593449472201031035945437798198536449425310563041246568092248881543292934007325968493840002672167943900634547079973662017358581915984818619823312131258019065740338741008623182155450605569464486703036090683730436752546083679297076573588608515230757348525656181136951890116638879932063173083205667682714287146241465015044265199872282699457977250886537307395649653462620215031394033709587920511134767148113779912722553648306255796075676518831782871139209579355800233421911784866780258286662889735715683008048923129003489627730875728394019593066464970452894285593897325804437941140041252774302531968383811059643932810744409329449275530658002626245960714974105113992886620330443521571125409498681963760118179616460060367810548453369140241164919824415131357944085243138556862052835161491712956024953001478706468898968677788164720315041638776495258029856697832293275436010722486393797032851114578581308300498563439622049222299416386454011321194249341216857820600715288096277975055924875421490338114372269645457829106614260995297820120580209240229986075799524880749033745953988510008031345638249762400650167035267618438658429344178358722029823378828458743762354970363592370529944674700829092098724630018831015406036522334262712329247234721754319047194273765099244455924030489580533840177961192623212170169684737173453591303562630154861336409971731503019002320283256351189749433549940487914853302025294471618571411503573994313008581259396080394409726669645647513156338745963510556263187287838006660385292299023682546528434216754712601137394686959646975234940662023401823484647007833364571251498390930403456740273588001349834758399217491016021549625880840027483780556927617815770163681537062465618961494873835716058546871903091037182770343926250074511137736522947627816939597533908131142003869833824011784491115637914514338896344400941392436021077560072079981576297921262013321195104886065871863733101910294059643742549384814750289773091887494688855028304964665059915640615526984197560838140830949781684384067744561630533848061159565841820038106743718736231255246017574637408382408993900001925095938761736178036888792418757929853491934529404442989298191953005904842991744713039266431971802912208730846218793422663640723600493117138536158885976887147204386623666433586423350111772918444656553296067543014241906997796304182620532859721007662648160902121005560171668181675257942145134551580100698494420633409736132981486351993171023937831604393377750055531718759506328321998755467272023800549181941007557107379472105386738827657804898968860018481834547604858117756084247833123085093416920498301616885901091000847034052439936740704224878728927053026153759970822079351392514493242436638161593565674566611409749307200254648134287989747492133621796474780883595145487276447258186845530991789829798470112382068774768368467709333296688147054761001228380115150851914667190836297013591173791644586197332110307555873440422849019585394014573812879940941933180394540731045472024565545827873026373759051834709020708024393050824278167093310222971170689298577194198295362260155340434212143471808404460113886715915516862389594412914701450658191858068031519002062240921323381796304686610952902731882763535067336816523951354337778123470088593492982408808633536371626701668047660109148176061100846143848221221263734201301277612216636827665809856692314858684022135046289567298583243571212768101381649941044788559816118444992086790233554811704190794012443743778526247549397391101607973816402778155313151908775545317088362123319889471812046574470297253141452664460259920874445439106410934965168114307435535065507207311446183044028370835186547530659327239459500067816182112482885157016535422528580600289632458916387716989407689501246931153454477824393393053235637283633540984841513110623415765232705270685468265650015193899186199281149427419859762931719612213679029743772184110831587551666343050679019955969474816798281383450955162787991611329266647193885595264144638407621825613917755052763784755067682844950864070644986576967333748260174125301380649631668161561426016407909948601093418325618760843078136476202143163669318260168554270294092360325717892448654038370312164964032346543688203084430383333068858753412394209233310127868918406975340916587178441607931403440709155133368256340212636807844167384215413671177784840533208012401947487726986481843603381951996769508264405783556794022450404562558280769665889183618786214624521902000127174759685657599476853727213735008754765154766424384473619918755809509503958584878699798086666201900661664474326335751831987475436433466857635093233094588578876846369613219610847587881492246727684553533985231634942564627388622573923176841527495975967803725878977493425560894917875942534049838417387244260733555758866864436747468188831085379200758039065310754566937202401942023424022999494925961205797683549569953168313968526052395925218088579048021271948781457402706943990257048358647143322537041379313126054958186337092696280417983613305930523187996114613766589838938210609443288558364133793548013103846274748964646336245116671466612295938988230191145106198641925977088932606785585578344314779186484995711504995035699250674008628171690281027710022439860871279850250026824566504140629553443438515396916354820543045523764718036311815412298259253031699495491058985001966504861067714501818038083583692606595301842402658292186374137938002020131161493024024517819398617390727367243905915224471335071827902316362658838575518532085238157436077251170545282750115495202162121587099018491640312865771753143592732923590928773839607400869330832964941587989909352000907417131556518898483030886002507531511971912535654760686483414149043444220812931889752743248047638558967227811958829995440640938172751232811320228495316019951070723575523699223953776656401790229673889205867410624209179486347218155695006224098154099637940236143980573271474508677848244369566153871006119583613857588111144709203232648970766225613375370654275012022924793312294845747202199001774539596412086853281534814121791836476596403182783968255747225598745968103832601906962635127403123171723718531481811410079125073314759763198484523699196987542933611772772781043594175222017851679159391113456442570977784695251573586754735858962953837844933566840179353890179684461468388206682780171158757190767458194990476495527836958148597199436638165323184258500584407521145024590013111876639232093550869467333022340829989291606726324333091423911182087620733229185932706635930318936686318302370253294124464748475717340125937471475455689411466935221373099688068634809479107216858846337935069691643382328069547459532284614267853602570775462420243258227462976875846847590350355781682914858875755430444442799919097286516882609210535714706237763280616230271632174318636873754644738501396677748026669772650500557736592291155972662600212144800702442580937656416497573680794247908258469374174189113720315417461087739278802620754474249227339045892253623807898905581261473780814073340122249213592410157273853868770901451299544054515764262301051872855359241544812834216037194348254989298051823885030954962637345532464664644025077844358028822358425009553039216551923083284564332784541599553042913953118179830478237460756044378081484006988102668289806536206506459513502670907233737827729503497485417090099879725927693851652200580665083684158927348775338419944514484119889199454583957003054902894063839467953895181190995336138327947602641400500292843204552176636755179519656343909234644194356782220559174738302590882076016919626170146228698041015462431074078519730092217079022534696185199681877615733871464253248455099479706396459735813885504103651486169301974684688780444460116984662364294786628812766296600166030950094336326861208651001742906261483167129836305289424335752145041695175776429272990752145215902206767721068335577758569700693058179496133649051264661315719699662362072219141394004952534458533700795730333402733486796452487858357207267370853315696104517728473382678510267431388364977244919703616319851476797494214800231403502006396725522631493294076521981999042016130781662330368179324767577833276512844530899519869093720866724150204467823567684059917571231719868477717102491038821918414000692266449984748999087650040395513566411137865103440195493613203402802913301798496146930609093009939683737144734377546923122309958611322615474809973412723578689399270234948964320641094830777717246618726392809451148290434622377106035705911062828659744489404408661879012796647877375002439937559384225422872764429220347539144800535938331288127149715516400445582888000279096871410300731475372242130681822907320350920744057486994731416022025430698937490243862950068132543064147697811052701144969894607117635500432384461073576410985595369115071533202756545340446608764196278946027643470449435858851305258493853952438551108624887575034425575233712982801946278449272260684325178151746350061207572174744789645092499188930546395837430599772237696375413057531410388588315917028062610863965204460879500435316844562547784072136561906202336189941259854168214664133165773964069891170410243244634863686199546433561573762131910556464506611303711345697037953315114860315933266847064246533398260707596993834095825889011508683237413982102910652495584005805153211076632856767954584109631463618501273415281805157338823169724597827253605451749967035693229598852438257174273419276305131228807223596942832999961333304616695135234998768297085035646548199591837636639412236314785229961612056963553714562523510052652324250940559710010679484794174255758174101462786907776993372913774241938153538145529594429492969176656591541416341432363319754791236650160627025906251075294021161783151734026497301755634112616436292047400311529422980891356584302745298963164322455767216422396209586541990184813035185667407436184470101248359854891272068807577798928944872400783954107722285489442858416765637376477626124697514360268115207473181215147440039386137962396424906780006006714015859605566876869075016634011265413514525222634915020946480806317697577572178342440297675595162268657559341628060760107490694076887925542854804621575940600715225783175552785072435976757245678975148100158772565311674542264074221308455260919278274143711118426303121060938443075402019775592810739575765735426833690975407703736723714077782633231674969845131668547305520154107007072543363749898435332605933887208244765657411481935220339943012589484289478512043448367034383316128136570075352713474673863811537642388601389827253222063407574817947561746361941267460425245958307208112055572544183337995141015957492767548986924577103209477661888522514119218786607771942538094015276280244207563346853886918514171104030860565999191501719944553523819777716539515335152703521939634835001691523239219212804741187486420861068916653366454089179575006744400109705089264657490138219167571901921423962251180264465152406049956703371684558230129149132783327980694982589892642902837514851404342758055597406841435574820094626414444491345311968314499162409222055689625366898050909220029591856383003514438818935904048186266816837688309399399081110825341220008198583291055531855077197423312346163298869173576731853028528610577965460499836727800080182533306599494164392718964609689462267129445825220714225525146953132740228638483306667781005549630166798051279697433755818514946526104130652975084012300097706556862993995008660770495283016124339448603027355450956758986732265863915284251123210121324526326557173623660437017302400550346119842399894663213107107737552569240533597862332978394268373521604614489623465042547732549654543527511979948385301042692903616405364149774830124527999814582702870120479802369829447428581842191742968824973663405335987787574397753098481072819714963690717740533221217089665418268666579177410886624150150473368346000262007662203017659175675193404175213412664522554662348090982555839995781244934490286219456785701813816413000980358282086985906605708774792235320302241417001521232373020403552542118779426365474176377930465672851511260481620296718086804645692025274719015217813877246771367222250181450964580140002843402321487086859145276900893227286839737524970630235308054671092791526660767847593094139943061621024661629334408048621817458429970918404199956697860049025521807772533430112800828701996021954415976169646185927500366378024419151124162123774101105362954300769951119234427272118987967485913682684230015256838772115749953285711246524331974271051549750140759746097616796237423358945069346542734178490574983060210366015640949739699769250718477776679666778901643418780847993171567284076024354166060301395329306496233065527570878559532867471351358331131235157157695538554481449885898487304233997980451149135648491422854219912874937989246088892195802726967083275584807055648378078733609385356151062058493144837929523379265961239056658752522573761423297144915808284808203775684261579031677108662599496804909457162659138715634411487282215119050790161847454589907872031189699977121520246497679699907822371511181541159566298762072857060660048977675070565195310028915564553000691393692836384200071993465251232204590177967256603366884648792814639267882556949118122777223131481434501825911149201862633981017063222535900502667700261672598566825936340312257003411828873706237660956439162058223258230090480206255019513819949667423100074648799441896794220301744141763215441710802236718622816564863198662877705846027085184133684931001508104741864016212592787134258396635616019426227456359878389064288035335157495387065252630117909448941063216618389470938532297733278711615485310118177742943874732363292587960375204679753246512381903363868376981301324775279379841215818550694810528743975406461233957059551944472250636884451932603794163052316752472355044943701104303198581585844253489882419797184869769201933901336900750251392987027021328275534446720462296741808498804504539545755298902794968381679829282173357801191039119028176454097166048991734263828841210180556491968989739890617866055688778018081626286748975925068683224090531149123256057310194231503154218707951781907220510851676917136843907820219732753750133573302371646393854795097065065654680901597973167564697635755251688726138312506550292181140861292743986106279335872107712187234759028063108142989061226949410304574244338428263663743640846160715994589512724292449065809775516878034336874101707675563948109669436335199235879324573457595542931045338764749780005168315588499584020956704945970647973788841795215708477960387215321620215959018634811435111466910815904638903500045417354678309713560310808577765908079762965333045389980929425833635854924322939352824073359251720954651765045396640652129439948766235194058556634961031373305871884016487491745532866910676956625572210333506526677504251591953980948719516158518167064430892428834141071258785456275472031633421230064737360360858644399723160843453766004468120779777182131045836708444862138771781483467040446375988942993007598470782438703485184226667592356510535999920025177725720569294942301391403255963997338381012600488289871906309613823312976935017920883491580916209217135131420645832161783738101034570953231521869089120560380646682415783721925428127148588335127657712651909046589885449299302466179965623888447142805371062387754144626717951010508523322444451922536455792173150120939948943509716456685378927716841382562291827680795627181571828074261634984824345810156757544133714271052433499635208105990527031074839186843705731901403678302578809318515806976273126736290679803515142190805695442905080314307288276985656492124759663466354184674022551471569438489066886880077229802206658831293080636779013676220804028006646344132059365185782881091250879126773896632950653727026621468460349889650341607271579953570483357611119682864199051980416936412757193694551853672723071201173551394353087345062992848510920808229323702007021416661486318597953763279592836580085877804217815871698252525603484333020463789507267492592272931394794048568092744333855442901568817603334493946025031075218335973902777165433165844699035272403730212819177334741532617818253878670422742546543536695435525913308235805403693503141947574427849198144071532543123766007328744958397384596357178780679729982154875014776206538420634331086644093107722513538057211418841107284369093441205104534775104592635066459566571149850319982829320783806650672953223066414538424969067374309067250796990093066399671158946136432557230267453965971217134959307009192575859936090405925876199535306657512319117486531253699951809022786161011180687422589009915756465098474256950692276820525798239202015664060272516946931112088397212068246503141129180873392681153758057082299906043836360925864607624299790100286677234629723784422504128659906500044229340926586082436864265768524842198079134379243865731828715763099791813934526286195222419802658189692362645454939837834971282737699303770348259539304196585132410151135481075421220090142772951724914887076593092767727584751600212809741536287348229307980402693575339955869589798452426537618959024364175534097960395754122112064391116322205620454104445740504587537515862828045672302284464619175994329760152836597434174255478529032230893276770904599697149001091474742871277821695454916265533824987803778519957031563221805334937288442811128743486909998260810644016189191784451645355405564704781712380472535042418108598825143790115298583053526542827915405625239031495981258302322747104069996951524020589731053686533207650811321564362711664032495354137686070859499960358275391459150515500884766336398787321244369260247524624778796088651542188009035361978011438487065996291078455825698124056123563087395669735848051474981471851027836436449654333280150524189766561801512903103137615613032153403460205236824367442957289638937946575029493661245139237313672794635645185230012006784349218943321578821050539090568107227321617137119548072960443172423204138863205890242759234656924027577861920999920963794536754017501691378419751642054589597751246160908137167610600814726229252707940789673433964835361879549617358830569765503301086138659772724219108503991821289109264754964581453823251045164395837492316211813967289096904473188511792919325318717325411846479014831968381309261670674731184824346474044998072163631573947338854501742286447661305765322829120149716164715774339073231103977089492705224370806295861968868239767732879440012100515888242941901809164230557137212565283146485319299580887920771449218676254213045097398644403913861355774460139354218013716024520141493817070924297090045649154851454651847359259703068295530410763066286047171116897143727061380557558144579154881713992669317483230472742158081414126328780870578971715913863215347362342853441082958139704386185658493063999617906773239744214052121384325380508713080294942275586334024412438494523147968861653858312311160026998473234049435668784849358186652916072105887609252129969457212399712331211196070695489975965921428924995011389352699928747418268854941495014912857770900079211832001125441906461539568103096161659374975260056598965067176256495635751374126287365777367613854470699038699741895032204990185851305717533780018978043714592589188583965782323113319466781316380559410098441091947912072244215725799926624362926181864444771246084070776897165092578874032168186805329947394413336032225193448453694144025759060594372595475872727719743621360573440779795350280448904555407183725613138587135008078346453678187703405909863238647739550807121473814246330354744796088310649449924193435456856613735315342012248405685140023547890393480902589569530233696400161604283613943458840506661835996552406720854425445154113762408410745670904436530270429073188862145289099170909463950385812464989488850470833945595043214996065990067684350289720900960380609546621769784331853454055270859325674476577313584411357945227516547961649661702586951924799605862408694828216348463020392511038028664726456072179801568086967617245332887838765714830414752876250674809608094269358641665481626320357022842210619368904935606412029378539628913793737425881448454038929182693945953241253016245847226036823127970438377176564411608120587475315185932704251346340517636653369689547842711804508324428741882391463150766898270974922541007443993016317920231802583884081061062917514730159831991883274321689369793403116984926167674367027494495286247386981970486227269840298549099458225683407745915691666457595387761075464008081326114736998217027767866580220026123222452459723431628150192382558240452533055967644123560714316408170775289344805584306542196962704212715291229824939634218109018719477089153299875253780190543126772064829422897926904062687673514948223229861292876231287245205326620896166680709703590474126632859528604590024798066780468037789944031447607351309499003289300317971202852700469380274246625811221675235503834110620569264419742891799339999658801963013953100795116042510405749540750480160968690712751063952369381461645871302049187730315774893576854342298973705998701331465119921480736545771398276881279668532248799933372617256356253281329817235099287225676077527440805265311535943107308380349465053282500753271035986124921653203067058875572826611502661301198459609561003521744547018328632608812689723700372423481760580647401997825252194368890416504583944651638097704777488658628361701883240033911769232443743440041236158456589443341304423430777802973610363493333532673502526309544813117522171869799037366040286623107465974182812383046740761750718448888727959479549975722022798743740304654362600830192389593436891873110598135580223026094882626121849540253305632047460547978471116507715972419752176149145950770414830073028756679693160925555118048596826387702869533550481069179177553463331340850595588353256304626329902149602697351606701824147870839060999728455394195957800408271169649480196683304827890224919318059692721409401154681494802029245545622556804579663680900280714367525929699742259190987786237921632946579462566177222038977503107672828901943622716837063342473829170572300975548104485108086798527515216600094802804638586594899265409074799148576765983031297592537318822350948493705539105939821605759707979565266195296829524973633229587935509365911068863102301386833979356821481501739231533161236655965746133997448490448160766896854920276190481979101227759552306929881056728335112958237947733382663999892290111033619582762075797608620661325890492847735801714928844424015501889596120150359958078254415927109782327717315297225622140664917884734046853648355553638245116459764955888566110595313301785931704912521492865219816285866525654497864348783388599973818648374020550936346536185109967916026727864607866321628234135767954551187431657632282978871289556704533490834485606734534808122669764567955273040610384466499697854505049328672686226466910333563734029871672513201411908069383418352402894538358927835175553630907255592845488634802227168723941024561660493522039242517799163423603732194197386877889831104708386363564898926859994931229519484507951266770662319054435854099740713183782432779351960741470772028773927153301828259913693259171575466311494793753924069987818106913507018824273417635077067691923596581912484586566421527649183432996222781439080217908227310657169929951500433282395971273687974950502299119142981049426854228739961383966876238142273626044749692005584806480132766518494328826155672702226446850268735433947927642549835210761619859380423055757432464959169139568458803458522147511636096013892342580615646499707985577258942657593056996334233719355000234120661849150222749971938104626891684278526345734767529393302693896934455907063546803320911700685916564043442720958869526329190799943233349781722925278168053031854986054492750800578149585247951336727252637726836663191034560934160340774061173290687669801574400540208441673679784418597378762582386319128735921812236841870021587508374204258975618652760458714551018678858002300305961916104432674883467743623824731148199502535800130334017020616072360101690402771817985510775774414762002987064765410903916521225083082274884951912910652631913407867059892977245923546574804066868897473711132052886073095943305533516585856813855488164157800689565901640602335913710801009599810444855913150629078790595698150080533698520117835543144835943230333959828514513570537848946439527216693429209380805478614853314612409008072826456482232139015446034892254059361209503186240300023207830937057823952987171997922661762428767651923803347040244903852514159869469300446954509010488967890621977240677083993838121634495908983174159605408814970916070440847140556260067814138953756433894060946894783776673878752877253147624722110644548175815603059748246525266773228015334428833267232764570318522599216886172192127721894502725268993083123929895961782413858078446955263264416968298557050974860366586456264071019671541115297678022358690884454830872051910209869992965432720295543507144151675848073394782618552933238984125409786042756799648271000032326026970311074008557652145225690621651326416204838003185318021624960198754532585270349544050058947564291051665055283465007681902486077671078075174036285541372097182654816325411158279191001555277675031779952792089235177444064991028155916253986523619064730333975854929530369367725355950761338195747968880446731362421831225245847875738941332841571757422589086373147996542054397946645219749550306118973680366076104233536434138055139119829993223532297881072538117464692732313650307977323243843179343489654529805765313929224688106266033636912672048243781525672308082268740100077421807887115859874535556623952550966847376424017358311248829739275359513250972889149283066587125161105048275717298741173058572877240292791756339168300499027204376205391102961678280508456215714295525394058400914957699552807227197084734672886019845513386209939333452892114679063477483391145838014949533269516462299781615487114801136595302311021693005517911733185618898622017867864628456400897654153410002717222971213778013438032224340154085263605885023628600607026275776767669819772189879181497722168359680615909285045883518772724360900826658443332174147900966230575916009249339052329630265824896336112029746592384110365531452024497170591012513162331438074007364106346196987617760338238157562788420861849370214528378829511885380228228134038692368780605868649576315668522120972462825373317780354066482136666126007679807560958816846513922937045060851101192638771291030867247350058088331422197441847922276317154142045803763777507507785958883909818329606269305202290765596340204923623566791743302870535051905000642305330505200774710435522911776251228183390763976551939231143521830193989501809057481222653434881726456207693689905303700976810030194248514708506857482227964772943025833446641356971321769898563733938016519642528115526691894506048864960171376055334618986913939320861238421433709771070828193344337577771149419876241674330709535022090698200112836598423628142329488502449871454896362690348053998274622611373424704000428125610368155948885240341582837544216107393140095928409038078110984270655387172154033795139644232549766551857517365759703638415538795046879329858273882483493584301336277113151260147573786772352016502247710179935258428862787512644612159720731926755738661600514090365534935688046839475231185351580911705880773672616025023360478889521069556856065120897743264690033149842050843856333344241612522402303512186334193312619199692593510499534292021555394825138475447354255074290464738121420993132798083913175693008922789299876350638459222542573990507533955110718268611051115707550345313848679809229469892379376309595376724101481833042042107888226401327532302915105073156542125574455068232264792177659011093555277726122826022140503571740170882002272592252930154043226271315995281393361202940307313287946141899422374864425888318248165763809113654718717718432141511371094949400185484387851122885478628810729463082710337714313246552717998378809546131005756509811487122712848602565594179684148674649378833053437889246480478245365647176869471925910093206910737410663926039911125123135991536065932559304791016350767361600863736163821930820616775229886560587143747556299443267463275747219032814249334446754267905549266560137955528971411113592379355792911759693758890575941932941927346655406051376816296011490200305236913582423847451136090098196813448321108743719878874960826084048084322727767192519162777617295183802244042073293992722731167886784205913737900244457487241701799763389938156509561698152075555265126447744737465405435857766616897180853901499313643673960723363093878043309743992277732506784260367672592382351999935822136921807455908113011021641207420636459278503271369795747804270042631510336874580959893672683250413697818026280128479993909816904876487082489394630544971069829634020612131901100120621610317027373648226540066322209268937973809370445899892375377964459744197764450734836091261672555502189984297482788384540875066912574322789396036719764120028269213014660524977422224753475386806407094034340218120429271043627101784484919188417415876779970351295638807993397987256527738753266064346604615410572196071857508890490522087531386829116446985756227159432970969991838715033603189888328007475918993808219967071090589031844151344952629809599374226149810660377974702110773525285503579391024109582463309091705148465490007497104574761831159829287119598824000313539608210213669142795985352471387498424186137435506523350166755098393100158354063891036174915804487190422805724756829658597654999896102476851148366699062684287703242377961635883592316445191791913100892686209551736056337487851799396506716160191837833176879294437011368387725445290457943496093924109660810819649885628802441930161824573506276339324935904635671660874117776934207085046558996326579048766733083762256699077173530008334027494134769154908664776445249491245812420410708879609688841014737229659512393612822054534445087343124129469996503272115239633583838353947120326869060166559158213003214801310674394542553296002476486251403189891024004135421918953838802516848853049908273150132547852592629714096812452774272301210752217378020616390428667309892118740411207403167793613942417218491146947002047403136466371640638368168975527893392388117315554475334006797180430043838206925406932777348461084505232618678153439867151276549036972822176066866385652687855653204366189367355601174003463402849084255746857025523665387000137441420487528925816570572312944450716985044673072407386679947344375063664128528871809902708675647203800319144081135678041064773560775195776096620965782303525207247680325969606006436100732921772740810554298706372705322599482481247378713682935356637604121364610557155322765828340396046252886284031490979657239358991870987117225491558666676276948877816324236701557819885167533179101708875176443307371379326036291406030918883614973900558197244507726315104519654917984328409604162061732474095699579010048575808044934072843235939690130276315028535918569129343021659279930851996253358220049654997701521691285438348677890953285564071988300978344682330680763341145516579713024472983221222649034445519158571706704720896052173907724966399146177654661018546232732156540407860328943828527159684998659433902849139630063305730271342283377551592857237432528392230146937324123641319697442072911992486625439500699909876725885266801454807190606244968134785733121104021790064604618101966226465652949161006684433006165526142521991109974022313200922818694699277199817173306635770612282988626721743293545649427065600938508176255881737127790331485154967174247860944388439097287064125617263395163646545453859154764013413797069612959840504646429370476371881652170675869614273943866180856382876581471094595756496075712986901997533211144003959352934469285180070720908506704815723831585523452470269667817604633669239035251520927087635144735303325413705064672242392544611787655363200742184600410988221317129813427092225371466281507105584802319799254786681447386718593240365984588347473624536287418840416904944502328850596768003259886846787138161256298906508109587291662156715055214525513166076313730952511222728358451658276232263589603135224282592299358771416761090954574225853096267934693872787862861702875909927623954221072906975278645728928383836564401285648997090871858822038541811513459052165138199776968142243630496443522374675331267548403739149839371725593446146659146718344624196515248175594719054099033199806982455812225454309890603091164975727037444170990162915608583499744571282310376241720865932066381362347715273381551941007487537989770565979318976478709046388648666710352228360209949482022481554882996274868063924848275694992183499801906436211393930397067293788488169183963168409090482272662627749235488916046446697008978732977826342481534613112515917398401280086781987771489197640475122336716900445490829016232358498549970455123022041234814178372912664904767995130971777120426471638960745607982072996084992049441151720655916875337463481358525667298191392444883157573901895433750359828377220035953806117204481772571788957753821693013338622495904420418846653573898411814302865634258293496621552371779490067448752638832846998299108040558452345603862065388452912350277630097468602845617073741688927760068932482775325299850977293898720593692936691456162222109723903835684061675358495352324345514844263164544777983423133995420605590612211374670061674398230308306606026032756437295041458247541435382252918925274268280396785916480825821125278106616175993236426773103766844267002906622579041331414165954093885834250490418161089748140894000949192882688763877144667858146173849222908878065040998858317588747127636236528277250296551383291258250321369174641743016160234826009455866119999440919896346875419441196616933292394314024982920485079495686307537719776137581716088469293453317982269167505809863211085665792588010302739773840055240781853311441308935607257244308425920616586680397561316358045157806995589614289728276291568871153750979444659888104167615794047232379511449441877618570372949900236294139838536324584585313179188109297665165920064465249421649384911273367693321948694189356683030032628216677487381348791692663119023812910463283631534758838441117700639855830196426227589436307588064715348397702414786272680149525754494414986911097164257199111655298886311108219188211329879474959327990307784173776094202177331452280493770514466397066947810298558398717776329292762159780402568019054940330885620946153208088509708327098545581367624984095680204851529731163750722577681071924851169210767121412154900823541239626963726785367639669826488412642593248716151467763737920624358652031748340159130160913787199725137736606580150878256495373430567433738925261932033362267097321978828873112095009172920816009426214974409528519096902384485193023929754097052137733924674159969958999029747786173625178314378748185330899300360111882942682788544282627203075942313262620443295167263105371775081583328447357504022680941657022169293214892603576545525812674871760770824058445535997742436339306213629788161356798952146333717273622995880608275655421520825434882102387014855976465120884472077447121090463176548445206827804682685651746614206941843914619286837267491860435755192888420734074392744766659781772659622222908378191407204585457388355013129516790499534242092842716646321781279486597017025709952325995222490937786959414515990461483330940341868795291840223755451754189366104993671485188697020255773159254927379731963437199086970867930315323607660924898458725449917891901910479251094120370773436300046650215539655814191265738573778343651571115114863400622650531359631149249227107252683762655286678122673603080415942803444635941196418954647881751451859204274595408223323164384259094610454470220580825197529705358162301760084852971624178879125344965765368285688305310757905497419328683706774051307580532960902123287504243604586241467267344521639486798562076426301831501543541947683483037153080612270194281261535184715030754571532203796401539863272973793921142452257948229073977916297047392134892019886979485873816468438290067126804998266084039696362745255859952734480265604193640963265384267948466829661948624180931878283080341878001823525198224490059117431360467959572070439163646072446259118566859894759549060978433912094267219951477366781864564284088950241936542242116265069446801567020659891687502353900445439317651549465301819776944952907457205252677082112594963099456311754622111640478676406407236208854237991590020695067717958813352463692081527511055064977986481290858731330211012785749773685052270991304302029422491322625470855491325373102566616348373932769028725400773718056938210973907923371101194230285491338158914126224015549741584432783393722226292447379311220757014353484184987464784285554134354397292851578792851643570215331560702614206379213129777097944604999786109582189638057232700927814029729930006446161903275333839181668446330573112877231928373516432716358089374260758391062696188434634762741223839767707482399530096440989337299176736112418129460355423994012310034795507155964297255458350961344352191087424388450932163965199101393415218842475653084290810814663117117810544126625137059123931691068046539532228384069704529516731440214718982880823779387972165632323785521594459007365884124735198533087991865723523582736024035640412717124226373400945664805380406028975086198877864663830201997712025508354761760163788810423417176604604281792109622993395860176542223765809909279640965055216211162844030910149602910020423760287002480152527722296524033482106865856427529551939378532728415733836045249087382364300822760175545468957574514794921314511080071076262282663762400586051719960663263773149634864399474809220743249693630479030859473895563380325107388459038492588930697205423940095950926811024137394064707469732869126696118594164612905567284454641765100911806275509802365541329825769158233045886017282376607414917155183187106979056825823718787329311269991981257611165891443269030719260876655507424984954945846535443492443695315953525941875441319752292117051398583539103642982357594216308015645743022310392763494092899537051388972326252457119723475216610477920315717518862723034104137160363306750914712930374253870898433516984172538369662085062146031126483366440733851025945075466708057189689081427736702153335390505194461295173531535248425580608679035703015887084732234215592813888880300409042196302150285243297166559907068800633585203742313060417435683854749092099037563638203401521730815757221885926759307532984696253892458311704586304889311966313623433355737173846200289857063221000470078685221894463488690333952105976885885745862766477620988267355249930509136669909095800593550025770228415463041831188001732746143054850406747997443614231819459998287303521688034558675013561448993694340791140358951534241928281992969477521058080418161524049891508342784060090355902688952562815211751787407407033314965570850582314503050651613254606728620794396206692095362637525902127343455870725066986412849196034553392156234070822241756166984145838138982770435665189145789815371461623306926697587527497457703556850290394815868854718432306756330761249225536128166828303236629067343370261800788842047979422703810137236933257739660339751493111990006407666672680731827230696753227996175913846833873792198932642801833124977545822703905434431760070187348092527422756032339114139568689547165789858297726124963801027129915041839530717635888912769574812075929082375107357295022894678168544334266188710564533127750315327184326920676399194892931622365186735783017252614663859698308348282064072505450443865040290821385693472639827139512232907260374079069259035894084244490616878071976614837500129661182054652345269544233081560575627745587249646932271220747656115069285937205585884544184152140804111742863699936550813092862420692332196380201172452638190319610750519284805934675915170231458821499541331217552063987410603433164731609195214144597678291029448656727026278064998476422612065995777304233770328795571541559150478093969319536941096269062032779780928435296397453358240841166383223731510714278995555417148134651937798049651426431973619755183665064187004064932895438914423721619967859730803447643491771029161070534741334420308466794042665601933060429386154583020247161804728372118171155823667741734523428669431532604122811929805479719842673126175727821852180248844354260916657506369729111184723762433954492226602469617504678271399612063400163804975360953600204866452170996218178327903308799437571826411833499405096941029216391112403999214342532060113186630905336265369820334321124781109874782061519701464745679834037375080075438526546561163941093061927884886574840858628118105749992673376995744090039404272229631956378103811010046633822489090640538420477058167913355897501365404957899574134587508149100421073788522888790603980101200100818342359276329608224376654898991640570952968401487369823589610209269380032243318745760699897881260961397064345241575577965962440326495335792451328760457559096017536015636237736957993862485149572583672319680605733676071622594720491955404164266275746193074026424198437929098727144172026419439948615706178523078035361167223018383494144109794399309889717273350740626651316044972278204647354594063572650905072571823600722939637199856177618776227738857399941851910076048127251766752980523089903016259738695077943732898795569005566438160793680459744960833356051638530789756237210813363511217014429725549233122288097733572375109154236865818007084217907056932617149841886781570153633119777600068647252986196935098373714313700160379817095879934538127705762935695465417725744915062810144722081119272228270455230484565064193303077072884721593725272750353998121907784822322714802621449576464803515082394649527910970342095646718979279182012580362271009025653019460173008772466149856230695817458867877462762660853484310888331514454382838697867151086730787063795280723041727939485637982786208941982953224893443520667974359144850556332183446801834697216224993408682762366188848983964254492209365461365672250676529441636195567372045077382440130005239590176133772407767741137019644638484653827197506006718044900631505921017265150556445657657120566034041689967295622416709526661273448417786890355031539287556457928180714737805253878903207935137234046155358348197922672527832600992840476414682823589363738595693501655624208817991085991357006662046793081626138133123118052288385991765391984662973202652360443576362587330638408077742758587179706102777389418573193105803527179485723707385206625073738645368082334110000762372890250996442045222891377808545500606286819754518867318050823571343364378454968064398125934640931777772035301015172757113479542775555817784329841781833943077844472563231873110717076200103424792690686411846804766102536875695218772807878611669278592062862488408651521171399929235897267760908305273723507999079026332363311075017414033492731439634115390670168345596850508604603188475212805906671529015140778484556047326566405758059990848020070604571070280649797317871916920507499470413795352563741755979904792049577270920323567914673382175471840154036940261210327117607131623942824791189096884394299441277773990795632620247294784181459938751065349478109313463836320863156240766307142619963995092321577787524510332208705209495734224813609316865261803450347650090172050697029194871739461589346906983404514118697337996369637570497479478915648964047590004877444614491861123904727317097228308481914188221594371920482508967168457967918647156861036507639636946563580672912183472215948135164165303609230233598809527329703216068592897414937203010916802305738937948691808315440861131127588580860565330221364272085668851941484216678013449963004683191223048547708965473729491241938860876709237617304424448119135990863032690062446261754796839101322733278333191812658279394294041333635995404502902072243841639536418956068554229914800746093582256359160356751777914317385166449657955358325609054066723110506247850614336762623350815270456677236039571706349197212213973751144630834067754929839711865795264132757287558815527340078742309944330729424274631776517550509066011677730291909370112725433325586103397809921331098348480459756898397079459076522043990012471038772499624737872635070219124669317242792436770893648744802764141972455823727345784672573237169256789205915709040429819181634620493410796000594527264084490977395411991044351290904322221841192386154452030161587521470901847690528057454525598564882393926493449562575712977873798088734184435991778253214438201064844795063059439801389915219292698761904605465944730395309164132513009782040538438890381777929561938783596407999579826428232765858840200043250083454579599738654010978507423790415156000443362228112442170254405021324395657340005307991727789781273172041377605405219300890534217245411473641016154910043638329240826286174367782108841306962682660915148225040341165434112266162633155603511311858088563761005599783722391848441664962106585116588689804469901012598498941162256447254298532116014879967752760151712742249170804450870362020350189384027715456522498019203857011026281632360728813882245481098190723616632151579685102602305104371197959405291515369402214865509317644695204846068570431983250680359247816260015649366455837977794106013302920415645140202327989439688274204597617892020488779329761394175192537581685915477261133494539662070718235491798874725647277957013164416422658081069316225636006119460938907205711567490900059872548665958423166468103997818096614120241773586441624284177389425892363705243895124717779916443033746498044266661113162018034673120283719326896933425442863356565992730734117180793972320887723812963389236854665608447238179797021705604889073855638696431100358565777156068583237602149700603460402151979655890631883221887327121153265972648554055055566958626224127020050225110249564633491069450927681418490626874517135275287986644607526024230811760188969968304400278231958890451319852290896018476224824720647287489606700883488915263242072355044449054245070491612042916666046255351457829001333938267316273291212949013039200856758199322798996438209414325186796448567536457534087787154590717116904791947650429014011218221745205026185433247441828879317300808985957761610356370199356400308788657974305491579939526843618916779667822648557776651821718352252721087719826329836724888091258408757317924214144955647455354724745230810255660811684426696866654395463151629509163254497160769407067276778561371764079704790798664947469922099336153392343914158876825596516824793549185364974018673629421910712021692867812256788483876828999456007739226583042225536916491052651641820973318953091018976415653832356577470326418904598179048803057110017174454698651855811671813994795573880815023893535680972795694345500728886334266197774464592250125597906644658517164964087529028027229880821372694249658898223149654550619711387686422817954155812368515101897746319804873879433444125411578884360003526509560704072735013931677843187441785897032990454405842146848429352882353036147534145398839237784124238881063336045793559287521925141437319150542329857564073299491719017726026882417409837155744723751425474902958336860594967296130284423943112095967275741891375799751723330350276072680879069915754591508709995426394195609185751077140073796676842099266693726087681051346456804018985745437798175859336966698055557656036488261921896633996567466933265327908446897820247069083657543352728711674058852671591541407844371459716026871517484471452853375980218701262311783516347495389350751044488626300590258864713535075065721040373523342839873451091868935473501456513341103121519272666636844681882249897319482889630578771339280565692023535451379951964865505967085300606153241758232650005530179462784022083790781644926212879171604517621540002531190292621306694461279230825703365267804643231481638737250817384148817224773109075504288383278046032788284044437176893643427131128832904060370566655802508356552236222614103869306215846751150075143762392390996571591283655412133127795483896216403072073898974629341076436594218645323295508974130572162375426001455741348308627583042341233586792789819308492014645364439100859993276583069426928526465882012220902878972619146589077549750356081593008890650341382228006003385481154687378707295830199412148225077514463261599529838788595080371263404098221168463391870633537657418729526751961741090285316570605560237227668992392693428876654115965178273442324156469044944689905027773791121071519655893744831275473421396535701251432691197969464594021298172851394903760805437350647849326071980115401815020498793329482957260267252272327478044214294406075088538271128978848219362338423936782054273109570142259776483436382796052714919936011343914857102912171038815766652404894992254065812853789440751706544572627957100696572713339376487124733434280673777527329475264671565137585290101433907107570252034860282187279417773383072632519214921157782875719086097828702086417385678378757365857107279482445158099992042313776994216788094033605961917602544465994655202527897578860228112942548639271462145010546572347537211123522922973066971837231951708550741110775662763821062623326514373641031054140724377985159638855818800020211313264707875626198161424016810711451718397397357744730084824079222150317891144975716972965399313050506969065148351185523291143213406611499792103297129978585934953046003482397462169193370245863041334662751736268882961529225779509991849687609900309336804583406607401771724240493293415586631509011714464532913685801391599789449800348873749044378755016259281796300668933511517780447977154149032448877964875383683528689578184552756853290208319011837154847751428594088211698437605043468435853003733578525986196724364598066975299675421614437755508265808819822722091552041655704685063614325308420322505607252031757114462943060202549997090790514216753910903172651098782921098021512181032345190808474545264454839215436295249615260356749854879085257974202124221623497815598837944556577571028377082402705252654536871120338576562693055651732127774654162705344394796769689750045576998644811265897741821636578418054740514731302107701904925236849940828344025456870302064568786587363396900001616725214488206202890913931827695589640210618091854304443625813032707612552038063919168716138130379206046215456250352485502250352327937523819406315837199273574996258091294497942816382724593600868249025306875479584999796035903845212628048945101390229747682848994518979410601555059295150932244482228893283814565305066324586050147515752167806757979996656157831894222623167730462580937392221766424124074113179076482348508720718275770075842724800526938989424588430590817576151617329323414279606376972220448260595928710767684057618761155246088913864427550548228602321243209365539930162659947425244625258457911563620139620604388727629867145257553572874850536795793359855444662828968890503727169260417300030273919151053240062849718434724504068571396516483147870821585141587169679371045405452246552293461238599811614766574292864600970778481104390586705416319100338592364280620888134193822146988251045186953274274331029132297636528903195079738228154913178372894596148834412392835893220483441735155662779187034929991607341201953396901162351303428214720541246940053980295984831158738867208545638214790346720393367842369691452653483039989912268105529917668042096769078563589870381573521996322366954175479518082663419818326053009097136492683570370540986746446434531151218085579028661575385739376759708795297813125421953347149504535079666008171146035181627774114962538188339382273498192149682966169783701903126992038506285718531743011806392635575022003957474851935055898887895658353149837663175406835561424956696675968168426887550754514560978308633566272038559083951639350281526833480708453742795017325459023528660094791607247425745352897084413747021593992638743663061246348971375406583840084132253289305730178941016059253899184476403163564813131919774971041198762937790116403596388065912100747269241415088322745579236502889450519691367651275802660993278012628030825795240971894531617811429562560733031358862124619292824495372042006401063667527511639789548666198759748564811671296402724222344006929947243217276529149456950189000096520184304209967345418203868725932247864691199902169686429783344953051058294528942004039077995772316554841866129668450054977183983442879629578332048288554452651695928520793901615955696026088090667182231486584784894839497973813664614556707541930088341072574262536519059016452559438872101130157253066253427177627324153031167244658509034268504230522792567203358647664785721629801456744565484975746295358448750343018716360063921415735516648103767922269965828298888103770138476741722094188669548981440655195859433450291080332343130425472056716893693917671396114739698791754653687240938066606714119160207019754380579421121619494577536854281947466013440793764450389713245424841205412964726561983906558444413865000422681014837153951224494051521693042061857467438756061437190936756841544824795324307970623239433999085544738425272219326601338159956860558713155763242681000406734658392347572741792291927808985390339127342105133019454422603660228171844417973766047597935850072039787479107615594561127950228276291065416741173211416131683505405641640191997917840334099732030003219892958807160733959013219594235636555040976570299930156984156792049571977683022136363417052970543485604285765503359341929311203556695335142252418046653651428383321283345604621623551206005286370963912720299205186164908803303844447106946762075321496141647308028315123354125545598200713422106653096364160790817044981745771504268187484735260920453684160897945479532193447946696283256726328212125641765230937521570147333898422135309755629341831543516385629241211625955540599497057933267831649540648235616361545397570981278942712124817764662456278418031752928435654169788967657713305009753798429846820621470331254384182971547316251182544602510414742867328175503225436182612523185397700550407560783756594016677095773367475481761423837879427802978766810651016287885663072260944914033714530065891741184703285243942047150682638695491624735519529895512612734100447493192285759777913221084344820227339017655282370327937662820958314541266221746875343398624597222562033062861759836903233208344419085132230282202284431418993265646317618777616689978874230351319685086252210607082878201477472853708428380452052845739155060530812324760601346134974346344183505031502991051534256976370034276125771383699146598817204909902911948404910593684250825324737362227540509213261497778047035220848971480591445300901785752365987146513193994948076240814873582731778132909425879980428381037826442302963245650959413249409193192991044158075043055698728302567806558490567036686029554482989142377006643679547884600196371244566158615030887179904591686317809426338561033110784034007164813323710446443558000857236436565583972209877057284242459189139445299432712266790948983718749894249612446979525393555108623126066986300785116767014105022395960813734621290572282274712179381652280738970897678418576783919828997200705668190049686502164491148881232988435521582707823797833700248889967626852222803192719712766903764736550903367165010932446510769444590767797308307513529964165745638026594663024977755091000814664735765545234873644264306833188760751063083445097158833820555557388258820501586773984151445140619540963372168472732554378661706794983641873268027007748629241259567791631135534678623218191066085401503206899922367478883583589438526495209272790047791329885334429706060319634998388632964494372390257430262309538589431239909296582299407176801126224267539728529491500099595774260512775650436632117196315885792394006596881077883629535837284268152828281950325757386356586841397754733152653960853640915690820629488380658671390821929939544922844029825982597019057422875339506858683728370524761187944470644489505721145373752900947147391644565863121777544730701314978178812740631112839380209373897959912661166619361816597780967502863975061852015186296452703192539025135210681223010561234935761959549363603481205802992439633536133711542770261675315869900114546861477439083876528557375077698315575751453085384774804657218748746305598699323064910459463403236160681911550878168779836192027816083462509028880637540279968302254338131369412004744043397870508259482047620291235729664175385479184911258542063776347144093926544810177677902807397927349048648877955133406926314907126125562586787906179371897176989456642766269317322313477005987410047694537932488376983341960181683876080059409167487770547361383913124692452540805444057127029114476216192813054636580493420622387478502827548155416842182689466286526768427222472291184383745782370474226736418365076668803395013214348609591763192392888368695705839514649993755225023761788622346079347209863865512686919603497655908681652786593387272902704375073475694481327081188939363312670745002410936905846456194854176549745213395773027123738836690197599169664474167705601110275206945957544924597702196648423153283261976602448560314319824426957553875589655982070028022065224792925082487438207998165158318962250194192451568397197474346623883904499220070463472082283760006374969619089440862702358174745879424316881907363035596462212780794230052993214355132966362734506871566780846751003178381610381424686373376841929115534204731335577629135218456862215066071697200468564454154710410747227901481936126493353722654737060389111112145149744687333041175975992037080498779238405751982179232605167844692509613077967178158883067612710069426422500966810929277018423709389534148513127242497917382943451577420161064319581209301844043301164410513855004938886255692381549028214895498724805086371563428775664973550242414160324101547002611255060752603294292611155206550973818254555206785773017321204225394740439289371036812799733165416651893295262539325265650825224977882201449969666883820092346273730533719614890157688345393380276357798643776924264636881273306064985235379600358366506690098228037968383460879677857605925222415647519260225394596106382235707591581090216928944668481025135271506230027509370303302596958817662862411248524082295785589686719307084170328727720607868955308421616503234501081505848090958793692412007171899359904691411679499145892273237446605878729138212460818153428364000387278621242987699576626561179537037839771600678488244050476595075272570630062431955408503203603879467810086241898152346267307901835403393894343180108958400257315554294090305722086320597202665036552282162565405723341987239762421633068375300702593285448614029691609165193018958001998770107046875284377516415952405135243579629944119509739896701479963912017603317500715979201885662548236699573359931647307026392199737390489009925721599046255083104837908537363298720959433819749434165410414338698419466870439688674580555826103198725166700378491657000454200388882610072887900316409284442775960303167860469311191699065870066049297034518190549593198500709088384834989008521891392837126276076452096845149108806858125477526148782733239717351280014381015811150416544517777165226617757739087972543498855658400145842722756701284494907750420880538237557858611520641083722275939549043644742231895105649711398287018477911013481170774609078883913518944834431387885222282230047819349162395013376806469745718508953877121798545885562819360173138041141700420951242519896475897966245515979406945249678116289065780544534884977768843341914488408177474169551362881749944803258634535736105502003432013638317221925621544415865814285601283191647321580421726923523444329284282977419459633877463704040090564095164813875144791368007011087295610065095852236373512762054558014889446816012201346467325684181743915986044152898834218304346154726223890113646185439587775333826483400078784560061928763535322382688795049360170717668132653987828476673667582359693787047694007949292445717944126591348506338544592682219943871124457593275575780768195716616286943109271581454666324350288506086382882068345115987864354103453582249376610688657370729357889935218993637129824362916057978421174966197098236541205584106550234293288548000946248503689347381321809768303399476586408219742912652029132738820496126365342901775141948213019974486733201933179937687740799599103015060079826563855850365344624728800861162099612914361016195155593872326680038001113729776420320736639386702410636602707088679697026286738888185855863940377560824900623914216230442313636192520376386784702549155157763656810829876357260143949627864719827088562268679311920310212105795446320229112025482982919436758293223048493308451669134558806091103676221213187694202954178366740619966321408049528352483044896458131001148136770960784545364444811100407244107707087054959943127034507197203596787030519851723358865247259412448569517151290224888660780111206901750971145359207684384959206656038200823835619246749476809341446902920257934870669667799311639864257985112693097587727349871579409920673851678752370473360749967015441823751513521768469181582180246843892127332248969054616736178050787358804891110679060852800607519257079461822735903026798233220952660325352968803611071741424465505741297117686676039273011577766432393959617647027878674330721092776669837933468970203029600437297104182285603823915126678384809231380800807302916907035960428609581072884960571115215624387445147388935005227623122400857122339544180167064319179718194215125356144535732205378012689206326353571849915877261440043485842445286475338788862925837155062282589906167473619018591593420469871941373518569209190359058655008959411592476364602821437663580613861425678773264041593816651154182638364951168004063701624134942783440994833281854213579118465591132440095032647757015092879011364007260434252102124345970214921302215990574920351463340254321088465470724190183314090201196599998871162636150013880092082528928756249924603465294163158833180696066848356654083293738763671875302506941550853982939373838261484283529857989959702790345888220847222681956593712323051791766273671469136221217395857585422643311946955081823864121357268046617559461625256675489556885860878971938389861385305136288081051928730026565644705445182922286065075065483607634134595100493823957007081102228176078223688371472800868284369338423283671761031762975788373626616953940211827560949691732714629182522117024625569444927530558380487698198164330479955212141327084417083720326082583267224657500307754367638996289390218097095710043751673966776330911284236414750121192818017823703658421072912400432276488812297248318063410455780657448387979452002173873313145761373107623506667535331720880869985333384072814586762140948415659431313861825132824959404021123478681272319007438693035681951658720346339842791348186540859504335612262631924221025482346546727336990467555138879948964628705949556257928835833747929490977902398115486566572929086939965885244216544123281240498591816552286963683662370223733531968380354128550173731441006277390985577278515407795281877710120649518134972730765269739702236378575649425683552523241045166024167736570935523501747878550964936363877686325279453234892845334610768561583664816668978555278308546892834872228232100944183608676315229969471494055152246803993271361555650176825671691149111978732132810844714464821578405387506359011997995367812326581901169550191483662327667531512893595683505479329298349230485608985450147597668155062338985388036194373570624470497808897773913684549176798172781423889136338321332298502110634363407220127477618461963340803810565669435720064051848743808776727828866490826312463557375339893159804564931993723133432097699654779430254878559147502436317129906874990385717378801150691290958863019053571951851667407054784761079483250372945528527726554060096015131538356520059484463334985300297308792605345707034285483491480163055284798682579922149696766298802337374098094895705547890366908657618409324009383379753724069410762616907427753892290774411787172655556462017441651679842966264642480594240354953401738885687216707032035679694948184434365380695485301904123923229362036838687935889869684382351810095066716978672092030170103553237810995165870992999968177466366348883447706857055484692438812849036854292632007342196808575003410114054413489233419252699599666088171335335337470732624995746737213451860416006049712195178124666373757245121047156503698608116835340159014928618346206762092556537839822998240064955619155943514851925192555404767490576721170594484848902518137284067943953232277343875999103294506084735223390169838198379860247281890721084157792519746975438602054619803139486705083360969172961975328828040064481046761078799772086676301224531587858248068975558375433017723152315372849449462820205496811713502707905356985232504160921180303478396983800854797558908761888952867204240525081329476639938465342289126031715618369078394291339480060988721385291491839861745207370773045684010227351532563416017252003178021248641063495297563100647309188292182277110647033803891831633658408369915094485460842723947307821951250915093268877317774312220551745824489720809035484763846983472854409059480781251892905094549667420453533111967234208084216612160052760923933389815530067780568083675000831081007762333715673936808926650690218723415630147513253878182206553033753716905845301795180710308980611215430209346671671859909297337655516262088373455716038262522173946455899187642068260934424732047321868842689434120921016211449818867707725164340113395631063072774513459278851379669971066124613474203690324511532707171906514165253377815471637210692614628201469387281787185181291362226828395245665591546820396607771474119627358410815291976418097850965502911878472144463983391650224599482126445401393943780079947607291625983394573646399206369677927157329901764961270414065853697454944396631677785021147289911485803056094089770362566281476257212866432425180956887259630328809108598118602415813853258201733655983032295058847581360241977568401135712794270954090412339083106588435543656211066493897012498634920774964404077255923116119913427311609460671160970160736573138803296179958368016497006839926660970906568645773026764627336376086367525084852010462222811349025367203147411252439331164948704482757648159230190831968082617543409438504332218440416611964980727688003955314759611863933859078286946842019404647386469791629153068480181562309060950427665345159764242922325077995710312662982881095934740142555339085615134931585657505969011219822430711757754249945172743465386981519537651407023746528689339656511584044437741850649288057326803090078672897314146376477157394726341646526224261562241082249241620202930739942137389567228094221389963600849838042749153672928413536413118158715302432328636267528554688471457837169894575886683494795689366055450113861627221083533801961552427220588908364270896838094677734244584863113911231691657178447783075175445061224790467663048666360382672635637260744177401511037147270343473651814887685392333320164429917131662557417282889154930827446246732664127647103440710680647406246306377733549128315514828789603236505185208054044930736502915206074372749758811686333688596107615516244549449611595128140280054032908825508899937977367531452329454209331615346532385906442506264886661199527341612297282379250425705720925402030670219167610255418517377001515028419646738150065171441947050031625533918040725210973526322129005180301214834225191154983576596961889233985216509339291923597482906939549745567454700057654421476513426298240384231443909970444567641154073543715967706905151051408267065716275445391725752777120208932500369973494806341892207796335794306133554336155668213750164853566842309116995126038828421521081631962079715756889683728470840557641232763303681480351394408288457727381418273919849223471106549545644247056904997025333228196456684874711244474735785939494085449517798745285804208983838414682163172365611219588698926739376239831034081338830687739757201985020505751869587324931727676411015488576677676996566489445427536277875589934059061947325836859788234702135010102923862195821371460394851706638880525361590398331839216570589797961380166438860669699812437354618044193258696716562788236879138906568197951260558146899006915376609807923784231227623810393975819339625292869973848083148278164401674030196536486348084463332714963585905737146286455465388274063937976450330745681652138231504327749341970340828654725755230669488220635211644179958760989063900081176111052776967394218403324082510407126628555285468491858428538563336436740749222500181549398367493437169148975024866726402760731698905122654182148272629804518131995713319977277774657281300269855241101446977105182846323386110341320680761517599023887456669278192083562711747414933028136620857143377616569527461349483924212092629615707778346890492442536061695028949472257047798079806109915985643392088399425752741627989747734831237348840797061562880102810862242897055200792216979867192483647146386524018546052153618137431167066675055425224358584972985313003714320743639114655458388154915037785020054243053642279204926044426378586212790638724587894920876011427588288541829779609559546902187258808026488005956566058982577594147652718410915649697901017119460764530986497662117473512704656008453897988301504889224299491724127850408451151198731920932176294113069174410131873448659444641380639382754887226501846081496697249413178645006905509887695895992343710096750610854034025701883529235891351219899990712124598667336300122151149938407331189865860568597463196483970585124110664916612734454831446088276284544334657889018293082234418185343629793358096929443055500756846045236483857148879326654464475524314053018194180163104995063742325706624592163409167125875269946770000524586560471675252557954986869983041299625752186269966529876056118075771355031577039288161958883716985721960833248464665219264106814089320492735293046940720128045704377033284542033171333781658108426772157117683935534011085967278467910496125936633847448545670177886020847708094649498499874305847839268421929444374972833879310524358397279934163044843603117267037540369100668104640035556629437551288965903762040059161189582104478795227747420411412559363783452216133279724932850778630267400147095581518314302970581894170128995733647869018423712313667647528301473592973983291365364501948126138793475090565656974044354510754846844000596007669469145634676361271737797128001123830417428850531837894705706871985692954103684874493899774044098023708900561898156688948546464019179163626139499748147309633724964017042018421923365785852138471482790132508421506534007361692805268719398819710860460018094400375846043462974924765077166259891073931405564705902825030570450244524063357632216941183549157793917334256340732412346605258993163367581924526342385416261830073997271173929989302037619093142987730537153575661036172667546460887564095407014864544274245764815629060455224139540186240289837044972247308400552753921580072098016887938916289453130888180084762066933210276864191337641145478300484562984341644129943729000089655165079985661445593238368545145168743824222866308419243059144396679100048035819664173513994093873831440981558436393402604440357822102397576047753813406010885785787134058747085760762214254986432446902849944322929135102684867548101057262272725717900764171709008228202958970071686884283986377635685646499969575252741164216344237862392634405869411721031846288166676645313651394363612672717237733765778536260843816199462561716848369576102930949297412603598851293078904269344790238615505862076413456392958161839572759038214331334424451641628453873901508218013955441171253285668430974556466039978686428285546612812656666844958767883975578704990165949272866541075768132328362179272294294453765312734116307618691722884097928539563904247847941002631987411428245796366326167801503050186430057304137092217202739246860118549232560091344727329406169082827797404652001314416844642918590675794275802087306920489585118260055019957582339989334249217162414904883745369442514306774487399317184305094493976091751968286996311586516173216532283799204680354001060403913176367866624821746636454275644258254772753531280462319172087256114147348247379862302747734103297095895663972350001432609950144630687477616102387331373937050274333170165099176786971173381371111359392559054609620466704209697219588708332193457459407215717169443385283861479946462577008167701719504386316466791207177760984165197199286774357049698916636772986995150725234315050664661672304805568619149721187394800183672624505589179666469022517393426019780269567413706297825331480355251133705484462231188148009469462206298669741054789127300470692863712048091262509418594468218090385617700367235047753213804916905577820711927491973573617831774104081587409308833281439713272574243008451157025103885008980887280456294966170936211944219246724611553402755998370470751073834763459957386516533272576225972647903162290402212342950762928266120696668395132083122767557645754423246729803104552604591040679848565580318155836439156148938949463879016691973327801243023512475569268332494829955251643104691963056095921798181540275158354438022029035758066693944523890719916752459745920978428169448245529471920926114677881705411872369818266071767337178542763984664006592051473191841192217122272190971648217845399164917439397252600093147452389357155737163060230166035604958039748782418871885178381663472847752690730870570332577528759988951418132687084323766615829831673938901455405889540347807649235487769182074012302736808588407532960430089185744413680715325108670592493126294193076639870724821410618854586275540407847912912631836124955761841681615487888368743075350227634595393578774659982310162629421863077139686788054607171201653595815053877982192401883878836344096213748992362177575629603158313294512250444136062658757964492213441427819550588377545813505931821727782531818013772243228299286394029401253503302651051108952741102251903742249772512800326614999023403628706837671744298775554423247856203072120785257952269791162329186008768076633391667434618693430838810231505115687294111230150349233088282594899469427736980866902971235443522445123434947375468753339424534532268431457646635071262734037369498973177015842505306541435123546707800615541664344727316623897078432434784731246244565512109683745535466265711230659361955726357376850869050388829678680026143386607556041724773293422638859746736243949494652376286073719493800901711289128516456890280743487681121568288901279552382776792958916838318901039556960109138054295812251129330933255346400995385092249186335677462659158903229303519408111008106430092270910384429732189918336769576796799125820421461624875939283956633464415625267881773835357635337732068946599273416050930297830916150625285923219199148849954782201556699237555740612260709275057227259446855140610940754642962614574923280792971703871371452724602600421150889174718397010285188143307566999647261961195346225209606951917261231656258979280188276454459663367185572150824485661457032816773271406123733666256580793079851956587351352695026228776444681244642816879146957814452783357847408020636135080622539606270821279192479617531627898935197423477159407881795064547674643785880333219893907942048662774633945814225398185595689209919213037266927615663244616319885247362395914528568595458787234647097901546763864426078458639163952669979546371421078957602315809171921024284145760559829584271665487653655290006306313366255821349598937704442092380576140485750406151515960507838428497825668439959513102522294838993320999970932963890199713888119128429162523604358647973652635584826224852679498021077423632859581746807943054411885911345814575496912017839618494000014395362145188151002830685631212424053426279474484433338020158644830345211996727270410391258748167796475973094209899212076038444936327234881608734172619846613454825303554504976202056580978562364323747909604065132399214385403523476631200990241958287092045950106170366582954404537047104108074076887499235160026818509294314723975727241837099790450744735103312826755859088384276863682392354721459656130103764920895922932825026710793929245179331902196118863251438300572602187256765021647611165862230989698608188209688471128944965013534087536420929852818119191579561677607912612860405417217322582478712687976686611103350709328807106959077965933620065324039297110181473606556397545585429816765171925654027371075798667625670003470726475850569975425250729084635372103251073056295673491999682872784800697196958297341406544043991960171639674538670183749053228845539664881952509787963840823783520158377536932846089979706100836741035061341164665741126322425483421604546053078847077223402754420009788363783524225127949964721717174637679774335235713091346594104710227634554421164897062288965242173769834081919875205908270858912950154670119512827551557267717442018780719148122468305617495433940160773544697132624205704026728228105355071042539616175333969197425550218765628862804853297356359089742863014224851956921934708388268252984932088761028592062713297180843346252351209247043371539199830112907160677149720010962990150563794401260403851759428000434998148144133133069568793180401264114228641289545717246013863633326274381544136823928051651416503231975247185700981769272288939759309339772740932085938228859286605820173218484273235202008652494627245881940444421136953239112208070378728508205930993578038752916538884843884770730267501186703183593917792938252209011740181987733815803788502278213894120543532249595647791982852142182899209767316364377885951815959973616511664593102691638371976807563328112312880442123483730085203160839454934544040535634891096342984160051670706485181354303274303333933867773082597137590334773727573540532320044708954023811642442703256188507279100593371312142433360953599477239068774596001977042791471526351869254774198965968337669807831079713728673108106646508405925700042894221650517914149892714465609107230779594656556780619306477688530150946667076330205646697965520698646542008129616524623177878484230918471173425563416731576245051657475233834334679297729501855496835953360072651097554510289871202663697192212335583937492032608658851323399973471013900555675237338846567263690413736613729427502587651451001076106633674285553820781633653017860980148521252846659603742002445926198823460840440169548790535739590194084893231201339242863981636562823167154271113845968997883141671038317511808583686508590345471384098134776069174661163460414162360585919513860967051514680947819522104948667056174652898694300262149909326122131193094758035067943102540712868236659236954199610144338665565239108301304429008573355546717791263816569982770580691669857236354934379114490187087857001070118138492751546485179287073661024678232396359872645339037556893992448137483461840125075888346137636493587271786506358308443833098287117378308112696060754839977646424315839673039119221858529471076893890853016293553363260388521866567946132908247365472241397432798783119589904575492585442355167874547538510015524162162612919132138030840416434991936998944697653249636388049898276920239163293571925225790747117316506017519726347022705097656412793883637077658551007475548648362000540100763884547105988367304660173729488263360600683993578867960550721175560696830112350917460490388015471038131094243513969327547521068059834910056183433003030316586154534226188364492311981293814563200646146030685170271590175976647849866582481278989822995996790424277522630710483098396903729597112373353360365241704172600127960943179090367232132288412712294443332932252888434332368083960657009172511148596714567995221346286189184138160199264759866884552120028419935231219376555837691920733481666347434450376604901353981454447655920290780039423564402649863337990631012644598939883241998927842067359087947822985777497103475784560699859188720425768716881739808920402886368922401577151846082744379268491961865819680362316820497432735577294453927239264572871062581169252839445111956065447842390647972012494812118790121763669557998534369144467660504153733544924271230040244690733336326173342030379352550488335354277484953942522789850221774135983869584288854290927117843748886685720875674783156540577994881982130332790827480357359692919395922005357912954188370907238548228906338890390172049702474567936925536496900102466041494211151134796669578565294815331998142464470852598090997755609550570017540991292140794593413385360351281033106734137641543617317470257125020627035235761395978591438738552874245490778527040688452491017796005282423960726622612344497357429297913566256205520870925416170588501958160321470342532440324892822521352979369770125273819361246317234401030166890484144543482727972666432326763062235516031133206342068825716908060133731515062479978050425950010485172187676919596333009488036028122084645934555408946471365552205541965867506890437081233744439439747307287737327705350483669145383051598842987029428907415816628393477265736039970765669681417563663597091294666457879021659200534506117638398827247520678789606641100192930010311249261991958098049243867979790207999626739948083454306083879765081267250035299661594304452044377310477126053350066430233849114924047351784738492465383953323399490323814246301325620938445106753466055554980974559207501378180280561249967289676127457948284048449159991064377305376792393362256266268429051500292611708835788067515061678496440431875085705563384538147814997506771488102780883947047480211967250829908318114484533612273465295230656730265273373759512441299031896565315628926126429028553486153811758153029755809226193876541065109696405137452350070147060049121864464853492790513855139153799675792377045563034910227096849517561616890386097352576284678143145590608100842546518453589620849790114102588571500618057499651326504795330264002162091420604685645361744818589648079453928666053714549142147763845925829225809845141403202632106954610401002427770359414797516741742664185409769730933114318497790884032223072415950568078982112034687532088612783370824247442667865401491859883787729779611158667222429616145480662802280762596318963683323555893385382210176118347194406077153515350764294121684104884168549535269105956637412533491215625080401440612805971279153319642424898478013774298868426910168546396481910594482192790633481105909304660037526981302189875458816505694660591837761041438002998161079394509251738728223540176280302871905478831993605045546734765423737074816761223822617439620719166132759503922539785724940050054804195391828164789316805642381617924611579337088346672903378353469084643204979802659238693343813798699154341599156559401880008813516741641450356391846161230903077545206650819250664984439885321476155837695975489991864315530407004997584144657799543961260136907393155992856442344289005138909433866585145218524602179247651939721706536542986832151763859046880499839438685985069905360201541494568447888929369541515749026252331689094807082960633181284856391637807733320820580741338038782747246015211987342986901098535337238778319070955116219147657179303534184469372782189120179743348768844114756304465954903855059317600675062771799022829367834586237451398881298578347094246561343999798047599616599035546105567573809634727857554566882189083026529386855951237649287148580901951850812695833879198637333716038725850921644878417369235766948338951672704014850947372708582844092889652255789120817223729436344867634456047361201343104070627768074073916615285857682323003718694314373041056451833621653187930218459132322853768405424409550983707969885098239757812615208249416569693781634210461900076556756116112547634405179416950184534475035616252807032054839997926839167418415127175302382275467165698656693575631589230374705126471186606237904127591588199353953394301075761443659161650171456727754712842569781983908202934089522094765486337256694180021384910121386099389027572614811684132529214450753923526688084212222658148564175934583377665144888704933652547122834939477716845577789742387610733390804140140058806719519319808101493118533380127546240876902959674576597445335912022396115580685852790172588812013417907818526281196414459646059179813522400351016406563717200055966455427562158233924846555379349734393500943100495743543321075081964437999740267343674764178710051692205466391705606834014292549812748942940467135770841265973965854892293034610982645409831141975357418501795532878731785138616484357902259215442855731880852826468517852664780606061105615021020160824310714151094846898575943694277159801363376409770959771318139168479563092307492489196876128202226753488557137075916548796204735168992692464644443943981772380627688691918069236521928290259880813525485190366322070112200164688779880444803147728679335929873235438906957861971264487256523951585244010160086828625263260412742665291537315793054326913791706657346255697002992589276208632100699636522982812647306145488416137066291843965152068959975262307629338819846782009428131412205721394487058871663859723273950347883693434275178002246621079373235439756167530498709115874199860641304596854277200459819193218385997750878786244198836549408365413475022093292932701329291511867295192836279388815953854282233169166601639739772167692286648973564360252267447009726827071461323109257127568838840487989188921427357042288589840284778108210166043229696389784350651442552690471401690212089969792278283522314047032349074921051899324581607157663481430003827987405685205199086472659755299904923561862979145936711301883385977119002598146500864788870589020258755429760504888924403608503665813696627952192429403467254489369445916773796180382552120404417554525753737678739507352186918047269500620622454947779058819957170011835755063133642038435726846038020040316292151145325278442860565852826234143458124456585805017289728195797373012858036202221605627558537322059957872485732489119467679869960444812215462049321194459614074949420891023738125348130717766140160746251583569259816859775949211154870684512044082869211982033645111917642477849701221192448564444505036745437066736496265088841459139821161022178917217697902282528452058095476185070159616464765785429802229630308782971673747275290035342366070044710935578815400308686776117148855414679129069870053862726760087979438884661453446149211088754978251561939884557150019310838940156656343231269532603729636417211572612976969309990744641605662320395584683188070554373719186375616414460079137070430968751165696089693052584015864203507169694374402772093497196060276188926622681847179051628797899963788519084281938114106715935900317898943268425567402193961913191970745448526824929616657651897504536244133299176263344000801788548721052236677448644700138111720106564544924083664442959480078729062094211707032941470559932095612720395060887195072820610468932828354021362625064799169473888280146481159872253515203427199135757671111795644865989286276381353339892789654204491412537567841770139182553511395333486544005111218618947556223437112588439789704653281032587976900250444586164544774879300472520082613873395037722165938879067286783128244713192802768222800590908108076210611096228366588256553362797201877246677994765286826023815289457143779409916762283294704428944237695486918645750119979122543747997295679581511334509474136318232647941715493620980932117219689522429629077817501657693323498312904316622650588563655406775346409328123832047740631625952138641424880751681164300180400464888642362878846283687764709591453075149035134464869324843815121157098857433793251012030563471847191226844052724823417676150993273494541127822819009001012437197855572022571045570038225282726549637607126683118440410451803322829776164804804610228310462830624336120213595344329679447613219588859178859530325860693410474174187171920615375026947058914056011829461204105543574761162740405464592070251384131066545932475427248613096033987643754494800742145556178952226723398652264947306565070222774033306445374705505585823963767141842416974111740402798303539452914885122161460763268447151322141861668170285428950991090152833194603212695508036428507187185439425354916362941164397724127794473487155333899259659387150042271704493631764283852096785192625370155840157785457509325771204425357649170365917757664950815614162889029301654206809395882537188725896772506197021236148728270635106521770868660227849252325340078285639703119359052940276531159480277326542716665193643375229736477479485322255581401129503500217664483212387639476229250298307473448197245985889151048692163568863618873942054890865248234789074664092879766087737597505547806700772742108482647375144500966953545536207608971234736671044696611947699511060165091935030974364896645832622812984189865890381163506848107382026963947711268662715495661262644158211446105843366615405150345661403366987204983322997356517796472069137078001827246720495487774073313338754935224936797241521357268588419703086521556917693128769180990980423949582891038372948681378019140707999481928377317855052533763511842631862126836602663769269176407104669547678249326342227651022251294268108153992170811971197551575145149755351926397577022516340007449232483625871484928350323347991156101508613280548460158258778073760266942988724889473759053026819149438146665916473037564516295783162139476827075771637192771971752374268515294621952843077339155388163692547793271003448432778966994647694961222099801369556809609589466774759656136881127815273005145054714252030134988698144436759395883373227721305657423823938706087986767782800548062530840482707698835944988264086621337699080255249532614142612844777118716255449946937839382996360823686141092791745051308462528008224327463126606957307860298345037879908089645472644366052672423969368771056075438453817159925954403646482158529769709464306954244464568974366344139355956946127972767885124848403090204923014945194474120160848618439230365617639119765706519185818806805295034369359589356283205456241990971756603339166697685873961905166569615585973509956305349423215857649998636070577696877108723173619633107917850825100736432851884093970054630356143934938369054369216114370754686453261007711593009051248916319811730928018969433914348071034073229569806977542110428703642141177041537793817130842989248563547225083188739046108518795894742135310980938922455346183642213410864759729760595385876039297797544585713923846266356433978254528470615724035600606621596485864410434307701980696642506184978084944103481896742453391835430553452442028968364917322458268560166312833949237039870582451208895213356099744848697105935204472477612014691810099718018566309297263287037538185139988850070732067648359361583648560204332337001862606088265390329552543859309385649816100708261002411257821208304465560193621808988307740293994331198117608243825679074302701471128914394000273947573689153368006815187333444281770407389913718012953290771407000067874954415009768296236365697024369060191294204649011947759667449140531659460105538442181510323455426247190074045273797760408482116059515975679863292186658948700585014619254439060371702368376273265176905868319304226834690588896610905073501025821453185977368836978000862274380579406941655949864072915523189317067027786206416664472248266301059516201116499541229238008743479527255721200107829742199941585615640866890634741329601718085022079163949307289056887814757012508092956297531979637307269798069006637171671143946579398606717713396164150919499931885139786093560925398592270688441516348501028845642781051201848238653697184096997573377457277153615580790028352362547140270359402254037200547104641946385812871344553440146334402659419788457602595242829894205725393168867129578941839917125973974376091609131844987486847990947508563793382277767410998974148489230454337001052910931513831488383830004701698748957780673548559379172631159144026107400890219501985525107563846194028937297888556872097071111791086451528585089968938634932668165790447730076856895202341430587827233109552244465067893256316842466504762916952528412250007401575180947903465849321022521289589102030363649280116654960607109695289019410720649511619463022582520981406525978399356460586186570751735270675476810833917373868247064030262869843862015871781564797316422773194212941378424937411450422203640003663738805871659543438758604519092528329526777563581536108966128443971146545841789144020786381036149758645217343154507464277522843198869494937509166482330364187460100542849244200264557640124096783088031319696891390479599737377239581120823085114936687811445919673755140322556118774005034698921074450532520430848677767366152473460228525668881824359290622109303263577589816131385852303786774235682878762570033143521575208103408675195375706438973907777312517000578990067813099272775417254614615981623987157247888194918424298450835350109040076787453618230681912116413154252837994094444410361038870257566176423221800282255671044209527672577688225310063659396687582516167938055603019696864010342839219878220741240365490205280198085278752319581322288830531859714769600436709385388501613327187093959264267077978022297014602165398671451669134451366162546958432930308994738909829564707886568545088435128392051186794951724265619140231473455021434955397207177335371170263037526106862285345979609860149679467828005846433597132579021161900998518464091101831043450391078451495300911275569901998665267045571043744936897972479417198223605582163048516242450860040186564661306523546603982451863017034054150892776627843328154162288744807588382154288899286980575997349802484154522324892566001488860377745160048010452419187316480258740543096145196642561637789733102988837497432528309779871331064815638878440672298878361665010473889706968297445336176186939076222468946562618646650971417503130138536196352309466390432666877407951950382527096258683992778003535026339198717576365203162695985434771494566228416770245852605949011059472267577024029953324444423090558583256156130944392244509584801598403721462322446362559799851981582003634167099440645538700640960648816947481960423941445532656051326984986268311032531739468641096896581020386625160207902258357480640935763429354134021237240094383145993148842733483538872735503568961209188029192050879236769940703681953305966478900439319291119722115373010064522230654896527560686001873510647676587333806255680275309236951322331206509384709295234723420253174333759511765393789001717312593788599352295957793622648334399653069138600078727028888275742486221221497878654494127947628055502463886452235603904371650130606780510029262979034161283851786520409149222617799750376343598161669338454653935353642233464404341388173922964997641164981240386418257122193687573129684078083629830705674952301075214413690967137351005221858224977420160570626006846615723250612726102542036647287246392214010967676109362663306397536451431809078435223296739990131180508431092365502299398211204126211267167583505559184549236893777636812688510201513391186302982359256042613946796616621373057358630724622922540330480316537259482396732914554522286791316250273614552636639388418588661472825567623665924880524721892332762774209474369738739206005567539438310433849769310166190664111409529545894672459628731008358763617033967738159930248858415745563523032367521619253794418616093149533206400438653764283109485270117103341005607864548515525773096135529898640741625638932823040446522887304582097338144810642177814788197750527778367335632739664193960304934617020930657603096164044791477468237923237900732488708804675332077454549635768313433389436248659769271934688003568134051962724874981148122354808847781665198386783958143763074341643801007433217506591139141688344972622453032485008301125772393019539880077410463709372300886896337375162923908219531247330739791151767178226770728801554152437732837102347185926290397278204011440321981148288472593844431320395138873367249768186511655422424014249328211656559745059252324512249457183934807931431453579857967715148442742717708892325307924679313757964564622792008403154499670735367764100171569929999655885415156671875817686635492618953153311220650570408950853944818843860579413395407174353236442904833529506377493978908265894363458244265815316298290355437831363586342025318461536712590788550751559203332465673987316612619625087642767826384373894583665407730767698927446816559615128569123100077482664081134507765323578304755563874044570511921949437254133628424881476585378099816581574149689445080319304870438172753184500045222116077587421087711683220420702317699108838339660735473347540740893792884845415482063954515304592496756413111193682002772784121905271134132882379808083398128105215993639839298426092114248958896748298839103999015680722868039194714579808524021147629297681867822256096677141729094730017243420008287585891455147424680622575959923068617978128615688665885956324325883673692836081571901584378966895371618552803407054343886668434994829633096746750009042128009168304831830628376075639947201133958170515276954503019529118053156750575301560000123779846111555122738535909445471524643604560944201774307864162165089680642276741143394379824013121193002314568412959382021716326664101497066705385498196986292663049316074530419048524452783281923566025050989474328229415401715527044222066077243590256515215934884007708913672186424622500738988597366085712754626996230799953372517166228153952946007874746640345879482241633104788472538956667351063683400517951446066950944089860552658043107952421446124297113891119825501734508350381170241354090922199642920184298525281310252238972534027518513982392865287383729610248397601574993711859786879898507151821262681080934955732802668337173709857627088565661632947644318710681890932361462111531415471472616901763396662726829396812762576669900459877503789287500635597126389351491769752452430175044741618858306773478139523518761305370706798183276421643891603015170247922024748737265417027242394968039503819087710367874373867623315356857670531397006456722775121049956239838162078956606737616480397562622336669963949896560780557653206849793713715886931484214328390131423617441896012541624060739720481430534707939662695858906626502264595475248747207645196792835147741773890188612146984557308660417425303971068986656319915998051129098840036364902883904449297745745732092086466163195680436226311280141773250179679273277194644237570867981325267533630788659282818661760965273988361283762274679351313102332421738312283289171740713825337612054568099453604856415050264275261899865737638030881988829507168422594960544127473327395773231519418385665295609159024106025496183375986704195846311211118545468283527317423375061340449041581904012867275984033549748631221439303691959863483121404499311267707547211791512691159146097414525027654156500121525518396005566860396972133336683818426292007491535666601297967543500147340075035549587062891738026768542109133874890434238523523336040610331558701517087820597542735884889780514845450621088781096295169833266937351402336847666383955800674293098563374858422350608968676108498434021716669716817440957663565916031211287134450595866859232537514568374977386961484803967065157789355541788630615770494990134846197895361600713201397960210583892921530215045654059862504067497540058094806089269675884211656877945887907545328688610598816541964801457742827262478768055304540519842773453160724727417230495246819745890992312342068258744576522791024782598933761687630191215201080591073711501425597866877248237930622029485140953544864156232876940891940167820582117817370110691922769929447168825780780928182601377199908707604219962518622160839216698930258142179185421974187468581557500431685364585899799205236916573293747783201033446582308379762563849000680325877016078852515338053942942034801545857646764093852411943681047450595286968774302581310280625531103070973455377203498671045452876227523305371351121535951352970652574864865489732925435727321124436448802164665211108618134438657849568402270967589170330725421027887721461681407745205691313679679671932874957582348084409665868168187871104594454555389516543970564717803173055407507969297908695482630651950307126904428866362505501086005394860712634419306690967167004127793707637261305656562023681862314020621321541562932033550221553056744690325016351963845610772287525684008275299110594246540479469708489222268343462712308643673528683314875152049270952192557665787824169555897975085832664260603245742023973512213454015139142715016809421082309467031072813382758856941747355617187872458459877780603217215933591697883051581793212143431360807192500385091926840472280352393928801189372624079697497335955375496845310552205455605329431377892074488463553734305985648480228494890864066419850701662001441961185009846394695763625935858955695165626891564390182796375612063531502946736696988970254871726574668944924394614839743373848595214467501445214453476259040770208281140366691338553566111819952398474338527743118609117590080979998095795552689507535818575812161585150371264276962723077335346438674394043562625393716557651930913620474759628495978786786630366711301510119170743580159916743698849806485483938822685963765505425919433252235873427750366964867291721898731957840092125423117430729366558487151458339285964801514527929743466641333962566720097650529601709195515315736239961915790735477090871966825856194861580876792452753378149330577997870789215475197770133821911875937601774971590285480293554108999061133642381448358802603167676347198064329952714584270725650101043352643493943302750750571477069438347928659639748171284437967985325932457395584124377838467165679746097134704499431254147665725262056685325983897591473075146983326781443307954228549312474905138793283095292784861031530448871429610842886152034508712400580261218048873253508878312118360378936031713581289651129679291158509789979191066198310437996482567450934887305113191198112294263209399640831635703348103000447160391967514154763863364362836024653708400896837695269142354458120160862081067887961549587669413182063271217846579604804497036751991046807643051803452395950224167208954602188042270769138142382721350599212052105763846283814107915420364027494991846107779267781607714065077418329403274513982678264253384662873943551493448612444600154484013452690451941908945400512683652737934987849694737355691638528028307959836631946952913940293309330577426465183836864879046650905158735141298525023360993988638813007302974750273968008021936961361024118969397293348532044551388031024088060425881488028122405491933256277513201563200529942562010581024944561519620741459415618566560533667359859458993350469314300315726022576322765365833738482144462869524791007902272425882171560812332713407918362469855428004907050181636244580287133460963608921561126278423973006636436098767035801594044967487706875358610708941200055876418064305863356560561263892742651982606365555223594522194799174939438984171289236200919196955828212710094986745180527681692343092235236516534340049082291730695077042610796255302689713754367033653349348926437679508584945774074447523464627490643366996567233948748433270519568581010292745306685613530510721403956588779944470430870192960172229023022982485930960504927899960983647693752328332062167377586050385791896677969270978040939488449229228001661176884120903673470276831435423771915874158774198737965220084430477310113057522765808119321031083088112531349283683136355244546648079534740104085988860407563640445406478103733803162095895137765736572643804725500324783193268240862219493915181261652223083487366794750721387213731881864012057963453059596105705359007058216462955776423280561539662761779837511400843793490753963832056788679317187385749330318198945449621642173382889322698192990879446325483611266358189007505963270130944565721804723359392870060334043312967727565961588893753257812842237070340634580255836661391199612143388147524556848048925956682291310985452943605597258827905745425062414527209607997774768390691374968330104806423771172923398916365043193785417666044144213093768302226081487654662627032782185489615712876047752369087806658542863414562809884047524149029283158177470590079742794437604074796958109176177657946079004114835835133310836216416405478414406015758384148061564961664136329181406789519629283928716297025220187543900412328675973493128812659233503084347428087772366142364164065808358737185833122043730050896184782054851781999545783722365784869737184719559241077301152877889210966879590256953438931529695927460797855224423740044103925087747301928805676919794741580830777832871418962320029748323362667240826295085494420410200875392868000812690335509289513752596123420046577227986767792425324817869527211656202369695198312349286458976388657066504111149930561055109604738425735790353855791783912576768923292106825710851127258435016376447705586772439193260193207256700233903156702244812661564531853334182218422670164831455788875759048512653418184152998363558798167524480648669571844734352459452996887509352910681510738623619535425111569873382186563214527171198802217549093511241850739692551689432354693064803995003302693087891163261570980409666361740668934895124361974228614644750693487878258991892599878774423314497931682970122173067342318201343930497095015672234035121393540276980784477627226798903431206277483708043396941055404179827378217128358350780129008439312694660637664629578271488660917933515060571464980404746743024140229417851187792100961072110286139170640858133249298249713455413368213825688488477715251117867132513851877399296049869413908253602489170907633002470356495904766649395629749481311197608974143171552254767585790621926086208201212098358545603353466631498659037639487700936407682214978398803419437056877058941329681990098508012954960644445301665337139321077904222857792246393611332674497878349506427928951158554723918204412923589506712273961701445158298047272051143959655414046759135748660919072114170556693617893661520282056304426160094734129932017757180978893462023174585210475453354929602994215671873538874953923417358726044356024948662081170097911076061809797999851830416629691332589711838849136171637259282686246264498663043769829366881414668727094331227191659437413415338836252135904413631540753455713567995468618502747557477001691079306339625102433120025227386653768392133621996772903704268811415525904643984107127550026852914058885269015487541350720336397530810964954686885799417232168005136874073099594171485161518399847893824257121367678346110537797070875555387948798988393830045685710685965836994607311858724967716800493645340388696606970071433974714512413483948206412766077862201825481074081807790961096741239229390918227013191975903790127709673994812616230320443680480437272633270816739078225429642482989587901411250454170947432257548248447150527502940998560734606716267680532176352198808896959258045342255580962855546421895336032595030242458231593081282942313024240283984510613797234072984246635820541212714890562867498369646861247866409638831081965110155166864383876548368643516504332563256035483729292117081664474705712716520464798614536684043834882593440399996293026676526482009068050943635623387387122032154645230046680292275307593012559683072787958098720577739947369347863109683061241397933296041870495488680609438947423657646226528298171992712677914125902571222170151518455993056850812548117683738428978603160831260355073414693322673256263269554994166581149674173907260864818366801383830732797871107333187611037615158832417892101229170801421546210273820169215401556435233745074687086510255722598422155071705569934490989930388542168801303174875434431825732715269227766156242539090444966049165054675483328105264135975233226851591045625962388421284572701964136784171736991431837449966660060193943693698189954313549933545048359014324292435643213199881173993646287732700914995093191685941926660050245658862959068871804455485764387125253873772332998306528160223394740184585962225419971132893499570113306921227333630002083512235997275245771170635027924751369804602850257561206305405363478911765741447562137389907537928617718482491842106348728377693544085819718141441477018183692987514346261418413984999055963965274692201510152269039024538607584921361808549740868606426671345700841914810106089192230794906346165141715285608051303239901301879515692554238118653880973520056253363577100274377039650592506527492781423181820241355385354834488143677585591988420429822975529828564886580543062442975336452628473612443105736380525643149519801526287236690972968924777681336613765349375751338202982276158391844730652352962686820418215368601881901103367113302478275146264019591207039841204122262646461012676694233681810592707592028058055890396697747284561998955138530719470227157604110001931211982702039955755555515424339542500212645804653153047144221539903006585807819127786827331519107365095460545803271355116109765632859130846056926628539948768962307786292272375770483428396284401075931818332915505232899312548521062370470751689862505237880626919620814894313184248385098156598258821043732049937929112272596265274353007991361275735426694461511406966765567320782203854393325867289195403846760693812262504958775378324224895985181339353165740126353997522482830386953822099324199143341798773328359701408461223204396823875258468450090778675308687335737188906007142089740325776333016780604628976357245746974895403372764326217859812491100950738682398724391166532506442274182093675568197327905097704611602007479147795700820697031029381363044543195220537813060905647999955811284192242266558946978851207270144253503279158914683252356012335311886037849872923382574252873236873409129455476607047616825169484255214036934891971210403969403186030987705862829505177481828355665827985482270972688882430554922691850290391698911008071985927151987271297003453691706123507169183475188519908990410045969193353926417421737559399135595562471749511607052422135727880340746130310266423841908302405298460138153282109142929506638453777397958076755774076036689184709402376560482153906383559769835216170668956096771358154734452728883488829118054166315608879285585421804374133633155682713096989226720810497461009808784295543217444766846513416025996667796234476796111752196972286989381683686620685338952744132136876880838583843349647144997885407981989481150824526663211566010749762557980661903781770032111578727007949373239635060063411174885568939233672087597697507364215334527996582825941305460739523424244051413399581685224035155060125709712873770499542484686105772000972746144326704172752802886508378471388470308254886367647046173445698389034484049223304300103260703185119739108805931870290222604293825111505928356768754601535745954164192940063938968959349512154689860667143192884882572375599235518796528634893708823296478326031238544871954131428435673965632285870765402875344524664292485943023765182995031659240705819824694529312453315291521022562761663758142298535443186944566242352059868851313260269927117400113546061373450854770414567305182174918992415768614803019140233045081390753307507074426535301558205974208956323981848281450282388052216789937323752442738738898189041154774503317251382201708095993068924519125152299140598310541664823495593262760093266962846401920484471252805340356071046264077750542474252134395675235991936029874349001054639002106962268879585988545319506152749586436994079176157980597479173065503833386699506456133513368104383577211558455077738558750714020788174011874875502564513278887760113176494146031465630122673039383935095811039653908588991365487582922850268914517099232771631692277955098225733469061389169991959187234089680003221212449984031915849221937884217606235189192963266969045139410592635575863506328578863457146382477338332360748120371344815915244557189621468776894498601954885814970592835859228322827073698020971857487191503482202364839173495047031672905568522172800141261362905349679670389021269095693813533591172399812794047467435268773469173149824257915552199081287985133827329523497794972685873437237013689049796630169348587879404062725759486562065931724931388003945642163681149017247165620042292549871011519193331626879770711103194869508951720778555797091117396624416250796369160160146172495119084789226298079954815330034600121954240710767382390315704936967612399307251099443113709294754947774427663599362621842955529699941592825091176231850539051334016693609733844312260622070394220193279155679321792272475931547629587051222071080195700728679159877726213149525642685115531890737846791372322215561192496987478631806827389087221023607418448042289950925848838515414951189089103644428755359124491540027203491886729966259183536487189639366923681626318928786217342198204587602777388418231173920159917249943801360235111917029022793690459433956825590976695989060515182129088897355545455262686995698933381627275983368064754986038308015883594725174154711643533067852191801603183777263435288037677036547116250673580799863074304080809065632906713536351411282895613815069558541046287795360046077945417540521218240743385831863282447959041938275533272172047859731619193530699355737081947499880476739236337066983369370513035815317997033003125013236401646980411554913459048394239396033908529066289473120100752056681126664169146181515363554067647019686540180794398967955995277047991431453408075744689798072710248419985163947695772734018835845746488916368081953727363584766447803502401349407117760167992960109818429101209123996577633835173527841613950919055458641939223036203490054236008298596367755817859312715354360519432018531199054453458283901745377255545338131326516437341355033359001650865840520218329639146399998621381500946553945889786481442990342178326759928938048379077060675195855394121703530527221436005754702082501382374523740153518335349670089179981486850965127752235877588326538257011038884702875729727649020899136343601153576896755661373790833716400357880663518931363287146005809463951418476581024669120327928761801995683807036458418976408574332865462159256067330966169660806975687184303557291713469103200276723859056196861412846802136266160335128571830314317054849088169750105938204369218076316677927354870993322838180059778215524347601772827087209996044074381408328596136768028924205709296672955054513160796374861306059486939768318764582305959209926531006871635118681074442739104444810199854225130874613015349751446775583168306438923219134611594887024170720255309995753482976544731998040246126098498471230565106310999686780819417726249875945611054546735834963783764537933012799789238052517549263426336189166202662691725858295322108967916743755286118295528669453916535987632235403044205747992025992465809434331698725832295644685314019575377121302694226512869759177945984205142113020707912102073587020502077454682587697055422726420945684878570221681773333404609128767592166130324140550771233018475327300596736132620397439740230503543340206123515836162542111467131770823353759320952576153637373426669656703008029212388607516887721135175259884768148635435568735379727405705589776704871613242203121754037870015082335794532887011146072163394505234913685672128064048485918923216941896040715425432873857448549367809955324681255710161920548192891402376904469101761025170105537896651470924728159529928582329070493249291618400075221652924178379391453559512012686184942785165835943553612101117388907888926726593368509515231986287398771871408729938822478486284701615451536324678284823297993855863970287244576544372344609610126089657179116835502217879435065672906021805235243927706188219008770376248840284442163736813006670397940854502898658127535624144714381725369923613219664373963600570833863407813889651576734883266320265808456046359169092724192717463388315679169709831628197158837201514807642677158684659463209035287235095636928827258569077384155461554469132522257773235034626875944887521479236921948583120656466134625031943468134143609949403415252297794483491393653799416217235723018978642823199597993372612409461142766897042654679679091418372429423029012686948403255236242893410394443402477873690428071729263259513876417430440797292134861065862670354842080744128523526815990898989216597509772356865477835590787401819032394231592914499551202303493541638862344981354004593939636435456358114248663360064292436976496591436152699001577736599647838445927044297334898884860049183449864769588524275592657514152106132757274987002875958358202267639947112032405202026182618486974611376107218738112622370219883645840615946809150543886450611370318544730980746037817945423405260355594563960227414557617937197690464484119830414366748838005648418407345457670790957298789544808044480652312980834550784454502251146044158925850028048050016724982177927374376255010160233276129833526912395694232369031745037105256768191714787500785419467336911616607887282895729370633043035601265418924700902775756398040076229328155376359849464678531624255042605419269830104863900994548672949151569580004029362253116721822452599402441588646267608874445555433759642108756459942519749537420629303491531314062082534681851786325341317696510216823155813982481023083105957827988128854421166920151807394368969210598980928760087209871064976495867492111837720903787252168504368391859153148894509827355554185394837186722329428212412609010269085730738912789399498797239565311600961269230206908465283955137587019760704295874470718785906002550537981248134149210863569840185526982203446922050746959883813951000172598070046346033300642642434452078190929537565505823954658961289957407648860614861218276797189525933543067602656980909924592137856068276154309744553337974624116022965168325835447254975613748665946355048304347552780760848132207868784537131771719830964777304405469671100119931828187471789762902603134622741496932307506969146913518036647304084562221739582585263527256496745771981486987481960445895116218784601914812671960217351736728523525658718421772548989350952706250915138613621735775136650777791756168270802393623615595301419531608594232807753592673067199756156173171871582516389330530909538751092687850195279629472493572476680926287893685445247858134166074418292927124818978770573381025184810686210806825030911246279505542962457738949532143532475009454027282355687068501721998384340603034353033824793649608208935678563125916154024490245786630670034852902614943544737824747953981572746510610240645828543742698562022033225905860669451409182661517421193254108564834771928696369576493104355534473302409810187738565171092674083080852774818242585810094271505545058834861050672988274404690937332134917195942684179103944582668954177480614329090224718713641018003885843969652268674452314835105476647590584774098172240326564971688601537480157387735626298769272049996844997232057627776258904647247826580924963296749863660924718854187869293829306665634824718607641000698707950931629319167780724713012676597495148437881471776213203655825237353956530636971230213006355667218909877902566599852904656354324874895765838087555280304728756380496873746974646138008807769395352314211270997923765697537287674429856791580659781521196499711427470642562486043180790659192555914707439854249976550277889549938536777624295384581853960500261074566979478508239172510092278540692956999394604995202953785308471537844183759236425695648276072961045243876605075180497361597598308079251061417693910769256842203208788885334069517591440243795404575194782564006956896561824190936770056406119109240540083939294658613254706410474938878629311268663404754859633240792955751561671917922381217780809501775361592882587654823187303222607910319588486975758347153857793252311612974966104818126235421279669091576959697840124722752912752126086882989392912407630132708259404277960329840938801314139094338262739636829156993150393736960218679097761289338601152303030775974650776746059763467722820055015286163314082240354673523437773825130403810657373494463870046455529595118376658981421615613658884399527704910038086385197984522964755649371179888716851631932179436505473799878282302696857267457269386482897288989730560836840150983788308806642907601048783965171024202694536729824243743466514722188180840890817578710825068270418133430735561377112167176001748919223396391190450101849571998638806474676316486366758040065651530213700751794569313247317908807778416620009270942747727480248655234886740454742637898771704013713909935915709355495110040595230068245807197764304814400729269626918514818456245752478002848081389031585469739941256557044738529244715237488738654068004184022707790631410307654647775578000230364440215966659169245830968641406121454399127302426413838405487427200656614234100154385303622943909804040757808383065023414050594538367180277395703649960185983156132386276014941694935615056192128720051570343998883443972028305137310656562649472209183586291190717782748541797309930649031363072167546854355126975200148794999860042394390282449321963504285181530516802339791872093681589907019702695601085079267499585385383109605607804189153837687501349318365649989152794057760673664301240986603893616860393629347558937204018443614743806557179536143056599417520291940210293352177407307305054314399934105831168879997734104740942102531981490239564070190727100395837140760783423636946494213382035472622148123054452702037142568337075399909167385652507862635972103368072181938943624166617726340575604096470506215406412258805471388937155672541289560223722812547877977696176566487650632135102520710073665718119263497618637135239411460105963592027325783962748238794211747337372169665013626323120577050557016319555582207955239397906688863089118934629173687997464185783085529814909100913340472271674262063879660295937013894943781658368343737848404491352512923446453036465544030906548896811168908855591089717485982763568548323360746873594659607683491293927024242809647263708555734126381717500524772929520284050375137154318179037049152806658289371306859232793098594742037962608370793228582397992101436584989023380194798779158732908735933592156019074693757848857483580890562156885041621559010058119202906260366185053531475087441292249683595669714609634093705262753386632874767691121955150481137491857859516094293509007838135427931590184664030593603025301269160484001838610283077343484957930045956793438832583463610563592707360835706696855670544180923809971070300483057344006414861686324770779021311589267647683076328582553520459835749936767226156751999331567733561393739796594733168609508937732661004794841898049340421048251492798683833580476185820665154313761037882437641105645583999107351205234216063720348061423864528970701112544765712474784444488220596756259248496073563427790420674015291910555843988789127297329759402154678565220262993600044464823531585185408778787661347820839385322446164491249919397112403412221482630387832312533380117701615271841252845403618402530815670918283443793116708651399035684847415966336750118970839692359367804885244517486554676196258070249955587074531697183128834149588127109798219542552590968072697675016862119330926359352642851923476445960860821562690864266591012688305581753159368267218572331990295281492928112730136809761550410649099350218571117976640413524684520352881181860447202464444542563792203422142090218876670145992917640217737049698463064955787284176391216096656359564648888521920767595864192122220817695363192609626581556480829190788918056524939611972392370257792774469726533764176874433693556544062747288919699092865795132704995887067453686972272831181745695384876447550603497295457031492968394690621178381892631124993290960998111710698573888138570809898539317588504154953648476040109906760966375355534544580995529521674995362688533524316156318216047031648465911377057875257595796274146815705670363738359197902559903744629523766961213099005145584420472446471868944615079534535221930238751271668229327446182276195621967043097543929116167232640170190778477660336877918371774133454806152527782031310598308487207060186524488886380210998790647954137289853668885969945844962421345592773889653758111678249889753597509845543133372977749456508336459344835495629645645896352298981941664741330820778646918664622547178269364743281629475695026558855676119293303419055612030418692250763540766229036920900655873738266158772175027966922356765002487257816719574621936366567239255249940505214437785095003409123070411647723860529775362386573448719211143153954508773159155904639450178100933178427638357826543465432558622234503059353411152347385870440173368380583218850581025503351676795273490085142080420197487630558786294868140105408362469426780016042321026149187723663381546616215040686499684490586615962603961411731390840999299017532716014191548619029748045009038640030039174144106591596669454233407652031624786816641196515139730024271921317787597552434153307915098730041083567043289756001693044935841433454947162000853668792483183493661820435188563969817836367451856241668927436182581859994822244124372980353144498256236783532314122771820765684844117857208517811584002880546480239609943514355066871578161072443774405087111874368333896112008118726935859440265165849183140712561328041514739161037308313236775139750891035116211919642065128981250669811265254100252719738015111862073490882397133550869566711108073621297266469313226624649497297399816339480342067249819721168451601880886862423324829414525479747654004168144275234784996592675124496028242158264198506653354139014357063090508516616619791364248208262602109393455412518816788884041846746667609805838937737968259681871655849753184348765442848162449430831452503376126710706921232274803151239883120934767328554074791196121773832759220004933463709287869467963381628742497351118935545875011758498865343000683323185270032590232766543080102213029478723332764181824316745813200985201655420761535946750841645343234005563999883316096415080022118144721101490810045183113300781964496160151374230702711100891496265193094745866936517433119240056668315486046053282666907688768573881770874014038173411008789369363957975964227317936203260034734067793560297422349116684896982683243034963615557246658576897138579982895764359244608461073332807796890224557913444803456449958571204712957627350492496287939478980752798281308882428457722362050900116872240806767648855897087383775178381554166198185293069462173042185020015983430148663963347852211796693046767640631764209357827030986634923364887910190470758099963067871945873680794536891230294710641846590117596390346045011731309473637771594245674633927228212216089068074040487329561107543360828971264656934717750358118080385297570085722235011696987297059340405487381561398439661162292216333458362230179183983890316552913057270184485729036179347151990396817439629110917088341181629502724266087070662487643318608875160495493816159895595255103335600711958949792222773191060350088228310821119063947475462977801898594079072031417289444923508411504467033676173077975071185723403477163763870689781070514519618114066190600948956330568332775389550279132466001988761399781505227584070533605746017594268608094392943421570049179154155635631579365132224102001432906651556051099707082825259247181023996235646495997214588661461908991221015380323907624001723730895098422597148735998010614164200256833465994402656680667018598617480021013393867169022920385155712333356862351990773647660613821922392017259454007261059118437050465445805383280357883977793689155907200934150268214604531305153401307063083251773996820037637316088157479890630231703862186058601047160629670868541682864345166744004516697048295118760390174063011459772116855751968305080755975128498694212986629208160224427827546987146511322896547695584975898138466387908272133688429056410950395898359653565434093060351525469889648316818896007200710747581190223793229751189545006507930242586960197349882631236770178620611325760892438868136369862399658469256751299309927629827835251743386097567487008839619977063753699284913758085757335155657689184646888884954075882777342520107324426845888126172998827523911786910787309455687062989639135624081486294124744022829862836220798875602169675707184080174780820506506774059795770096796551731526798097214742931185534995989157737548840208042917222740756603297701746263057119931254735989982019670772783320294391376213114585288162985808905551013375287428220508981126110760077438419415889741247805566784192265366364930282492655225150614574337452223655249853158686264575859355330967962455898811878088737222582306673958468281053471105342704113056684961936046575753934811962235018677244823472875728359116795399707022147541355129640504264286842058438799387025840307221568674606046474339661115358859709243624791001348341720378229039622733969012553125728446119310312540185008034688931310195539101299761016761304584349252612535295427760044692290334309205925388087674199675462479396151117685457111364204330455264576009226433947061404055534582419689424089186106099677117744024632018816088789560709510346856289066875484450528461863260676550148132239090502925932753942078764629166543228536773664195948927362148064648482423454381110266724197343725437917883175409601802376078923563915517464957042440589965029304575163974303538099585159090375486626372070209073091390308704447489092371848669116702336901211087218004345052695895293235637094061676444717952904042350613505723781464725295814905949366716339444483056747983406773599209523236723943937106197922539973049048934748151593933648291336032773665140130706869243475858894784316403030232578960063496300962781621215546646517478009171644656702989764208687833495559434628878978905069911607398484959971299805987674766962230591221788833569644375606504672764785032362813264040130625665935805815672223555265449588464263937651116168419927144956172578377702217956085121401443012725309508834477955810198165608529317885627277224666174309628752427037612376155995639055574218592761163697276594483258286606487195827365108250344021872567753094260894416838495029244884484014580627704111272154939684540760701473318106554298385435851583187407068713272282353905069305908399221612387472805764463420654448600487093805523146044573183612875637936279646190750213054762405714400390284937638132398426211387081218695799711568118623336864379588360267022286266886528026183583233168043359797993477115867069372318591512106776492028272327566412348641856456318452896509233640321648060631930793266410399485403055788017055224317062379585610888236684053412183583967981509913184621329130466179325632242572388104189042589021992681825491713808869871013559766274613920986139071097741077143682318665252308186706074275547304299762554614819863043954511525562614567718740778709663329375789318903055223123984770766891023614717669211025493776423453169373374251604697064569520006191000909961677048192586660495248715900584317983904129363006678135646440191462730658765673539201794412786688851423424982431279632118588280003624432578826387266329901477690169920999749742360444972790246588991667418627020285468201711959080155657600450153858125357525903207540524529402436113005914952609813913251203110763914599585520377030493807858752153683204979569386101820212541410967986887782392934282336835858066384036940902688221904756229746710257330250527689759896465614875442520330496164826499552047143020040743669420757793476774486313410371784215889540583031119512969461432592177480434871510077371772170889625073976459552796477984773069891341979333710803875051802834149258801882356202505341454301691533576924189801798505174526564936922733179729483571194961254187871775461490802308357396560234121141469242409718456621328932676576222623192449656104804319116669189311366121801416199561928643920594908418695235022094437135042129955040325060533179684172037340274206978555983416199112392627784508616358296925454357707615775970110838872521897922401493343144119361088401099044016877487476461733803111829050902803613587393262874260774054358114546579375987110736043558106059075894694257063322830856192148946211701698343349293762971820648846498058307920384367044553312373460486665559679924805496274967763480561423680672594046062052056922941788707904431379247201749221144646285720216659207759470147476519064317544218474851524861770199067590399246884082750217644662024642503505305386179714804880440930035582851317317718405745892730997124837194809758188239027104537072152249605663172768401882605815616529022339360784553887980387147100209761784988861630183117472795484303152216941554775988394760013287677140351527288049505564965593679840650174858588151938496312757272622504015185570792518955343263294460947628766933055728229193934222330951899605147042063678880507174257608417084698592015760383596420474654251048770293771313505216538009334876627942462500930325023861693384883442171925147598919506877984295057466895238447122207997552919531998855495949587489488717995313442621845419934645044918912682924378899752895802007371658759664847567186513946146815650922926060577069892355856975306979645652852326682841844772294201234351794973164454928633124407496934634831157779212433182809960135756929905048769300857571507877631708139828616861973471353009050082158096108776852999133274011163409533072760102502566307057347597065301442544991984224764967210913194274178227710648376694730448402453917647305594097981343941002033094424455306405398428008285070963866065428488274153205571267901731317284713050274074262294120622881719600635354287372313137625329627586100442674480641398316826311927330143645092426466561192285054551643628482000185321566846221739463504842976625897906970931814460780409348019452831341563890327469542076598831414585460969863603440013466737896308417192558415105542886949987577843966403239780528034497054919885842702949449154319548902403450376088059654518219434938637724338000182427662346807885532350823907128638067332575215113405950555285075499798333784172207998086892709382745864909145635916829853947536244417209754163714781644322083777555283544200320017344209849816925400559746371934513488449325600569412728868408999522665407205607074268758783730974362643868282554468063294945474512233796146006302847376915453985154747373959421768279737303506320167969628103100935566360177009647123333568403165431761951716671395142544328677595204112307503823522642149510551642499666044038545796886199471808771101036908784232123562208692123762179828730395065119342185658101203002666769966677970887072234763230692340851943169959853637654518933305521342289134539113360803150495428988764259804042253714223599842681461654160548986118935041057954511962742601321070338996504513845851567647237146188826076569349505243810549820609130390658482473056468270030368096932547748425857135459249249680627993413298884065854270875365481919774864884726882591908955571422895272523505549049155316836200121994199399038418454403511398145637583419806587565071255278924598237740448634674141347102161319622987649802299398780471196387516992419202045860551252206402084198024978356918011159229461269455969812221254583627887206480511400597789248434524403550075578825498495085159346666006262092076310224086415290642465217606379404697796035407852932165993071069124956604864567443936946775262674777502998841387172186613295832157940596332763931701528422989328460995154175711284086264173524343801088829587963664184103516654485053895241191151755946046197423985323671198945737366384684032169368935469199260322413472499771258066904136435182014272193771446950979934284776934496755396682714424985207008560567921379389702959625403373762766507879862333924504662144594835207436216129504298989385330645153202663198425264622489286434929867097192850284048033378381951889577893828995629800491883021642119157691170878176631537606088734367584622903355416572227922359434447429044749912542573100498568473362494176990713125407809742496499434842123998345262612938808481670545372501109472128004843391701911487513337309205322154322678213729181242854782375071036389921040431595370726952481472804159280350620108166156239375398832198185430707864639481849736279251821433982796805930410185133470053981642299028230147993218316733541912359901897806299063408337804684607475944195207393106939741950465079379713177915340534547861980373957658750832858079129726980150756659298667371797721791227722217883590725605831619558908326957714118441055817355263090238007454532639816349378371900294210781698094472023953508485750052545734521249021417750382960285288804070624214429384209482176069935300465271895648188257890399836090352987046374098756692560564269533723625457721906027469476621962120437413794951300117325955272075578092969655040838303831714448029316128861100607153584950610669502649444741782422190742317201658123115214348064079497171696334671991648191839348289124067189823590671609894904319428459428463410304356576977308733922144333783335851576152530647731317989573264292155607810438801767165117148761363493393800742358241705825507412615162861139117565857229692603168987853710084998131346915051121010650576690582583794666352245606113997019864818323081540799869041673464317865926418123906662094062791933122839784448826092694390186698185417544740136432548725352672891587971967753639339333399987485707539804647146974182726571249897716562082853030902895060319059597597650194714189736237131096553698604156146960126402997293013239051761224508446402266034258550571479785471912477088528421628729701007085368649496407212542129260709806303333104360462948071141506568118224529036201973895783307062994701769962166322317073789221464522860638172550550556461057296760836478581703773457355550955583554698794074758807604099362717712629401263220452959460199331971586919505019988946895396849043464460391853729141164671326431038794416406867460163277801532085649069825499484920009949629407540111753139907699360313670811239953952799719732074126003723340858668943403510231410887080978642851708591346035949834247297797885206436312942761095440755125758532935425577021098756709987512577595424930203656429344557452746145406812082609471603636034751389449590296354744306933789833578749222781271353208963532183699487489112193594363701987943739687405545731757449208009491655545472526753991836009387852280955465616572617864525689445493046204552891923067227981270166203620790249135951742856692413105099330861716006804757610566125011179275467629749823082410586694628926769773837386315533878312661806855872590245375216899752256880756108314154466236101431741726394017258799437438375761422857207442912128999192991419894791926802484425838519651132904598556781364665164928302364022068877631010369609193714557193917932385860827237886416857960966448763186143559157771247546169792040048979019230008743769626524232115943682440672515893733951894373117174231309307307327349327052595066244805420318901812607156313703405749439786161955002285805726276544875002943357077276643566539743406745692952289074263987602963563882577991306238407294303325864353211174409435911305869052935441076951200713536969347366621384131335927062739612905760137339107496228635575967764042880933931503916181431887247770130872550589516685042102530843753385180857588288983120857627619837537411114937271237490757886421726417790121359769237894344476903280341134857859632330161680035489061012787160055797150240031005265726878373777745737604828734158008184587264451294714620778557417726577717244689975620300990458588253139286308409176945676095695227727966219378935463639061702951868892986332537178955617513856470716741183135495700014058154046121825837696554885100911323813387347109165095539536247443263879344319357754420376998191477034521412362031555652669451059702352714208740253169286048156982285793346061182584059565786282950931244207198392817716170499806006659453594349542194958451061770254290743447626572169886513865983420690128695651634003518069383310549924640924104875384262450354799897203137266977043543687075483628873077115973197683109457267745738563720509805532923960166984751384703383984087870835886892817541093105384634912226318703414548500531982866714019916523206606799963203436138261311976081267585244499412544708343264687259534291858839331965058282146594754461279916450114796612451308062612233417238247536140369373728414196324114988422086194626778219780092722364835126878671789308534176580650688067217890323144837697465580861005150994494578902094838669604405910487520508296820319371639710771896004878132921241597301145716392573063278040286247357010861966745231530892537639968266142402174196471453071548570698156362829416449117211099955444276437512312584415311131528086077303969147535985694651800027166582656409204825025686512048557866782195542632454082732016297442477831422492934752071637977519253233327937936820774528588514497553504869313107885668290992186791020302621601623248139149278754549262134763982250669510667438169570631856561298655402815199562300658491207543467491074900020215577878828978039579805011177331182714527706291717693256794490903538661447940324223814084352439074068749215723869726779150683211224776140779258576261213136874902948467743359833341341725420571004291668210840171196463978830326295145992000843723208260073959704640636783580805433893857959212824337683515215138876418592033209382997418152699476661098799645470165297781423786870368303280382962934721979161361730509862987923362201691976137422554234009608261566543495140152791609669564005668364083355776461243296782606354293202629067096708411261186860824130502679507258966259968450741594888756206987288926309111793616350588394360972396755893672170092061964906578493005331818504984476256276140054326070986315817489783681846758915445907774110551011455474347917043903079674268832160558111178912150910238119445461615526615709829358272389752612511355190440592212147608858340099147623434294306491156190692849921305721799391550013266402179019248061908041868837080211091343791961121950803478353660261058513949550289901945450033221703250467006496121058257682273486152093083142392735559883355178874210306244819806252240276897561140602909211015701824953104484958856121743792968656353891559764508298584003218287413444729931741582399222824894567603021789997187966801977748257357608632949648840950763742957040351923216066516093050195519456980602183077897697038811358754303911084847284233104789630354271618449851557680579225974073009483041206607190039201253708416259599934842577158399910505443862532541095366149353969503972087153228175364585565227619535145977282529248819898464035862306748654913817800522456455299331415405620311217811695300924153064643167229047796170439087171346311647802152861463175517765292792126140682326690989405817134333031039701767585269190576488872520650585724455862270341926616942530348568654922631893562009637969316723766419444600310842468243106781473160423591808846092950450218184669549227665366738159765860732912012175576629958786391528233517084742537989718996743642349538238522328018571828511843840486087009985252634880513639247586982339240337356759982489115493616680696286414699720484093814895120716140333647134014176811077895229308536814597920232779373602341981106112552544651532415579744678691756381868596704296782887714352300141416765214712440268660514251399679689751070583795858482712107425432326253278829929679134821439726474074036436555470550493801146476856004331621345156908095470590917352251139216576068727049248495607152248605384045130754466593262920707455448358351476428581322757638172666912820316315980887312774246366818877930590938174687930034531690729808201154749541407526556416588483811018277373483923172757293076438797374954745102608190066114454912529767346029721631771313493285085852438341178176926697388001061890714719961183747164486021267997103667553653047808941841793198311025326812954447218758490502280739176958549624079793395985976431188678657242596064764150759351527796597622096717135593620709196683162031961562689956610632075935067922294141502214492360917035933437447395739144730247230864435920359840104192550650170772542060587059971203619224325312197443595479698455260799734481481505050514272128295914641704604383341876761122346627287574925700612126272035599461322178267019370561449759152710157125173872618969947835318534133299814969543583310923131137167661513226710236451778521792473659935207636909369606630970292892375742438247650961096515915956229726043011104561337672630038986475279477684339369368304665761772021215091693847125999174306835512572543971719541077343497483659927893196276575218270954488112315443956737611790928960310880346957720335818997094289527281509355292456928535894296595074121803938718217943639370861168354999485705386802695598221141971464379835851408462197713574139206285006999956021073352984261033772066445790279824849855929687550823001699847629532821690610982311746606116594432740015782351341562573414190065442054890661732531388012735369600054824862949839931081692568729929274831445638115780129740450218247079293803505780264567809433776525225099565580569516682820468570822782088629343075343008807434876469363968797872889441492780229439127883791384609461786666432725656072974592924820723771981688278112477538282834830651465362866236189518217672254653289231362142108890323884583345147104323112624389669775618535055882047129317085660135377699674130927979081922414195710217770477901928002027047975603266147886632698824275184813871395281602988714837690765358859033030375039518135842586119605598345882866845107150713546937295411268473620930844783309971501244813036518256931054902147794931243598780281824202622112961312776672859320167041144940298613504646082088050300380745166067357695547670924124898534594047668404013705112816841217887708257173286984419724550104805733421253466881491988958350126937669097810313250844116520682806568359714457037518361777622413877701534322192888828216404556834014870809946607216034272275753323587813529585158711605567279865639804277349109404972169379424122728607739854875026155765433042041765523185125595117362609068318899862669351670798877473108966077132698947790762853922443808655212447279834109928618043630075799199286192012647076406716288169113061573371766291445486318948621896259240113348697628815551977272143413576118334392679072781413232345402945205815841825318014804093807805557866838143367455138583690136854960494528767932801789874860082712471857903974205332351963392133982901139835900604373245482005904579760130865826632938213087062091097624718205233771639154121754716097832464824385203673754137801185117363357726362676577166101688681636726608596782213694875284332172516349338833883073166118311395506054296558745798926375911718015667218641458500512073291424027055643627420254726347762331312615868195981948066054197718077812888510612144102842014236768564593747335156204264161328099208128745313033882730413914539779237651213159671391527770661534047684902388889586321982270885400549565906611973735823402286884306745990843051555298632302820339039698225744598667819206365966544230415049812692946281743228917501774857779170258338471319611020881076177018398765361073358439736453138828478981604714437610917093072454680782900919025178856934728352936213755876677899347804237067945105824602921039979107440979886906668719347324219085830333864752212799315786207820215302130387725899417366990820834849073584238901341935312998435515325945040332376737504034651163227682924359104535996824346726928634107235863094771853033276433312661762006367534949013141363337742298693801470409678454169727391424949436537399891142500324088058544621880353823736112211392018427111597040674853000458159474588754329877805613221976695049104973079303661537963878666908847372511674545786824356617639054109032576313799724676471029994427483886464342511247636951643124844046506356480552534232035964097980415291408536589766156198518327958486960122858242876297532604152034964865193321258936599671592649090135823292733503947241372359597238649373309819353974746131567273371868161708315249428342057858637936807700549226364627396211676363123451842001282596800282195318153701696320584500039370425175878160881228522835112164727261390437500325383150327775692221480111829951887994122881078929808948579927668107272418453865931665154372119872810486181136144702338428951001138375960285589047828937443921114414783772743315243159254217628909624367174833955509352580440067714114770866221845886984430048243011364862417390636283514918657264171716347838531815628780284748792329170282756698173564460605659472929634249950126787168577145238867669257186557311040904404261697486531858898621280286106122493402541165588255732270384106588752354993283464616441389101851066020515275054888125547898175801142416950520841077425967313194450752915723347933522438903970605094294461324984717378930630150385046408483028533839993262234228293584135031734430663954483326811774356693017006803989314744957890651508160536899459116798750467434239861890609731748411425018030832229084583180691859507384658871500994263306445583911167725070592532333249707040471090266256051769512614279125398880719218172334691701610480798534373067591257139013760741624859815945763641280572333758654433732338441142061085153451636018678630079165062933224940431224059314986624248355861033692414487015150383192297529603137704664188871988181450881691444934736988479524322341362552856931232251565475277082062296811180745902432437661116808640682398454816913516446521333423190139974836606110052109995670780519584308758787651018534615622769200790116527634607264479050708129151693150854527605165678067319412858003422506236267891109475125859560121101488959551011542182911924856324278511526241334967382771463295137491035605599031527338405561235198664374673300247091218230310750724854587125974190471137367504919253704205310872427506841432244129141352171618172020561720530390209055386296185543734534904552769804193560285448858174729658288122768325267299896118964130974636400902425148926357362928634234729429548593471217286895245961504624575528901543193092230088485886656297412593722541757675620240459030314990945172741026707848951204264018081321737083905357862212387056820807124349780092911216650466778017674368507351898369017755765072153861568990324344880951554234522338955741765079818309927397186315071353681633663165083758189836248578787145478979625838701460754549098341755631089627007633552677625683135022900709448758257418073233301593792586806826800122887685188115526675065683440500431677380126227030444814073776723996886221206997078253568356043190540511898481014031811173647922245867525896542875858775070704136594282080059581140383524230064455483503221730623152311664470319051382296133150244883064347327081822828066764661871145098624070150036472899246118839595827150666731774422694550578595532491122657676823341443638112585927520094806145218516877129742753081613839165924419459924249422384643517542300690105864469678904035921560825119048513715338016755536695433955105944359760777211259590806363579413079875030529192941296933157139341502669957712482821834732261676059655057852070083156456639745715701573264620097525182030760036964643801285963436012217404132569103170010645023287695936323229965243576467985576397136895249097355799216307535626626935376898910990683458174632535199562696912606039477244629870602119573396352614249005009384861597760708183333338459017489804462089979854460727928736587954306507935510069296194266976281158161999212691692929893619790025945436783177848057427861560485064302824554772868291515246003434224986468872839322216606221071353034811623436803652428598239158929586692861177096106880731584464107666634025537958058048145102516755532311269918575651098891795972579564046511082548217990858680802460412878568993566050333290398496889728615631827130253490129663986405630382267444413031820223504212826335684012811266549826211197340863502101161784057426202412844102376287904066111358105909613359720981242535479955639992014270238633799379740969349404106364752695674666573236875966537661989061668879726642989386342217713462343299007981424185480295092809618521883295544296931445295247401214442005292430175032173441626357764916301560580011082875454069858104092141995584751901385172524025351243150601132621991883301674428341137522808664726741367766312806126206053526679075059105103904178722776045931793645212671646050202536238188131015818943379283261986367226251629806063855370652221382308835453009943742990156540556278319315363148854764090491290932497800429391150270360528363422547246226901671736825207697434949655174973474416797082366621257424446516931543429226563810405258139744038750874452504932271302612243703312403943598907962330781171598989013693494894172846076952415916317222153730573619499817160803545813117551601845224208677646438722766509883412265634152403248677443645727249870539558653096471291747254183263581827882691370135274230273473221073293147735046544000442337503841013774988591610518973251234544689122990774208802706775594589797775446953212585533693993553942498524149306828730330428266642431162899430994952676741278907805090462506260974368611929549932178948231527429268673768088294382961333373892758992419078834922288898944756357912274719449479482590636241647764396531034086686155439248600473541326717815438049399638898168372725103193339201774548413679471963901451651922837995980155288568305396819984839689305724789698931268843300806212383583605172154452354079951217827025978523487412548654150006539929977329801500811847986079693824560141807273516852004936028657504592416543839568533359346573593860180439901009920573582295849799332958822167331040956457455799524727300392101022185795146930487234035219697972562002897852013791135509873292301127364562104284548231229363620841377671490601626013590283207344114324859477127363416629662437978119681907864840508411718760812045111054078490438656037785703020997846626942097575252179608045908351730836507988123101078308527115278426546264725535862552204289700818952794381293991587804434348533980168665487171254105855060594435002609590976513079398756774901943901576812890550913089179399413271311395714642702826083246371770406452056928970958715790050270941627229768577174843148365999441078353533107455785722611799529442361324530528840952119804209489464354031961580716063930916963447836880699351007446887953893781268557503067361551573332073604857143980566686337305716330029925383241902962790892887396639004914939324660753616529542804980918551544752835915405685150189923988223833582555751843570737288989074929811829570961716633684737197546449605652540422109751099646812179436579881436500980370299629148545466170435997129417502801225395151489756311129442752799203393887784191345711764181867331574800690856853166031816430971377837010744934164111744729697851675684570361404907528829624209559668588900962901593329373205935641064743558481136608984171133569462371299120825895776410808724222236376793092808974108976030397189957981715482512395569644915566516384987524425655738316615137036860578694910275259942638718788861627366788995375871490256025390526063177270048696702101750221282251874497184960003816932336234187393776214069841675265491892466968866011388638041223731077142061154734258012705549863016389102553663809847369072091866047088506087956485489091178423731006316999825767018808160149466804916902131513140011874519512566889037692832490076449324731946701561846548704072322152489225921235008280787766046902586115899247796764889223650411488624281133978115150794052608740451103347288444111359045228190578745716018308580622318416992683319409266625823329322704666456303959183062505696976584467927834202426202326685841990570785397765070142293105489878531497067788505618447396403556768308132584412607515564311773493107901200129276365398919260051364148819092896680771981992212231343532229289055796493039172310770629287105145411832089904737585113435405061744274223038763221790056224360157645118614399336216542122979831284098153058496798889767614156565630571396502597369055039545428692119760086719943703363968967793682675015623616943286062562278662172148978055604433655473272928247552022965309921999388702247662195743215309671511776797096403567845623996845183874727693506263750962510940788682599845482533472846469740198255073179903175993514586578108323969564838499708046799723726921855798491590031513226591548226709407870671220038619077098718355121103564732053081089999420297090230540906948325378096568387549823998003116195550725073517236661138914095885914473543734670699807790504403551561929337683013784310375833763311215387073263394135587522931562166663468442829347608897630806336249483790790676531649192221245693581791693233677550203449989785738874164741781320245549499353997158648165317984684446152137590908651965233437912191545781679798317478272782173492838832007736879644199207857727687129178853533126341067385847627401130529705780053260947186581169982201465832296649722461053836579924840738907391240122098470239212365948484706125293453632546030863805937525637102164680443846312516150707660704304795651841422929352657397005425202954882796271458923572822363291163301277329438899145694079344076721703310741606787178348440998984937112133248615628658344723426222175589671208616919510406065787182970466119019204071001755578838902425197635220687701291996088947057451446292508023070179354426378589315099160237281024547337850842344536965661314609993359284708398803742391923875739052472890027000162780096196904792213710025803517567155702414586718015046825115121343595369586424221172755991024702901515974987950971518685965032349542380000218213252036637691701174575534319834095604228119047726098292436837661343282125124641774275710024707101373480800112794880238536190156339328253946681279016978212788702955772384590674435658448371821420347863503522881348545242406376332355422285544735004309088176618059307133026534659867931464473291866545525981335351317973517315051334331730749583458116820675150230657042638316168280841162432148235527307564607556710343167248685269265333496515751886609000394263936300350664318913832238245068566598034448443139011147513698033295729998520366874378758787636066602342302207594885371348963531116856974864484805404103886057119791927778354435668748924469073750168641540313267496936626192699721478893268805655068158590357787046281300932125699029622321492573456687101903088512947176772666169064387833411478369282252062206246360579053842276568246741257283978185019529087833919291994617858460167534630175676175140702482259696893492399070901904989303129223304270802425518057454181567301852953447330620215137390400225544425200893640662858652113853787446681883275202540029749470088461898344312964078224664469597680992297513329870161244796526842770730723868742516649981823081504556178051173380943681853117134303067460728539595276193460266743863683953817091130684220081888855616409236587140607246675873171538977761301225243132046303631710725212292317170034946813885258753037535582471717519878937267045760650927017422153416682337324606659386855972178757180609317807703912144028380702805157490561288886053461003075855575429251347349515439328348434946652604021295785859883351963894312584715648574367530456279013274636078114077978001683280404080839392735896423190221598670070071695968490423792318940397550610695862789767966905994911001968807228642801409777117713685765113405534640340820205436315687577642488637041220714362246941029651600552036096229248777613097673936424809095189491449896139110287545167158989844967665203046837224281037205720952638536107766894648845130969203561988652587807660842157866736484193607550252902443135616117479005363064354072347369935297454403453076935251373891803074774980885535407595407040544163783261748152845265731712107662686440640914994130779357081585463541511477662030882052750671492035419136897757911615472429631740687128171857603279072941772493195796143636105941894675763710767113613885518849549556374099811035826119274428920587186590703537216844621026697446095567520964315223169566420487626722097251458346022519812320375498968887205840129385347863783103559444409895758903619187264104986387077436309443770939752023152694026862086489680496435493724777069311901809481962351027758250882628547353276488820609703485638829417135174889391036962353484214762168681655984947862672635050050916053183453169663828882762282424538167385508762571584261742939845183651202090662984156380131536347836010366524123501181027791342468438493290612239969694175322903406550271059466387369410798499403279331362799667129166871237541804821117783108987435585975923847419767008675654629956531956235600441861274114698546353132244523856483136730803529696177489171175164730515528775116223528572278815147668491305915067545281096529051071584541207192593723484464204378239040931798862743630852326273273265391435460572696293265638834899648567452805777534109360623537065482765004441445598632643684999083701054781643069836296870466204687169951339231469112374834532736279355927587210281516070710817295627157815791099959773824859892287086305577289558284845063521456601947926087191512770399333005133601346153735962032796629493505665780146910460404578005807100383013210237755868082742477357981026812439635852840579170009789025468801615486853120219039199088587491109766092353465940517593224654456962180714964113908531437178748159828047271124229190712880759961399924582949712742150188126834109943951702824586916954272216020156445877919404655551861749588932118129929483367734828607303956715914562875257021765744523095607997624119001739999967019233430310940038946790369929135927883719807273712679034220050188093235348336703403592405698377275887968425564067779796398867273701829882052167988747291179091387634339977099767675836344518501040417620699534745826074034191400315590666665914639363957632406501449664082563238142472841036007329737066078273120008926877293228304299149511001811190969664601529665105522914657196691117674380366714464284193264998424880637582612075282110398884411872738404395573231690966716209904748171384589568502172108522068072707669071519519717765951877099972312911983471443459672794615599973385556039268924993733601528320232953848343249277013482034894302671088378421943951663641271796644354985236069004363711743328272132199376754156788935305524043725308832766548224064701762207111195524165229069978140641961647760652863869018646199789740170656666662568604570570556535859839724278902988604611648739699693954213817875313090206824375829965798302878392528092483094581964969808659022043717063883957496728135831211545926395212022028149020079632839404856905751124713534217809763164252954148720965791237310866840752697761179350353500699998894368926991973897523770097023698489695521703914798226729270134714493202601069217524602537753164375915554407599385573111020405336286190057837357007619117191908563780665201538569056652501625416909815281924837768241177592497602911746208021219999596222158749128308607407444631876261257367163131606793430428352849227546748495641308721134743187448684536551730318840287295093900647804209979077705928088950341808782922012992727883991962327147968632965575267620902651233650519045584932210794559493017901548266821571147746022230608692999012208667373166725060219956106427603963034063543130405039090844776722410238871083329822249354313181025390721729275346740984999849441738060737080823905215331979810603415118850565721598536426895819622071069668838441633612552513699474476544290340317910912709498083092186049824892133212271931835998481485897892501156496409783800925870193362428452169623270427673706880141272583639768299622061821725182898726156813841824030617924473125134976897790169786828816605904529769375298922195623955408352942122359553959513028609135468112482543120897914420123326148491391063439403847263065719415234224298823116262729460198707146908462414047114952760100759571123757785401921937690495874292371185206542348065118688043992762599693460743286828515423385605588162995099015673557970617176861294238452591845324180247192057337438388805311177752207954667535377957314157008989126085742115642901886794415101101902618548967002903841630652130842301693893197818683988809623785923806826840976411849988197366289343022250308620327149865852809155895480886276299314840728791611277059082214458410662866914464687786146621539940932622631111962980350727900077390220035632563477463092762718596614506272964268856351123825124335011948089386377159157103705664220483059406814816030301586736301590489451777484215380836125990158874843090135628036818400398880627580865584626940359786745395242346174685009391456587701332015251648399891718939126747222326312218096059391377279826252211566232803058889957400682942762808236356082986263457384161245806917443109869283135867100770189698870607326681826383533909045624590741516805887163598976123702867523649829485577664368575177377520763930630100690228179733130042655923849055736526806961414532475321046274318703197329837103892959130241769492164759964540257228618153696939188810736650934015804457665282222592314299272547951496473871450880208652628729144977668403749928680503347399648915969630928433026111130913130651890277536962111872301237173468499740824976506541375824156478070420465686649289291744304374068942323445528931902485278676804471081036324995529031141483492694711025388166951577598084789809073274031958358356351683916448626373573748470455915710970396201544936315616385563597040371735733689610535952378218059272350283136783862893646398183627380797908708939183573790148205247902532327134800813494358672791998541204601875511791436040190027922804172639448302815551363727546875108910798476003901669455953505607264535953181138516429915106610912996175244499003222229755361766392154076253823642596193835467275508598410838965596588677237375541885584316129806530055186574071899427425670148358997410304320156481889781846511570288610562974112479316636106793459829186882727612056476018323833131458755368835141109756641423080556810444453662497901500151850002609437885030230597101221612550063568060241491712758267971765200244237121455938323304340170311386535310310759431789666335934227608265937179704988854096886842446071756872815234294793294438134581177501930861280984625369670052507003779910271149849988217466531354024404370006852610038613923197479270306414189824263800927307406672643945716971194899022664204420196861586012939251578567559160811182687143463325995763866661208004285591809483072353109332762931936916476725015751619322751202680778068594808823631315545208820395135395532918604331685391487679717821753223751323629823917403657025880502165864834115847045206352606548342269713051502329506986466166925947442847910009505410501295470502099739087965149447095550993171286470487346678000503570830196129111630219147162013377699256830915123096944123620779052758951178994600042775741837823592485552675303393776724794751674778219243791355007102671857480915817246434367785502345432191726115604693923638992093851429316063780472644993589239028019372426405609008890225723487115906265530257473385689646494126744425041248954801900931217605918097959225290438965114362885964624166328217183686801884235794892971535256220371897590744405116869786541082778743893131050033200831641767954560737897962239498440361854530954620325857565508598163196777536093704337632530740181750273866504095122778869717488390564809440534824622244599326003824142647238386218246004573759093425041246844125597844764460443020609504941994516814968619377220230107625126471597226702654011747171936319146636043819232566487590189797268861614327675247014917505611381428322722480070138561962531829707411979608827287892877954838543134154127092469941047875570155431881040505886056939666364915713823392723928115912181718193780415649221867429811753065475081668326843159869546841882477417449127138819669808460661521590648762675846978649523448955031201197035671787372598248070703059585951377350164590342060841774156117322096487146928350074270519617134969697498856456563785955693026587467321423642908052456827333183995702018374632711072319200535367967297997963634913331620186603621646569697223028567571927674605821718777378832175736337736020670039364185209709049170743609067763398054661394855596497156698735951126046560795257063203920219840689590788072397398069215726423086278996678348396967151839767701001220167720184483377933026978440669813342162026235811308472474588318697773826147332877877065741492557349162578899592687906948138414219016206820774424418079909251194010516560935327394674146990282416798519328553409159394650123500090467181150794093673473361065669069492706524470810457587868259011061288150139017016557788367356807295724401479519457124912006747100043957971981527329265193420775836419674117510954117574971128200410284547563615768333996222619452142642935321832424208401109680310651165391942076204270083289711092381915026012968917621263901121417939056289625772348548782957605015547244853382589783545336096423408681549736114370766897695063717598974793291868014095460057139746127217497629429683190325129354527426246440467267529099286620775112541370815333454582035624927402356303026701245708655009547905860840030257313491930265354758473828654617629102593059755857287596864099640389347215043491512305902029439841128709310862665230858754392702421962426051311246237658618278065480590627364885373304015448233945614078919120770015640663120491317338183527554608180363656266946878627582801821250087607522432393528756776661709363114470778494469407749354314254160546565728508447080299203236523894957768057095977942097179832552468758676500739563468009003145557930046706394198701877969864745902446179608305842290074372475930631712751593877269618061178694242321757589079106672717876723390678467766874675400991973000326700451292681100910732142904130035690515780424127257331097982898112694529116808949471932682413721466882091938748511097299780554817051182557816753659740520840250135369989844744998881880268499343825129101544127573062465432444398279422089684580848891594397951807006690833866721448587785438796808122102668594150375940767788919968224469023352228069301053179296139792064206509248872098858743854974411749410671444033085139953573228297860871600249936037481788854496062187773193506630555099743723383692456088426863375652421862874010565767843192936786663192609650187871110857693342913005459690407918768326224246315360781551220536650780323505033648603376407880554981368692277767280823938934198498916303068034719904484040871513872682700088020785459358810264743110755135623150755525675229392685456192668816510810848868555134491128398521500793325928577276932861402973000112426355280670330584998968690517787792895117156583167342013821032320535111776380023387005330514693715918784618669071752280055418723866811992923784243752059413962321067132486686758031592177254196077426945209118719275028218343811945118453931048788708511571582892617072881092716186811188935895024294470690196922607497438303143268490576287336626076989428486181625184594901474781021364421327693224590075972933604466916822549196460430384103931880760972219227163008426669616410555031365349055038707632661826711812732583573791921446797631440204040981259567911488921913264272847597316846083868240647860885479680343264080062213361763515038936949184924163517911211873605877949573981955492255704681962478554162366118750833008695152327988801577162650731545482160721793565573478503154560887788181005422273871075290679809123928006450317308620410303984388991755553351574996609582913525158250654373065968792165053686274076551287626703710235602550726640157860604266443529653477827088148323305272498486166097220709419183067117082866187067935676940074539417774222058362266669174644767430782884939850793278962247445117019237222794695020157411774091252341657799036923196388570762220547470966872882635198036742921907021493813511859659498902075123386936432907829238524048532580017399737046755630323957228718234612596501131236076877048041470466075643689935016414759301186317080481149450392808346908628396979872246793577328460554269553325250419750503597927827239160727481630912829947352346517183869611001180079435640922980926153241565027678118112728325976930020271584023523546970637706631275621694019333667594809880868548814612481114802204401611779340386266591915703389500496089060679199879066128768809426345872078019786510523209125314715914986789267203440875322767059936554081570376171478611291637332869942388166977771939623644005116485196046964976698320890883748312431192735539672842832574529152812110658496163238918449956255667967386713392830648535745778929639127636346911596114807473144575086488235570669804056753888814327198216598929449104289556668675846815444232442556056340411953906480999285227661258346102793631875463080449973597769383963424342128500980390953958644438165660760310475529804841972469937688743709443448871007043047922282231651040666652963308280766533116290305955648755176581278971608343933414258356840647811871270744999754183127437496508578820930196006979136783444144396474934253868723087948300666347175986474836375799349307910722871671534397271399890065285096835490030612595081699382310156920599107806788622539531930412110945876802685772692213808857762414152052847361882578089093068857879259657153277726086939078546664310984280482109073881112124302778494541590033249392043574874775327086294105315490266392587812178513610468607829270769441035916955498895171926314446849079115789926548501492684172752457618439712142537063766354569994546219335831197104190615302224302822653452271060203312068314377552116658313432366947504111544887932923871248000837868913635232013162368603589363728517701614110615094542505089086925479243394832763486561505830514639713213723156639728792262254666459854990305185211314159916157632822371706521925439012639780139480564554120808785989256904385389105959345217425663072161212561655847575692893149959408062752000453499777958274229471514722236819248306630993634154945310284830433108840204348082678641569113217360964700410448014948318519201954141876533902003477829884578454602667033320011525331664859695794217484265645881493026850071102816391912532834956441578118970818545688527125083681604168150415035326480762391541372332459337543405830707648874722816567532431145023994648430362449558937844473295729826280118166862148083813060061256144038188504805775876454700015051060873326010197894076104980623914600222408008099669164529065209126076417946382066948734094292461800983020987579135515573594632933864024930961620856601014277251248982378875019427859690297504515027812282036931497338812599646759108109969060307606811482322608792946283484069554916481773028205125191071467482833994666648952732519130469942970891404323043595326795638000556826059572007099048356384864629265085661225191123213932674918328405723347377408156473297626963797667482498777163504061789383218346646050226898224834527465870617372984623056159648092999451633659395449027356095620093970493095853040674904156376005304958691686961697859175763663947170110253032081415256633117842679930348548600289562691778853636179929496263194284309337162820245343688890981547043054729374899481923742739277642917290953366102292919457600919273076080470587846842861975653362404868871878908450945530913125192926653205816192038065767518385464652220324976595301501668207549463273236070797833800857147590584475468463870347278021851163177159723467136471896286119630367515965435601552444220837794213883407773961303966801970873179729404814697034138718616163860781580645265459234556482700375149469567348245059253907708900679624634049687208727288261499216039258042642040374018449877713353145649115468508834012162286261762408021734519612190317941989745164254163666316773686925940342776433380191776841653871018993972818211888760804995314791419550986031734684674814282772862635354785125234396162929822439984341406978461495701922691778460826724304414243241624336444563042548950270412948046847172783275996596626687090264834298225392166513616283821567461947856352704723089453184427438017472767916495569000822151614135931737067624417908389813129805325715230360242697863852220360842170676110788614261051955582280651523524238351212368675671453986015040491854994995209590046467273584566913518282177643300471140032638293360236786895496447586620425571384291562409970459814317734172113292715874033623121750242319774653227301034800113316832962596352181164131813462786272150111660787840604749825026690026846866027644020621396325413419559997222766511726689210675756803679219753731832315998407797326131829492547095602766493980262281948767318169263591429324933264149103339065483271901953791888963927283142660059681324151514585697089201449222364181407134403134102353414808070591337579673081125090957026662441574352634942150225951721180695971424190624210884110517875824642054727641295948203171954757757077546879895588745968658650408489786459889523901154074545153539250453780719486532377339970011206943260180467850808403885583608749315912967753383861190834274200558729136973552942923565255010860587788795606463770194991089648708022409994711186389169315635613923322135618905988052392313234306239524748916680990278195614130816996747084433846229592932011524898694551938109017128077130582339125215112238740359026225949999850187080947634194159710834964277242270552241890921106199436762594604832815106493347693015869973447445468950879840682674994727743412269193311763225056747290639232651052019748044685953032456899750667962351453149550123187807041301941754856456211342502790644304177992125436317223877946360357165053929796622812329654564724507087552656449932724522257168213882974494910771160607830923319670097866880041617743724293900357647151782027301874026931768867505869776249442179592003343261630545394786801960149054049316807743449778797649231493512887447579795725211087489344047909788769819715990523187057253636469656199003407679456405682424582203091085540368477967790499265233606531843912694661083913506229497435249270420390700807389111646440328108987445396977453852535359941144384963327504062451855288254080335764894381030786502211974222775978803580425115033002856234754697193784809438225294760141711309827736334855137063976801496463627400943597822880286426735728890640779402337496594618567265641362011423847597495565060970491448160175022529821310633119331576890252303734983403050570496799453872435746505522889227033250545770568851101797705750107103901140681175261880563105027812136327637417823406456048948241992312235951687437696236400616889702896474102803953447284862837008025269979463680104024632102418852729409757287571126095454275786454681887160743831809730199737842791873995651951330928000436754069121650664304822419946967931781791392413047283590665390655169794606360259493724335440546230054968410442226210075555635448139522801239851790286331003923424803928962875288905594235003627768927691000352194987288922376876981579198696789893998961134699248182762414399756539161977999698731843978720799144440490330600518507451919484187619100184049909696831173284660485988706860768330609807472624919988877178675225086746895421762249102455917150178517641389504298563869936996592259966369634123392281401408125627029404901231030628296881777183831738183004873824141738910278860321598673435012600395518012845115982808649572859437826564904096674638490613226985115004075918203392819998895031662233530244314134251594683714623430231066943983850852838933001495476100452317874529671780345587946350562625427862649837265191794334983979358023453524876666966541851974167568397204746522739366969304584244595784391995804528422203582126101499579727781677142825189537914868765741615155226038090295891073047042667472210082244650571935671561258507829879421930928755571132944464162795879910472631121458854635755521806491914473269130242150339155628479313372436017501450739065909027063663774852709301164771278411368942291461333214711367194053379585332033756270830808984745671001898638458496047463689082702707966133356890468387106882684946469741043393842160031878460546772419238744285765353582999665154080008854541565323726594176708620645579168465874406622765250844928965469156248145044890831831434112595089903997784308617976616737378083238844138507269030558288056985622438047998019552015821024008697918761060916641573815878946117169828309728001068876171195961663455243943948726399672143491761378623752426238715315464006587277161736323916248387048858027954364871886560159505694731348619334398696521364430513118901631534045196959813468404846929055638536277086822698661098585012656131723258431292270347312174765200384675483339663635276477579947294485688775623492009357468879967989860553121972896478531616606199133238254061733144198255962465145007982691656569102255823111135711465824421661866121362103120912373468914256229529404912702101772733401053423035746208684330387883250398562709649507387426817206889639358886988317130997919991341482730669906351335580216711553315729296923602689326224143114639612110760511888510604457593768717979712365897677738989916346106581279177198765448845580667276249738137116952826172494675223413930931615553409149333354606491815171661323866476477479117705128755827111645647307507742690099023658864755321158528140820963984407104614485257675977648222962927094357548249559751750021233342299453653906995758116776925252185864696087483656072015272301313858341572673524119774925258767948931085276624187827846196698215726515295777297447238232903440700139261371775143406551547140984735633715020298712480255292095278741109788543877588054862728423594175896397653193797602623018986759149766305659163060698064988948167744000964434398784590119615357656698014814569502818085909200211812957494829352125417014653186567540950383422950945827393349760509348898090452382280052256619619976833048355740130800531838105417798943441703040715705976681369256402123015673408745272033667897664948265151243320337270159691773724219687442031028369198525292378832232536118216329990133699773506837238942089280408461931163965246765422934413622196538223870315324161085455963077613020078115158429281976719394850119398852323786652620645365691113429504455555132993518680065180727301844416387129099052987435754393188371873039626793072453499241535330555219198952045175775500353926670818952905325004631112400523311258042627145755501938356546787583019715825532083680055690328299120298772954336300188038238128271290910298270741071994187662465039325903011022176511482953365294517586282848807679307625382470918475382223354290596100206193005922096462406725919892247844740888051543938663570222164443691311206473868434681968016262373325148594729566120479829369328758540629281792881946323473496791334510840069166287889506281706705206038153863802410097104312662433389631268347253161863316093575011811713801679567081979004365365664634473768487564146381921697149818899774673210928534146799449051002981793129332685673273251677201829027824196826908799108916884603473314737398775250604705549057479192409899646675764436542642750542222447758931777003153591378331859046886185513505999805181607608561511870977787188244737671466284331364201269790491047226449372574269457927016366795463003278722032301963806032826593034511291010562712628392688695892293654532315103272633423283795088241674221001051927157087763739492559257866722616779034879028161035972292781757472010138463802859683668329621252287577140198844487150569689268967671428323755179652427411047012008902568781009982957965548504018282817686511598662632246413072027300383467205877755159680643406174461305246484777982798175127330988947979597272244179750281657745386671654527925712486280777724937764688914993273268987513960547178231946174987138347963541969290310835842621770252490375899310272483446396495637434427624491633079308492681435347143327312241058885358451082109175437975681831530446237190171125724838218848192275567215054230530878826941404127685482217859092300363092079761054349007290462159398866440778476794398040342315834168343322238322881843962783064544598018243900516967943874237250111366482740619252078735950803705955728939770011208442616562264239159952576683647389135169408030501245750127184894260439743114967186155816082795309902263426248879577489033470044803408858155897089774758818695103561135685875337336884221663380516407710935939757643359245473127710382855171153140981541113120860026568062337782684709602768341047197030789056951375143535282317366799858662657676829198832846708418493084806466417308723503406413215431052235342338962488167289749122384297862510329866961036112868023487717097060092890788756231130207122194257176882088011547137038816612949644944813947283994205725991732305464452660393127235275769700601211599135963607241079126573952780141205768366093712881020035284148910877874482304932519229293165406220504863425670995592381061027353219199457276019300664624915913106655919790129451190170407170136751422751935906864522749187438911435807667199276684471036072768052735117542863063308420941757070085043322262308566483011035620239654094919150407276199718624172245939810507785165644189619259738287903729331749579654951230535345034033068327982290293809866706942547421190577915767678687173017510969524514877568755711164928116095111629774422396006131925537288006345781434978628135096807146238659119576087409827338481836806809797659487395178618705468488018644612295824067449235720186420922528035538193259225735686999304796639826245588447048054037323734474966411443200304095052543290261274738449854928105090372763769679190433524481131489716934562917846504000505688018003686333629738876260678400810369590000792975739234344665903839108297674802168086755653561543832897560047064378756492453346608223341632006736732234695394963641302955683724198135332021517688173802799781502584018187864500550843008921136641566489731060383369256188052496954215678933812853027751133913061532781957177235712340141070776278400827861309248673643647638307871205803856570745758101123270136125319795591820258129396986528900620910946036661212291382831239093126275088723273730583617562478701521122432502435567447553462056329789491898942580059896492877953130318177467281509490805486548897988786783611748567226002098920613312833202486166637932465671200316601771756094430146734357098896252891184096366557421155139982222378298949632014194119370967002501103843179988762209546129216108624743565746557649028467066481235981940914208906603216014187914901337825284005372915516938898167163790760690879649616133499717469221076057696917982978315489167015796774967707183279321308654002004249618953390963679036484086847292892175398668101038272085923634373074606135559877703201569253810750418850494442120507753886939530524213815932439494626230739695600068161207450175655630447719171708287121077917879065293520435619194190526951629370678937988610540842152461784808389822346764470678177493380371540757206261493014935606877301597008503238800653906420457502762613911279714510493154652940806677425983753119818285119036635484486251427237300215630448194080450861841839224532853483767245760516568660555688540754107968233879540396560805249172415565841851800475807303700858429823289010891155156118095433787320085574065462402543544949649167370618636064053872260936984231981078905251248291973212554627888253772907963845185626107877373787177456268263108978475987871884914167243265389514722741916001673253009170635939186115787466081927863679646183320141058355585798145266707659274790777800584499655669557810057379982710668473211446791692086495551194727512107507789413262625342746942387254584748196407175470353977444858471969187220636048959107315708781552892903243485837811331795801670496099388156459069403744811603793271841673322571705865917269543711918643307864893997642312955756951007205303311963334579401304838389413835240436450661688025946528611531263939354039461126928312562805866531779492119762960928050045589235844552358612643009283733801360168594908838760184871039672859972557942564607185026161906464401387980706168996654297827257518425363449042179252625043374976661714129811403883003082193363725642406652660234243119463591644134574301361308522675437657155355628202140677115164525996338021776925608876967650593616152464485765522495825797322292370305731933011084714233482960109467516287963920853753737607728399808080531206949635556021815499749874342189755289781938551125633448053527611928147500709092067429835524417863811625386135756367781576043358648227367042463310473797981349157049474097319184144446381975733193281377483039161119229980186628927873985328209137939255197198355847494925580992052450217648595268150743444932259687438411653929032792092452354908744266481338601203328363524468229980833905987488211890305884932988922220030197300486288985085216174669039662723719946362236869643243666322053973405719487364058960281194803904358097720467949659099614386689744085418220963523390452139370258750904689976749374989001529152028737888729809549570711859481463692464776271902349297145552870421930428934422050028583958567345461341998008282463317207002900063104146950715172087008166798384790972391548082976507535908120201061489252784924927829312509851154777975794899318249711327364984566702593602302614114381397463667443947342717581910750149045786234264992107325103292167337047997710124591536374365162974048682861830941791982710874207738670339886414143907895690199233143316947789092100090051201627256179455861320138037065665349615255146681925348601463462369945572672690935603929576451609726204145551934087427309837477881206862792222941162170314240657213996562349923499140451994293360124164762744020016111138279419781546950030152020877767186020612832702232753372527247630454671169488427131595484330294525751208188293326633651809587074484787011095846099181883343919460594323293297662014327056759052836358344522693672990186805660374005621989289163792209434984101887028394358779213401254045919720420172903798754357817459307753054759075794919106163447112447652552435835955986930348785974247355275133605937168222722015054531595542929261404109109334020980882882796366015671079225149853735817976566800173475481689973829167212325305260054304730749671453270285913354511463811806472275744917557830996098795280797482378366941224741100230179318651029579504816196869762373722295381063091475970552729078397127778417867466462389808285641532203689931286424210355105248886008778367841232882099467520621334351524365408111794703168940587527605334482303181461695662582572900610311053629692842550361431370877027109541176317824203725557803874951212810681634987961207431015556818407900211960209067199201289101068124265177608483603263114924862362509210259899965733173251395775809788581218557243962428803697708425022940654043792759514095157186106610329255617980401010681302776589099025651249310592792747446781975780519901511714204808286874177766155550251832142003298963075353218940596800408957648340511567619458833106305873276006089628792618869174784729142530962498465136425103838123483082980688451952087044515686579145420390521361025318201390687102208742207811977482145068349380711505856631314728698497071217437710548190200182364702186101041825984870787534223902689068818126244495370746212154546180581648845742870886210515727887648651405776206943462598759155114143696159635849297734058639119756144603471868086884345062222936235485087378457375253918607060048735032066223760819042275421336523662436271709021908775382238457971414379176092639101292781808543135283941433886737601708878790886162379045535822683131244242869415274609939986030502336594823083448433221139648468148919117516775735642675608848768270575089860629847446053166058111564482105988647148087702802767056018818290450475690646742216105086717037659698908945299355284853719581607922396359510649144519978798421044212285023525506005553685637371502850488623613528743672708038494874884876514042523243857448223361779401992698908646575969968897211541090900093476116162368383641505907108963473348827153152473876924403843780076263576525511467227801848060766017724839169417375794610901029001897796039601755389772597962203500264593998682652483862302963280906104737736159984594822439560306783157480681473848367420799914130901162945538962492936676934744238856585486786611642985459362052806591333471426570972993537033695636571036265846513602992878881899662140839306106747335316122878680596132047407581713758715388748581675194435123063360305209525565099455413741012858384030190025090735791062979459958201876058491293337480053116698346366654241343771901411379820006068403484943444593091496823478610419692619495474358087291170353914764216224633569373235328881056300720934767816258543500200440647191888603323760987806264767322798739386443396641288827599968796835217552370185076659735084828073508059006274372099527903719237718250725386440803601025507013141248583413712225567292673662947236198010928182432109270343455574386783768363263943250995507812114962096820288446779576916765715503375202326933327107438276461494984153573434942157368962967503145996898185020376278225127748687023003725612536843045153305385560865767535897436532043553261681670743768753139432965247062701835624078651730454076276882151676440279398611827001106899195431533443752507476257116925791583466284616423888284643523293372934060444816198494332217188512254365265150870398523196163209329527359286865935427317905716788373596822196572879440440001722263456184124684252559812651516803844097227009063314541331173540870159251689285836754346934542436007832057140574883105053981539499557938754061709589392403841967444094426299184786064803243657472079210403888542393667713997685501771182473378926191182188575709215626783392356830463973291372704195587855749350031198504405523977075582395924752842196090198800476890858149023358162987557555086407593248878838541962418111997002001498325525554547649662014092985300570769694773816695636183673983864449769206291086156404554368291469073467048805898026342941016278926967752850116288470672581002215882571627783625029556604283406545037961016590114427677941992689304302986548731860112266604300930579604618399243817665789087957786189935812601010662184745871686706216159034424093096899583515475971096300436057267645722632468235880165402413963185852313108065625787392911617318724897692785863868043664299692527818459248990645731924257536908582524449776884594152768904966677570794397237513559667527009341665057103771996537836329308138299640555117182235507114772896801417179622724657632444224350223107105240348124340137168440806085889793145031311875018745816750716727014947700243824578031526227565676636557005343456862344325188549380348509925083220242833415681474437035450031380411703437179916392436665364477355365721674273236619290047311546578481724261309417012837424064548357938876489891667994345145999956595245988578899879215170575912070079278086115759142371558807149902967431466532266335530035367496654223614225290590627140871167476027190162124552770865527495679487245664178966948975647235076391040867206324367330976423095055122902127166998734730148351111054040035733390393759615857542635608212923593685357422517142638680637351116041081557444284144404392616525535426424898511756256272349754382633341524304775877436140492851153596646868471773078897226478819202100249976224411891344760349857142607904679332690199390876740215815624873612677571138197859516656530158186100502982855063291117349488414597523462837702472715657457506444705115741892135044719241256284832179757554870433623007911104263417371508888423008560022626527848541670006927479594394444895774790621748206531739094639450428731383829277760470822098663470063151822216587728703410053090094279386949345126759507348950243460129056315400295113313391877791921888532804137611086799114573010470879676905616051275866965480287066541168950646336014906967666114858709924851942874797151023210198688320629803437349982622024505283932259455119578635808833090141216508565928434345757443935244097938320427050348549830032601744187894966191613168588203887491936822998156328505664907951270004262439154676357883930189510035906970016631079450694727384180963602277075351950797435177715894930279964869078575272046227232765169517235364735109922283306386610090599415132013561698868941858536363552555445628154973670920227787867746552572405397201269248989712623426916013973917261957470591449850567881071493352647328515402204761056540643590268107154874065144719206708207633452029854847462299320931833500614215589404909313725841894304259543669649947588773313499335569238696649383110779748323724763980806009395245139269759533803446663067843760563360723591269796641166475820019718022106110746256766339294259535669668393097569439723832558293452904764838293565258598149822710531494733648129897097837187178383900265358202434794108407461821388575528376943665332747323008674232874077996643368953102747343280633956576268788873384730861960409464085604834899779578095177678952267364889802215947703815085327890211381125861440170304784605362997263674789132897074915146929935846507475212310066674410399209026654935723626385833140991170430663564434424731754274484698688125296338555654284610502545792626740359219706292304098472414364674358691615446998897498888653246254727905766449902881360845036066582453503778878517562957358193270654186123999866346291273109913855614948160963468746993009484852301813143173310017026843376337185800334203787012649598787951831397325042662061393263992472058696401454142699523898799521538849848263548208394621199660895062183126653877170605700067534400607046317260016164560219413814330719138982939716251361984887163404470622643199431677900499703001642588616140750808672455576948061771752502173213741435405495108305620716174890437615130488281627046813994555107668074977952962193489513315277114484021598542817311496230419805684408966130085822696439088548057106568537608051296524833763450677096517385192615437716798148160280940229845042040655097452928480731771775033627494282581028578026056565395575428584881984703808658188779256170181965310542373077341254368702372847917765433130218463090151691595558557587363178401359173175668075972832089361431490352379370770767752521784510179254021929223697839093211191812703323578215838836228003631196768517026543350577927558351456766407896141344863563851565864420753758164649289761736402684623076274202652173486192819005831714338885698818841336371335720790045985539741470573667328637637535782435517986531717447321956730259351011513812811414622465008030204991143340522505022179305214501087646022602566056698283775049921201941400232376278912632336000922377614352397930901525010306113888526928197774162665449247499577194708536035393494795389929388780393789809183931559416428116715107861730907598095936846189303521136697793864421140671442038965859052113334864710928461393217713477886473194777661841509182084246218394689819470377631532456075289504246448892977820366193402715143895559492863403798455719599560529086076268291829393987696998198484184055256656021331745334587754695614108241251761435698482658544159583754432564748659199936394199557642060279393980147625456160962326297898455744604754487503019524487665422710221702851105928186955168987523468183335426818709790669904613558067100227568371897162460978944774016394525423504226677426098521402468825923569990732457699952644211797028147693721291794473796621552471026358078730106318796216858943198116565693599807494477317661825303440164740838233433506997115021478771511600078322654500230260612368914132792359844352052483798692409218400411161995147410293322923440534297354713842488796801624053670496189376215857321016863220332698088674894338456478391447783193015084989380714007138432342920468850014310017480903829843139054740023493498932912768045672097454807545899546457045881956391791217736127620471120066976068509890253688088577151418597499391648750266232943239597883054700369383227194075416967877885573896178680032004029034998328403649375170318749386025251668304537292937787699464113999508060639737361323752096582228938383062112118272195628092785018233937867116184845957753773722510978040633806913040411394835336283017601986433773084073583449463810751697974560987968087975714981632393847975810610454488675985976101985293675651988980478062972852225980844105120045911524744957764427773357515192822486438939820271619831105514341434353643964867197973909924043960387653334498334428243280394558535933478922548483741599681316633736228978543431368379050781701122231548857834450553502467238613980756998983307128539396102873666863007858400217183564957417700388485938607571301568192023395924601700484521401645002768761075867322238553102707561520171984502949647675228592537542507687453671401734507846553480179255896883060818252104645882471699076396141737527066390210509611566485353458587472759683654430775181877497648908125064808968320389922458123674763700191624089311901264260624695962805665376414581825956287408388771988465844110949048378463975982232074898890069087453711807192106276225496373965761122518498998789257641408961642535812120395643730228815768315106202424476657000126505562943157552158296406328501783531891855764803451683226247523325243025245124443674271194672151178095779639409200635466218686236019900300799866177833654255392348479282738999757478026423729409790762454515029355751817520367623059197399189091823788843829536357367797319388772682646977188828125503855258965991648483953130982591136179551631115165755834167668554478051584183351269427751030491295976007956622994329410155256211014078067905244108474952660345906496731686003108719294612899065169245643425717443085074051186558340279739822929445936799252191731371430990539422340433689222701642834300734554416679842507650751366327773335011303736328493763242743145080755429100252383637541156074233188730000420837047491609764338539688658506870321600014476640360805427330501426925595367169878960820207386519941844196426328221276849877110145930668290213552476403990357439762735020768896105148908259475837291958778481312949896899124112135186426323898122116362185999323476253551544875863603622778400001092027106742563102942618792444983617118606471183786992667665043366247588545203785855745816846601249872326144173201710635204590668275574523054728290210379756083350224279316934500194687789172999193403585031556849776773369119632390108149307561864707295141917305832668895665862554447233297727331789495902290472707278523096341844056237393442743694388779917699356473583663092079538095242989386937281809571135621428104395460753680377303417111915056250841647356195581175173374866021193252798343607018702124180951496407470130268298793663096648359753916500708456566859467424686378747551677996968399610254781015799152651953842733159367663202270211153016413354034249109857334801647715887174011975161301651062836675252219411356615230855605226610144784579033881955393912325575192184138401146336358048258942288475876980360811407572371688578981478493513557487437627109348670395361860559374439740414372757976299001075415458411961789105113073591584426372296632355498254447283997011317357089213858331070123480537559965798152541187629527853302788522930419637510653674415685146504541551540328432284383239452547708439025547725770805014896629604637057851437725028421365775965768235094462257888353685478841849115147681728306473125553723622828775447394970194597736968295265892541160481192886967571346255087359406137199401055037327491040923683903459057824952390091804402510480809295110428650552898148786910685542540942060556484552784772261194749894809326589335894540504814873833832465975342240374198627770877735057619881646308424379018240959954875340699629069056804233020039728703442624828198055747255309390917934930811718072000495076587798946206410825768757609003722991624597124451107785647419162262718347262154500525290566616128764249615041835856058612250131280174716655901530796509067244634564495909321221209217372975845996989784509455526356352183914377567713753749682177649703614936042072691443304931881560808585852384799991294226893466343313568838344191333283571108821743014737182980932547692962069762841891896838767689444955913966391147195425753061519382975066258922677526233833065940276030576182617581738523853796616662436479426001684379970562778771488652255983845302026535056389482322187481214576881966076808043216241564013948881201914080083809991943172655868857265135561983398926857728922961551429222017803201849030794246662476606270571352315138188863396885940035049573574901752015415967061636935489860651252392277537440811024850531974099173462769628019397374307648680528162654964529205997899740739108847545192812908745484392046119834802895273764946026052487278922509961419855884410411363712498172721370342265971050423759810262573896156686281485787220643843520034030243375663320669197069755822221938350374813016365127491003559820257828030464550198429991136366200243909509600566740139889141390248388988219551400825275517689682435938171576598348425811165402482850915793505060616549041299499533222954340058944214494183959750887407705572235649857574139670058480347374077393356153493960402455730508980109008469924922064172143972267050727724499573889086995345728157340426965450557938524264842070734742394471295307998498017358289657992611172535056492806023254735125794514229167434362237546394527681009268058017386312062409512538222198156700322360284491849907894130357305855595912450716834458737068392346969196136967221553023686849386777602441555969681996362523776869087584530883422026431483599580831294670890168927895512181289226486937745903172036799203772381006581226238122720441746098694702565084723164115062917223412838240990419718816847503646356388764488137926500114512466846529718284933448794770910755888457208095115821334811999973753023709794552509218091650674525454707080028151023056155512589623124320925808381701335782214125798566499369714969547227753531492983983096922158221400287203148337691847921573069748213277589802671763310902006782515514019717958366630597940955668937093224049192813480364512428564615666887620336712660036318293476783883315033637015671860921973630531491534852289774622311778446939666110598403828862077697945880668001959057884039203671373494174484452337060174432234189173599622693582871998453054869953332297726680179481788852074857278736446442260222401790574851135896643840759491511476991844398445883927734006227959550096692311865604147818666386856212767187445407749377714998541123129803671803586085047964443866556260328125010933341681461228362728197887283571124460822764609710172806637214132555446346441256812181562623182669741269461979836410575413129954086145811789990486694566952334413218553758906702024498295407762700719161622449680025292845907938417625183726133057619611683861347708783692935091546206247392529077192832675448756806452056285584714580905137800971143791445320905827433916741384623832820720768410584770895155267548528527495028796491719337758734807515067062187343498750959437639396764036432354488737812567073361591727607877056788737902430709206760038304510922775126521344562144016986528159425696115861310485006331552630046326042836398691413311759575388689304573417355171627349011810628778403946726220886324973776355708863031453625402073473621551134945908065246012342191687652271276978843603166185270483315025208760780794388437531134342086199638887034009061545662310637921015396118454901703656972474859555643435110383841087886582645458681175430580994487815589938329282543094160728711532293660595794578622135404264922504853952534094662642202928718302212210239766369095029436762340924570313918939644480266227276934059837387436654383841705401596673745703039873143271338242029546759720717846585953670828155633931747156872315003834160573622774539478833351191024452167959436714052311764239209528940660101506898199344190533122784974110525456522436385517592307236774510610276837116956277601228786669932888754343597561259115235943118552389324991529916964994681407666901673417312384572130686591432607854940344273700026626626648833394784773243342157031173668516407754494677959915021235535239230901844903135666256167122925388714746917724801049910346020247357204941972573918804949560425524099267576949916781921112168248620987473054975309317079852673713641686987850877181399540823892439402089396154646481593493723318594647582608419490202176917059325666796668785947555699868985208373671507627155637729719596482386272871724314536248150112672773127470448337546371820984285890838142173401656591851888457558923178001314570551875127141175273819830486457640934423055477945042301364172787320114929828745058025409744270904565782285114879037440160583128650270385173820159867950464652855951705407144030429075575493240524517123190817258985761460031068572979389778009021234011657551405447503832461029589039313710601703274565694983408263772391442848394461507741259810827818147369262293871281561475795761013797550829380555803589886501350547034754900559061409518910526885047621803751383529458324044637931722723297903512997871603276395719236919832618161608053410323963705790168010451029889228161719468357773444252850838580607965024804854183399290968108752463743897031315488869829876231559422617059125165350528365704037091326354802987316357317036544970748122264654505364397323230380861182454884779515987692488887977270036268860124087001286319585809885582064242083974629123749260652016407826601632432037793306576233120617883314733936223808701226039085884233339973860030155717116877143439352196887133783625475264312371334817979861951643123965453295807636258353733026406344081972678823038160264231844628320652560392428703781439929406145237112416394330857482909443370547936618782403802695879759611384165484832768847234002446192640653387200658952248511906966854475590481652377118676545906729278023244183575252861679790804416760362784446097854653004109692643018163331974971746568809304890804388544121682279688322482090445627756470415025156000874004097823139199202836308341649500948071529135540564730618766530455028495368358848357063105346482112610223928562040181912108393120642259996442340290090111241488059487791621639148514154179646340998937162484764325248565752781729494918409714252667283846408284896808424887712476265026208259552140849421824818999574847652875311256216358704946919308628846719432040338608945324263064143697173309486665023296553918078433864901542755627312003998893868015522379076688514585722999074746984133518089276251993306578105330069444312399299400399171114747401041755844767414722624384501232810582853187633293200044157307685216117042124357114178532724655496318215644033121183559699789273986986587173184182640449152662548835337572769063892492659770710126339660438445512288537458807521478513190196567308899487653073582893329754474052501412375599956813298279919465291063806372300169263272844817740271559786792520864963946608480150776495918576579135791331359404185690282337451950854707939375686404866076391732635451503298418857573377552219863094191489525682919757309414211686506349310690374543901126340893168942592906825268469729925699014890391163446079897320861777657359772890865057273420502272085937855402083944448787663704952136573404800876636499703342981557200600509974936884771351195044845223504760903452142130758370895811630947181909785467128407897861536676876994913763768525193579908785486314415538285384582262840731299390681764855998040968152690134407242973384190163526692991060238943128905257029609154299597963562744360552996420956130438628520811887424692683974286206482420569992676100912500411557874282449964248334761806299007021190918562241367333107172679351724109262813188578786794806270415940152800470013167134331915516506262773287700493880863174572743781388650097911277574746135623327575459726794891521261921241853122368452324591368180932098308512479717934844923178954287758751950615074980670180221879100546338101728941611144464180388710746550914623766188259747845615425860724556595160841287272247182911910026050571924626246228985028443828678546354907148360219359344103214016310632316831095324644280904973721934372217036825330843957551051891497040683910253908093490985494150222239437085165783084111432256590628572641689385763573883593586089913127487059709628019433546343938634733770733552985584417073054447447697283510199413775610789742376644345138288039121099928468422380619200938909409961254621688421009363952188368364269931245917244655932022030883298278584943403847649374380213162643419739642465656683143686589132261256295914776060259156843363596825786883599966011110507348528441544017677050644971788554569635754954221198487784983176239305295425508242306890200652394734580296726281199131872338234941655574059038686208300425503340718205210988308516005496639176336855773198357516538042704607830685615095900894497347184895167844440268055714850641683553032245763650643026709326829139748108056264720523119161690239445343295822004495524185740647608597655012081304498362766504864597110668247654252678534436216274980384239841657768107788502081221246615261797015266055857737806784609519030619264603859121917831893999221902914942784144549158896265056818401684344677006617532412895599995022496652457892953596127980058631322465945854592049231078400556427647949256649929274741793668634322522121402130307709665124735701955353284629828403733892477756777698522379033586536162365925114714703082714949480082300982038563709647226449861638650470891099115765815457004653332673964995110012428037550344017010669059522263668661904455006951613478840776336472854484518955899133769143601986800317464319478492221382113321393876175575562187929124679431049689255599729411572879018244248480140914328996854631824893904528299313032986064122509412967112042567955351583957673101448888743612975026353877947790681387064967834140088025960825183039957461784244657531755273822362907747869161725862869487948080559995478429709373616545822020600526355907421810910038758536986152366465390564069769030834240008893079297011007749106664233954055877958949687273409946607727076908040132871088380953442636170659025780715982347304734958106498937388317079361140074967303578389595921003069166315076930438248688818578897620787072553008327361530978860155936114159645714311339487110468784430168787810550655980333748872385202848865596476930915002259657207972896434342145658632689289970077972122167468288505098113261445412697083476924483193838511937442071931906877788139914124954414345698407846609706905073047231414006270458610880303954549721990301363322857103184278493979354699584611241064219658477283324626155448826512828610536835685669557089094707371452685833487233934175337962080767870158913091629457319162601031227198399101579463465206933188846680315708476805258292152955162580760440003559532373289607404078543074528461952271314220589759747184945493224960880829763538567462590032542538538979805610974226267778109409607515093429037521960415159911929717710409232646451802491459467573722656777725931763413500718630338134660704086634153297948400744517613730008495724101756544872379569755737518212124377005578804205839732998481399102362510118533733658057393408398482790035729623718239256112715118937139298047428331528221878689029132406203087694647686887515854659882073711689400966303986419159461409738868429159012368098754755615966453925643559442959856844109096197912664011033159716976543252159149149737163524731079519092631552466724651386512164255467987721442933920331313495160599968018068344047973452495729601130055033768519178574112300787234860276909592319967258692201634220101890064893075590050209003349619316767873074736380699582215787719845190249423136719573415522927965751902203243798545799986746873757705591797655170189092043367114823597201909120765173311538464637352675552964514633952031648986719534868107461310728141191609621109811565002912252801575429714842019897474701888829378552946075644556730731153542128822561039844925383547166216049650838069338144510227410134143103640286552314025817144218905306012345045621519518030623444221396345920494987130188863219065492652080888073685908448289881533884394564064475057363895909273048016085570989018206901484789853172192444199639392339169664314675071215219953845081634658137520981387530123455903686919524835772005933835329142844700499405106264531746404559080737673853772310106542256765510233123640735088260347285203923512237245942997732311405129409380882326501508579038721818070844540657219409358554067756597388097758526709153375635666460570411498193148348132206312557943530513931995120921124291972476885708971363734653656686203782384590462859340111629489703594933016327732689742156398603940442322971987295975328450776333550914992558145804309540475603871563983029772516649943285494367479056391268116488005017792647502979545700077301364281743298421259969239555196426846348870171943700310019594413758592121418077776230095438014751374477861799584753755324161176866221805318787263639216215087251847280948769042652409087504891552483139120453360092992730262304303539984858563922564580786945383802916372346778112734623413930264166491186025764815058192827192993480743654109085214766434528490631586019437190300080081703563254464186743567092675942428992550828341757162436766253207145777703306738209830790161094789653362907096714523219747480630205216113805256810655045414758770485708879250838950145640467274556015934878287700809769378897109222178181108721657655898626877458822888271888479004748549497969984816790061412452624913766270115190280808565151204201225047544583983499606934084383733392059810528850811212099305900200705222568198026179096417599861692424874396308656875272965709297986611569209643286699327998936890354996423224693701539805412263654957239661831680939963531427393671258887921806976749371884478196250345933163767178981230067672953961212929479771755693253875690274738647318640788205086410138198538835410644556074806577757046776114071028816947039968611048209380267489428643715859694889352603620347928478180900685034333998735694809148679526490876357459356385270029049222665196185872048549460099493014295388072385352259193927176945677906910906645945621231879250493473076837448119793764490549655059727681019286924513502371587397324447032704085615583104130792820568268499058902669411391412969450463589799968424714211771388803371238661096334096145965651434257486337516837908631974202611069622287125081357909324256874845301901188068864317722868291642468041752921876764258580920098806659559235646829283812203921241516212588782200996119379211653869121694094659023300038017583812404918621009483772063602227826307579701521932082287015783279063865155432197237464908233743266251768057856849363846651591919495593779015381138880004906027912819096285853029698204978257471057320151231179795919581206349487458959805971786427964107561138500655043759546109708111231795927231499688873119146709204961917358509968633389104754687335021223307881358387086052754497817108035774988928626169254205764274187276479668018494685548935423515885198126933387437587657874359943710232873244431414396859866298024404633009779977603006950746370155135137184970722054678372465971535518091238360921590469249033631267725002635936498441128281107908121977882473338108800177313543838171530636726440440738640973912924682494920298683239411458483450366250772813888374679216497351526362881003222970704280563930807033822777000417145350771996851817803440184433645004413519909027580901606765837592062913409135208933452957497119936532534192501329126817733014940409190767573502347043579135992249906539214970961485432896725398076021661835216100600095837060198531754773898334162512471382122823885574783115798300828612924358108134083492880857140141380721991483294267258586832083689542190637511478012659403843556143242876825843312400505977770782709157017674480490856127573335013641471459852163317840856773145055607238522661889139732869116109124910529887711396657668675456717165524671968458584486769121551851992177636498393868967126076400969422632937847120930442834844391380766676631586934662367575648938581587757022233756705838864711432229637166136883661460235381393674963634386752953675588082337705220434544077788008540742340800053802146320366758928643262954820805908244010544322068147349471385224807739339424302488146941355568282573182083810085523197658535329903550815512673604029250999678785730904276954643510212028636130848696085210199677966075346172768656277273354691365187540466093856895117888420214785129650365287988367319294448102445186902209112695022066630675692273059544645115675816154766843391595335452006285414361318861948684803867047569647998631787109464065439201677566654627779958673467372217204674480861133583896967913201109213768750821638265252999841992955392768136670087028401643924387321657745421934445898394821424647638513371900881022978569296561231906407202876840304339624140558270662005083772182196485696359734132842559297148866196305817455828689384823335023769255741493811303716690437528165380999744626582102257437875021057286274369930070726869483918377183431814291244359818902483664288435595710977697732261015043741993796604257737618004701294962851074982932826567857651769446987578708860641206584719098977298141595692418401478896209595119586648502306864565514126413167863953913473149271812105202402188249195364878122932941659969928083805336102646499247854649198544456649569606635923225166150099634887982811459175321284769389328707966142334142862713198384412214742862545621767173863891186750949457082392181102540379986624888156647332503738820750246606731312885821931443994278445007446136865813806284818785930966671334398952954397052179717616344758142655519290810614428197071331291326662539499621715849503666496053979224769139584416634498223468721025818801802941542931277574597139958960317458571246083415443068657974959563431689877552583452295304319224198578037185420729852423888960895384407644749792314343841371429262482318926482085301456644401640076286975456220048180888517849610848171255852033704255206929496452962092361793713200533442217275937947627497331969523125947056411560438059165613120457606551193162932665508775218693469145212435451068241004058960624394461595625593192922623535110367278211195618622402183065909183259046016478695054826241615485427851216964573762189338694990771122845240226606207953004193113162411977822043762213152270293997538718885312677351831893386115866760392747365805622543012684149386351844795964025508108322058555076915119142120508344831492677279487352645803200952488160657590851262456470394364072316139245018512536979105065630553078243446525323833928652688399250832877572981275148479848256701242886712970226898235835795859684077419297074367208063963313529124601345635108773124722534857065818637737755130887510634407938252206796575133128420655426711812884500753393165880295239292321106727398827200227890560251877543780916647367635622866905177736972424470707453789663843187019407691045596174636551443561563969516777462647818597264847322248576109956459597883937828005650408608537781504518632387919048192591706244957377196105101804649966023278285045925272325563947449102920369537795835547456157172510999887560254083952594284783155696822262822670546706251027968701600360122644994445380282735758654829064435125959275493408866820931190350916534043849323433116877116497541655960984431789806985868161668259277734876228178243002174151691528244692540497318090530958032766621323830224857619603906287093584692221607992863881571759056488279600225055581521838060328918499376878053281120270186716687032263885110215015621023227804537113396068805915019466399904727784393710903217584623241865035287039683790362930427165613909566228348869145660438117541648864413963326786095970637383780949370506908158453984473839072488004394807328977926269342658145256081901290609343534713839100887400403208855670143688345832739349492222921882489322764933193421191319504302002861257238276260605485338483407525635023601276183047514016010371172384098167002069400062949701198089956781480844219544473535987818889573307317303109069514120515028102428202108284547085522377517392864658788948710588136885893359225461820715776027013947305763995963913260630561691197892035058249822113998737601124065850183360050025490240221785814137624077434789576212180526435926489367597113024529160442218115276486655769896728584085796145480239146806008404266096279299940449330069603210331791933345503336897582170663244472634047177236840829833589097161746706650038424247100807188094038482283077451387300405930261125396018876474301340260702649594690399647028233695540368402981382261345177424857015938764581238343230239337660390641603322903515418719859060526666619352759701158693246176884157946379771153955637131950800103999612739854865378080536186459030910427390076169480202694624076602624330110214611837738578548286322353505046054958380457647877892302971672770423238309757469594109495259205581880584238736754629660276127725876966526109749348072929031292001079873330255246340423152351606594829344415501145357628262075731395034079810654782207192437734556397888340208715405947953214376946521374705238451985365987121110947734501240766221086245362188954838195162671984626427389535374823751303715488407292630136165201918898405372265758686920286476358287998104883667917364908352587828868065781377720174579405236627895497165372913038552214979205645023480716768705877806259644211838214945213562867731360162703488420935473887647067807867428586392676736056290527993412307478383160541501963517403584842744037462796292132291293239104112079829375228465729297140740967284591135510815727477805569978280455097611714544175328679678825614384109188305886997661780552382997951578867614242405052920659592236163324950318501671265173062661578548142944017078015328525837095869088780599584639670257264409374505296708690635675013734284786301946685756520577049895501018349772502673265839022278406416103549672265122405906365010341776235063136302051807098292935279372781169571173908037016620899454510980035319639947005725905263005242239089653075686852031838963894652663096801423607987355048769724923286847303665368163107168810883782760898840917737731266337820089832208433487166170793063224988811152516823361357496861083522568521764814797838982920167349164919212722880567567864296528466971071321473160233113600822558993667016260815640917851367029309132435443457731995267873314215620183161327048034527183217238555325438324146576510964509104375523411882489835062485074482280916346386993858587018996720866403604824491202045361487481341839240814773253842521762463961450766398571442031273117848265861961366973657205069441156376358379663619227120945472698960697293103365828387182661660225012501840416565935149944775222951195750419843930160357615068457164710633187848835425577020053949720526178620263626702181864254152298304874783149152952317684492646106106528987918105073035119079674813732332607158376951684541827402754518616674074346671720756649071456287667831805590192809538715476569224946622099925490701409611673818488788240856131957245728196157682317969810899595374234608367103665520270612146084028085528178433559892855697563457995196935033668347560307073781204576786829597930689178501792795807830614477858656478891761686147002128806047895504674023378905083872448376162892908814635721397132182263778035401733041382052861508342289747717688803657101190800795299688428337521971901544175779526781661420736976747699211709530334303793363604862287551485921090957149398503134205984240524522564361465568245859099388515736526641706648730637662232574860051509186087757617530736352824977636770514726296674468218077141326555948303108178591296010146623241097205852785323215141936631442088894980515332894584582626695754863885979851649280692279517232032208571570654215647696269632327655589846109785661454843461691627006211177466552850638829069186373974936886908979088863924851934929650569705574377074625343071198886707780051000091366415209040722517043585389625081499195948629057512922652285542845982299838680920988961804497784827580040819795509149053891657794551842401017564007751878600290758400884809165928287665837548698166390604040911953958245745335211007734435453191724475532001114984863934316140880213103614582316231115128193675412168695013488475528593423884080367796784888032444934058747406948410536714685652447308484206962133324909308796596150238481389902169762872305543457786279438186428590135531011330996063458755730177899399798729191969036617042054728821261172086020697792453478669906696606226546103621507770203772493113234392028394592366821030121123114641777404603808749653730656803510193277496827232180061490816467037811243492054139593836270842949797440260342605783946057742104666381525953380695248806462077079337685733568277485261800171965790474385659663647637243193675638347460191322552956827741655247464550854256974035948467110611590859886601736943735881780860763801521151565525746951570517741264500843140822980864896124219392737359710783527294895542527134012344489974338262003365957911728636913984080329994873632356394155888853888736204403419518716694516305085787890880437609238692268764449995997266597965530646964687937370162084669028692789611738414761624026115746006450843150748223570873828617382156905627485415776098948624831682257520266154348523979770761812948548588757918825902593240377747011102617813949767002171444555477583510051752841830841970134112620838298873054377700352026822796661669951276043914889363246445768220803693338894651616355203338126152222371917981633220525266422713303274991279192723870562605972543659542134601315315983323725349771915579290400335852829831642604723933371696051705166901874563559097176819239874962030239239049172087629172166899398620457281315519177053921550956055641919530341071047337115661403453257274259603196522773878782833388864053829698452382252740470959379879619724976922981677364155787838702510992508148315374011288121925869604041804119092454402199598449201798107631393073887648088028100935982382743222489510688878186406612496542382420182656634456988802353385955732097979580307633355822662099990550798574098307093035624107273816010245268494013495614885112408173530012252360965403251557025734988738125723121500244882954093650748390825765786698105814399703124378107881548353205097294891765299274984915326228296851809552807834044260926587032813346729856998609324529633064240490600882279797932345793687306252200836607918565202679255341853867801053734443110073480690000351682924125195673991649633128666082419245515951815398526164243320070888125299361646485342175499154513322888316796852866632509080574246003267864436584583582252516944113917642934359588447972226482588019346946249811194250725748562394510195492254806023237165538619208919366660201514523401286262069445369394256687901000653010564264766547989891042441361496324261086502755545924707710913258526524242436585491809264198475795443080228298535487090374354315596477006424731758322526267935234676421948066960418238357799042867310764409876544097098331085929910109997219028932366022183415600737493368223367984027132754130930370871506496110355417018318317495056484129445712300720778487691952342997270360390442712743950936889412278077970778304370237058567194806731057207125010137759167912347007990865609320723226465433303822761935627156274684668141049656960245727336095523047235596771695172949325055677416219694499773199418733978132417269281164256237460109425247205759417805556510356549771932808671499650448756526424763614321773552686472387700507843112412951032522526157777475940007121457958141964103896693002740294831331957908657847169704234116158409282699304742756286018875518054627030282771739968001517866360851132464293447712081834367886055651713026633449361956542566467499177723001684224419938778922953819565661319716533830802355329469863636430995048019452998063890794071991602335875813765865070109380607379930039142420360250356034894643238165452052744544812744373408090743396338352353086079265910999703955992312115917309190123484839399523784375460180170448827687450016080921809428726857787459941605193455218641047239167926208285578183237543196078361045151651917950693924583947116750826893462508514208701997604584492931105635736543757089232637426563927113454252629143042571723961499914189982678153404540151895528410736707822126165780047969977000722597006287837873167325804721542147089134363762481752319154050734976553911350093143658299388208922747620215641983401177806069309318008586338557083672297674026912684129139839940868220991511595311477754842928795998627930096977396750427203233781154732692337813333793081998903833747067962063332173864493257128442326193963199673771319207278771084949579210537978536104968182775063135105543332062218977367838703548981824147239854237534740278025244999825877188182807351960391260649265429371344070346799531522244957814949129586034408603859623678032244565735814103530011680579541443569242674769943208633789911163000715823035351291038566980179222237910395248105589899894465071911589850735750554723148167717235793448532121729772011950365640526525171532859506432989015970373835974831028960596327934351029027897008633234537633632213071235530656895700198737746515094200601993123700232488468748999949652310176956476253050951397725327103872270469711908327510026148057475185215341132622741322202211773799959885022147802458177999665612314376957897763219832294219846895694020537923461093477310645109688585408442139825971948315228464023426385373407149321315865307707968848588024910396112234557012402448804874189228415027575292641559387344231857982889121646512936705529095148089244576690661103091158289363835726404131496767357800424800581827805866406144027351630491317276279548571646360305466634885330487580711830168882630160324459217152078143944923012365446594156457694266279378456979698993805659708663391769669087967068308488452184658280840950649954956577175239884246667887583076139902714957360719104200944294976771370864945471145892541525278572110257070431967797690656302841555164919750042205668222041395318001440899212855760556396702561476051271419514720455859351906395973169367695327437351659885434813075020226745582141575372266636362380707950740790118514621274910658670616714350532835541504799449973522469198741326933822795714004589153723723447195817887748512218867641238991904438368223458633785910251742025248887322461609361556467641555945978694482205722332450458722565263261077685876523679931221411697254580376291764178426689656006046242880453443428574190753199579996106693179234830844083028279760458796351279174060731969889126397741106776065120303640844353634145392908870296776284743939959199923854809137667198756249482127264039560133601300727936242593557297833177976286819976529384593084511775246066263203948959561540410482206062548712662331133054604885248427992801568350527160387596521776199199135462861447718477493165935171268400361768147966473029164825265646298569740346128767475078208155828300913058992800707903618721396810632756433970341004565946003727472037964679856102495797219655856710115353219010839897409632744383445955950520127325238889229937731299059233946487743050527220374761675464781738906757060246002660973349120079707448698964306961271126200240827959180757962854002869356817240466196823807072434525240894461727332757938945653443126713361446722158094912313998461275437324675732414807331756218133283650204686691231545617276409349436667179789977219209666466497634338254088977357788941937811911882066097510869097809058550280214487058163510861344339900327275434632668185467205270279365830734699560887186577536304029634798675399287767915157969355332422728401580772098113289152615284680197091523714353541496598202844209265688465359612140276893459122934129176336962525138529255073714578681067380275270840277767755386615590648680391996293480756970279339703482240868941057003987637973801342751169673109168795826412023615439053878556892461120500362879102269447814914539101115684248858721595147021098342391282115969034410581135044139998735803909982616393277774292363773782863742719168420963505059938280244276448624463947872564046409841659733905007774790825945109655229860713759071593216930430531062897931739125481902006738605111174271630394129299931802822183610498772921326299480919746412511934506749720211994891349937516785911347797043458559828775633709744193293832939359836898740817385036288700768559198649535949075533782165576050502783354374365419900543191570651432768389174055756118370746345436471372205586459008703853312195585378105920226323605719859132647404689554151904689415228683860315719663589571331273755130607690372093779702097907035608329410573658891140984304600477789784867923390082508395892167533772271521446628663919673671286616837517382327536905664101187934060583205268869618008366391123311162610362750486104801289842700721296334203058736383257111948800078828924476839529304081568422658992099548431424382245883791474354172014407667995974097507463464390754704148821915242387767764553487017502598882669756678671554347081306696798212922983967495319806894700593396483519864033038625794451083710558949645928111261938205902436976885744370833925726489175658244503009782759712473201427330199464879630571005083138620864279216470622191088403202031380526437210126649180155187266659161424242172689931557246078118658185132983231679605607933370463077028390323256244743613004856204650684062892636981671591635950805695250185933796241487484841888353340076100431676181414606155103172368019771267076034720477774667811595579061254162763164589807889785275553902334566387591046824574735454140662220844942349113045488274467002991955691888363984201818627642782081058539768083744643933866101518883357021808695776946524986477793899188400362642688440591831808120141031516636079469676649685454209584561018736060364476682767314762062179352680153567631166299022852110160489906301872762776606634509990515750047216480447613997927281795441797943256264576847777332549081572852373147407730136192726131385650671733087640801810193622680917169179029163082939780846292013964169828668307993530554990552640843680791755920381175988935297401058024698815906762395615550099575016405643332914437989362656678666693212188183039487442937218355267387675247197402937451980556958901579716882833531313724352857679270861693036037965886805807128289102052988803490030080713903267300234008947429006561424015835511962888224367585189345899307832342455748600992384396630865096893221603375720095847969635535292186124679693036135094050966901690772120534829459872750519045978395370788741250464079615420768356505837447310904820941010779692737639754192219553947069153200021757295315769100932695389104435438194961018253643244242270077978422315771745644781909570067246120636152557162124596782087287482679365147915411911761864677200600458023155388337482330920713755564197017476286371726670265441668710654346753041278232042545233555654403655982886123685090488330699118310103132349180543731283517239366621681670971127628039410581914269622263020329656682553382972412396444526414764709605652029913786394464668115640351061625833157242185333437020774762561747124172383690020743273293385269396267866557960117514272264974157533501412922985234575560026812178307476367045302633227205971090847619113188975744831164643874037095735836419193207697341618122876133725760221663983481976938730876225837406825865971852723234624713547105926283646243050518283401991491166784351332240301177746339720118607101573129703013099947507485028828331076485260831057316106928225722079709667842440170257810108129890728491931572443946658065204972462422492987395813647862674038229659731335771930936023176269416686105800236636873480093880857158897569475288867277916380438377768335341608215253087261395155693868790541710763032502059116443209344034023848097564787422742835102006650347810593312393389931754117349248313255739854319270434091993453547043886766934624287337395963867057739434402495759003424962001943363932484041706197441354373697738971519400955629018717199352993062819247763701347039135346762277720302812808769895025198188404361827806355114550219890314656475695770231785343280039797837109006212756775646232560228782579172809283085142169189450078059925584865392170571529737415801591038952338172733171358621336068764651396969013718806168860698739363666241897535047843069928411277779375978307663341273157121606519089340427386418351769600937949932063565871222302555790861228099765323406136879750020563174945316756523895453149196065184969435923416153752215556289313549256845019763090520335193694153168337649136327736324979180688578488378453116382500190238343833440604131845682187109208789388929397108592188235089302867040491447304603683842319101600941112811228665480812516250724321972672273039208055350522807204264250832057926558811529193456806327859157667195971976148577698251870208872264137979993779288052794589922169648117515357892213735802975846815595710599064627820361155633979730824502901350074015635861270855435448807769247688577947431384782355889645595861580561948582798784956451489401572174973434168616640629229495590407707210950733261552457174381919989228065107766170735378367789324519418739013495750198812934712685268837207592617703165234045494895288824819202121750940841137491807976697186723408145796412222247264974610049871282232681594851055093167732502636541684368205351444184836090235194889407441776085422291782144154242012804672682085578712654919089480860993108043706682032088837098349034175832887315267245754216097468396027211642106631743868896274704495772374333916484536417809549466787607848208561502694603979178097976731300594461984557897087730475671507217855762654088721947357208415935926082021463712352332229235316382561614555396421869243664689320420892458652873664428597959471724370265466280589526449449127936533259345300986709542451461952499376825564734280537410054244712021821766761972504170681514285651543784666624862154880050139725068421540581160560678891223176619996242467593531379001148407812512643221307019935637843985538643848497798507476380604601711908207105559851699778732511766879854732295748569449203739419220878940879030589655240938292237797677899517984875118024342919494008460182982900848756664463686314300541977787757830035028907820164492295515643116271086548121140163313134826154648000562127987388131183886542930830844880297092756158611588523922412512740680322452616720293732292391162008329363893831754284624292342279837151323676555270370537531181064834961416602314693815365315328315386170886636506405443982723490872949162881202070217889546408296854950146974731076517027182876465252965536960902712762761284364412793969100998543831813685688826717700627244750060063930223786157979058201689368031719229822753641774164965183743031523555023623557904261978971397242202286515430702966154239072523049943249626890074075777978360892589673882717208771190116261664165061080352436638144684334073636495527828479364157626859021037673578326601688839054440761349062073035159388086381936459669063207350594387825418610000562742017839944724917074358141593299688997842615796526983762825273126738518052379742470371024706576070029174609458233509064287971503740303709187009402723917569511469504410185406168879387034371915889427658216016874660493537059212534225725300476949742376155928814556354556955934702591672612020672281978924082466336825910813161035427389539911822999742474361347965528270674772899513700778914181401575701215957712096238105823219900364865908123671958219879401680597767277637183238285399217265028228028835512024650695662226740265810231926160799331192442250164246475439233416981492375856132924857106047087279273169091118599710401979058493023944041563680345716567470869780805138907542859370850325282118443235995931388874785293375883930404583495363796471683494140683353463768569256848185709306091807601591410600369400904343573570200089648421826038360374575492580917466761656630832600500395525877237545999473670823408107169694835072317215370333403975087704642764271199822500391616960134676931948988948870880280857260218229101511467978366186450791816294068210974793684594025669445748785019735523758674321799509050757786540362843423479709518148342793654195165250151709861648812631309644580408478911421264032796273296090702370674173272755479193611248574913240574217387429638777954651379641731263095101018021282376631246891614253740543650802500530628074988757523983811452133149656259422055059685347483181896684554990023737945371662615292540211385699938947960897737028629950965527121783604965696346057769150116103032902522915981196812077944076265330356886680786841527287414447537305334110023316157800973252012438855544177598369130798773338188441710476074826162552881766597436339181273256864162386641635528587518035342484015847551748908100570018710606078754498520408348393621187067307006213988779842826656768713877900527546217303627419092447446163883013712106348866700024432733281751683620393845692554217121458532703199367251669805669142082861385859557464695159980140010669180760301211033666813114854613626782963054416950155514452075477135350661431870581721280486854931840454555712188958919595734939543126713720737280227285252156909451292828049487021657812318783607462999782968676307432091440278394894670893952930791716153951856117146026018680732880391604134900793063723208415612958452808670320462598493909531829820647779337338352487708564963302759146091232769325628920493341383074920449913651865450237598635600048621548754279524507939572967668164830977796083079276458752258984758084916185233385941419491180794420070029556796607548163699512957714700607224172987364983524013677467127795217770955820596971729060884129346046054194665518703905867651612207855241199630899011960425737771042873537966119986014606201976627171639778331085209874196436414236746389729334861297605568041334650997802917984632017226153178943502356923207117284142809365675185538561077615969887494975044985722086840607229210561046633537410197097344305449850388834791155960401301682096445940755957325524556505052267859061265712639569246753916130029220126692169737366284031004473247980808229526445161687901379209678507091446557035238265196791504076713041186886533320407593573872488785939751873396241412180445745038039662665545425462023650130953035708175080016600127065520196516843789430722700775116032682595046201865355722464447756076522559369055864208598566784900537647761004379739751499932020565598721946644607288457121083058269176744477783864268465024948544000876317979328732695971964370232187362407442777080251282707897819568352447924422931059538347018595145669193914347613649942431087467693639206412454672729610348493362329964476007923648996261234988617698158411574528456373331658285653405215929161888657303567906521848670632026297242374577186698062232786152822748955821204365162001482240705015866492488213414993343725931741623877743553213881318477151392660051127559699009726676653366226834650301259355283946602762015774091521724540294550171149710443598883458745055311730750418546228154345772504968526793540007543926823365318660019348045012426205713832243469195769283689682245382308741579506702287897280960658130667268681741234907123026572371936545690574143174400250775067368690568738070040617406766627807192931312006839233123875386093340687769781473666455327309112678415445446106636612948776544556383972430146037594877611531716110840415336093243097732917100476268863298826585704895901620896356418619367286012433355588814230900494994762688603089609632915678191998102624154406836775239879778255873197039355700826691382787547855385397619505290764545190193159190679216982878811318427296176498080908726504204369236450049482232702564904125907060650491031594226760591706504297588555084131567125436192728733142960810741941557211555734365509439418146418007936764256638257255927876142805271132511962651306387758655608481919841524458240440938386541065568160514522071373479729385356073409604704877633372678246423381359645402660732512881823537539939876155631322052367678704738555846252819791200085068896050944085507737623852112156260392462843576728192160126115353303562950888705370637350076121631964093414374513877963283428543690821510294417609196950767391906517880443450550630762368234913526314876116184905515333001267753434195187284275672493953217970900345699587709492258327624541944380793891561307886531057030215866462042559403069113919710358286426307846832143140773223779480948194910784864566982209954182986417922403971551884110874144115811555467741920471162334670379296441229051986544539298853726245015092518603830504607680686813851119337249951764107016001284617883079007114471373211340820703681111173089824984638916955090909978570805587256827823756880001699970159733037311457301950737561449365435850639995637067286457777430227427770898428966712172599587226876672717449581929120637178405418032854141556621490873035734092780722119521150236217183242990290701700999574339448652780632002440896481568289573237643617337119472280151832413304194406089607768792657684678501229084659228334387278461838893842650106957741161402722978893764945126999897474372487675843868721620560839119523910023495339956570648465165450362407312147233362902256114719853368512359975705252961630563067089345207961152878108571498898941506982155405506474472984046843612076119291754358398803178259821162128616672382150028768505783963900674766571147554816819293720497977890814165772348150516747834487155733667656007630295696829067213495665849373680472946786981412242678593240922127716968887764503078286520950016515679886525198637475295660053007591870051267251976912510489109115275880362420003275128132692171657592485755695234250265989061522374854963937660975245235403914752170002572957535178057861262027832263807635935228490806264878210608625307763060797422604171080496208660522556910794170605596661907644553453997253229362529614215017951158480734393822356403754935817843970013200361487748408100684436059123847205687530979211928238988764168087922495101661962070615127668459102863519898385435742531799347288882335813467652172030086612962524848287502215048926836695198453844680955823664923787939272366097593420138635302728018627282898273866071905728399156185673214468211091820969244758752843230640636250521602018582282611429648129093061919339607415474348118893779610936027528943083013864169171475835873371216073996878631186662802389544250296413348989402008618334218303828020656496925881006295510106610364685863431701114204025731021259145765426225389997515151622745251291215870484936618644120192176668322848795111430513847320187476342021985146835182701457738049127790530092436186369542714751342514286213132782786632655143509927434699213969123440539002148270571613992571667404209102807700917706218291851020007296831985571637963391746171111333884253075307899976910458475724563175157753897959876919637472955236859817197476163839573511375978222132305901087032183160899447490233554747022839005290963346723834688058913052478236504258427322598876891967451860902027894498806684969460299332645801872695292240254159260882507946513506164325013801927553243290510492191210272934761459736856729308488655787926369247532095440636416619522208620634876738499609624996925227314906441517991067187340082093489717323161621598949782163014886816851372896316676940954105560501782490045802043660085264530231688720430267229856658880807159170986081915949213170561862673753959397308400277178243492622033801258903246618361493182701463370567686160171686913631679587248162195416627093358297147085136494033705819865823087818121028228419397639262205116492725246536750951844332005946596473314381913385528014994821725749381474466657121773302943381714203941101734221808085194208223483124459101343153602697132961136503322996254747638322295318473324315244617569396053992872135278273984627802545389297244312615440977608309129314421423859917827276862564761807535541360848732080329425292235199537383915091859658185775696161212075307956367657934148089215258800069140602985738967851856960172961274041444639637401029178919427518737431844598866415549908723836167071999917176919815897423401585693244174040369978059245921768555025382979734405375865111576441928772870151755522363601590833120759945875499282690258907518989239211178141963225298924361687866703052014539678568408531432984000912450097187907357669665320141364410204738561146846003028066628012307141411469740153392709965856485688526486185300913743558977992599458870485764482173618394496028181097255714295058615424316252367414345246188097384296598717295093371877572248023997141496470171432839333636597737168927316014567085944968848234251855960935428542347978698505671747510784211441824164015401320553975526352700620464877427449063707605645581703344809074215483695635898695919218075017216146448824729572089992617656885981935972840187193888996209242486233732416428345286712670020743315374667836288587119096981840678735520316638296391762683634205120864929960087501204528276721479717230519680013853248249800915403530394945670291428716518036925132538601483710606924344710266895798943311825849102921859060906409448676256114183908098530753720033139273632890202760400939388299876765697641698986792034937398522942190756673588664747519112090814028708318126326816707176114544899763921363023677572275987188815123742262081178725351983547624560303609354648812679821073704770514641668006328273790442609705366840263337143676227099462270811204798913046422559285099986646620375362769196570218134306731075632898334331040382524932554370096824178092674370770063983957458887714687541088715787353319503084826471635994490225194708270115743406818803203149218248638588838972684947429323234338919584890704582622719609172258739596278186332024892526080418178685274049200668958314787756657400442644947392469604515510653898962285032638897733016513570182195297072155257367751499786132347775277927241602949740430448700080467722251671896116258772183810748335803589290404876514448998898617571095934115304404994788792668618462616181759021083741552308826654195107030642243834327534451019619916143156939953010952365054860193022043580894922689766378707956760293820194598139643720699089709025840118278599014737915441128969062068526073121094160119513983357956797981685996111414199455115014884196634584637197933560162146405602077904475156275871097210899136444910293477972626506659157727553463112772878120982758334310456404171250970677137799568513441822859447969184014867915018090858055507019707459635084782019557731708103829574536756663562021513864072893491616574340520353980157212449333163301337039976185800267642858980111286734792526118820682252415590522714467113204481232750511069109471060227847386022161805716348855596951739963944255884257376207281384812524137599529261637874819675055903259333318272500935368141666767193502211675525510818542466534066758508564312162551465624955921975091240885372888725271981063379730068097413865793252234476410354730158482457591613790972669449232685796183369823205754304403150663429039866147438713876917830143177975056176453446534772186962892959007411662038856411636663911537051534267294597871057735863488959590512511182319239518237480872329417465605018183466179558333362109247705548075830090747490090697764165447265551085592202448132953614789928607961334808917539076887513207078542777220839029067188802420835065461599090943469219908823377266708216177774041292684633017297356449098240715267490688549062388382367199863120970960629340357823336012957161789974291207452278085556999359953578062458421235428630518229436838044079580718215366749151274665510305495600658938907240722760775340955088905197926068719745023754846600277254619847810805730984817799364056013163338896290069086969837154907239266417668426493018099228486159670428204971037688052940893724232082322819058195843376402882177599239838211680579563187219125465416507417268047247806855037169745937140306438257103872628744672223651588005099690819167066634385753081714736249809528609142269246044215194679854601753852142110766268799233349249415869143284842871199964919552025772131077290126179499342608591059132519338370088607640334663763148819189462709958494730113578228236692614321262746183783997550635322702899957263203295906631389405997729182899919151689864384570091038240620822244710790687335058267120086342299654849843990148076020958585770717190041905407797925593263150343759222407365902251385933275741118364313351041696568288575646076586454014979099493532180065474482016388307345526132990002118108827635156603895339055030966157317995399567425825490421264336758652512358367727464874253024921639105509298097064581048810805700851458358886454905929271256567675249493473706674831659599731090889611988330458469632500285859187059223737785188291891951307636278141451514273467590652567272602140426705500690187786007758305894176465801073013189031947284113733646651591563379166355105121962605299694482122643822104689636236227114225866974957601740538953822284209286964942776642429079439643381747367571852759212338611543924284732331518438620741765298000200950660609069962210991074730399331237997790658632257710874514410045087816064888141764735343629310187973203903761030227479737702915840602391850697515546010329010410075052251945738223652143110656249907799202685365604327167507778444027057874773194160388202677251838076731054656737915909610847875624664901335788596930950203657582874441072579681070021154445084409310435841949660808582694196897176811150287825339893579848312943277220140439640666294341491480953948669904186730016689848982742726807224029758828552735486094336357733521532301852577641255069820370700981457832129260511282247828903142410500187746205712577967153558383190860054672407549681726134191861371234290090290375940409516327610057415325596071665548618483690991630247782291687316677765924177473208182897113041799792208247715918491362951139137149162471908066364948016389147916344028945266681330058360666000833641453241145110257354472106724611310175135519741180673295185535164662392678395337040602146577066701872969489686956323108416780450687024942171512068735548780101890948537745990643775561879335855371310302832692189177915250068050666350436674701084183282896253935680859224973338579297422364074676934172124683215810944680958965477201926071464212048164584865662020531393287102247784470378270626449153120375589718366288915331036638678051623661647478861353492842427531732863471983733767519868688190484412141312671092125593573391885171328966649338261642250397205682833787812473259953531860095734950871240795125194103369501947734132851465709117600017291185034035882727658655933423729607811654710733868823341739154151723666723313967603837902769034060117332682580294071970565835927754760095889987267534003160289388925283165041655163585657880496032628342277166881587078843365553907753963856338460126602764850041835887988720920378168707113459889279638818846266757971986407875559330144279464490335501025283584147344708956829600248900535580289438390827915204146114896284028875294462250627098215388382010428384600045345089847609017708609474014742674063976273679835425028333941125194001443539840416111345500173492630666213922490132824271376318098596203678392150482458817797047878906282301079848152615610817849204584816037180712300705301052216313353555701809829771802064218687469169277348285851900413199750716841230338160568034660371391496919486293886933163589119417086758945591873144733779648599719987489422640786926402066998751113591627860758762895246566058009865803277120822313179126916695017570341591303815414040642167198534451442153936426324820272877907855102992009404488840268037678453388911425323218927023081906229371408433507014090726435839886585269519655045681377782264898948674365125218680694533651826407555040681214154059702487660706825872735847625752024469364069779344720683290564046351805081431781415179370979186751393498181055135452489318024663723231073128860365499814634382922158731246771683669378655425516269268353718367683601315572234433096149496110891727492606725357564732331808126537832136621214205817357511529552248916722232606646249285607002033143321091549404343848172468683237878821886755735324844349960079837304448470927370188892283283098343324480685297042213651508622475901779491820288265936331373821861282107039849638419613130853936366383298070516254700760438796559202531987067603948947234271266043057136580793149486780822052540880055419042774209698987015428977597316475427029531270757721206836764850275738057788624258812898076039551819907669649553699888025749185319617079062049616927511984626343778814448209172235545674481637329667178333425080992867275818576391746402774465184031537925181528686422685674669693211274914789959986475055066809982045786029593271004573012987840771930219434857948128413303716337733536621436887324528776727231366283203435961326741497264290877925751625738713582895766159525939614079392184321436406851988340037092564241417365146378177951268553990989847773361998888255868922856316623796307283519645028494524690602199704379854578621703445008632546851323774622159829028841318779204262782603503469700583195277403026944731311897111553737839855117455173042507823689082643067626749952112734575237436922976040305215475177893038192284426968969955384791697323933148232799304464899748920466910489752771936183824885492478502596411320824796366743803364457766537233982745843122098445508495870585996651592827873355815277924459474159014689760821171387492522653852116036992090287070328484114051950546678612443335105216129583787822862751007405984074497580048764546376030372449483245961793047430464941884595099543471731684906023735158879493950272563880839010479423322313917657093917886594949566852030567093347546118748068539634898098723829127767458592167557264144071699732573326071045079746358285121573834528697814345580750226163997211110896084324466374236556639921841343420800650207403136326831367350234449022819145455099670101543366302806422279609131370076397615480691838689256267666637910902438303140770941740275461922443422800783388964774540456138992813964286095908181556349177488337403258976346469795376244282851682405658701802048839180402695361994950074505246554873279854976543884091574890691885721636167527382638208908668438308588748204689575096569214582738617327723440472385868693769896510044950691024166606414700386131921262651828323064029350332743691775557889747506044322334413304212120267266193579266637960960902771186905405437610345018025462968163602239074210317042444816818800724498395181190159029875972557522296640195991031154571925489887483482615011805564736544166328591375653011194552585442296722153647972233033698377271395730030840181999308157244574492308643715680907468049095711170003878177312888403350528099866828991170079280645125723290588468898440924908648838689335723644485700947355319208652900618687579889336001376877532491158581006417349108272635457442124460502215843034994313745958253670241759286883245462812866941447327762212305472840850098708565083566580031534178735749824244228763036464963729366822430902382673008866200204657469377560683848367152121563307453896463771364789630305598540909984874537465751868831738852691868996041667658934210348853991681531359242730156730622995421722086057681062089667221225888499009875789649798032030222747117528750102199304195361135910413527667426111166133762499709565208852324441865776351422832084104406622779621859784558143552208930648295546296208352933133452139804135451410338428396350456538926272716847302677534648852124517724703974695310267587712013234643332447779947262293049385362725106752965697187492491872560990304423650298088251571366328530589198760206102545554077961028994651693104149779014426188535834213916432898394644731062598508380756448277252323281540509021870014388177840061767517744492136738420388819570695258002744006410016819014790058707772425909741606808202942684652314837097572494932499780275583711673183312461821763828884174104075892302876071490501291948985320999673401885259491139582257077692109465877821389502552065147878953440753651262036181422055018169730155086506271860304906358042770078592499281128944310956974818086230802988577988696788512978853845329967195742345530810083282092483131999326205321194384616474681979411094896372765588649456358640397354071389857598574373530369376782821623575877777859632501423144966318564978191346659263300500710892264629407631614737653686940853345692891929286458074142309457809751362794408393224365728694187805566853954893092596535335653482994770042016962119850546475130212592944201090955084855010227657448071426487991229399064902131169178084702893485469545549557532836003181172884886389191425312131837756177673099227022673027048151432990900929060039693891251098899399592635081292080250679787335790545189386224484475627284387463752511278750160003929587566810224522432022035793918486748022129009537737758965286797266560145310613462582294633357385656345739663969260589451443504318629262379400589433749827578989163181753892422795299954392782759891228513250173245199973508453145778359310624050484730487813807208489105892548787853378153897077347651846050071916015956385738831452032039688012477025775266829502666074648823423258780046203159063731654412984886666648072199017902842674535680086368303583778288677090094492251678064355472958113777495037852599296920868817001750969646538967635650175947692424605580330356796453179634089027757980183551824727947500892177476744601913789744823876660211789733606592695197272055274777035020602368098516717913801639962287567997168696974039366689246827546042051507714439872643747500856878685481022659645350241564142086004825798796023811534756418107331591162804039900435906665975235630811496100492118605551571081241137641544532613420003768708305836101322565436222683178762536785751430763643314077394414954225437160929623874790950695220252642228621232483429988968891561596826063275396161401738007037924802857371813665928646137935441783587876708212356833959834728424452533302401121425564814364557091956298289600934307460065610738100452724949180620955842869810341187927357614578938819214194727073793617559393765160065171295643908100836835454215867961129223699946454107395909659236385573653032235425843066477131231984820273774468020848192491215670318750355298321678034878925854625632560822241037758412068509134976650808425339782816599699924769635998826699711193818915826814690805659761434244353023270891300015152752244765523186939711806713431712969419176213167753822331223929823296987491331125814866327525581145707645914546515998461629716313670712894667957899446997534475120601228830573892440389871429269500468921964608954017099116593540303540791531262956949783672688420493779445449891498713925894986824748676893233871981187127763911716780971030267582996167026338212622450705910168135292936420921065606397776565697628228248124705061452212472902751460349771960207468512931927380879497407289014290166533923342836060717063606045309560831116535744894187736496066073092477696460617413849605988086918827404510296461047959064567434589337717431085378021672486195119531699578406820074951036214454535289267634612487049951452853462313069608372413713494228082649666512669845755197793883484416087595554067314840578645808341374800727577611769780952304822736198484406632073663935396080814790156054756571159511118868855079062321538512442640974996559097583759467842326990460807025991043329369321488206613709983882239372470276190075768436868960006088718418921592499206253337980925708708300742543300971550746826078852175213074893935984459036884070887838870072123245863324365032546388314191259622490541261913783791998990211012582731879971833502958406926022034023144433620572215278848099254836180586383574982448348545661231284036297173265199111922955761200130903097830057023446304441832551655343357817403857450152948219158433370452087393075592215700599051727368638774959727880324362451511104819227992228621346280598456847076713495812144770285944448338605712217035569978207935145940285049641425371717472203871624991576160722032278662450481133631974558039561735874208088387267052063763940447653097406106994941141729828885387901158591069897104042479591824349683815914639260938116614933891387327473553719655245718075466689623197590465578480727171818927265822307062361540534379798290035518361692320919192532599304646557095254014493970482396621360790833115586298506506446081255023127630216854841566626460603204575013970830469678529409722454579721177494500507425007508750238760157314474805138330208014401510638084962681045631280129982883951554155434084231235215965976228046910890782484625518064210446668225852958703261111677330217165174002021538333013856035485974443472161640043289752040845825683438422770210542925248602180155846128392708032969891285490177651271399160175404241392208587571152940175260661702335052515182641366104829858306883065938297328577227553415420622942373364424929534000640223010402243476305289442666274018105453533302237061571159421777388603005147947080055845396375597164605057280145209089154916004536032836143910214747017374501777919377733159238423111243973861304323948632645885692362535632715546935619449808923730898121015110857370847567901233077311830126414445499960897365402709704648094907695676182350698146811350209686699375810943399665848647863634116115643777109729929135913535153754784916074853253751713231891516876370159817860157406072685561069203663763194383572280016853581807514277692398152497853609648848769728549010929453784447604314828719655860157505668365298538274637748308880366712499424813347865604246820555344573332114600628245965757006226073538744457426143815713896052818469301552665554712085751651349556848022961012616703925003715448091774660635615527448226697702173701810397874133718509910598527694732936720928808151367859862868972184200944095800202547097870693538396654324134597305104305432666837484557674949527676005839885146931817000739700371938771460834720170760364486624051858248703875272414341241633801530994494122458922705128044626743104340348210998616146449271565045129151341758386878270543389106451447413053521171611066416773629680910175483528481616220459468261237897765786812223808086574686175701824298207617961196241497476563330981493879994152657622766843075416763380417428741267638641488198129127987738826833085724776493144829813160230624385194735299669216752546695784901013044401559570244346011817883279309554801159347542340553375315403447354594670204253635892188914691620015115733682259274634310043206431489168852490539793769390221870783684389585916521244291679581493581675378162361848012474703061066119782705361680517133458959244551352359402472335815299334724285374517948903078226211412682798588482097839996492897378117431748028339578248163194179943158407718378945124733504660052385882718860989559592510643288342299054893086384059429037990805934624584589425079819104986814314403685671581681735728949820019848564612363472572211340768331168692435231310999047249158184514715388161146037883087417875643682799430864714297729837704093962448788660078389059310405362348677451524732327757323267392241498250148275373095252428516587541698761238946431553074028050721028471049758051874505337082334216940966678820435677581741584017696335943540129448320567450665722717337539565673052113764258936138806251566208531673216415379192503859550830375880608674490407517172316812100796281268574732510941698131813354159016655627655504688932049049671024392958550803900270765684628472216595674346129334902684359660128944240430132501486483449587874351947192320464353027223582102319060367194931114044144529489607560475388679226135044428862137162947312858490219508689992044349278016011236140451795502699995333718954428566282448674188996859646982706155206575374630185329557583053375642367460057900597539709108601596277782900736789805108687067500482828903624874231528160201298431188403053198846844613977880864061373898151586105062514949687762249725090371347061505632578064210614613284294969149915212169950772414385771309634776308737848160454146452545416292888856636754428425082711568652929006027144126728327419838460764860063377091895820887552128884038433846188477902797346286158979910539880258265831117529675616916128447546342424468123944510207138261763320412672167983519470164562548808471551335761627740903502630452637822947977180324120177920698777708223593395019068092723549648606676981243287710417417986747194157353218628486670450769161863916022225862070339051478101366794936227219313939541321568085482120770572931440804546799543379241054982682590053121690978780482842695619463106235483392012000449529647666336245303306078029634483184236473269630905278275835145707497762752348075083790953148895204832821465072183299326404127640638399015860025705995959634071958613242425863530867212489558356233886202662695997828797528984769796778711466049374129072897490218827607232331964196634649414266958480417655694737534980765021490488849433381982361145462873105253566049959231013946493591399349108549074159375941684788134169029987855679736360192077176634065378810086692525345128707594350007364202667974050528298120577359432785649377113556639151565418440576073147528684447596853337602730354089043085041007598274689292835384492240873837329870436386296321325567422249889340995124422569574313842497496752324618613229679606371026302856458031196637426290274022084382705086100627196965774201624594817754356526257637331652232238121376444414231357495507450912008863724476411924475670803351339522202759106728052484185684861618886494922937027953471122148316651906878006675057096670482650663492641788673414066778711840374953741775668591846041037943799281308801829464703854397705279729645400602676232892311536463354732870760850533810982684531181378377456539153166446196431948119327699641119906528004019488691402650822154845396208107769196224945387201012025512751529288146774288644751816582543350031251988738137518741763020595453555833618422030193814126958997233021948712564921264576344950368732804893107838515151209843527011098994092189133143823122225487465866963315562279985789631244895366430405857702363830299665943250933619492002318363699977794616417351405650120032777689127599540651840971266359191258071816248466229892558185897103149723848332086803331863071569514406189039270872412744897450280855144291495524490215508757197483629278272566665985087434342994661367272498851905640434627968549868041260944772002950584212862905109358192584713926513496740816152804906075260334813117078085609757137552041072000000851655680988856392454957262843016346972908970282408074714800614824757874756517383400265843065077524409604434272565693547982583824320737974983001319256067828721572507315428501638360077410512858075087811341257647597110283618996648994723373235178672142634883397185233212964357179212149522435862720853887758631801280338837436965715397866063478440704761135245170226968935457315083818229016866961590007781973696759348719800739538110523534266438936046838876089556257618272160957524802543827528860453340281799474669068711931801578063209550937725808067224536401377431230014382741022241579674977209178810364809094181605349360910276609916668435161177640747310830258345974432660179494705036205126117031547112196160548552359753909116400567631816565192430687279063741578621489119655368394099472743348736771223517349952710903222249235098086367992351672058537300512989035799103216406763777055848886106387311739999138863561791695139664582641354730348958491179023114189936529476336013826082403510271424384215317277649885787954789437496416806833974876385559883078179400588512852831922452830390083869427213547132183028494341253056225521927896586322376749882675930499396560722205956188327823183823277468900172664651989713613461229820791447439624737750054476748758000154240126753552744948600700298598218042066176505820380364461023536413132627458391823630504176062452589372760537691238525325320980354588594505041922260626206484137121690968707580837668962651311844434751697692807693657261476866157000021822455542073098122580144897071784318493960681114344274932203111294292242386195843617211875487948932832543230541369989217170298612133894226242002272832666358323706483576800643546578558196081459379576023153766109408930628862577747269001042849461498490687084042450492916648016162202083818043281910822127076568569370119623294247561507421425178236140102178083136581194000822988283324566736925538712004909289958095515897254729940538788572990104828499379379749556925091088757488953907684930624024652713080968357454916833526197010104016606948435110023944260568732380307001069563216124728839954367844204117210315043546280786184357039333144134695871490889850062466134398378680111602615080831074629620959514665916973542130203596544715909215671346128655826881560730886275257543009633295239688611497997638170955456086818435609664274991129323198838146168018160962342876992631472093558248841813845709061704103989101061574020446656300279165087658085534773637879908153059315729358593903935066044898902484648939064479880083932211783875552887057682746432388069610318925695744446767265603921995729596167621711922862117897805420639402242478819558875378918862963408302077458200460862628890439934871922752173293751982261296923317689571112177247959942767037145725944483617807177510239014601177766625219264357948906573070101966196571857980962187362930924249581898471859943294162478748067710766915900946037561161859877932743792736244027886255134997157270703500041689458200078464740714043024374218635916030897849028936672183281341520964424580040858071181714497414540992043754256964227374185406723006294344213540088986825623644081471931753554463546151648598271445949630258314727512843070114109258021361328482558282680944199229794718408454483697221605175424283097741069440973763101576150697811706202694076402222735127243688815567410020834787160791898799452429148827163154748935331797867532279235782746510196262519002564555271247559453368564241815408540400641170308416517314597760509269410370166596849701702315307310474987950441945579983471394263859994030627975547467997564491667313772021550538677994705325567846044984982646442833164287318337892562198993167854288467042886231025811058888634194608620758657294494178082830815349759895350907672478002888612711800633983376145011481318003476853517568255859027367090793908469568093653025551320724257723648129843593655887344638593707931033414272562185429757889873428963832853867879271690453204866778410976822483232400107158872399265564813825385374222869936512345653280858212787729532061097333195856592372679145312728038544395101113293512885556165716416751425820978086017909803383035829905997732994156044824847381590990006560827287112479739995806790516960320506973219516571319745842681994496829607319491116694427501862742207929379915327222452565921741292770063192109479867322308896558080974581954630411393432504902080803803281799345579408759285042136501896154225175446221634470483007367562369478245614758816358510714501030247375545110094218598993725436701156885196389768743495890265866338935347753134903699813029719406377096550554939833599285042300669354667889752237491334241201179670440008221383520600946715339130170004558183778000697702462685711911195682234815076983161750026761843157347740231075449507904532120493779878603808780689718842990835281588347139148994504043488805255010901975216524390488604730017858268049524361412817957480228733114428532471880184091400703928543343002121959098880110544415262062866497378636045195561672616245897033980485252016270927291059019098138872684301890117272523668015452108185898689591321602417552511159644894990811121750696975364198171397696671591495171125625870900994477887900479415532018685860920532018791476675997806273737545896562880880193040842283015506205575653868074612501411420995449126730947904507116556877828403840548907812662796362493884418562946157532727324526190633702208104996059367287092366363858743719653793215527204468238672692671123310311581800645674643700017023337625124503508898180802907803583973182376095756413466239446280665091187565309547966984557199928083556591814345905975729223798008254492270016498833912920921204950445238212887651188804525036921846722173765393334994508180701719500505771393172172345351934627511826646575395418152630987266388387252807381990802581189084967230631508927059687360283475495048092399313699545966722632286677668892564768085979231241561789429986187912236327310891479511093087252468721655275188992817048044649673307305342940880225575888464717356949068495743238274867987506412584196174661782441042201815024603014896366200665552232899715333490539219715503886485351779819962351505231361220940659326906508577795685588469917284113484338890150745799695897142691444290630798575954834055186960658500064031926996115058702231235135779301526383632214988754139462783341309217523993988333593100924037458481297788101173280657033840749096627287619263890617245188763831660127469381191063343614096179936773400675148250069113987531773268311667288264244338918166563873346956349384698679519307816736188182976504838550452531412588583392511516492088891509795903759231716680064204030723139128912857333194236205751460407881467874677986144994850371917548028031666088891831671985843034081482255469129912068186553208891865109044615442617058648602689352923460421836691110538727534107480721849442564380818217617979602628898638310612739772726214570871807697455302538077406445872242250969662266789923628429576726632318887536634037770619065185007879415775985304639406421143581412654962709245558621339243971279476013296097355880763981318065146903315633325614054275750244275900190959262254196959316158800166306155619022692208559989606694234673686070632859503435262320188042357847362130416669182200558853103802028687377917259232640733408076440135707302135439502416208150553736866681475117286757634959231225561846285541306213193542784968112296409133867671418909425360217270839441649344109274166688152731228044494039480974556143469796711827368001085733875218396039980293582180506201406170801403831473342487157347270225603411046137941369167410760110973055271628206109205796976033072075116023319182179164197360818704786273259719200753135845184214462814615677846117646879349697762423838472002432075187965313125360525686461994053179344381781191841318104956088627448236067669396645208225074050119607976687508329236584908695253853677005326398455405725599193710498371933935492426147310246203843488462124615547750173006371416414213134606987135562697964231567810769993148621260464514907099075434773451571497662227136735032305617823400155211118039109989501461069659930994007403378045310028476799565592805332855512197047554332610530676330919335663243884557364897487481977884645490041830273315204288720752832530632255463848227812877386781684589378127432782685430369518178771704746159759721408407125650189446435084043749171567142955655639711121112880696165518290571885478071612212301912260371437560464788710231847586005837792899429669302961574755948476204421493891007730053238440547797906167190274358192460790839677350048170476430216866671622431522672613872919187336456375874674282636441584482318753517981647314749255839307969134014468485694707863200574683800201328981092555328218913077937758917408737496293305703983275005196307587098428742516204433894751840148714854461485610028702445153226852471918891221013326317691624368779387193996295740389021796503934029628630686676797695995813134771720023013162425692210742365819450511101964409030253779120388048703346914751412136214551757587901796636037896714341349207088512405356128580754125741239436380589176263734159427492698986239593550404503013179346127061808902444618085948462911908847430850704128668815420742321943480873613463316631043052775989824751287696121472235865399776153174793827892800332134028126765607074485828836763532325697329894431393748040021650521840002028077076182661570556831664557485833460538278361775300766085615150008954157438835087347466330439290729026928304341602717722785154864175544657176511912780632317633435362455231048774933660443838869394306428773713995516077467874558560930525353079439034678271061165851300944513018749532498747261112384421034570762105605966497705849410286291922201129902047210328936889973287301679859857278663938469714147381700001379438583258071135770207031896432988002138537186238828447371866676803187390947253299448379077012671814471903794939043083038480238922633552403774678231736184144670307967317445883297758583969090739778130745819219636414693966483107916570779620175444690815585386967628735163467130196293298015544393653531006865018909609387837146884111409304838767439582746816810315996708338425741872565028920911847969344466245218850018644443338883442791358440528303118219334624265458332847733226529049478793946984538611806508698887222370572244488117960568182843234281236758738115747335274554896226529610532012078554857642323079162286092743143410938353372694786299995525900371197903608138180989730621455007614013997802367339119182788578759749991903407453141498031014992556294094373938912235583274060243615682710810818799576138000756489914606608747750162489693890420031032481421255197318007234412985614378825859144399373787312611947460480015802985218279598381433717578375045729325533261647841987765052635047238613665309578181577759291911551670315663872933172807916470406262634786789040927475977681474229116154642565110489762811479816062833538589668868135140867146590334182638372431445183784642818696715516158251426724883962385704162602998670667782211223009498365304006593793021912280762874810959955172016018206669324453063176302250524733693527753294598474565450378748699158208885359819347096206292693992082424549187155600494992002923892319952691725735257107595205663443806405815498287287036190517262928778240928128614179328552649070776496787754692120659184716094800216290529257687489803756297904326654626977275455186468077842343967581911554773084758662264507022150742574472990880401849533881284040830802908300376658363635493456833360150398173787888855249449952803055675346150928235615368526487408450568754861840084963377373445543224830063129589049426186646199951452788368401873267733099451804523309433617933679740096900619335975739821359381892624933938521329074290703770962126873981043609765577015323737443164140633179760640258335594242750774571538447397951913770535839286222059053223248984028677121832656085057958322649981564505722876671883641663178992789641373190204222736527835241944352502042701930531804750742500953229622107507711914024074461613685284582295458094132997333260615465847370763790105066861275332333993266336860028025924352782442805919249212552561092212255503946696023636149833955061446294560947581505248409467298153177481197515413245503711693087292130006590480996396890221085550925649815490034743489480132978111286149273360136747262335969244156996251670784422997621953762655440120077378275994893837687771867516623899591549582944567416572686885249382150446983196882045311470263674681557459057646732774339174125526761812039859573433700726056723724101547239048727224116746009690846664512890052952770081603481077629991914029292308837706075772368897436650984079938040847928705405272255766460746525460595810373828526799860957932811728559501710049184146495122560780436636422657984889096842975975992173787542919079936040241112589513360423865675588328924183912149869315192466232949401179428842035840478871280591306795592997698610292580302164010091400038828141724370411966156576453266298297821264618891600696897708877798363543086369847046476872895896471062387523650260104554603211182942926089277777189959431772271566000279381644442604415981298807403995294732004320684743736075507365040781824554897943319178174195267496329061420402142928512211152016540662656884714584443819573406346568856556993573183346338503957534785519710658875039437100978666660706848797489887156405213783188530076603941366346498689400077720382480229778434538973908372713971542503451293750908933285288290041790242796736667323482344021368208198175429969880385091421357433699447979453663136555730251979636791294603436061478251970909240788191920150135304877823435867381612922080332429238773379474957519996763227275955155946201825135336082343766190449736961625291298311277517035985665954964136259454038256116147653729366939617735843448238484929556895831796920595046916175259949319288113248857415382263840823779200985439077359182674149588612081091053766672881387751507209494433349376934871821109104986412766992393555970211446750487291491547293674599538485641972604724955055333469776512671856458028208892512402665764624692215227427242828847680034459673989930520666284110855352213062935917062902665986684846133730207404674505792990184601011313562889759122415846494501131061437392242774417773598125591286217498907954904265208306793405899225128059178020191808579305703336785869141830599822266349314978661990677844562653935695374933504567163301265669033186391270000829231648051685446858742818332095813887752765202462626143897795126553276956912154855329550583217368271048514464464910009417798571134852141988121874133213230262320234754963411078168081519797500198836805086077850009250730985024643882086599733028870665751778085376091384439987890060850943738782034274714725698002634637086457236714487995219333225528372594216666728565651041098811417552789150402297671253032313817994134415911369778430003204561688480007131610089556348344885412878638753529500098631348095124993060638340650117241507580494576877770204131354403048267463588409932892819596947912492277490692571545804833339820142935768304547516602061754259958797885385375758706627254308124604652210297265003758293443338311326882426060800052106959782897380898644565920484392036204626044731104269670344368709629968785399390039234324421363378842707992861737339809742492150308077482053179265888604675664095254906009758606826041518466857163034258180442580536305426472484769864185602444081344124497092641823887772651941422457581547347853039879155593841838117021332361822066914258389446809855333447478581580312676425213544087576078029629619826021995817380115394496839813224877720916885891674888628867205715240403786812495293775552707336318465331809464490526688200958465340094686606279816412717943067373349664021288131611672289777425243973102883962921282733879154232370300793334176638066437416827161811343431574388174197617318437509400348586902909552428822930021300510652360100310535943673054480482327969015005569677773246911996784349474943366988283903596748022111217644161258688276112950286863483224261188170536362156230683342194646134093614463360299785000304392784615090457835465336414335554624253356450289260875723948191213025074012548310935578277082053447866388519520060321456034588119424775727786016221318871339152099654153669371112485226124475801083251036511054105572084177675217267591364299740249504790563270801235448775223670837761159581839051370575586729978589996598593480219186437449489800445939848417952349147676519632761292789380048824003533771222228624206942429045317796101887132874695151201373245293009870206416210424543636406085730175836885216812313065861457730608528048856535313426700997514506409674192081733438908497868176839713810851939166319066683731919695662254462569580494734467368053479915405149367265114399954695031778805140874912710769039216228542697623840233078298570421918097913692428933658283658861926274572435994525108337781038753550134758668435461243770864944998325271813097337317674892065004900865866632816269394802352736596824165114700452409257888705805156738992282597822361751229568723541880828594239555948484614965714502086405344228022483648287858169070087522925675807199730574542560898492450681337388955128515299734620580670397852897754259608699302695792083963305711676764590605866483792585161499081504579460758200095471271637424236015718253797019832197270844451721425959930513095302665994534371531360533890406544629881359470445439090256768388929218157477467083647773630821602667333379892373553435171304396926989961171246312177432854362707280833790603833293558551502822619444117982281507364008770372661832224466338295813840627768500487474667087986579230630515745499632128880461015302440161598996174226473417875981699391511568379563689688139573287942888443235561834181606049132160197562673143651673974426202053352237948741196632949952653125986418727252465839665416247544756967177020794639596968360106331640713168280234529938335337623105027288093814132735406871997788059947397020426354134949046572968999127578184467199211044765574377811708726635035856869301148812237333519625272492060486560189977241728755160352597266403307980361604857293546305629771159986105953708026563516008020514825830161192601542536994511890409377897030996890993677815212143958793581154956242613663693699582813193631657253751884471775897184191286051151306808775605538766793218840163563879456487737232374867965416839162217498176200765450113019156518372545733738608593384364013685164824346014256616815477031606418389835444640260877494076160603120104582884881928592285235221250264401119271441830979248857530402711392613511374717876497290215281959115762788156800356554220833190683895558217633946703449504346200684438427172111931605830258992172638714858256625750964013135870417328493889847595095557867526247424621445286187517178695895885740316989670479745250119696941271128327745210182859335880735599660395126294053275626796231162318352068699855075347029750929339267788578716582458925570385304198554466727553060627132867353155238628711814342212341378906044183451648727004553960613873375959758329776826660852035348357141837389008668424645015850994147702973111579679593845615297395179923766048839215806628431385716859649733353643162586096864194052847468217456601625647136338078388915317428663952298848399588816730972220460416470309496233540064710227922724990972398591400991700029263766172212287491514988902036381883324840283046300009358560484223865853371949402566398778964858274965906954105336351778125432004242038205242433920174194434687021142528689459842655948400983139114313346327846934621216618594903171341581276308145322988225317614928976221667721517978438260741569944250409509254432381084334994191979358482270227735903456931568570281116967044635142605473914714737227148637362389684542567758960978327774653705624888716729540105796738194219627435347660029403640534793559313404366215986724741320809535726357785117899314743936205174483671414987488029765470734396085668843135833479179682926228534482508775939004213723667000368887798005217520962859592483052575563261575616856499877158860936801938568707166041368970163278883575132209249820967688943310337811779505802803636825433719508409513963446435978878271635808961412591314836751414586826826519127396953395014797897925472781724582242470809663570807799627745960835377011231736112535357170716072278830165418753883976252460618851466831791655809229840541926424661964008858415436953270190573036932417766368273511496641665840136668546247269933857499157992687915025813373518299716911172233969027116489185398700323601509321324653921275980034442824838782128671598492945975467299993619043601463046839501052172205275234475601863141645558449206004116749715079009632896093261392096525885693198824597915966950142960310644079416457487197490932802462342600480618993769245871030173758190023213075903239480311149217275306859140635231287951802181152318555790680922371545620593974703076957688055388710029449505813746835477581673639923541631107355235252353701671783470713969164136701640590153184522057614217382433387635573865890323394740488378481424487739942086641375071992572365570076840834566165001938851374062431092922075581323708246150535390073472468093905599254533594118656653335513539966659429587280839143736667026359492406763611440954931358071600764910537353180881633908460901580481243596674133182072925530120405406915786943018115499293603284575324562525357547152398457503306303401200780226316602773628894291176786400051431336448544087628915047647454898598545198260830335115034981499993480890358494419127472610192725961431577924061207816536219810205095722233188770594084590038750920688541227890574639942244981090677176430471413886540888985682688665773171973807060588464893275732932608524126539806879695692414600921732251459175850660054917414709075870631869906156094454205243603784759719159001186585411538049483292951107515788921082578092868344363531860347243284840742789341268797827475783966698766744703489606003716132448583828835345854932102047922782235655854721667520069769205618183231728059017498687863823971133598954642751293788421374811505241091582431821185035651422052088411314387972469944141375305235273105901953534120053250455230370108554162037136006970098512639358932615800659761727244293545376439651268542804955755180636498643542510670930469014378292941357651533249642477596833263807566030374930867756193977546064499640136695626400085915606788370411604580682542141230421708084701892658077190555657529955442267965922816850537791034062119573001808337910105546930733580023398821860386447881589452055147819485982421568770353472363126987167270202231685220290075373680438374942530777948563630100515323137875378971211286581796848997043383263777223704795740472645556410659702833448685786157741211638602844458692152621084097465409414178194596078878459731731813850640690398917961817344226931943494445223975074599800156159348374561947380280814910671788478659615063493265733991500816141852783375732371659060391256252962983790320690418821564592098949986584505158254049304152772490286270962570617881091692913633502402716971627310533646859611118533372550095133798219060032465147734647440926363278178042084702849976936447226381334617885333365675633280946358091249109647076971882974078265625297252769283407882398626945657892499062086453268042267808527241377290019661530735400111934658793234207279122198694608374792404169708360117084531855167799765835920958677891909379286354405938255308588496043481801125088973439397240433795480321663036028290256508282365913247056859165012535546457661783044079262422213050143021669607295479408881378603932153633894873519962230382139158687244687291502880470265167847590750210300828747035195134637578008313257974788083722202738277396670667638849547089905959184161222877750564237537471564186816479051339598052752926390693167564989792358497709410521722148007909442366946143910099452363022447427393318188119176527375262629295424923136188203971432635182549335639066082882992532214009786989265186760030846967534401374770256333699698323432271654936138643808046138717197771645018843143021571562047842715022055445389827888981595363431532069736200827580452196010384083543887731366406973836567403659176377843272091431675058962901298447923707565637631040151178526110097972895039733266126970439304218541904520798965482910597102889254453209021997459230495249952404611942095775198737607010530013885495634795500313330495259559489964007160523157872294603758954733311706880731239759231658041815376218388125144670409062965910831014796866184835557475109680315039232714362185835009053292770647294322556200062935705713059455743509496126882802789561438668446040801424311630369504191777574861280971587960195349809532795250996390202814459948122269214816204606081979286554634201111778193210651125349419082896446509309918394387153070204219818958666569135929401068456203017720605097589503025188408359715609066740978564604202395691596002268374406424604801365072765029721767541373714141974186228464030850258388042055621134699267392328036749696872536309431203928273926201827599475039083400325785777570309318744718115564199304766540532099451219638218820645736449607656169153504761950002295055793414455191446637709547395771935033853352370007627967581936604657198022819891197620930428939589362282866953398584210627717972930947979828402161081146772859601373448176184703292004418515535532754442206791766873718452749018954562699230119588750693562318130165307633786376978072274986449330145677234158067919230274321267308863479648116052774546110564470176269129831496029770518692109104812441149410608596138194560092284228238161475773101828881348031634848363322592249851774106127682048128754980955086763024773188660340882550199785436733587078619614347394591072972998891775914236067852406827290732672923169111577966199261712905735309463724030598381835849858913247415047312399920808262505151410997120322584407775140506516309363442355541298318591653242094592417902656565318356878909039065018983985989989172631416796247594131530933452628081050511923887111144924068393195875242916904505567568301381387090495062802473333200665468696130387210579548611961606866112456023709442339567733656591276528320706167427219286429859776028361781667343229779941965203150970693653961893017934550862029531180074532588634892898628473200034872910418391173126655331172656896843194287405651584411758669500875541388749815504277249254569858983939207677016293746633313581029423829508986312760510094012172383884423227406476243783587299006354733802484860595432893376245677815312034461133131245075680727188209021337497215743125049456365090256783712711501503346168968918964569897624043106348019255269070875678638405195391792492066573361459041900976913070898634996580017514124560862589808433872608021883464710314550359404892230057189280755928657902430946925879298684321934571173779684604801408848594760161416541429485885305759733652799682988960426099518360831614324091183838072665045676741135459705399607724428077514484259657190417221486028309326154649273060703052414551988180538718102124594244280203064798161522667725188991858318617779901988621572667198593894428399675316136088992557545623834257628572753727647007297940082255838639091702618763533291790674991220478765834174051989957679660587179331899929351780732520053898211763998451492812838824576024510701410072656104735263129723363233629630977830088976165810622921023346220439265016517964976139773745214882148206346065733073932165306381884205889012485634134574913230895645947257053695498715045955327780206897901346120986126917485715531674673769267205762588845523673187820753311485371593088590432904936395193807040645099285670800987435625851857152268944934521554919621089792488287658569892000310677792262833001847445429190466870216189186214355020854811224043212108904685698694490617424924455044690739386311343612660090707331171997389244204833821462619983796045414168433402230540332863612471487174908073654192068401548292399470065650268127042392278008666231032670337178258849118423707103986621556598763928208410615692817693939407442198871386422941937483976107588055542399234546527641319317436924808311521822899135492761235814058704829188597197147382623764858891701892803958232546101437824004088820447904668657005175380654716809419342556225456230177315140276444293297739221351538524658071930724671165356480069675060659634269405079671742077348635484021152682117944560774164477036566753780386392016390046016338380870316331511924165581491331008733412915210835620841707185101114687044483770561596125130660074359287275113345372431597168689471318610944781327180932460482569868311163728982250394440641859492722988367446237698471198192212498958294463872535334577063796371971444197944432286841400512778170550394633283330108045188020294726869087495984851877391474390770308922619506684112208286908869686950305162960062967094851822221831066203129913154744569854597410112429519504181792664975143442444489648376564892541586743426882416121983565987283016224268405338148453544468095013632051962510730167564236825363450851210516593163952315075738738440562506690922749511733780528098054364536644724435126821732496265865498271450297019606388861047001701800018466696145997219411414130022182877900521402897533386576252926515282417925260015385641677037973086280674102028712245607380374639400470801258760008720276753368631697239312711580818247530927120498464663459095445681811708281450959115257005838961566068659641060434780188409077415443876914089874835269137904186763433872199225518422051770919624555464926124374531377670908682561546252965359177954322081882518190191115549877832482605600219789704864343205607738517981342770727284404122703658154313315233130928775700301862236250833531789639474059350718763102762525476435773222490833912004969051115963054301631374525246853176998339242712146425515988785831398948081784835942418448028241664232219801677532681301547736342245603413140515044198847746087587632763971971528311129106171350217211098850934231585113725871803659285472372223755226231541000438664619755863349454956220867481161155174678414679769956293595875302934813942135796821212266403968723793467662563397608228585595537933474964968258157915607152733790880674544362178388123321249639968322281682997864612339051198840628145972313136059114581726928291830424044693723256089326068581876712484728551696225936734405330667787307255269679760989379958462210370142868342398629535304056937393761201685014373890688434454065406396437350692957535667907528828037541335113817343905542705508486164596062920543724069640438591172737851892070318069677576513466844164236438655095838589070104345501140068858956269712618749808740999194448756524085865595894622780082879959729120392478643031159627809945195366089969520200462909229570356327854393726956206661447974837390635040155818624381927067858726832312938354750997971056028877839809451850420694159448760046042902722040978621276725180890121807921064283347039407458035081879594197216588212204383187344045575213682437824710830482646929376708703247416918927398042134203223464773420775206746911660151587707082564669896536367091863691867726820734912949766339034507327159893354828404033711551012812931427306466581594683779914309597699013443547627340240386434405780812480272740093401245208445841453281323611938114597854042525454843995935694903474051055720329631376296841983715402875476155102621666689153947516128376200100843168195404026711935564394264641744316917104296863327949951152414256101818158225404331496546256248661889911688560910324087179788983503318010775730616611865233362165679362414568121834775356911731763550046241932090413720763191757734186737782416400257538202971875381191441720395749593730022659195918728260426570886101984121019285522362317304762706758205106528425201713195005732328126342049555397667934944693580501348123287669863167644483511147136416480739306637776329655438022597737149513586303589833216315721673538829791697591103723855543839371615203971148107626143939471663480704689547216379892082459762208822983434427563555858890127490496966083450016472633154547611746129263007492160645844664984597143579127263916558546802824376161645254839558292708318468594569843771611699084343916695183850383255305245329973655363667988008250136064146890328261423574729056453393176381044445419832064150456485743130963348086189941067427258319119669436473308346717235200722336886850723034120334493420978658212599758697037690860688317213720999119694526734371851951263786865478172642030450103653925324873999581179602176689079795394590444965707761027826475541427768353829765407755531949127137782754616767762746742852919192816516218342557609296655174791186830297131550800604761087787559713400745371193495674587969927845751757151249828902423794849554836592075409040214568254537857990150178265971110840315365838033818598216960908500119081605412413038152719580858370594635207595893895032973865417564732057345331023584521777451200564815728855514092202980748589250423529326786046747677701281197887727372812242938317894944916819759193019299646237350536564236634672877465458575184060524664130279882302473017472870864829086532790058082603003772765845066672275415130565265907207304074660396226482210631406720964121751094558615194641261624880812578849341966351735736503340964071278614842917244844144952336606768525496976274510723180255435876745147539144086531533831139454647850454231490882748540353536094746024317340737613418292038427958565124748651797835229859737181991466532666086139564529939538552127272004246035442002652815089955502768326754513088147350246534468581597948038580398991804571570598365445165237031738225386869946873065025637124375733443464700393661645109260851263367231627820888011069813954228431865766416590255632107512503871108187233302448071013043580559081886247201155717012172964546635501224649067874957246669742535840293031258039464365694464294297304493421609250010739198086808961030480110103884771550875700261663395111990351862146074459398082372166180374729389042117537480504908162312180768392504348554452891262736787539132256752824671180089450937779099796862565105932126403289647266404805064895841998847733078792297026557633049265605635859100979811760646646171299103576058271869581783469074343627788306307550732753745329827524853875299441779775781324425984846644389551780815548902253115233988609521770442225434108466106373447638714608253068923634775764489859433631175971780771977835517955924704152336344233395196576716790080428927723812232398311895438952809830251368053240871300255167301162421872711600103625991281765366351502911108265916364129330786674952323660353897900193869852608488132121250621099616329142773920488602430715998286509884757965860402997481920974553969355598614782097624806449921416417376801786210203088743319634283244280983867214455586634685313823874493317005210990630975779418602090233254734389848681557548865323905904498793943559714416081268091023843802081557061960416575733751799146495363519088098743511545209266189261867816652142482712149268967058619234315300656720051477011141376998624761003822562387845358841028866790706875627060791701737119658718487351662282725040887374557686797864228498902984683358007765771637872851040461538468956328183505878288039480371153706180518391733945232406862965577344954807366559320975807606180862518334433253951634993556235216369323493344334248364356003179696006046719889861488634616572469198579751098497040085825048145393753966645873024279745744027968267045924237687973085529683801556347103227607842327180112746316770294345537431902241384895358864921263664935812570689233409638053568671380514557919743166543041388496119900478515419461339677012776427051779869153952192064542918678964249077250240104550881081328722455393064349923613971644271259930078167396423212070058860001718593753429815298310408566861944771486300219661382455162623938036933361645584773245648490632487985840989259980401270060519135931095038952786637133345912316419129154706537546239634214786290419395320180383508987630721653467662609821663805057047392040766136400891723846590306441756848270394801758081809910987354395994658728718372514041164725996553232643804918880215286578734449551536469712090316618098262750694982821044928918587956760312421944968768080547424796410363152249615402003198886268069830465459518008477631437180352689580591921791657358158742731088600296634790065491635024176024649018285158207685424914010975807737573787282479687518439746936568268784239512416249642624274281304023614852916913902070250787565009268396186494820501164241107115821699042630558787065106556992240211637904572208160932526370790370047950751348456282617300416635847494817082012060244560114246372648396306213178203580137763494106771809460723805886501010096426145701209509291470659522277059749550977100392329220043332996128520354414427633018381931823609547846272582495614632300197682939731495845674797366934565842392454653507466340593117570260860959126526632159684813583413537607178991666006300930708192785536676203187535696158992412066321653295685429287704639261247701405950268461751005982300920715196209929640788932187854558051578556200127214583741072198757708868014861158114228224632557772994908315834949987917653006450776168257611865721654694226258461918998738607556343571319019159385912144772873273534280093694827320442425530103866679674596500861670786476380816889164053059225238195369652623445746230232230289193392338253199613945945959054801501753328122259120910274767118389174272734760566166935447351394136824906589647010539736271524542482224126526719659819704559861026620827322221178151610342837727131219188990617537533465692046605998541205001503616075104251166635455255783733669231136784984170276374231602623313493720073972856117765243251699820187117912113507510922047958495257892960450741905458915144156824770490539638595450426456396238165498179502276928081667649057460269935839483855257006102697111785440257205933213575998282144930012910849816595123086263790209738211338161060293211481481340930949004689364479113203222772593203929191189035813529901600307854758605349022473364079519472308169192104369505126940909542889816592689470151784349415594082728536810749857163439267124779645599271135565136374790332342204452075729833140845307374849132358495874750062048633120403338738326529169149460913285607813786042978218856187762801418915782844818794141176257742991837973418396891375256973876340744806439682059647372783734642999212963753391160400965291795437852435197595057485627178219376018732508413197405637051418925304276154816425164434797169763288733401954702588825368074292188692650709497899324481862590528772600108012194981680974811695950922372047464940509999377229650253867505425982747396210986036449982202483333444536968997132542041780479373923511076368914957625110326615550652147613410759540652830282275075638813047093796672974689608704415069380293398934271728865394670038198245961949973027942074450111429193285113746787463711991974400514477608206339775769438827811246561008824594531173197567512286787011718010956728427693827388660575877289866601410959118898679930715590753932953411550693516371547126161998867839770865967051170404144983615426097438045503463480930745699547630830833236638237505079918031197671225116878843033917685092211815937891669640484895536673197902908998022937473327695550049080986818238612904806379814026394952885760778415053598921456279273089484978102954879699951780116221154368271741563548422093321506182487166042717572519443803748204697795529845192949546177550654515154847618616930726470250783309892317615667658609790594985873388679085372024443815648627392125823438375816148780797182237704178215541454818110123472457164892333538523523182383219634353867700732514657888283066687704632524286878420141192497400089929002365476043268441463279720371140091250769015824701296769056540180678469305966193345804922530866585775416165145343976963644501335898365515609184181433392680808392356820620936952579791626577026948480484439602759162464154728731398334908722382706842904012437988021195863817169434635875083385053283452304425062658799946824191350780303068444271407727002469396846258023340270765394115651417811845292324353009565179779289057873199519573599924535670921325398278969925962752801396959701429132774509054127963500334037750990444057672219661914210697230659668168547390710447872587165236262814704411259333434052080673239380355191098007239764920124849294728984909444631932992889640213259140250244438049131084015279259836258921422449290045404053935647409994035114125086816272964580568648165661889632021539533952487816789325244112653404388819917453289865304168514157312101556883629764507725451934170338754538372533707404891539081996464323660997369363817909740389637380719668794072309048832886926120217854165554221926913623593286201898188019364054005358720032114271256117862270429213669053904526678259377515343198065603864349698180509466417283324511983591771696949505205116122675405034432711614223696179066815957226471192864619497984533056803775630712562480878566110899560984606644959724387303881889288671478131032375273784373130043595727011061848903292104834908825813845651375242298840038113432247428154603251737280481631568460879105777472560869982320069917831894522346111954280558016806008608156020406911705387665101417660605783169986203544629658939199776731302838394196648817409933264074923243635122642586743433197002412961228681100207714924860698355401850074557465274173647621371577222810040137009412550754016346950479131293068928067820167146811392123419920969232618457233757473634817674794812104194799247457520889415273138852153588601275800125701612216906183020607005854573992006983988642712736934595945152367799304105421444884080210399109721383371884233203159635267965935943709103153321636150069335754209772250811472388672923408688594231722815020300097733584837482722351142867717549759425063124147957437353233677064631364492902339381568719686174167291294175647850645851416134589553077658673016256902641479259507028977334395384352509543294866608923294396078009835801935253036449971001276553155564575899643500780612168118615063076548471259250838866075279347879068501444267182705195712552190268917659327041941748242558632980481060487623566410905221820161749773262546600895690418446958297786844847029771824458651218984706932333602756370597054336322040966901088876841876520376529391909830757254053535380315697361428713454159789458695514575281615858048065188319928491855063713821398850381857933553104599317315674286727377051539864654618936763408217507109774343259473471918467310467522258496354957421400304282202725115724029177989333338475103315915995566352275388993320642015015708694194100102927208590307425310882200180176521752601424453430058597060219076201517924310365695191557963472120551663966658289718708834634033487731410972844883751821242758648695469924250448673137068702621160753152812065597432383434399096025860935461727273861430986138021665851979976893494006044579951963752469033256240149484646996863650596094553557914576035461605753029138157676437806594231499078379172156773655641443125597563617120632393679876655680117406499315187581673945604063507389006936130389113315130421946473005130414624162565956105645541666587213057354115488839640158011685324600019808547615061491963949925813401938226672261795780892654435234311116263099548926677106731277620188813440390851915197788040883878071552875111045353594714925715435113521562450731229342904767042311367515872070229969644379863521250014132949727729509549863212029215131105100262316616387341130171161236850683993064111378280963627151416597961922025019063935909593274571464349439038981661334511279300972243403266983458728997009913277920670912721179108674253462672210876847892172179500384774557593397576648835570990972284007762112379480979710812950083111341892906670503665320168710076655325545613999184088488126112850653033615806823742597834714285054740433145275511078020962256484289521873606231793011618356873055478074540803491486077506460092569710799331299398664036972316384907887708857825723358576055690933286290820289089992321169677068110995981844611301903063193533516805346595744988286950418478495773136360407471451113341689698699720800157334534038057340002336528581292358712170254518760643411079124007369005071437150653303988529721731341647519998055077654449556658599899888528798772471113528858417792094234978665188677310676565645695069210912229783952994374596104534875242628493689575239725206478374792075074489014676018509843301212086231509193687688390193282677279355514444952999175369588168333040156493076480717770585693380107749819914231996893286648857650156678564627566670910716245605217059913673704017926371144982384666884277333819240152093142294391216178267991650781288057731884141059149173785880163564007909559229478425650271055785071234101490587495361168885351595610465884118996347041395253371868848408619021441010594536790756204880506312874534080728860309803022844656028479084873270121571673657464157387778324648504776329293866693628748943608685727125768112961283994553893934445081641036887044809087941016785470524544805778221347674059526242628435864420121266577850786311514886702978123860186815609173951801200824079017834797797643593357759016872620906294700046220384025160834638132076226004288281100386782630735823346193484273333833059151767530961681821647536597866240811194978597301981559124247874089661272759974155085290732945961709648023425380511431314436360378299342362646138737002972019207760333977355306739401271684309280825889980428164069051778709425430737215126673444202388981486928819116040072104271183982849846285342509820034296215345599603034454472418180168881965429859298381187831911374805698275824398949081125512191515588728784806046631734681958309610797598660311160262182479198906726844694266802085220710841585504539466945841116251021156111105252109335143066709780605432666929653462136943678121465439151880314364773453142837751317338431363477360106230620935755899312939483047604357347070826171923459018044803455853170080502968326302275610199495585483190265179624743182456660649236876313777692068086324650655428270279887277834310291550870379408075805610217284625063482122929376461426485877369981383174485984486326519900128729165955702275126964232051942041663086466037461526402988138335980635148601684070165980645382579651398500603408654287064746077645726356472700113342622363578968575299248484187919758031803209614226703487048166166045412610649151280524639981771932901713268873759869863408644693275518196860179180567064349088153305396783751521551936576443062865474612239375980909237884918324305430533217450538422064139884050370583219134816203280946917743707694131385009785134907768892592393659638550276604584123850025420521643092577865577359969761810282305996487695106920704341837805214159693091179735187395176788538431025401721230149656994241351568314073041665248368430081087864906944656810979847529565303621895872125184246010346449475860862521375825426620003750962831895882406356816964028900398621347411386742036438084027033716723427737568872248825846439354583112535390800460563498742417688151767181192583976630343535285457882456519117464553644845990885764247822903018125499904590800134305674610417364748052134693257689742032144369624718857799010949714249652289138600629840384947832052695311812584999227319303468967985185542174667620340456653928281571826597571979454038868461560514441362148851852686177453941449727677975772816083056950646324341594665852479395397370375857036972591062379239106628961987543998000879883456803998402654668425805616978838980925764204840200688535421950935858746231493519571296219716950263029148265890536260586184479429463079080111362451893552079471974419200321851595444656180904630153808410225766522042838670538231937142274465822756958597702156266281531441947685891887469156193483713709629930981087605701087038849410662879701139586190807395373124492803982768251665644502760591272094401775064468591108524453801725205369936400831431351870183094400300383183064368348505608143454010452622553064257116144560040714440511848395787199783914265356293451047110610453493813022391313610111029012154042381530332711893886169400675259538101125670798279635799988315570235784987858264051754894341153390258860027998397879337222986240414198040616996180928679842436100364081114926100274701914339317507222483422160101003867824334546467487056413843496841528160989966176373113724198799889958466802931135146706039563561217273772012036259887402932841375431865725295173812084314102225536274943879116551013987387927617823121160411532310076394389346334835506912976815894558616574234333692571580568467780159717198384115317289119686879266872178321229561685994962429318572463453089690439583958439869380860222891648501995998303508538934995742305530714264552491568491160183345862727041674104301369428170760603985739435459063031598663330024426257799615874692453960562228966189433965364537216633867654843401661199867031337647753672471204380248284192673271922904181295489505555102013991646623248563088568282586070442247416202792055562595215966052311090667554379651902573247018926305929090262776349379145406614992288060780235467125058298137388925634054390205804502546396610215372054524031457239529167739842746391011892993864759455164813627750953946494202234155507618165050415648004605620484534436384699804693988330527668770033733037534987682698995789436152020150007455102740843032061003879390140826124511061685353519490359548641245663982583835720849997978530708405169574584377835346576982067522430895151817588863997192219312099166897958664698327907972964964155639865963039991546727229048858931094779047552634675995460233482449345466571002032408671290651147330404238906289716778771994865089080430814248770578806456767402078368761145254690077755727806895342927269063810199615602288700663245158984799722648680989619313792527493144282127196906442067114820924473330856234395545020685355063398149956082429150912342072538406708889212593099091119447249827580956683143282637231939820485874307297547078712527059400462502925073254476355838125904550420769613388337702118949951679048604525267880935826615600346366595288882514936050378433504729442525157868248099814050204407469345259794146745834040166337537763356444734295227023627299490668071423242620329718720690342540171262106244014861282507756561359593396405311199290041276951781256752019644480548943841092057441141824051936185079123531319388370635198689459313688827170671106447363295604322762796173247036986295068895037292342258995589227610546860455103634640103794186536996059281267005690376807754604623973622076797103435059494561114228320601322529893747420421023184088570240131461073261442811514208966454656311020800370250084673037564071695076645061764664927188380852532605655485230442109539364016577916525657026110672161930418889003455479930908687583609330704776127453697832658617997054509047322107078903115339977391078475488959379096488524465422728593371767690562771170918895356626921446221025290309027864148183748222668781835658611628054784166728871474759641657336579816097769522552760988307722153346546911184972919297175834568391835093151379235777171307662200721913541955203146489991474833661372639132882544287535069561934518182184168546029497765307136817267296488554767730664138150227986550126119118034145387586138551102541438594990521070689452863202420926860049531773475448583705994055839848097296140684051868164414994259801176450984921816993384997470200485857781092730941142235229040244317974862578834138409896421403255351465199693194973712922880452871193092416189113236963249860744604031814454963287106908167040521728206870069991026977530738582612614577794566313220384375017568017552620724683449711566899275821225778839301629752350236161827932993822890367507660969823471130619917214254532654004806736432502993149068373428892005535845885574652996389113628325366145571546452591252232981614920649948366564350059023005192070553031516561995213041506261511614496854795078281486599084776885068527678930564430066473555874128129840462310603262917533701170427965230191254979135595404216752444140091358093887013811528138616049914138704045187943932032345149428451132085029729823440090562373024325689737008257044739823827374055250485011845355638659513955341370735519487331178126860302105897632214560337561110720555987558807630315182790260115839472559750873968267964231370906696288235630027667802621093573192569018345059829562518347788814629205735348327106468122940184311123432697426876605138911458750990796760208061136261082011293370120154833407037374199784034600145302857272240428869509748530740607522384476305852762262345842527132620198833327193291820725153190393081006060192975009643274507373093038272516087596048731148846731427981511415132596295017179418013005848134162825588944581411760031208256359881981916615646366163779018671270618593410986404520624307772047417767204664664145776609874463555941316807761244382915575575014739662544361269567684190549406917528023714852290098498169973708381178524583965396397383620841056884630096979604257164384009878899274442376123750844600702436996693729731386731986807441923846964032813415470451256628520608143444158333840171257380875532429222764174141486143644188155871675536906873981832174008574940284921277362724963856546353417677429449215869296673559492250226357000561562736403480874094457381418221781050282303608404124867874178619866851563798316820091846789286545709810658831694154779960565055428810073883576335912453929702107859958250501684093259459120409300186335929710790110566718420337873581691003667076990682669434712615312737573185802859748408703331065267468472313862842521016148926118411412856919340870445384967209563214313424368605191040524855871208726542096608701154086768148773270103529236506703544726599887075685815246771493151788593204666822978009521048746999183655688361299259813140586636597535674076809226274673237849273622764092996756787286643254379690432053922316040852026195939800598258193656564832480178725664869995884672371206532174781648239855173530557083807646134740910656844224348482381704248796685440086165397324427489158447404940476165018733033694619274303829786198920433831853143758539435162657609259274159768960810701967468870819634512877897151768732169137268081172362073896516897557744829536501571986151631180982428372527476566412981201900133350885216002897511518054380188520480875543329053713946402722487689251350106313486012972970718528880881002093199885011433499974370821682693456295206107271503647688683301934794408994683560496411620904585105296334489785119048128967187593566902261260583377682660570367088272294374657534185107062179728549015822212545057241874541852208123474050823689622449399103704202072111742534172311089768556041379824659468555268821318429418862722513811569575744282464050574800094428744743179386879497813125524277688631645669025899195910493530290843013080694528205644646387033487689171187727370392264068948863707811029711729317663958248829059063723003371614258831706528852036955474542864588803482069420293858997557165023741963771568186058600010234078811538196174134837719069464756512994128357407463559861500321950030423941635274437967572137125217127330262635258627546215090330998972557542007603308301924410478148043511804841496173171198180234628343867228758776798934668458173465275979462659178634079080313273253473381730807147809853494085243081298869343618414818407248926874362304742703709989589975007086690374023712789876235393509712122750605742534626982614030839608297423331445925558644664742606124762158995084326156289521337948226492510457889564426594406393140755048612073132231939017158876291997612704794184771236659412271259553604526272202823085876569476678187326867001175510323229230196698523775454397835943746878094120866305359083543068674682972507379634106914791467362204599732369924283053231422401705936684895526180788660638126159263492727760949889181400093837519057677937705449521766285029277996676705419552187762900570781815825718368685209551932914405051913838818338931696817711039832960728706705608184643135872120843207096126708361767156213007456601380934146582022613292933723599502022344410291205255568530765990020018718613255760356131531856120317499144419566245241161591614816367361837143462122985971559534975632152265253087420816205822690364374303607230206086610993443351890055703881383894004209742022306072486587773065714297652605560655052016903129616838786233593177525824495504917477603457452818488889519404201978245921853730779222055188877054024290681570006051499648513191466907364835303847215119763166853687296028715158817558354978014684708654424630069888894169658717299974572149745114449436581425540536294494300501138336418111051533874287956026985878953706944281481943193315772258474573738114495034285002295681504611575838788428979076230043389957637887299996816208797083127347160438293467164946072371538127119637209675700384726319578602561416517994168414080434576714230885259237938856561113434822603811897839221148813391174419477099170159087131297858259776069906346815558195804784166020282594072180173220571103528340101235234868041387519729727785342879227736333612213004409864051473732881904202391337275316511420033057697973062629609012835749691536105393899591595914003506673441161519594900400066846258073641519215455412729110430037924043676676531053524240115299400881758696342137494735681907747675767536419119148927123621874758331612378146577103236694697771594961486022575408989878940527663958471363744473147929001491321614341407501388888354117274156884999113981050172851821622602829066365029790600854102953854262827737891335794218643065173565372015465813684173656672130315007711995832836029679703903525515520500626258498105582284023877802866849541390810462811103096319463883589961619568105528496251813772445516163906055924662528484256821048547266389457002427676233113258100091698189329109338540188546808396161862108837445933777437606353827609377300683528953987674807398648203832393438536570062610807798873185418681337212144103374657150561297127101793505215592053972780448433283939413087441235487005883374231004889513777803150284935351755391211869016854399745093647696064751230378752160348744957954167344403914444059812280039476325363276811366805256239917120861488293919384306403572935303528358380558782364833013508749166898119591977802978827385642199962376595646006774251005302725106105171040100741964421286168891252711427306457976243203542290091882663212604229479939166430379432977209562712155069945033203540309757272064605329978092340829889813560325923769461222165350396304721075317158519494974300687306513993973911159532728283475092916719748371773696918565390166009936172214473759698395071901844526134057447529152444604225648455050446544176546496036515586689250091175429498719989983433506284089768718414304486202344509640077763932233435527790874934839317587296254651382784727558163528780452304979096106260962672423683500814533776899341642517074626435577248553931474797194838133236962327435750484385098690134086642969219892151234977339656278129467181418517077174857378005362641006298222978152751003400128852543835607372300751173884249571518292911244664550061072256732927811401439554184236309655375472898391863568486196932428632193551839472963716495037805073259481047905772578028429988975671208675376291678697101229091819810584570500573299743163714113034044201296356728418957070697218635976171643312830007012292569748486636604911525006026163340514822682442928357489844072494254629143842806818119154680814560932949822704946324989295821091448542274388982095291467545650031732088991832946789131323833345076352827356426939502448664370677801365973339903218511917887338253823260506617252250409902506726857232122331423813349433566675969698352831455059958050912731529517472297716374256969926578808589641131751848625566845041465411724766240662007559168905118072628741823115401176377371873464168762097679835210600046908273328143850473745249026543805459134287065884942808329944008898029454468900555623138541440521922965504408419920574618906875864810668359303830785832248698094851249654033885231302447315812843088702742314197332479638340523999960029505247448437753533790623860475111969187844857396645149346514306270761930958922506856034767145095139326749762125679989289237394794350605247657166955821639286301034082986411519727678648978076629943323725661442960481571336038595118192864470780045732578355460142362239493066898036219597103659277569746702900854897967222104460769143863105342680139845790073774150958396170574178898374617641364320475252995298808218909231775710113252976662074471879701667440985482266854057838945140777800301894837668442484993497273930561557297185630474022189274674057131211087213008357264453803177032661118177325760467380567429954919360229887755781657700076748347697345374591503102383205010590068942973101324872161995324646465292213926535625218697489147762243448804974638767988503486862829410587785737170245641381490796547860358199358603548062403540339683997309038260773379708694687605657817057640232185683097127686804014663008521713413619603229973643451106371205962821783896379691982299278437759777882883120801131923057931153925677584948625612147573350171358890000654364721093823223715843519219485201195857643387890945820939966547745685383694806813239100830541935205181797741988949934181466623864059289502809782836211222792825385950305297254125700172627483240671381979409053823315069455429426058336919027551910576199694984827083540538045135503162115781533262890908472534818770750307742094164580522735876630719569970273496350737259233342716560031513665570446065377937930215233470024981287774864001403156552369196507832362785491927186110825218265527769855759378183711962435576745629072922400681936292246310506999941476391630724443280205094830035808313329161777976000111806477488328621335370197264498239058318605351578412151188658343090106059814397041212519260246895939646480821219122621884607326993145333984009430895117391416591218601838115375300149965846211345012340068711182984833054851735427375719498442708559283609129656232599927170496230905193115294981783597905482154801325752388523977676596009607549581459205822819041149867313263267708741647505956687767581062591827067677569737397139530663695518520572571138230611957406734347450664097393455020645497154683329540402533353934303523588418803019362216109572620230106955059595289038721928035847669189419043895086963894839571738750422914668765461531191686794386187838130094746425387891353374060888884184279420749594267238458809500032307201559793429335090672334356425423174389883158927171983974555136004728034813963116130525595943924235569489056351345506596184996775198512232033001198799212522090986245313846168569325564816738413917799761755130017840384390146120512124577557692973119808096628707925801663218336321765821211675617514575274575262941097443795452677132339058266470621230817063828550692727452707971515166015657934476101335708423120404748972051743797434092311492138568649095443057068427025028338408585659140038082803595461706238851897857820680907261680256403505312708239010605296004331247952619840432774777904936466918062522638324111751671528687724248602347327138270697173224131812701462838231015256549581624890494945059567868436522129058120417437137210823057395826574691808549671854533683247907195426038405238287092977078664397540995807092823489301770930686402949473882645913504673391704801885508891500813294663907101421704319872042701052227324489612565533223576622222401107687031759758174897269146865483046789253309714145455563356262228786740574643071012701387462334491464379312024683142866506167919676818896117490012233662636722334863867202594156017588488717479242367552429238450974645682648942330954638336281066139347521233644590222451291050273036478090052948693489165272533299802760556400023989212065153068767314443044631219623203315065531840895984267142908578408099196489663360766797815113591009668458189912857267306668562743223733504921109129836112262053913985859693895227316566210630172706838337486914082417497629557521190151223557891363344090080087982443733282435436168485679604916026205365204500170150638716055040705679922712545575206742443202704236085090680761603273082890717978355133219880973279661933546752471527693959514015407332946955598293121595268717328666010813480487281445716588275604991568430178328140672586847357459987472988975349523338794411904747992545970840090694464374930928098169783876443624757416626893562371604498875888865151618460168036049004672429367294509413599108060293494329216600122968328871429612276668575746718466988994990518195956043140328896768447997606519285164123928705054343806533577896565029977054982628546496081574545033885447601458712524694337295584550408598887009320455494988707795054429961307147621886088520826533718504694422738276226802628240934550816024639707987370374678014783127097263409787395095836017906262598447292264184217997730865059176627249692742867679184069678943609424664422795863258970457859841535476892640623694743582395640992189479123510294268139482990314078595887775035626953013735598235416857112119618568316484347161880809218154718812065953244777630528017949383991899858353200747655393999804739145762803451599277311168302634592357438212025120545960998306722023624814033390849117072352984013507648358212326350050480923932080110606213928996411068205689423690249403448754493399401878065824181698703909228776125283451297344522084447421475752699960263181707046295279481014564357151612626337358884204168546831211684491885313683958928614236178717992170369942873441912279363335164584106768055776181873148376362873782382944171865505336645601447132562690298579685709489423334991070117371051737172449502590078537976992525345840218517520288240519949433285243062638872045975135158093388490655410937922748655534000830462229426142848315263679497443838296538583881546419802283526816601629925416191519608666608374528135861505118254038591953884795213594757087045181281720222008634817289181853437883373350396673363071690048886661468678128753498059759959545288911607008225929425110160901970817041636412692237281569650982989563959959500181741722867204584413767416829505866639993485154019541188043556131100672798051048985544702322138652603504711410050381023979931270352195512344218154387709810344607866283565714419799471435070405091848325188716437645811271457708230080846970415637653103251921973375109227740777608102530603799167506953079657944041691451771056611434653330689287552477122568151144590625183385908213500638607970967115074685014186360331845799107583825652705203535222895606624761389761879105707883735139970261382429108000383958420559163222524602985254151300567290260613547488063335025850428590751959684675341725368093602812236224175340548924376199071445611007119158137083473887007836512234665513905742235399434984240972113400870188559532911831078264504389959895894179026712515913044875902508817701510559734202649303536950542656040264245631451009278090441213756754898984583700095167716197205306754489850200442958395371537792327793948057126590754946374441428581619372732352918287985897952485403716023647480228011984580467546138794785746889252078044505211290337943373902414232052431966043232701350378199265744873166219710648980939259385312825314732032973553222068837696067282373651960288694594906881234019535928877058582239972659292502348697433138578186299295047591483127501818565728245666111121229218422841354031133277484802764350257046382493450912710460729282801468871541036429323859617054588054759041747735025325375627035700378595079720436722528690912546197954889196351670323368625729053603101191252018638255721514507492650934557452575708672109457818936000405515634038390414103916078685747736370442971865900458640657596676138277252661326160529582186194990600116022590478496757057415294876040948927223471147966593011857120745833916531708249389994903578711515304406147501290894462520750463867952950564715138941603444688385317978233957266138175307926963384558666401429218627089455851715917186437320783602764144559096158769613725580791507718502141286097995356188711663022440226748080183315672316570604030512634082146141853840822511646201130861874897134927553179945970188615453848800430310684458664426047535869227313804165702424322894168523838020412601394244021672544582798805897509818888349000905201801056608464928671225073820041411816294078764090214223362831392076732264565501266029391310714115367690894988731784121783447940032714418519640529055047574903277077511220720384771655441350536801957990433670330995208866488780317394228118865995212398625237302781201537038208394189988121673971902607613617147365325524114935125424718081173941466319815324441947494891365486117860806115439802312506337815763681525597199301470217392100235345120751207023430670066734490689901898051826160450546231074555644967330362679255720720104179214748813409950859026061269935637136331459012212645435543708190345508387559842556355000127889808767370877469546086037508564916150710157105454472109509440977896741812696624566004408701548219593085353403129066954575927321059544907319391796222686505097380695558244311504611911614684801337383676044159186801810586693044393505367109635138739773990854130592731833331393487971134379417073713283820356817691987796999085970078480196880914916306909116872107783757426678035295119382870676940098785551031797648713959753068290198010092860404674771940282648565773652929646141681651467601203163373228668734049761660994945623479433123853948098727924627460635117689396951513314941834600910058147528270112462641612956685862499194463339368043872914627236019023740146366788786199650894746335391217982031489368183692786318479633687556486673979516831405954827591990298670469740788254998567603110571565645307121076370555601673075526212742656717994228559251445799551136110707849494903535324936166285899641531343551801418515307504815737416437772293289130903901772071719335919915993608083808624279268063247934185930975814414939455480059319194576815016544713951963641903201143996974102534958327192650380022164087856797907563545539782357070990561817983942043810748199080753056328557187081520765889107344008310181151993289329857365245602209800613745739832750543746353234161432789511855526072846812772680004663712305323023765538639871224230325115624299068578054601841466293018411762648906022352147912009419272158255442593008447905032253197577640979508519597413520247486673158650572554156055486614610152969258691075291054536181515880942495246435341781106459383885874581225429568820564351541143831126196440430668821494810253083883477137259338506173747475097644531132025279274998277977432179119810047563560472460850363977409613110956912310574567329217005063282616427841784044440447506124623444909422739309816096399346409262280608257094856017122860529643592433796286512015810290293287513910899136202064548687971623048220848668887699080657427324211028850586339869677185577455127959048488718642763984411059654153556932753269344362641884562457188143688629612757974216657878471495060577504002011646463368668916063942449761264271858129701770848764791087832990902822982158429194966332048897094497448335860461583946764709503731635886519306514189891637128301874903268565635997255735070346621098422754472972604342335025358040576760563837384687330856617070235981660864260224509256551623952870118837179798093626764066566729991707006324983237771762162386917174072065841200515089684556806120298260905613089427884266042566129741924738623731978573172031392765436980432978752038191275626582564687434268956801629561685838400938183925509821797878318730160531045605022072981121456655181854897459897955510207540966077728059947320810036285664624071048060739850808848883982703172797919131030228802116327492565000662549382428050653137430804207917099671215525731342316175345228926213006925489433980130332974396542955758990960267277620496592003057534475250491832526502006850387131006794416923271785454118974250421787309941661081703943302592366088457085343685438569971466750231645142061789301822223783990396663421853079667579267393063111678921878959849412046785522873015961548369017625457605255017817674996510832510828120717245049763065166910019096221890442062167675515213964481041889662524217667243459445524475522998452756052417706334604590993744718509777127478287866222305849988033040315948498677286007410677302747867218455438261746159664193615814463596256681724756952426283064050699425670822531356862252067711646960661304910538330022880616874437453181667979471882325838400796572790467893332457313053848024183767949881529042786387670887073872132766441138961471369337908110926147615495809280351169882315267991253255401696697201140737332439715510073365495745394334511255191175924598432369240083715594749924423748078782527426667641006567045180111291239514925861431549558033895170022223638543749188644174425774543916007651034890419895669688021103085880530291419132832530665284236554731753520654235709586245118483137445115948378421150682175748563991380733890231163016317568211318866307027761153932226266006092447452729587553929058378079123612620419303797989977256500196615559521499197295052235037209602788008982584722387274914434879178580732550006750453194111440493986233079356592927088319042738097246293447147181696300128939668914607921369509059082472559670345767477462131018620431029444893988646508213730807692453970380425643322810985430830166557945192738399784050706571470136362747010961524029165431594637401498746383527264465759954100918052343659162721123775170858896053669704646431606131348646722598714296978193474400691463863729301695654148974114375851624070471555020098560399827385969300176564460010948404355672184694683841361155375208718185211089400004435226048687250440137233352273560744556378668452902654555061681193362170298030375280702918147858240372511827888608066679288518506457122333795242033095723624228308691426283855722465900217393736214589846361954011326411658120937867452204988563214449201661451170439624615492973499558198781532195355435412195379964288083756802893818291335527614037875447909696744247968194810153753460125839104676303620904985772605046817503071099485892155539197618178146288299050245159610338675988206584851581241438579004448288318013288103988275078470204350589261659105254527674118357300895141806732740574953562135695104230189717752230447839048291224066243106765491857093581986921095134910535818264461455164985515534552487351308116805574253716349639246862961442869808771202158096197047427570744922100222714752561100069685064659526193305331777567775156529242604213703939426762286899938351766889400902498023679258350273940839412212698414464813290258433431468154029025331341499158353026954037435894554820474987452559450205667981950191023677649687233905690965485170423374171181284100381824999004736297905251176676347478098006764053908397855148288405486951865600374099135775380619208526486898485203325147307711622542858472858593831842963884817536228670276295051636129003596196086991081020345284301758593886762314689928162758755012102084559491595852170255582933151791661488278531887760857749965253328205553053038449566950710823490755223646445891031348878478146658924224694893466911832959841020321200246904838401184129126736824406913598663032096298247880100864934414814950058369778411282066914996915989533085571836314066165807351666932344945789574045950293892452241207169428320970673210538848842847121417266177707012988763239986676203319457684380364184249707243454034380302311642000481116245281777841955565375209291600645827570910809698246547572134124355295279997726674276610156316926977517656617777909046492340032234309979603606034478074723683130346325294110445660752862019024830870184466664118032510395458685406027430903569250326392437051641116206879036984982179137472373181680892212402144397853530334870988508506343321848318223912882655558754111128883086156671242224117247270427021112738631196466867012953827073781186676548825948836249135902424806531749248696104525315735123529451613326060627491787714389276489461546433244447867985095879135663002485357204882291352018301914342691438896721946476069899906027784418166121975588543556728352822277958841526514140292564035084899680014161039719214852213452059516204252220052968187611132574941081553140112629661481105824562038795812002039305136892375656304218079546681854574653727148209558037018499146096774640634869194942097373822973210570595436127496039534999130827733297144158100923821310244161394042102586575216191559128881268956051072095975017359638694772314910894226585878807537599275892016658341753132537697403149139789492783261922702018226657629953093041440584007277633959061798165159354200357556386223837729460774739260612039045170987711718916105900745842482714572373515939158924482869508563658916962754235299702648917756355677270569972691157666115534973962111650258042033370914718505417309983445958947021903594577498655998997812249299441933042781759097936202369247566362846935368639097209473016952341755937517341062622131476786050125000245043244427765064832383018300847005422038401450556238430057399450918251878949075449053914590987690607266101926784326690847547345663305184516386035234058109879391788367429987107970170571620830035467570773194524286447223260531346495938503115893509137084971714916762086399603667902448176142142891051432728084415704583723051817438629008996046335302491743223351631633373490910220366793159160848367672364470243288901131783629997069162729434994402679336464633259207985190960235213360266751999800402263009439500910693457646792238319283250979891100479380463645862094478697875317468438861678313569372294513202245084699773974856887443157662029446654904925881756103392313295111680443204201655684380626813180106758931438920923170898553062156515905850307208879745189159173758108638447334677633103647491541602986384118976674153068066538903047081802598143190989112539263970365056223459441739808685574092961242881793438638166141403964037617660600753876562835135670471518525110726151032193174402769456675068339280572131467778347799587761653902872974317600024510820209449209020167143934675385585255211399877307004617369374408884985656390034012178429325449522793137772351686247830116623765541720521507196484619810900824320840280274658763042933577849610446735460668400629957752786836725858589692536572603807000651493283595679893339605276086120181546219177887828898723164208282574030347040824799535499796408815879119149340183920183039692715847419942090314683544160876652277388019897734755800015874656910395562947655004794043733886952853841318729593070256207733823644359398338332228184125029700333310948056938635700708479787681941003361434972423607601835078226506061785637742491836798042083172185165821347278627920520059632969978104318544118643646070644844581864124706425557659714161056041068501798855901370633099761307515082160044661734202577297135271474235842676614360094933556614460442156955303805965752203554850471538514058987863512452844687182277007702434843033371116391684255056067540189415834741177973541159161958086287627801152767720934883896131072563704530392730905834211315352289812949160004040866879776561605502240343764851329899966806400996739650186528663349615214238990094160211382055184648562643218449583745388651164575448939659045854805097561803565772028057735559742500559691046153489403735852083568697131258740770022697282777545403054866623438603189822991885707704086038132465212613488555123751135969377842022346626756139666706060835798444457656609542921756061164549691279051722496143392214046867762702074818329615145826570436673581098819246289462235092564118776416296510570824269892698446452138696278397619410308775901126161756396157347766307143683952686553763962294622724020788560956872509351510520266955843576991055073477961845483247881818114099736244047939390682117003627430373026227178461548895531540066428145220044640208058185888119850177768994343480746605390988106218199135646317414765962977614311387218191967928010954433263625184132754987498878151324718210857839605111942111425218598236726491680783078054353492823643431382294166847639870343372462682859583435864181693592712706494852190551174484327261926857661691745699624152388338259137601035212083800098618472733646799234170454460781691064975300098090191580213420147440757011326512525941935139847248476665073156869286752491970129635855243127354794204079971238808038080894705799824499703547101114062923317648314811579701359182002418257932182956277865670590936260083016773774970262614087856325190031858127626636190435292498491055780511745936890258432481139333817103116037763699083948209927818203735421454758346659194962001175699102740999199338817604677015907422806543901435415094272537173989022759996765297495773958472325867676538233370610979957777913607355367951430175201809928548576838640909507962477717654529649872545703455338125590509592897087992289513271711157609739158685954198350644473234951397951340259489406007229784633868756901655512880746804608030128917184345040202511993397426615852585819069210847378429724786970216981350013947765645598639583452909390035280703976661710657531973987878927166682218142949748728929764637849100122857226642526168339141802488342785513986522624539431968661270671573860718326357631572005972064816213835413830784540556006804392862161388144941843286054779927286565460305134673737603807043263231455395109929552380955084423250750557835412724880791529830516100448588747390312365250675237338684560694596578471234518155837522477218785427113878584003133300542755575433152468340513469149745534522473475223194930722624088352741388152457947764503937601124072162608313287739508367591372424699377174726200515331310377968715011272056906437364454037762180345581680171877617956745051198896801169237500000699231975082140466658811375258233950985847155023815200177710124191168910583006384897112839060363803420332217778960614113714513473811005444167964197396273347676267716509290329822910206797783758009745970264572144433311345037088142408359685804561560881147715917669496171302209745340344940524031774047412096873282320764906310081295832218915800640706543480082289932142605902740606723894296504728219152769645593848065347624690817851913817007463280468424383434817549884244635703225160555022541806558973446107595089281730144189913681246585473176471466317929552591051792110608016146466586667383057292121920508682820121459219399249120738005794575805795499959399745616988946055807083595402761322010634055304195422819101388322746457213977373564292809180466981259289554408166561923685808594100406528378781156732140540553799631582375274262693073735570292926914956346167807390369020364585433919848701982570589039693601151447006395001418558144195526734528308398487865884897375050855280390036870737871158529876069609764081792339574823677293950366880523240874148134535466371747346086231986417168632974966338821839250290299000336125917192757697399049496154235737613341602527426212713782778047742633768783788817959190168189053758643920340559507353255516129216880672790313609656188845057682957724796130104515450998229608444947159856996385919355161140655200220674646566145558432921015393824395587555857428646841165247540828600677095306450049701865847712179919181255612060926010312050258397915887060284515605870988293706039149152951384082884558973855512500015262482992230148273907023827547539414902739052994520732346599484441695944851289033865033901604519806602672286928146287216406838054931123175525003677777397956965626032687486703641874465465561452491541899580241456812834140440719868100440934995155271646875164676691966950741196166416913197399324879675862996404240460851323456768166590310503189156409402935332846886806045498480314586164928416892996371978884975109840859769321597458911447857270486981806621783389385206051589206926555783050332105017480639562729197285550670911355799527433620949979779553400128390288895488255944590708472617760307451370500934675430388376904842710554851734746737899585350890104885790828828283795100308710687264721292246674964801263344905130098287948943108832231789358747836497513506032287073400550133873236862001437767717763038990776459387744619987900062931212804329382674625814772597440075790165312516874331964251125174617328743330219745205832709368304244032573096366733490025928940790286127217954163056248872445688398253482525637277681040958211515917659946059825681948992746505153510011260971067674080232310760190134860644091960678862132604665828385775537000744277764822483455136698030506783162135886471049321707960616988287329784901138226035070253891036600257530155258456106412120277222927629516263916873541395056864995311761797424855369575714277889430391700737416437851839862339573652610687740130425866825043822349406445346915144742158610729406632114072165704659596447036928783063865868895721717898524881260963614489001398123463363183470041971684361355931164270443905847507327019805779857123658070672106376783244487739496606703633799216055801503143333552990241555765634761385584784503761527130282598952238170150821208663471973278094796845878233593455255474305270690666530752338238474667556877052788519807864045187299392601133142033920780169977984323887744947760415883757049961826073568939565802259316819323276112313464240950825480518427013507782048277272274004091491355214071343476437138013339924094545198838494526753600503214879215685068471662432177416037892091834189125563563711318342389704344858137654553695348794911184715691495375951567524317527098155321551276409345174702977704833460382902157529011318591959276756614078003367898339279045141256002756997072249685811396147988490101336054482514936541023755653057353623109071673093678690549443716279800132602426619344544634198963523818384433054968796130859074812362718432669506553585109219160214349293285681572523878285966572686806431565660904258212631441186428235424173725201693795620548925845324342581964184306375527094683348869244779386170679383640370877594193578633838336093580785263692762697321844926784078219661473223161461478912998721789695206506617632689944659026700137573145374230010351081418092628359022665077222750267347847464733672746723152197947016179043366528104993176404546772165710767993897242249784739706367190811578153624546021511017596069325005437167529239522813528003295168273012496308397564490523873931650391395069043938735993341240219486167350592730438289881977176474184151797320392414231575135536168775564579947279392500712371112121674884532928208210847892119334239131159915093460853848594947669940849711480271528860629953297863987071614135916158523430502288672944867572856424122352687184877550038233618643901744423713893372838036432067582996909467965065206638746508156308933199578050420012192049697859900478659140596032901987126532002115612162159472824856484406949886681623173276377943051151060482932926722282153807562293367877367088478221108378819996702988858018395786386569625302419234966011471898813157784771721378418946593559045098126247284289477119213716786200213232965730759248792254222981247329057763799738836316821650693863427991635373540330879715076032376011769783783180565082010941011195716079670491756073619413670702494496573742811249896264612235367619556310331699903992197085014089621415980932863200843304680693961484526069829067492400432463721090844585511568883865882045628926945476233090873879955247716517081886430702298826562699466598181760561133984059523228846678055873752528147950679884998748123994542562507937569353507153309177736466953285523600909719328183035403502041100062262603294992389063835878607363619813315592256288394559710179349413446928139244688643969665788307563104045682779932381466247155333970623401488858465681098445534857464612125485921268220906294176623653622794235712920860134705009648776644854261451680865104729377603512130634743108444991874100288888873479926104235791120432573859283877636750876065802390105235923863157408146586613214652327938758871276103081376820272764331826407694237774127632727683885684796704149558389876385698689242225637224011252919093328252397220704507094687496527141408980409464291074624888858711258803656217101664196661531278928192542419289390650604300238869845549371311252992059915851001403759369576138049779323384687985447157469528421764158188752587249220471648481141546653242110692308675209084095381518007514728066074547996013434304962028745155293087470325445594448020377354797341714071970314887077082292441854585620506571861154738261640620571369652289309347521698697260732564056924276793390828983792476611625017272831015710638432261717429986716864986878038355879452876145260047676195752559837049119660930031000681648435195189616554986822249401563839234680445265688288530289583210269679741350848293062700196651158335809546613132287203889322252029693746126450652252328805373590973466107264450008970023515985301711021073763368498381254879710634131754946290142553290148147233580004077545475003568782475349192443379664416077249479675264479282346517526471307003539698031364319188551986229041203552451312386316214485867926398804840220155593231737313863221489614319645871841645017643829814725806296947977646494101163646229339565956927932214143978892933332164947827409222422114872837683520321080819573990846659756366994510113993100095336772429695984652250278415161029527504686112339588844159921170126347144335508239802658395307947670292189792727869879701815228974454601931690801957330832119092853624954771527884306937186754256453235491758049738465334357906275044357995251021753664681550509808158318736898933343773827813558425723059956814900877885693566257332503572392482764128375995536868427102677665830570036122035323133446702686429024574135627983243842168510858328953971923044654525040655840674464698444041965614350161191331123290612770653384314949219925631088266620854197365376065678834058453890283736216723597283418642114134587501599370603228344336079772181011716631941531832611249490532804707134950981364895422784221148031606444498321170508754653690039935089898682921979448753833462254646950513326375069069891437328896137517549732325019497901080472190835105536820669894742345756429619114746697449611584813440241878410720412530626795000177604133000247413920330629856776853586358512252207803119315157733886604435111169810889654159104285659929919494102114575021622701720099891452208745255997573357464390901898744247525136964961996523497302342945305993233286706818141414361407298537074777182173108813145634560901316984952926296245035478930038632808620345507773195388790419786777779723190622542257153051407871501974005900601596825452129923391490551067155509513660004949975078026551584583090559505997544617972672006320517789521722186204613152640376283651601104060662577106390119184426706163567090105791687228385926180860823613020524467682303346706739142989282690765927567823333816385704229838261649049110628860952393909547724879870382727399613680218064942582775824100151374830720696821662862496783809952024220961131649880174582705007586964076324976822491739357904525422010010491288182051553346305566901267958034655943960178217046668745140234402281484782094269344818761508983204161808412626220455564768120957998984889040783723847463529762382418153099674128665266905694469801142009649918818940207474114182867155713925675378125636626021923787370987348553849435117889740879096951220643952332494199926510869115811728839914194102949133106669344472288923544012506485577355610895534968010165463256227720331395613883324170927458961027975630415828637681893738335293527022073556319075746063997206560435210006077594073438456980192446577083316955920899918267313313442644699130437562840106670722855508703036111361979780483924346232769818685826257932058444944418675448978623982392293830859276957448242875828561480351105712336535512431171056171814368213122169308656910860653164841756659700931377870598537780972687839699486831332584188070947955557727008865710426688708820852260503053192620680526388966038286983183376136807518145809678694413870253539017537788133723380460300325640811090973231319534303791449596938008216237620258294346929386311281926352659259740296669945420783856563275536952462353779158152061652859491327021439518764363749638421867216050350818486829791081755305417788191618226126165173148450277362121999252308869069209044340724593867636735211029257311621155124939296836572670228135122607875622782382780964756150240839528769118084227998395833593651966765385976254146558995522559011593331729205563310873168147819978950046639826819487787058937714428436127474424877958890257175967738248307831524116508715471894405593452720593530771189815219944141270785139462476422746555489798004410434268421364348921096896104459612996618467250556320961319289360734241091724262929168035283752886008071793106485553552609815080725006054000351544190831604638554702756277031276020857455880329435628645579890620508245477988660170546005288627504918047141170036837637829233352051273498721459900174938012691449826145133400117330071881214120653269213249017011811125086509685692724122853694709834622277706786922226164182361060212519626173345710702261476934403010944368912130219254969144327731418309344256114956815778588885413832556797851321243466216386028823567990748851850811593899512573169309407158264553107288857796997841499383748405956911784151678942124103469270879326274063357794123861465860981537386106903083255575821791527626629774325986844967439725284502053082688322659706330015095603934638076340435317904231457423783395182164587343946233527500133067829059894640251763628776980971396194621475937360473414196700967511756409959526181236196588588766601871139265678111563369302919760122796092422756623644169452935069297381600785594542869409706943349694606266380926961470995369610962805474984584014017311392844785509670169062422153087580245199769787990159373555623234350145522958023117393869814691357749455691592383200158877207743428387456449689050994442705057369593144967247995256295779474619776854927060360448003242316351439904167956897507142876821996755837050357679966994583099903511549369242349305252705347373919485981459206202835491629541085934734569223732089314506807560330621790934435634349621489264699825904264438182150802968325290184215113972563076077857343367393402742849761956906817536660040267417681937014178209916337132276594408351666044964426616952427998591477941035989542574403232999886690607972161330559816298877643311083926208134760327500365348588292088999975414544496279180870910869589883190824702469950733895777246403274734241432897171428586033026654055027286862664116899290629237668748104761065847894067702949270308173009296559795067743369959275923642098355968788870094419634767988951135777859328975780353532141437520905036176278842426472727598149253165953028429931107854074609232675980788995255870443524554144988199331017240849287457466640981697643709519903471469400606984305522270466144692111572640278333317957338602679026674016780700442217558716991139321288062671264103408225973218345573625732792860926400264592975915607155709186876642237150388823768194996291979407811751613280120429273850327395122929613723146564101874527990187214022529497056382560022543673754045629030990446771171871033499921615069131232537834677986966308896553456297837120051167215188997118468769327961200936907262088538010513940508971198852512076509490882055682330962334653878666683951558089302262889543833847504243700657611906853246961140024526507747342412543611060625067122145515951140297191422491328208885361659313481595473908839221434552771596442376413629366503299691247021315953432590564801514731893007235368892644821169002272549176517845260532762038065380624316892851500921237763978633358068368032126586301897943601994768931162792632421203715605822457399133514651202904603698274568042932870752976433855332780243886087033763335753233011917018396793489266757477501261950220451007653618225076457483000627297343255223788594219968408077157073528452487027684483961656646372401264845446696866471337770706820907936831663635986602859346702186809414161621387514205057799042303764080067227150473997402194556857713690696490210665422967461405670983309374938287857249023627610622915960411412924844195920610058522052410707927166437662371346830648602976851831493338372957359837884251855378039312611668692737331983277434333654945628246121446544582918615077812065385806979994287897865125046438856755284790688665118978295516385475965289509169991348587138294948659169186875944223039503118758951450434589546847378577442137499287813029917599640154275659929875878522608485538894623924972084392618900697383887349855338158780207554190697898082646172701117687711269837447999955760563341766527397610528279194297600767935760387088247428537276142402413863416663558707133041896656030808239608991865352157261183476030542670786398327196100053810772675002337083147407023203244975652163537175876843325249944566568388968655294858628322368797719889919972261997130465401688095159094538018728411548006951655818828629276698191620212873073111064371552119647529902995509654763315097229896112044334575776459809662550262009000048816369004528182480796626612526701886472729973971595133973976465708855022799108364570647757146488578253146624923847212332476917666200849256223088749984960947556005875013271589808319852029252786338488110209790839699106418958922285152401083944890951251877858359491518263016792159056439455017164252000594760993866650091607013717097473437776887475757691574655046468520562295361614147848334569532143142440890033432205697765662905152538837429120377391988431038892287441237923532666209129246715276638594864567857690544007869268996358301401239681110122729676924227252992919114111562015692440903175608349580093665488463248056434334307419396004546260940490460864620847601818917384522038191752819595664130561624692770726656180970453138197459558825367548905666613403617102880220346687601672082388418519706531999250244279930186369557512552804457591137532704402408546441670707157643463139731728946366745367165121624918764898195683896690534818586236042709486851331096617911294251270571571305221981086330117125986792525709597564789340400019023456184134586589331162134857288000552330748351037166851524023873798064324296266114458369700370697394650668495627555346482191796152244510364746291286137444828625972679532538429216758086012345146529781417798067372667212272004796121668095306920928517302239837872428433618963075390609669987463545044543451176421737683044732026977144524741957531462951175904167278310950357673004140888451449294227106114398501492274222322969879326230954012145942835427370610040992929833381259114502750284966732077398865423762537732406928468812430857708653704945539958799860521247047302161403722753505213630902870535998370664876376838580443313638199248406342577339753884989346000038803895584101310968068987252096085900545515585127906534736479076145375239564536935549378619958315280087312345960050572612919563391654917152332909811959077783490976990193663695759463936039482389055777445086471581310504855014573738105359087534798165199763245589415499893120293123753651692604245851368028587687658470903403764663908231114840912673733874100320387705017526713985075660500194761095176753920335458595470146727166267497939732721779544934931136006205341955251439921947330307205228176632034537814470592870933191475099653914774145734038711634812218881228896060353041761959948199247099927822614648180550898091934058398509009076908605686635960528779068800794939207753920685647096359611389236732483440019745450568411717103315283851864627746551009696319460387511787672036056612602335780285128764528177257720693586825673304259016250958944958945712515503240932164989221010809961477373723841607856192107022407808573116504931392482083045621408864979202910645472847387023052821482340944028569575189373548917998153757687458272495085524427396845259937784032120866502455164319489931602341656671273767901107806936436704557759929542863825341134596880173005333853253384387756590261179953918360285869417404076144244997259323765653607205706632781483619009381477494917286761951641689661604967804294514610603526549045404112570974669822709748779029159632367454236853483351472459657589905109144984779889801845306113844548077692314347949520279353040837909400679026651235295702424463437912110830611249629400541926754221369900577182670979693819104157870761084835131891332093453621414662777189119640893344324027527506988911841287788630620548203476221666075705051854282450465185154651666972423712619604647917570398068723780162291492410414511352135879343375612628679186848908249309097170488248899470276858272474949391240068107145526205243642859636537274791012961936828320038766489011224372881486199929196403357808151571286525904037066026737900023335406587368618423539209380148211959850038303868828788347076930038771106742977545108804347333687088678990946197021914593019077353499843535878718107093580542478674941595741973893388902970231808232689885171368664260034607647372549730393409477932396976644449358201079909856035078015406810735780595747269848093241919810618824235231330901505689711819655701344678600097760255804601228045766923717733696840020789849623549860003862848593966490833262460247471919210171921755848530291862218456542710197034364573396628026771214524168247081676515747761997038636774689618725535026256753794543555743018887862063129454159500223167024297108688341359563224613232089368676375478268248469211875430988263683471823288160231578222451059123175249004473638484346043748281143337077618339194849082664389355212175899210010829593147599271996918708429777262306860184167733925158535895214769037422441164303279919221756856594743386702677344207457507482553438395533481560229363223254764739165278089065910103636108508389588257256546457257735056815227360827990166203469531210450724738033316229703039053004746015319140645029884838742574132827263035775289717726332373024011317060048317135683759985300045560812337058200154800483282690648371765346939262774995902974921435001420032930343102736009900859770239651522968907122491359328394870376602584006433333469628938975557879798598387755468153970205689711719920622051789341630849283863075839716903939601495019229452005852020096545723212265927635108330548194765221259056516579080097135194307081087078688747504214185572622428297066454013927194421808591021086323774400416142123270826194187578505838243072901976451676080419108162532864345921891819116156838671641128385393310455947781184365209987325908465902136653589651322845969161348887645321833696968162295079909088185356935882429075814124677454489380154250920490234574805886970898418316866871386734968743543691508071120592847349327612027665862856718085705923169043297314230470002637253843147743205552576140643566392270378805472745847817626259455634677722657283202060721102970911047223240650560049711053465926000124837846293585188633468719865040011661111899786776791400258323973383759544497902717682748856335926428435676611345097725946963746528631677778206249904777363405024529072455669917662137590027339175847226615805604789722555772061707915227066940425313704538839038554587029825675960022525107557068061590308223938339575987857282349692872435695560642568196288121673230649836929724099048612177852363722229922764767599005028188515853447018950085650624786696233388151707306306429711484264442102047127918199467644991921470000660610140879342395991874217251170543526667976286692558293934948206648670009572237989325950244966185772481249491970526696965088159935783669545515239708233429214680648127221097392004012008250340026119449205065113761833854934669619951527045029523666499536396382476024811269752335324205110363808608715319908275046755154548380777877286664603184788403112741570834700264162814428864979782065262083651959096175474616706012400195226755168801336559729272470682686010687776026752680579964860709532184470335951998207829224790448743062588203610864068430617815324397369987679216222364158365375570710171635354995561699537245251335483132827662769799886556120518746643945103957082128756474317139916881286898277437587844931796971009588417416832330549492478493314958173629950767375320825975793815472133803424402603419847269596260548496504067259638324718759835041152505126479063499154934962800006549996128616147978591765572780112047979168036166187020501494641775084223139432998226432506247269078261940077924759684230795237504381305368491234965418372613212785671004566344234288012367397805830529313795858133324766710493674703117160490892181397226940188941544248974618247890925223888086961230963656943521835154144797207338973700044719689948442193975226088507266697385046124944206655437814093225229888991571877770834084160296767593878648716335474334252809695476938113163685824335636578683617261889303144845248594437307658645378202008763925803744247659995313902802493532355663088849034462266674462830439592378355951038497910301142443492949396646581602134185047951863496307278519556058056226071328774274817980740231946777633016388126983544111377460758770129582178802674611708691490553766716191285219590704436970238613968205515459586765765108809534171522396058972919491945817310559383884272281867055829322417044511217383875959937131708898787622082498677333326999685102164255262735640403554085690661767039675137507587655253368716595799611324739296538683587123598072784897716983525649920387915604240128939840107471734959183100816370828638987766769192672363523825469496252171503579023507076379132910334193042204017769993352531917352599146313550997205850665344569368100345317705406176318981748538170390637480118222805332749475712533240782085094080867342001403889654254689403740723926924438456419818465077107462487986823236736877948476398143458398035198372558126226041662729025347587235882690792749213781055399376766060931529720387279023889789550825936471353753942275848011957485155884030957829319169524103165308521354171266722661363473590793272760184706572784367771386613491988558801631615366937032178023576647411533131717610943208082805372838306389937550794721311538824352744142020696612983175188383180885761893716752435936043459116877922156653245733857740881257380832729048915984642729902653249318458996911532137553943673283239825886164094207366980243334176244629104349822668820910541997964612617111621471817150738219998635990632023613117793432939002514915683431925514523775102226286741363355233400692842041234594854363817001348507062085611628211247495731587109429317157492459400728114983246597364674057468814868690936870135567793083147826158110393544712856396957758543166074649155484087694219788427836013872747875985190441660167468425443406755827301746159348142109914469879535387944209176591375511593362880928291901219190668208984691773548300428534406743375058251566962015314368089095392276911169737302435730552725906562070336693397124885621127027172302959738440139835328708233205986034625466216990596079799733002172933065112866937915522156875957062210433909504320170698003629489153679617168740049079477791794016074682851958539678831638443679179419973443752543569620118185020151189241813831384353611493175832134037720110331504011366455872694671446013792726886113248202747817307884466154159716623755121747014762862974730076443011159850763494280026284102369271231810233071418046575047274489240592862862660610239699370417763281949343645155541357810730017645490356386684438554345474507138262487059065431934970691626945841807725693143352017741339287242085532008017625941557941816575707687958730736637478125187134097676201894065213421317273748338002210896499775894140607537617772976396544576653872483329995146879258578671470727292793015002196674496013503435887300137662703760174907286723886944848854137681581000732178561744571793247369702695805593605536679080179447768339613381089524590807989948703298607781896028426088928112044300167010650882880661677261809393670598441470780214129078129693667956830185174279688809927658638834233408095400332244011365062081060011380595084103616084174232235330393240012170939978409961273133640330293121600837653904730431632066993519170119769575742543799939713255272376138165305371323835908257732038894094414885501286919815105817148733388035723794019797177575713756721245307058303256067729424831069258883776584833492466825025060333800279612767669441449290812297717856229941893705249920885224860338616193162380967835938627473297604129484458168400540019187427338377670632906936694500867707173242477149154350348886789361874707420715029316840672515406212495277300015445530144393192881570950499166223145256134587594977484564850481811195567563209800467305909544163151737661406731068199032262124370794219307226305052814136181519106839556656338491174338338760983709642961095237356264624564251603340119432963540864230936575357981176358862755003063825723899689224301050500165379913489155569168985411174901180230536158930948969470408258214200414450648121665033340715269908614348007216571559891825471446086728665149018038913431119372563007128204503445132068866319737927278463425514812992973682169231172247133920309625327763672208987931628408187283960882767138508499349003800194520627394074332346330413227488741228422808948459885663883672441444385852192134735700905132580095540453720819193890525053223941163544433012678546058647541030850533521147151428768646212975874857658612459889989801031323715066222175828445218478825896704202312946136595934792342792876135094736704103703561989560809452481239205746422365002468040466451035460835256906298986781498923549780201751502576499837111787161947927267054126061657026873456396832131393100190402899665530259084393276914478413784078705295036642216957180848121891571692186104541590590866734753257851881131975417610475391113131452920751850317534978042292560206505185896894699777329585604149155988757386053130935569837121524592270701767216450684040363842250256109335199335053360090576333500643668490994682944485416408228465225583987117897054407239860163876765477122218185916115330188798948335252293858231224828485701273539930691865115600395896083646239804222543146434090687455863810722214677692308568271806913149062950606622980436217243516185597673067447797232313989205702068036540608650112221668946359604988891364900003626687139080497796556799759935384049376271669932235976429614833298912323752303235493854272912177308791946156578428868761264563353597313823294328611821077859897030172114068175127720871452201617211199039184200025144575144807599159027682668767480045894653018415939970877133020952194364400909053865848350786848775194445399873473295889894538980957276808605703069728395877848915624419769371987638489577457045472164153829752551020008964845462140001235046242269645715781092556988213648857992405205399886018224877415470156511683162220009627166734671932341522013506597074376548481138649507873393648813241100736887961329478307196126786826951295560783808079191750005470201282027294996161375396389019262083675059356833573157199646710852237090264016697424215675200447067815774223720623760309888376831558174845294098982981027927605489162484439015005262486691701560796885833029930791524098754506400053646720286815447112974944549985301795443501223102574909666740417804765676254999950616521174059977833226890765999152904243128464870910289668230933268844178292478363161831742701752067512438410467586908583043066691746398460106124901546597697611112499128853860252061159235029449877108960298573287107756102918962072763068184992653472000446130798436970210047969649080763394737873486580897707934616666221788484352908597045989906850832969839104594675463696148259747894915126830948774370213290793924079997688823424907846231919311565504856970399745868276958206516737558125908609426517997544130945934691166781103553329221705104882515059123310363369213765102736189130482583197495672387285486146261213740442155868874515065146072772381003114046921750975335134352843794280765624025222513061521080530164387678079481947924295195487994806927636871559747765292317547584677500267769782687008202055990057164587497474644316086968164072662948641454169329730537453876091751724867882949544918663819757546453838352361850694382704276565239423362415937218661218665846231644319733685096719150542108457669259051188374261746075037544306515791662582899814962464807725413201767601355481477675509218661405376268352027945218499642729207539707472127748495024998056998152249296311773930474845815008154225184644622229596162079391978687010761914749456033992099724720890366318151241864180764658111329566393242955891332063519023429853268451990101443095354280059899104003031023222727009421531950118947195038878002145978292640638250358725035558666501164640514680265396911192128456011905673719887410611551569388640661199562042520234558078813201285935748620811547647809134833413933712935414296415016515072334389807747109270871973812277073598565654388145407789171286880019832166658484096346223062092443970461756278728248684585559425767400352654115052407124437953808087051780877476074464657996732054175002178072871108326787828900721748841516214945560681136612528132348461628175837596299477702946039773903884837562526965801617375556468665849751193437875524584316226318569137063630464699189791450183159902910417690579771274334678077389762618496116388921594180698941696587823635750657259071647667908814508961791316232360759998609543003222010573888918283994882851114625448471407666428074621649834222087990017787139836552423970066756929442330369615440190629834359899932280121556690080908123718920870651780596362727272273207468078407568595923275440600492044379390333565186839417538724762748903004634582922995199876833394297547269434418362926944007509137470328915990785770604436446501396822718425649709171095319418098649697476665423204659270894904024782072439472300973247101723638832143213125846438740966322027928364425623015046351423617831259128492261166926263575851827180104554813816356742402250775702286485353959968051539244594753391155726780052651277714844140980883039966913996997784054249639646395133022835516413371538914096997962609432541645657062172000661111089679443305769483889858480783093891329317084309945160591205295799987081783008353512048357269761040707779727240546483260968255129701462132606683926511736508646194872216083904135447961411578628413256639138073227651937047285897641048909130584362670653842056811188893434386609341669593154639358417503541656856662417747485526291834905056148283129849603538878970522419518975584054401286866284731297120762117875138783115366558977962489580376646187316024109451217144730311095870830473136499797863208127150585826825732965294942850018221709444171730127258491905145129168704411270673264729224592518199351292078335093558231754575998888019249763179953084241090323450637843223999649209024714948098255889693733969372448299442713907814034879766258696463469064286273426667977653510782537450972546294250917992754010636240968400794360525867894075562922908981290917074339220108830258640838384522562885207735906971130942768819266890481966985881304793530030647116248091841904545524332006134548418795058824919177407497131841501890882162298121491755496951687916083949067563483370614342903920503538191420917409592809937022875083299320717873361412745070223051914178075619828997429066353019116578982012680081550381994610470225423235986588822680071408545078596476513667735729958755823665208004390529369250880800927634554118575532633439601052086506866627420160528392389733912673350044428335155348140781472006654801687523597820129669249848069158562144365952954299253858677987996750475849748202274228478316446391193206134747617172698238009245108348693650565843505727366602876179627472471245395046589426220773215433849986026985219383090502589180244945381231890063039811486660835896243376951500809277607540131134158956716763930811437363383665186742637822269473246845468392082160590834781962439491682280402826246588344023567151465930824009507112239505129333233202701258125963984880533466769511519533805483092261826544758810750709102786890158775671356777870479253274138427623949234897446174705823502200227594964557464006318483911663231830973098834261462214257593671296016191865580504661581605294309022951958724616773735219835861584416744120905130247717555242556880369442464862241846586740124127175271188892963370720759527745125501422438388640371884515585425002462484119849824149509420418211354734069637415857621315369973864151775877061603586391988357746879154068901610207327198222254761951217287666890302222039874721042234796453150604557046408688475832804586502495949190052358236179009566380152365222020438192745573077385787530978361637421809053738733116509485061986357261273904291300862673765171772285736765327636495869536847749161937295965825478068324723398055777597696642692631615181091304252356021005109554840750939430134171183166194981746593988726849845709631606158483514456506490404813014280814325203532414744284961234281442200212542912623031180385406265945850751831692682038579027843559624497925826364808659194576350300827646398575689943638506245325457491753758804163755078125326454510315005591231949826365675068142925031934543482626546448475329586752687174782637066288290141829681825402194186820393276127681324323035980587449753276608211403462079613651126023943367616925433029440870352234894165886338856201615283405624017899340636074076868235490456027019358628748622290661842365300793256135447096384523281238011417966913775585171472618300430809776132571130556071061825820082785390314751660879403507930726476196527555089659347559582535301047052138354432118521963102947669895150021613058507643517497512537274569545712166967284437054807664242473830666833004706858268311263953519502155022909137547224319250936725186474064970136510671484771222298892304334252607986122572700125388424885346013896667892508390757088187866734648033166407357319294091185290204891314697344748263722559504876092995802403041587352631587487844421503676701488754306599924836769396211382694493562897840800496989767646063726392112988540775782012979603336428410662026484658757916421832983018088775976315458073861614319802511291036668080887346363933065562442420201579314435571635987014814730122117908389012905574882012212639182248941628368438952136883127902428714779496516427654245735213155782372117781269146627956433291678753748285175748350742669734001991815955884017379176616802285636885079870857906949948066662385268001346720573980090578929862489576150819602891286164952995568107041077906008182859995161784150433913135577853339186801297358967514547015979367044572256388314118339627654594521776950889227300323686272246262039373094139511875755410889835237119079970102166556278790012416009572524119475290690618464120181574797105336274319914202415819344824557522370831514789718866809505210108962692303852398654535626383055433443332646470612782868710521768066445513925764126611581930608836251365910371710652848044240852500415674953643557743093129726638595728197253148408928844996445211445222222751143851762765865244406752075688040222966907625236340138251556374544756650834289865675419193363275702768153846803320817873588817464588665795133839713657854694845252121645531516467499835833359496918215359608895677515210482233521041570486685266343453105142421471156566754485598655004483163768366395445245581400209119952437442185554455328089671382304489117636712638702007297494827369862106526324741846879562008832437388502515004342689501364340660074206664216794916546461262652150426740421076309465663477258088524742999862622392278188902630431836017907781721466519671165993518737102625289993015448106742458631192872288625035670337272718851562755327547714054960346162472873112572802902730163915562354721960314848306037328815697501547720930761061062156160952201035349201652331772237448710126656720193212037053618510688515113127762119996506104126307220863204230622013483960131167021790313084128185101878084096507148063289617529550897836925993943799844121454597976949895750551666937201879915784487292895551105025278206463782751170655258058049394703223796828171317096342692359398220214716882830032242159880706726044230397669126135904439454337900694789614375444204072288432741652796943303610619248345630562465665912521174414919499895447221250576694035676043439571979091347570697104726155859682056922391624044152918558056074541537762003710593645335586107188432754787333599503986298179328632796361084405496339719520817434371119779331699482675648298294444209205043127415529095719490451456564059717180378874227475431931619271220567048616481895507769361788831934454650652873665020716986065292317392961342273111724695959289510896448222555134210574525248002089401842603376544754499296533996851966436866024808740450377535483192503910964977556072102904479252997797605716861769290069902362884327070481532509719298079818803317727154545410722117403038336906984096747633090647462954078041126300272146764199578105427368179607192330496841861899082682904795149131019529137222998268247722346496222755980090174442558841536335489209034315620786069106353301043308411323560458493035765254052322007701895022499689004958249227439497582861056680794831961395881599551661228163606973962698278448465313659750195329502004809374633709685265417416967532053449242259686696352153871128651101010402341257485753978387267495341886891489443284398668904022796952241022650330813333576371252109283629447197952776975333778242838039990507318255128209047748324740344882188031032824477454124968877975332796400870229455691715024436812416207657747727014221542680030219006374176244333101562346594416264033782292423083132054525238098750262194074579612689797184035566041237430057202918395982979111333605048646223193051904624230009412083758448954492345450145439313659349149180044192477021893101196156673607740620331947813951139296699908815744821833202832537153475686920712272133633437376170039505621561991619980556416267081335636475887758110244262637002602089569382713185996949898056847735191044936891976545129128790607236604773779559052407340511938189795604743297317691719415035228740542393650782660738125148353273958777601950201513974350128604085027223984679442941111972574157546601215040454312309203991642999492573642620699353885172144566039423360453146219020202388290576266130994497562373685407375175861126645397695280254967436042638441568250712391065523921625923526906283390170720553891881480776084017307543704695942304479661084842019767595989374492124324415159182083500331105462455168646806490299594848913164244587347952965059321153299186808509742383450262903154171018747515918100657666815177911657080252840122145827114847379500872703163028923722401214959683225450034791247482578338743831183982454701785659704384886684312766461367142182756596014811820248602956602285775725734331917981481147148821690677521067339189634636828268217295651003222400894960880054322343058919443073939017299186217140142025780619574384878179660212049428842937962297155148750098102953440590021503175984231310306378271855090379078779487716838520495234865508923464826174107573579498858148158321251276589454535666093718246569146227458641841828663946622839461171371118372566855586303662075536770941286392995875484118022640314654053045816781912561690775254013882686605190733512474058878203646775158014236894774451063316040459310555947942617036696440305562216992628954085859371308745127652257399673930307946223862484321649924947476724783533500921117754095287998929699944862106248664399276271204098035002137231856213389922103368931714890333183397333086661759417473645619338392698981116405058645577240565806935637617287587107669615351663879989876825265679310010400826980612674238501343720077357354189628764398930512749688711033082863196126540829708284353230451991988529693660822426923898819712981004662867796375809065590924203231837482730714335636310236117476308856092988082546139386308299395649833955248783411866140091516289670134947616820668420287441569247674904740635318842813704128002563593369346347869842224181142899473956724881221770232488108654172816479911080706268345890954808333415008701271001315104114591288637483166513482681132775053057549756345344148221938388080464228517467920013727198679685390008234062704243935512087033845415177117008586908820259225435734487073508573173214702805875466755110866104700435876973674055158024500378773603816646699120871142354778407874704345254504746484713786234547565919239229287101492078483061993397280142353024859920691546629471049576994275709595127733481713334842216073202457260635707830509572926965593805025153618734537633793572433434151801457181874632162119415837142698009218062942935096769071427909975915981692540447743309481436232438611287234242234374584850136999572220110356208282037649776194409522831649622698985202665636219513428362085436842489868937867062934152646186481573342670601685389751152919028015473375677316240986108718195887214308429932787303270077279950604750156973326611926504047518571383677132844889938445460548112378514961201275686027319988315716970496714709924161035247696431689108529246298840130309629078930715112341208667083031145649469462303139264877648834084047451290935796127312834155907700481128345993013883176668880257821679934845537084106351313070810911617087178645235854809684024040716093773935882587834935151269786164448455667887451778638893822249991796877962121961950503635442340554633884917928542462534505087999200182955150788529093941524203081462820220326009012524327519049877125986562170102792950176395773455421578415275224081986099912681589318079985585234344384689752310397677250087304665713611071331075551525183510034254464285143608363613133615195993151492356909360870797467291019612570197384205777733194430171543749076197228604188503332360246127982502725229444406677994977388975991023381761520668832605556593968896969449545923502028778680061018496710355591631676439760064308815578444593235512443941756926257693382226597960261768972961415852794112398325268118970695581416353676989282743432294552262819433875990630047812126224022519188121061379522837963819487058414889391625529550375464447981192938252979712426581681354157494522565690965732360337122337962930614598667102975956369389179561190686584697968760661093019859838946642544317813804471769746127268180397187740836140765153331357796456266042351826572021485946777401842974254063972990897343774664211231207495768416906167001160421813023256034814866510619568848769232191816306574218929685852186719801605790068200440368463274923637306231787588250104595709698342561670610204612489972265576940924820900002763425983201952568325287492429533156755129122051630365266284468217794040501136795928504254039784872189520084638352703709776928186236744327202540757757637094544583245381115175631691136349459989490411291038890863977637451640108271377481199365908665149965169782577678477395659954792805937393241927266293458445524527304333598332695620431651007354616653736528069352475454675550342965174692974401275870681446153938511563025323766783785327810289645587074808388446257879367121958128182248703100401259301298764833251037754855904743455853991421802185000998212663362215051071152622507625808780801285752811717803275755633851707351132100271843166272685767474064313758281115843247264575396872248239007137411624135152171150163316152248337767518947496218400945132241364674661273631256075242359753943083249430275003986078573231983974541062928652586690973950720492516320827467629937601739114625570768728054758366891981576824604860004343496429359532570413406002290581742936807797579260833924808756918030007272161099330589369971693293754020785698399397537861779675285616847689564871596784932032802336496667769478447627232681496112546564370636417856009739309028319009302789694934759069118044136550040396547450877210309634705818656104921594587993319990118458583044443157376163125981767710309280165485536132638823658149119071830684320464181781670967666589694816569038553895674854508597569455842145822070761809813163753768735565641635524138558179563597385312323261213802149454669069398583844480639669272271326860541084362850541144225337907405437809281234081065686633295903911255545824306911277862130684972781124622758162214532794939404325789039125344661372123540373873912859012830462354231892559942950662162228334698309433251654048410606104768912228342782887468676514738260497292855035897297119015509112650709646635331401734715862196567763070631309931410720699623574384143514295766107579740774488476733764513793945259844096098346295213612139835562591779462220430842029739428619952274781390000069946700362037665304717137640237004889322160748553123542500943481753435494813315232649581753912128142499376498522100276523928606294587417918258792383572434224662256232375988586492711645702872892365313952250449415707166226236121965045578175396622987133395408603097571289879642308180467707763324923561540550236629900369016147961902087199785222598167443446078361220028697361421587957462405404524622003811051385160094521060499050211588470216811927134884414853135698506994199529924325136015562016402851596401595639832990908621825097681157286409057037853787061958084420325614738487789721454176923440818594839204461385976024132011246392831725600769099674344080573856450296726646409827517111900825027562889841124868333750930359015487636995572745671688687455600137104607525773222569613954212564423370222067538698485509993197246243501090193174026019752430996481837703007247736757429782918210391694781314942343260928419143139293752951298894187613385874185036218381399364824883892161284525483538025528669909687341649019381335367697110482604605283271181754665105451651435905894576716038537557857688381790798504997679207072672025713758681370488112506616592716026467483846370553427822387688964664442399508882733071684012370738431881467333364450414822990220911829025144101672543920703084838853357602421897860841047007388201014142866767989404550273173751119808862766544778705610650692576247491225070477185488714262321728241478105645578818743176047295470616692415167934694154469721147159037942232131643761078210279736419176346780142892890443944745416297970190436664356711465454585058761002851481389585732965830809980382154031377706399610027237366509457777803787736670501698524597857919760025005685256527642338444686893114123190457620195843449398970646883370163612076355058938349799881840335596857965096378861850273000213967704272033431981560992458921731291060500267998444537414243416538665157937472020077964715807564031912065197140722086213412174641636818786333691970270300280225711701165627719872877784488534375015875544795363349682197302600678280163286093713479024702203063231145484230511239221698473847252857819766000846025261040061430822811351220091487392264348149656635258582600724571164852089503334790052860752372702475868915250954564774328549644245675833700379483507863832885586806060253641411947750782455528597873796827605567309116575453474185908737907036225130476326844926482963257956930795252191448480186357110775718675643101702739215853971469326041073718408808092296021579237920279236464932518254573676970413381330080911730615405085410557919963002511309615933930811222974554571741082867809772071774795916263506719740417817009024335118876618279429927067011042068015070142834087133506874918233957095794552141490665685655339132651499445930528538243255356786944666285037729607427926928522318379031666643925044312903939099638121891207142866242181512503553146717004825881531383791439240272893545788239312352622722717129935760211345799006591327093471730242477393383924468805821866210388154335049303213057383924776090988622273444286016800274359467523277897958865172013493352990009236236556506127946637312925694030909590119367444990244992139318671522233714969448699919304563876833942092253794840578382890006548152648366795135827181144723998745141543932598098066180694848590133823057314418644741855533705342892390240730407549970090905692588032962412985518724014881650530297736294974109267254348605356273296281638633508530313288537212435989284334146597817104375953358451053380400423984006826786946153037041888089086092456472985255534370903198266222576354970881387056372995510739271510539271767231143566027571545600032000910138824953734671892804498459530559379367275363673457592719392844578840032091727896955042036432797253272101701169348962754361553049954645485725272852396337914870662717357429674200302950870335198491326863512104862068615275788885617784615195738799739352425584690850150473457629683249166204493097064300379701617168956874368904473561983087201674171025194378609372731779687308986864493510987434665428991498800166485825496442651078033440854349995016671901945679802358439944048896036491598201854231251641268688950684822953852073620126086605933589590834133299237361802432671501365629299850919014171870798834752247661127348801837843716800486665896697176628866481456286819189946502335274573843469502970689094256742619355698873085853030968598609809924747188821578412648328524229387585049638607511628476020882243015749650489348818423605587591702179786575646618419190056825050225617024512193664497852437489015644258979352846275988098888877538222097819403540692111132753414974251449836823613976097841790680606812513426028146811777819944846225628903925009542336193526861960583105576700735414558316974274526523496268764491145523202080956005026341068402423758387547221386545371402096468128494354481337377551352907601866055807927595259531973644300758404705273555089499311151124421631310781380929363384268880662180178336040395172191595165931069429958077989346450622877891853017126065589108689133267475495829275991133299478649827846390208510644108799052401655807401087297876492532860107183324382257988266558587756954656556315421016062713585749439715569741447354261532498326404107073103968986853291451577802931673346663161302624489420517431970355316321357140858514687661303904959724714394701853939162003263717477785523920049697709363503637681091516407718606060481238804905590299652942667837869061316514478872075557581982763044738501346253455606211700035638813516455176424479180637215159106075201653671722244461236366319770681147334409139554219758775196553293341266431207328796578116410556963496751362228190558706848580462526974612925858474670238316007437001761044304829605472998935505943067377126961415341554600978675425957742812925721326922161546427679508213006975347800474287589709122437961538393687671632332075762848321351087248072643463300067752758708393381249171031407628603677880986150339839616984150146949528662192037025190150475949172043724234972475533448025022849079702581245451452183662046189695937521739247596806793355556935911361731536620659142617979400285200227752523287228671840426819454232672662995569913459092918823581900118497360326233605788989384770558577977766590275867651580485261437532616423412083158479245352854807987243657620439935039997971416275334098678003941885363729488573089092643555641978914367111239741235193806707170016351804824412982002606300373075977686916543404145718345643760320433968421175033600809597302039876885541730417098793525226906206907583106027979380740683042668075302429369464004425497216403236751220465558592627748016435383367887747208133036989871449797483329476273560923085778605221161641288708064250742596534214991663323719811203153781827325764061189356494416644558613643228121012144200448438466449012542320742908555194255036836790497476264587090345697989014829637893435406586376823791834210180549685635499816185319865153383899610070215419624953022293768308409490033378122303326144600507718380874033031829814050394868196102012581726234057201575087426007463400813109864736912313070643326216432291118233083327809735875747396619627083108563934077350178057268224722364044669179270158410915510480197157295033151498064588449896021375593178764440520759679728113027302072421775234075423597879794205441050015080142546079746522563709270670541105453459178400193466069338814293922505847193186236266688489882964519744741024163115455004854001183963335343780677890019799371777845903520931304879539241025161513293380728891212923783513427909515453095581663526676278817542565632315654140279789044263362261349497717453078580167869945420426309565128899491921129209980042586729425246511424708502191972423237692729622737714746511187865895904733509775782045913780418199017079257788578355560762255223222036524404433496255542759530871411358651385695394379807739877617551090992323759631718544786469072837484754861873691813209663095622971770520008121264035994956491705612411759234127825283719653971389487500071410117644000618472441548026423025567813730011428604588879520521002878411887859125916856732271397273653140151982783600485857187095739363737650685934197651393860679043314839628365693079185483692727753971799671123688135844560431679610430870201621403645273360821367121999572062450022836180519458247808565328638328265657377792580188609115324332881953484674461325922437270887991866114746184690736853500265365954098190308302298962073402014317385003254528337292473060415833609900965229311075778436119067991494545673848382113068294145512850568404116075585194957927298727230158402157440507833471609707695390851492396289463584136426834677699250718868814349272956323825758292103715926377965193071314417219587074898909627578998871405167653323118511399646332088820048262448374926386664744457976341391582690317893407225296142973689523463698522980431649268669191882565997553835418118721988395236909406567987338449045142482285319394512390205289145295475523605967920309393754264613558259275653155395118700623503509829205085729906341399956839500964807415334612996411465520905279380125931188548171804728603086136408794727336175062034675654364885569029217565319735926838450171655785514482807836624560469080904409148937638206953872696315964308596791067670643729629905510803372116555524797358388155443539379022920906645490198346720549379621451468119283139103552495064533142462107226734343131580989671377349727870582617132974239656031025893550971308326571819128939982720876693549390304409193627227906457774649118058459223401287587961376041693446672479845446405106559923498348098842170618488952056436531651679097356269130274330256839836717465674982908516655793686589347100173332502180407723871227265099045768340611073417729613251787202591336901389997714908555285919866053532013749086362867967208943553162484699612483674580473131424697260300108737112289899172565553559811612032608101589343461585343237823013461717791049037606522921431809826835998948567749846762650008593713510329876426769948435345246288783753285704955055216087751642615157861658909024987119767788143242366063287818412744842795141173705386222370857543324931266626049843245526153975342973764893371713811330477490833792587995978708326547805961061271595595270705108911824946784972742491903030354787303984644640307454732374881786119655529433522898827262392478041168875853892788264842308028320519795005209702556511662057969221521663568831630278439668302528232573483507353174457487927793087452426749585041131200018043436795388145658629242961962423456550662974442605193098803726270489900664507602289253839766762615676143773504844423710335616531085186888692600429444774100988778570904803994307808997776038520211981761597372278585739654361746486458096513252282842887980005658544008734299919401075657639717264317668540253569176564885252827279273125977108526818871978737580855592881165887692386767763057715516115279296202957421342226939339052916882495219930458837385087099787866397662383068347984130173959187118370833366044657323447707673208383686221439261528243375898477114604055267890045624895495328682080154291579830848490879677409246608833186969232276685024195876835044089905238360687941959000968733006178055104986407689321441796691829098295544218285063774383103698329741054128155841895154131690190764814700710987976120528781017652147996271595728223791869871608049096619467653701820009523257615082711937030011119323028524843152392883882626709363093867528217431568014677802075420773648429106998437191602195088177964442374565445904817312025526038822460248899416064178481648615010659486159196333155381762227805443867199601374960309709539610923263181137817248948288982048284477297036206062133026911447571158125036585258221071834465448994472743090982334955583660610795555691016072374786886903434243235822732434176582223123875177670525586295104433703010136264694002420691204645026338380658587009577231047466112638343770739890752103241509298098831726654265735109449806408324945083710425726299295126075137869049959655733563213337943000285699721812547732221149719947379950582199236585611092580710803823838098804921670654576762460439956780126579058385234606914820565286408008228529793116037319748357542991104690461021525736773847409408858605312957871142337460988950135903199878254663583045275783647000141523444269078502649904299484340338007277815494823806377174206032144162460057566196696749731799973935457786824450935986547356014719028431073498370572962213404916494640317008590663864849801221479614636951406442834773696093797739386130565514602012562673561125075582978576970048915349378097465705256933481638206310028877264872525963744762064064277770620830695409326476920953651120801518771860257671177809919340335497750433990607118546996059247550536877828734809681509696467352916756094196080349198432289921042875805542374602310693760658564146102097131105072443633636593948570724194310039237567544858429908265673718544525395224334635653292479111014267461775792159515642382274493587104688185048469317930944521464805696673193785150418937001461351583811465569551258299057548176784298287545146024819144578360850725296628484114655574610076524518906070489180799730030675568722887766459452199038627737717578733926358832755398150704974685228414325254105785503985163754427754969143678248365461239190598788227437121501992017973324164740644279390795072385239904144164155340886590348955112468384755423290586553051849601302003658446954136652646179238631444315047220274487179195938689370217100950383484289205850407497229697177072620650598513054921187081087072200579902809639187407678097241784242259465551222499640585795011387082700204121096887576036287230808831967890257731087491121470046861343740711755410707889972385260585221008009313411435440763848849662601864577574188443782616349613901007864098777584465266287566345171815076857355388846362955103130713305058197063985806319499593968497015263693570201406294095833871650735029028406657858955288634480152843363539202458733698469982653926446229774771658642932412587061786761348605769932460371048884352801867671544683887440689948832276183127112913186654366837312306855103490426562549531140821750789151517710807233816777230407795139137540517235147069806274759807797265711497788057270591930633172089080398078166258943337462147244007727440405330608719045010085448696932335511805955383625916355901100304528849342128320739733592325749015221405983655038862939291839884864615618457040178438048036948124919515847647575841029462914178642438121606561329004004596297626649892247142823865283427930881171554893954336882033189341999742887984959981792529651378041224824376980566447571635159612039011047052169088767158926389427905531553934498078250587718242974244474035475073857205612862497038256138733530302922051362520661913039861678363431100802815882996646819644293306649660199593586628162448947077693730827500630614578557966549601468272102170699950304138781882289569604429432092209869008315736598865008478419585271193309245423282979180796856175929602440546876179455984769177191691981716217553694757403031911674083969760301725449228190844967464149417400801929388139826681785463344483989421979827775070726189933201185117466858005150682700126722556974714455120283141557775217117901483115476519313351764784293001938251585517912293090728383567564698444032228542665933698948055551339851356321362813006657901159872332309264291080423382459562479687433910904636272236031269524374475172018030021533846718686073939958278175715803063841324995565824402493254477250342912235206372099401334415172157667095151669901963435058246323417382508620449068011727013359377411963444289116323236498792465390869347957945561105210207466380342723148683639377437571604355559456727089163604455315246493601767894976175642801838128920189001465968697994767088594822888406365477795739253318371867262348471950626809620749725030520979447133413633650433637894604307807131755902685587304423694321136374958574442692037737850359270539861000249992322868315648976055184121539189065161520470781400583309031040600572055031883212267801987556873552428065293933897957751594375383430760287369847380928432143927709851505434448428878748068144623723972969035619958627312525644045913907657042470807191338037616800665974727249371199098034719157711617096754680184813493250113218218698618067260734260598221680541687703798812068623387978561879395473073548104434497936219355137115961615944644039295310814839467747218775728453277277328976154434330356507787270684600198359334142212632530664863340014109709521022300753398118847775942500122836990047321716316691366556849723584961609547299396017517035867272546538604403335908210509397975374938384856637742143837697907316208493259233355992488678880574012300203384400569208085245086678833725883529583004830287863966674704200476910434866815940225247938205268667997696442652769586213474731804940543413171617666525412863500324517670766653162267693248148200123015560350689021332769859978867135565804789362793277310948732839717100277864634517613454639210158322296551058855665287706579994365681581779635278978447053281479927812635973310321549644993061512833787770672188510550926972990283494810892852184111092291246031187533562789309225253768656799013496327264311688137868573054211806371776638000781613662460564267590141592953913460902287955837195476831879497205296717445528444227660585991627748268671615988357958636739704484606824137773887331027881591128192102140352710506829537987735666278970930112764506885636295916108959856294247637027256702458758036713424550081366069933398309734094417775392138640478971052220235817052877852844744151962771362050266018844188288215215024178123737926663751890130051910796825396056533930726133871583906010604854783840698018212045145300116283991291533009098139888713813211431032976268783923335136482628580201790031990716099513746917244827220316566160150871535883886801144376989706239268651097832047523748598693105434197973078144376848058998601236549770655580932662290022318373662367732734131023674114589257279560067440905097948868259694746379916535766538232247991510229215647224800097274462826670439512428449777951791202601611429579213127514791649583965266495286557824645974119811348274185974815988606685441081319014845468457271780664843798912951127565550080094792577425433499643441892809676054583233559289037401841666791647386000866832195302588837062272793557578509626607975426358522732626076202559026343403797610069052502187813133821497351849392632535169259556532000598660800294080980866010985186721509957239570431448557793238975070096332948288519613605563326108852563708415603083457672288640795605134834254291965337594319318580961793165983275583451159158184633529180212716389312128376284731928093696213341560264898806040879857030472297821701684349260396672526420464915885555903051568416185900466070050927365632594101185537344783607816632063974668924857532943447837762262088800004460399604535279218916239015276387625405827180273435218806707387235579039661098514235140729787795796900025598907949335153550304305321201388674645858787314920291370528767941842634173880528794598178195510704335436193055911442486874288618677169935508472488764691344672532881614966075384546879356569352241335868108321570679364962362873301407397745491953203336536179545733133759955376225880693133669429061067302559238245438065997708465165432616964122048410405165313306181423944625518394869932352243793524160678863022342011922172902464054222211397394679723328715988366392772447756274012358412313024007127530874782168530783378479162560852861189877425376896032161962622399293490551300970012941534753116147875264095735564712440899694061542886375165311800047803905510333792452261730414857486031391766170204122187599004798830530195634460471180381201737144722344539238741468501329702517082678963271705332100706302402071767282377915940080907956127371230003339224508315920386545499748282125639922052723240976238822378665858731432112789332561914943060692701018467309159348015088072898395221301786250478940418931823766974686278577261815068443973076371365476431633416272471958049463166189902621200687840356634996505048226027811357569964997821889208582859943970143367104706199482854647729716726977076533574797164034138110042514837180916135627791105471482565537491243942693275865757749525595436896014683386128248591525246237810130528387371935930048633301528046322912249636161899820909811368010849999175433775111951956749150366680873957791259138256155842317061492887209627559975867845218719321856172241372800466326685378477913968183307210311751904675774216223738974502492923039235821732530416318546699785499975741430123952499090384546403409115667642499701648031620832387582555635513885392685992556592960829482604759934412148290135371238908141741973976425188268449765757538458728178130109143197729884901013447167657231825541286479029774239663636815387750738949068299488025033969970102120714126178938340087894617268732305113139055721713973008032584929891982052202335083990852834617717145498409139841231204064722054441175311589935973708588975932420375252772666642488793178380052438121433262588256355194682408321786644593413919265837530843093707790273309218877144412341056281684134331437145048881229566759902490781902791064415075565411140978413551008292340101743855474158253520673362112133280159028817878122267621887521362757204755642789018614817613365797907477080207331878832441303461168594072918870566622814381451030749982105925269041587613084325911197670440157921807814583718140262888720094348866647773361792496035145722074710026682420687428636821274998333975805899652671228532521485743442604001665782098506140468800396047721312096810194083930227016650719199873031760906351190745047787526802722290923262582834343020709402194373684652096913883471542646410524405260931946286836816125286565410286929277642083612889119350353704909907783308631612106355860576552375441999386581996684748780436508704719689795725242594335365862132239422395369796872425306529796758162801324945966387610803462255076412352000576224273685832493788148466146260928306591554797147394570835322458978028476400207024592204932292899281692691810935277002892149154132398239515427415041701766629993016699611939529329304187928994756097374329607298847928581749749726271043111648888186177977569199369944553353536894873862653161860196811459578266184285849169708865472996835336639964776588289530619423230462162510368059556230000894590952182124343817830691568154390276938357445378337212952031407111668851001651382384690705923603841661271195114542596148323033803391359826895889200225879441571736442732059546116734365428375555962096043217707292314773289407323025684831823891899458897603791891731468788258773101996580820441852788265148701426203961678114499487046655141195793044144879417422637543362471440021724640115773187601047411687465016861402366800457397676406682845173108481453841350947761679603733395392729199826668550113846663941438379005264670756852698682828621821060722653336568701519810611005674328122931696551510218491256341827330723597271294634192664798659863547297608748000063299727682325448529094064309145081433364851387783364491807581850084216351612425579548687992104909217302843510703914395562287137010039278432161122119517183755558777821091816909967617148467168650345795950348819231489226653020063252649730924532460098062895730959451000890874530183383965497500152709568505015251599214513917492572674087551298882067210504537536021998576997647146508929451978620252920672209570908339402137462291577216669579608143983845448963006300019842062127887240360412886723804849638693983702266291348839662370510971209568657552128268803998676109661608652149394683229744027342341878336608074014043358559259625721786450301419429238003606558371125115542330874745418413383366766433813281116609695495369517979979291830798889487580477247150338777245651187448322632322206922795895897174486882118442688302279214701235993338973987390282031392067663716480585079954674468396201659923537280365021757690204258254762186551856670206366333560265302638799047189350502399942552216134198036066387780538093037709433419098233869817241981429255626579307176694067675052176910998402989336219833538240654261759050976439853325361007321160573972385590131406043776694107403887025606022572842160967248250098495849803127373454467110108726024860607123334035266962273816579036282226668398727469570568420530319270917498781863275136587211526203865374764653630939949059012963329027736970397288507604249658368680557958768264062458114245645480158782404044871012056794026308855833576775718149161638649791121113685036833406783631243964203850866210635092728572388437549126959316117501346461590455493799556465931268018894398015076307440895579523074017533298853553843876325378697176947424355249149806862533395179388127970608798883609308358819469905285202795493060465943759256173850168978713384907990988188505956297784763175984267094895636201542594869632330512060665467033241100281133578836868399987793157769045995891961031869030498267752015311205281440147212432379375678808169537193404807655899091836592023543792163448847240853637615916739403986113061377707296005580312045794412399156372509673567188199117303783571001933411368789032133784661622547286284981570666899795605301384573555904170121118372454760752767444464427908153055932195583987831108371793015894778444783627910031403898292711436178730806439307240623681113837184330336405553779314562355143666917929844752425770563703777530852275629234351152131894257702367550776325830554702330817783167822362881769942317300186250222231214742597233397599578135532584776582730945709257322662844394807200861140415316055334530878107014778178879117205979520602160173897248718820729432138810675699928491152607176381278101034137890626166789738356458794172595030678468637857210748800321633068069636039054285917905462055747957426759448990781794110947392281222455786384828525138262158280726599408775188464113370562795214285872373136939452678619371187936947167258129697713489871268612169395851981145234172862297769611310589884132816715805356626685545527149785202871834068098770355870712816073026254991764004313999504784769425698772545023434883899561362982684489322251923094144395285818470977130630024859034069772923590507273388018200454818085805485333766139696033267276448642768414385737315299960696330194876291490329067420994821023634213950197558029603870855095209027550260091240000012331241150039885234249352380187528113321541397709366349447514332375132575456331797149681027957118523506885788800045197243234898324539995476270872233098440341755243472442645200988361552228600874420681618338258789392860999751148640033491176928159558288711579040752505764193199162317950139503883134701355516052400899564738445150430035770591266919519747007662012306206897104898078921238772245914412640359162977520942985729661248584972046558433057287876891845916743605161508115410593332983486451666824442644151328828888618966714974142367731139775203192972957641587877461296935105539130252990838330191771805572028661740048491334941643869632586364170681167612420647325087129352751858634518220283961840924392495097930521293521078804845962096920428350526852350887435369846196389026575531977016484744993116147139268920207194074007292113601596206486533476471409196957980612354510958713121980985749216215261304610838858804857282570063828483185088308905756777985393616302783473987910617235480665925923307745471668452236853294586912376053358161700824760965675536487907274984348575351098658601696535398196574236370126384168091124217915818003471874080558194569765489017621598704278278990469562950291786230914969115107638993910859717021307920141206683583841994963449574099668833143789860655931345252961874347416670108428828132046421863210967432936098491756350757125044971619530411747710458281751445040687976391051811807592991180849113484636059664122271597788483858177146506068927643083385977307517861705454243801725804107760047918565777364750518271743940218573678253147272282848968230084776639345467440896691744634157846824140445883559114402000736892350852284584871760436997505851615719790797834124597414351045028984093311230424647898341715961704832210879816181722172900996884973745899082621250899764264267839944429038904988887843565579696040873065489581565797772444167033540800689594404369451631544565430342206060627164987335848060301057241955474394646827743250496643459974533515317428327996832145591924064977935013365404029324376643086003787371714939798083011115804197380260884732081081481094826044171058666533146219759030766395655232644951564230259431724770052862115277654793298497017068104431884481302826239932945693736050210139252750337058672047720719757016368918200729579388333831325932462688706753665875762293522224372320388289560727234915563965562377526812037623003490515333812246273368425901975703678390371535499402684287177852548258982623301890983230309420306500935847138387360026569798194148574791744566204536909752724547733956156507572074880253022472173416455542458545144775369181444061092418716306841795663485988624655379682816621596293653208965028820702308732212170461120394690833371594674942926490220570713139206228441870895858729503017349900528966966852735028722586153677049409697590855607831346598157704908996551757317449432532734603134273557373300117394701425558652231066211640343376486336557342999466206748706183545207541338088307479987994846205811134113722125841251568312489151213216212143707296368348728498338084464249893536357334061281562624695467283546444930258546064141118287415938491758130248928957202059721715373153008468786312264283144817490829706110404288239384681297944127601429797003290286407732110605554700485473250185994853181816199555461974898038595195948712771533159596739553985820226110543264926031663122146068224623693122850115713304349053618076677637884037449596194285149677738673557832546859890857858005978097504882481557191394844843909404715209913775866510205882124305094493451569699690708756811757933212411085517079743843780609636638167896411350146759037263385891325994760426337968824951360766322226731255840158085300250672564689578611117241606931436434400807777278103681209520556318631599510473453763687936342645673133568270034379251026143670703815806058870049199334258350482131903435541012982340684878123903558468427157466788971954196690712077274149273262708951649626644008130242807688999089943174803547717687988793065632260152638163285385237630553136009441688757617527503783001554733032973301332859629431044287425657694129542959397391605765439119948120422356022500108656044999028252416709596349536535847818981569878823335256640560210244282825767565628674402063461808685932529580530182597085491630267456116515903820243835298902119347880241769974316119681311266032097672328789105271651381082445931960656727403344291707893736612096966162750961505639522551884992605650171069253197179611188976435164682149101316994965825823500707891577272435643220309367066870821742204912650811379416559627556492903038765598787484812807675655828698952666074945126301139219568301065301505971356110187993177438534742812783271753021915723236903005706586467512621564872238261484643396967119362514010225722214992327786998944601683960372980103871330718069446948060071666163602949810676793307685374862800024135483308437596909735394834261332409377153729675502513857963759291107829366274422698265309261895301224863161986182813877621734201268740537097358449273259158151553241088240562898371479261775548754550995727130114314196497764565710314752520523805062273954873890126983316169753554503315133682872710622396171461919977956146212182818708275223722531535296191483463398223772196358998723503141593793868996424534479926753368720126732951844492407486074559780469986190462040857467173357223459312155068675573892221084690576289846121994296153078832535047718337627037096677842428393956041078541684994531496997519140674626538733311128560408063329850731680779773373500485096674597419249759238701311710195125717091574240926894856022733325660747260727159362993527171304021060704923049878290137796669383781339166747322936184309994802799360438735100015408580361213549852448601904053160920916304548831714469276038351935155931028759608415450012084203576293421121775174824222434878577848036722985721782936829777206389213675998868527646276021865756368793425089641688750699885415003912203052449126301538322521476394486566557727369390924260890207053633720083648724741427575159565056209898400816608646001269504991078912615316140718647418151352206102263214599690640400903581119100566579039085608061804185980472222367641663418100529270942123005903803891882084235084649402326553807803948641752774972751390918606999522142024786064860025351355110454486248129822689291495995161878437671659713209826837595380510885497769461103450228691437635511333595827051734619536167019768587467054057449504197390267844042271249177653042863174356724515026359291859090712830672294619582798163946877269946677694570071361370236235360325259795181037851960562442204706502836011177933927815025696922233944729740957600118263052051071634366506043900526885433739077777976276516685937753246434560314482014204981484872176366239924649050707296834408956863407089983765041355447146653873409711788801179185105507719748423333430695275679107974014332989400783788325171036677472906687536791767815562958328753890252672135967765606808752585850140037886040002660184015713026028495446843249305027032444435878718306705138668254440023418781360480061873201622100257337037772966432424295860957541186868175289755056713111907356765472788671693340848596659839601206360862646982448215114093253934589209507003828565999870890448463419762801838988439507869773505386847682357452497586021838284279058618851364683626161098323379617675223741374788294581833672135960630971272077132729459868486782775307308173380439013678880522407075887047235363834654835053848634656602172781085836911204739307003496839717327432147302816852879164679197736948688389597730184362076077831797663443241342130210955960692114571406756923086559290521802995797141068490122035872950507007951999196398181405672625015286587941325915388113205789621274174036921659113629736198345710650662744659968835065575495369162979406861512435162525431571738033608407018609471542490911512048817585861414130468617087961284470499225382810068143799575433662930573379279712645425981991270015153935628662466834436561883963944706825646719043308951965851534826093774052625369641126003518861377252747515442815044728045118889503946144338845071627999015392887892447128815175537001075133763038775208977599016125667128438355680182026835182640272437285595278064404118969462784059215000794447123350086071104502162338198038504711057379502655444968716646524337679230636993182205240938717575257082975882085376396178450215455319235170332883701049426378723439241997508795422657644889864833715292428118359032841970271351721497540833257826735229818389868911105601752798264100677036994609620645550587513489372984539762388283271269562853461630454594972288814311711039787145024853465822391667097519092032424058309961878150077227943236052769377186466471349159817154884570289425815448642142619515813781121612252508428362341217571922098670537511934931106102833764650543106395655075787154403610055319721402007979670984629399042637398558675703561523433291291547796617154613518634678545129009453903640408672048003100798543168817830389948386748923255697083553949720797357925878076542849876962363856697421698353153401967992767609189425163473637037955085605807037283190250073943362324602346704873194546150108453556086915440044303074541734276654349608608348144521253850962977618333261496541038526751059465782382548190810503215567569204620114514386193593760812565204545009376727451800596737081407651249119237605256158501780223909908370419224442568187435356793727992892382989023409830029054103548326402564280073962225235134605157723919408558777108674496421215489373370484594823100440619892920022699639915752650893466388693426729005629698880376953451386693753957433481850059911695292698467877618222167997733741234891245023093299624187031600501785087418333112048198439743158787020783007231787639790122876823973916492428810040168885055679380575907952181092365468510516173199371997880672722735069286009211134480871173176077026797278585612667570223218708782721923314661179080998691722534567585586915869535150743506321539756169389798445358503319973373696814999928896528056604975690186501110369295101599273251634346097089859263523195123453541345240771402516373210575902051625761040911210501275341598989030504340087741349322473577515959010806178517665229130859454968829227510558794536826843612890724434563033964279396718101433124097415692598778522001604031506384529031911323961264487703560923029108315658533883849815677856398210543945522351072563414877010651818411282452986304740052091258488801090812504432577582154401384676745364201157777090313710020563046031830458418713654799237041857443799513818741877010389484258814679332091500172255663964844940657922185412961417008220705745634427822443118534333127570411608476477444969179504619908768489605291076054981601971240409481761726556642212248934568891759759276070076838139945783845334128224066732171321069433511218424454000903446546258966494747884694193684343744791044994994782881139890877351309308933385529653818085145276345100233502674622203713399187564259108326100240927967707050177069080768030584395862298081404996779241607841093456345215305884304023119655666107717072917193340249472835503438600573004590204587233783313873412234138914090900161975511366768185130960186043699141503507331266942701802034820959056602273241414120614051970351699789605781301581181041371994598198606419426167147859848551206701257380990505565212001961979004299361513748280679198677933442317232484499700818117890997063671292250701915888634529042532579777630667139719726845121465312902737316897154407863791915433523901841696685557790134643032504061941441104184499578888133534373527558044579642334823024097505237194241067732514061515249630052919865302889765828856739944580339086005394634043949574640100265080408985257750678033650563047655746453316104244666087122962173300996914921838752638212817733975644086266599242955060101147069534434018485763569268696907871779257693456194915289713992481009068593155478719171969429094917489837204095625435841427028871191673308832771277390687172748220248654928158374106701597690217856518410081208785993881890210823712486767699679054469974888890354121166860410854099469608054083610146377969761161532739500052253206243400454158472889940275763683019142303553534504032643440091310399712859842385008885525822615497291865287389334618928856320542176021456103414983320664790417964264950360397080864680542301551011768653428845025020434775516507809926910860301239722246029945964612723407168955789109117504067538489021757446106846608989243956234528409143259663592842466995297249513705281008075985558982001940807136065484647585770809687299544855154098989451952777353770584745266173301781201332011769645369153616382266827525352533020201092578520449049784130218030317439290317154376007002674566537276893597196758444665372026588832199899564147369252129802618210067482039426460278294535226146457128355107275911395026441538560064177948933012486856231071439859643742290549538918690346052039376421426236207325638926813028677523571632767172025435201054832725550416566668824422991124888318005386322228581744375794455603259622001418157336459768747162287619815574945406282645522790051531259536433999239630126059646397762469564213434510512968210642367973966229024442942149506180841582049210930729502922302204785591216137232687605900382270920153540735561945999472747411399891618853367519336372771869618402678126238569718909435284650278115822984863805774094389128947320999962925748008403917396185449982704765128967417545630171884881693277345052924920662190534365294725965685786481126203555148858296332709617843312236915772671325575655643102241554205870099498277514118816875495000673626757004902319120457393481842440702427779346758221693977441799387651238020958919839457369426003443109295944536912431903895680777384801833024531106805728143080947584689098107633397457887677072830114718806617600139456355881521368357500352221147714069443047649495296936266817452696871547257675392939748825689419844267827800575082771221600069011307188900293671754811634282316511306259903243147139546408265011858774943904810813666680661875574086800139681887951418928167808275611899980951112969361971851164092349788753494635049528276609108653191714268709100868652637945660444825900133603662142038738547522755694098819150445128172111529801046284257468873890533107445756762340718813809094616085893576523638109183485408701871231022200900570686148320744149072018159104571855468281667530439369337077190317459145901479724871454717963670645562249320011706447367542972385277382890093778555819532891507696719737050618190319528090165733786584793044550816555470450174007993642670441812894446286754896795411622591625631375556326282849210462892222311094665696729524265933549500432023687375745956954499105787026788990184226877854008813947379025374856821385857819313618762124620439590605257054293491946965658484524510029580405379388280020264826019164096309038623626512726659551202832438270030647620629896771324463065923790909623123471239326056247722539702881770435703640246717650122810385807162087864762754574482019427126850533709255665843160231253084906879416071392001907867393749266558855127692635148120388707785289631083679433459240499459328836839377675333943578273690370951510481909107611216082883224590141991773270563733668051614412215276056839730951936352514018526192993033997697439267328198006917607181144791532949945059183413618268659606024163768444427356815233811100176820029693582742532925186232501237985859313740340250626973287290419796542424576634574784899619526660344920596306931084889450953594211896235012592658261666405627455566877314280984915439656444660080103149766048885181166265854962091521108458279409735950537607372025977944017894449213665707177829990225205037465181243621435117236171334940133792185372407264338428721077471750499438160478447088617852347274405961463147338366419934205167057867008379224661828027159154127255781282886563260273159475959024937902728217106014304924190059803174344505378613812207842619960313348322962740060921560264585359885452323579692693956184807775226227661565100338854321287014129027966969521672600663032390898334760243691046190129265107529788925444162380463989147326925921471463900810436841745027080128494983179751178522482675493605033162829785884108072166493628887248744260734468265080082478059391670075357296947396997858127094932706431746547451672437524064997419836371155836248151851501186504303700302318412451662674971230334837585124013484739030622554712340567170564332597166334725074348641399862950620800064747907836803842772442706384293094653524113919614298137837934299169157084674332592172043050597914955480757634667794375115672914218847855444523019170002438971321043723731954845999909597926168049381078182035712913598214742599381092706524333787605298908944584256581413860050345548039601648586529677991900394773717276421715329336462375864449741694654837372630639931568199877544242334802073340757956164138070346398929361069274530248666551638048883720043513429882221011824080606761717524704308675038006604822886927703802567896169769986250543280977142068229873839773900928883162176462778125627454536907651220130513687161859232449757482668480870514051858055916777933554344107706328402152541406848787764537346351414125896890146256630407656760560156918677904973406033520007718422489774650555282097649184292330333168430300389654601578060662635139161198512803779203121692755001689400339665574912809562532572116496242703612749168222559562295028918017070045266760568469471771827095395923217825827791159601963140528204329823647696437139612161306958735291580603730157842061422166826367839150510009579825399799621196020358927753735598271787593623116435523019500829632092152184109931009844855337527349683978026251701034847430707021532952214215714511271355508017490650221522393418575316238098229177297599467810134302602643897247436796216276737875884731797377840837414558167966927306050558465438445018366657403220595301969545235576686229947712216346669830907646610177481464564202368764257170025858380064439056336268590538057824629856563771894559826214124560085051034496676172225101051188361148614501050408873815972031185910331177645390913853531241562971632713405342223360859873055260696748281201308297527012401629345243621679547494219107279947220767129764888738178374612138337360090506531735812578655576354749424183024368185340623067462493684316744435556708062115391843750334842747556437869980250485893839819882308558835700389993748136506496336565651101726535086540660163246439345138036558913592341248932298489182658417375414708788055251103831486194980617530483161972816450325799720498341597427905641437091719574186742568814674923319466181429276215375598770530778824692372444501544347030000076907104059347645210753209810286845990026726738972081490099714478470308543619841603356155349130029741981529572313981493108618823667777928000848351355649920732464429800672983285520956678348230433814591827180714756025001286430394820148209234839205738914457795025960384487602518014376790930454068504166312599944806784551546189561171262336843991979214335940503416156636450551228158568183070889467429738735676995836202094313571390525818318118100622194330300188314859837301904422513721260257281320601049788027297719712742063956353398173070882208633481594391174164312053328741424437982823035133808482157934381668336937179205880606713756650932108656327307071938487442641917099134569188431719083507990366901629935114596585402573453984816001231268740977189237323392764347379210544946655458661645972548962141594720170811194563454390793517387509928267848357746839403083198616942989616140026615921467149580167802002672958821000871779619372306824880283239723797323818424742450178334084696461559756705362113187555374455797325864359417949516228519883749665723946254854803044558793719560831067753784846003504638246193837823220543343994229854676168056254133498252164832419602712842529742298856430167171564089361520849447350758507811579482493965184267354166388680388900577583912636353109391197356867362631344700871912425268166898040786441337767085614239673016024283275382124896352362142720919357647454941073899584755659418213773912875944334527123576767081052072465052153871008170494622178656750974661736807433574094431579803177008212678449201266838616930762203830714719781613495806518972699735098757274029110846456247199693743929088183975710791064997087052993170904319222302011536892553574211157611870353776552435344980369156485349051587761778876209127013281405495589966903581525168399303321480136617398327859747118426043176974993369399832123067807386380685259582281393671124919832605916880338686062444582560261027203899326012105524852786103150875462568773348034941231809972649652062258282695162209324779146060345758371789442038353477810592690060498379669445708084147199099274168877780013776287100034465556499106510329275566647363360277314573599050680330626640065974780282783612415925793095650976336953098313029557537350514026418228224223248823228452131542479120069480337547618716780005901332874062526839811211936541149078114642143996859888574103373764307335448538781397977754974981098541521076655383871501773120313101000569187462418525084388451803468286018491378913088885893463605035232935959728430344980905478880308055974494761016893027998126517237203406041323593579740543823108373530619319420779614326454429021693682742628834854960203483530713792981313366500831746425283661349391979709153957070781258469680655780882719783072107180080536656659363139251283444736636793764135116452050989622821181182229486300908748505520492688674558496870368409819511621813596193987038570485498459138886102309851553543822972712669202233255134412699064399461774609374549062771259726633345659567534976101316028162106451483523099588266515615325787844998016784786051222967163384498185153472422528357708762234070773196316398083984664956324554785696444416284091377857802385138720572771443315381304555605833542421690436641001651543975477675622339965612045127260457416239538768715613079358072584630749690349686205801203302206499854109455060867969462889335486463577971406974561043025637800251240894203643469486118628521063596767706501573743168373772944762245563101404475214259535483036548641966402036006633010977202613100760344897616052626650223813292568585135885907605199494152379788824751868130258899353928133672899274042713194998529299651979664389360716272645253647396372926716324705364929295906603381591309415342159659674768013468683973586525489793927781194307345059984679266416666914640781948200144405765908988877550972510424341199255806489463334016383296771984095754918233148869687238877708687730438011605695025271360528980512216799754573993720550941789478919674275065453408206530019480077522934765295814260957372423844026048743005448343424155851797370461315795558585013331088087662376044871530907693437584745399922580550143576146812605982752832563363404247136360079070625232899435600941583931121827147222164687527080474406699541108504192321503798267755181828950552490608474273293298162679204333791181534979881905633720628856637089825439398716690025573861071242781805901445261891934850079965936324456513633271308326398453905225752310625015930467719085391762686214382880646838642873766072187812205250592608695429572286536439667428586057449802077449599956623206230610683428283875824766062676298484263789305800489967735170085920131199549744631984270800292206574264272746429337496983988455215855364516385799038284607144002887703659034522406083849814469235669326325336652366038078756012974069227342479954511260353189207530015531690888865130819208935109228072802194162455626085569400837633814247535879859427288286220462746550776222950529338386715165231829743078970948885108914119386984616204773765144725366463174848586143450958110409844888978167369151210115916153244790500313467548498971423609955722020130052096086951607443058851189689831027981648264249918718879205595907446325126485529365291093664787715252441940741025055628379041444754385557761738183417374437970998364972945083401275389827720905141761758651048434138597977957082514126411740805008466064173981395946974988127599442636756759501997949178937395820356983888219416592727555087408417516334675040003310429051385645790204844962787247929465665745379183614934716394942968801407205643777614169555965406115752425056610389577636857969129135831672993963606518141866338683994605361158142092191513822102814390914495346186893895875300439980399036733116941034003530775582835268920273403108571981348394276484779591637043367799222692244830537858241167460741824381059651139256708790828885634616427773735408128219645550769307716083465800560532461531818797984971492887432612977558025167996892901616462904926104862379579077269782228766378018780688227337188647764467007811575545381533989627115238814826192062288356228598778974394814341690004883941531444800142932741898162255074939016818330077881928399469403296819488421802668730602179945503874619179266476600792245880407757270903341984832038831649471018152770135321348672481580457655748563005685750734254557348421889149557711616724794910576965607454876264509407162938320571745298709667552969212840625064864118435139462113467113624230613045542757594531039356476250375093629986140029351256602268585238803983400769300659136152031495226439972375884753728942604230769604711737487188695794946826265204623515435567104259021807094084734338726906585279735494071179192063583668386603896888999771978999238364245278899187545442061889375625784683689612019075963116423213518617476663335207465294293473350965888906327326287158413579009500540559278041071366908469075240815999335343098905607643235105872622406875780090242553027218045595311744744834711320021204304388327020551027161597402908861544129111654134002179412781131103135306875326144458924444010690992146794171542240338633221668203592268642887762725647916036781319783199309748570740043609462019199980668480411244318584566141991063977042748394455229831251558662107879319924171300055065330641558119456832972531019218330404937730865487669662981917765115324558275826250951177388487501569698605205186279618380504984995499753470367606606124065654468867290466466291388229419988585693379361964794808081902047321795384722088789183759780319887499344764863986583495378719901098713355261940889798294966669856112484459322742070895142277232286005223575967384044574944603815693506791277095600327831559302993834054173502775360343976257183689287033678161148392286424890281320412677987591405849415885760118127236292266381424305232377389623772849864010984521678181638417160597253593153087728072520905933183924230655108427792914024681046742308294968985806963548300747270407128940599665280870275268087227321569889969492343364637085762081686625098714363345373298835971966991338745161387609737507950097763074679257104688775363016294804070553749335812957413194057129042544817306398234572435068932565513884391205788860850406756142532068444133202264002100904378284570317846488468408794554385978905955464592363807998379686693141648089403415304603885889511343173732845211214260593903694895778704504772691521640069229307450908584238509579098607172816397793829645279309774465406962769395084669787721292912829332289555328640236214868239144752425413931189953592607520594098235903707719605144521411227020810541664665909000986375613636687198658045146046264781062773861465780349709535302013823109810886017469817234338220930145711615182303119333309297785205987972836386326763379550979267864806010406332346371139139557068100560910666113431485684294703963366531998021038251745861982076337293140754528750866298837747344897844702026709644296735508663833023956709497376942686196049787393817958307351124168401658423109433708115052330474245868805728374731379898392740457539695480866331731249793677927682594457367721485050243622669963022467797563726792853645631231205702987015294897113719816203351450958809010122466941940151741837191745187921611704716050498607428035704545460798119650940980068281717754647029214281328670054382044444041787815417632032413505227100522445255800702832353364496585205073417999840282632043992105261053130811909878238725771364500327823121452962524275351260476687254498051783905070457827133847142477374774664138317496813651064991405271228153757495007320121773902494562283299540471148348641008132581891826629281235856992032914044135133189880991109532199955891872820691399678959448516434839924305558977451035560391496876743713467412023074231032096655259095760414087521774034981110080288192327918217920819123626709583882987020434188231833480602031449077566757129459864441905198806004354988928724004718958029978034349620300588471874386925096495705753379855385821573001603565417889885547187931049099351173046568139640543478382714952810373119285835039428738521974726510792504905102748115937055399346068799458393909638503175438571463541109454687493821695727969845147608131813985029851744289967711583699227218696841417408088766929602147657794489681927116250185476163199280363103080778362389414279444349467911016901036010775553771942314281724106615597334169120478349228725981164208563637623049372121442426938922265720908081261088324108347470561903371854322872339048354187134544174437276690390526226970160024314855700467949675259905857179026155847549240064226857372938972263762198780733814912481697016925206737769056003333326294365272424347060208557989804627571658007398109133322643892369889763345444752479821996012311165140512758200372646825998568438608290284229326300332017084831394556085173209971470636036852154898876001729689322473312453329975268345945659108241606826907657873612227129750999616211870749567578383959580028484266138527469567976394541616704708812082257991788704187476586289120243903066865848772761872071134014170422661250762299685656785914793313550727256102509242404235374733787380255494158041921274683517952081458781437247214728153886990026694468986263757316463500831405731952375200118714708748910025629133746888311028203465232896854847052374690109610157351210593660247575348326093455562112779681025507529102066449352090552146551482967648496744588367920207443523716029606947312201323568615371404464143909724141340026895273966382405477348081745851562401517630003374565162028911473982180542838218711345296412539724111567241040579323841403792525907211790104703641499430727005181859620298605963088659119774553646069886416580628243691108845219900246550564496569916715605167816639074918889964056644136436347605838030619041483668342441046320854216510787084419599451127316641450972743096976395460486806363986145700473577705596579073393197849799732836774533316759376252921665441482252523432164138605584831179928299603512063103884816095686247910051968659793084546487904153002735605764418693187904758706062293310471393270818901994870794170514489798182857460482596140135406282057770580303206094945972780866591344210442436409884477651739753746049876350082875262236567286420974896421177884995511032390155593845323411985426052920891946737116925564834747920946685528119617870241825688655082305702292488913253591193679470045426020289181584309415111109525684493979757638617692602378205535383788092431665661082120566758180157516976123017724684780849267393316142397963032600166967947285479968362847104038851077738860825857593548622012217886835517622018351299269061953178476534361295006717748518147790483826571863069266171628050147151689487056598275246669258385149455698776169373069593666389668631650331628639318588664294110497017105281715569003312301706915846570406015466707447986051618261955276066280339679533648605759412942845756440233001672219881020909317859774127362604056209997971959265474282976792464926795399504308753024787262215473934975032818515554201820804779934294067730879602351659253259535991283003980749699003506521786561458906694092934223562321453389908830993685224177225288039930917330146455009612383319997221666567966185307820178969819211353875609999207635759223829627334523942724836106219405744792350063773618074543300607129183709999781350514985518051211280145022137472458783583632617728401864832888702271285902523427373411034123560525971517541980874543340800446008526117287315592129819786446885707966045181585776875347687035745760146328318203293282373576754608341867100760366081186713406416213707428389940001119544720914977301146857341736619827757945636970245421718339248378343164422927534268423313012968659783110455266697868320094472959348408606933668577695932893624954849129063509824300670430019720544065416996883232543048397939812575365338946662105765877708075521853305841752257511839254915069967280762192096181518656306850203925771738090459879005441123875705663847429498777595088513814725804548141620597570856264482061395951966565590486418544222986994920424676198530192892534141035678578163016941173491840292635478382531530635080315421080729501953012161130923919109346608320714673618481264519200150467748536949421833999865658349481242720043637848154351812913094904823817231084661285758861120644678915092454809190637190861800641863124793563892178885762350814409614933914792170224057777894745697343881139416902860665119872449359013394577986079295983203342004850936597743300856294896552347976971858742102762726744744692858452055884717891672838682470799937985943619805633883473696484210156392398238480479151746109852759676083823870828912501484034698379117407615291987335815387084067987470457964175698301220103553906932846983067992924989441198246056449680979685940948861541674495812349125618599513382393628874068240892552761803916720207308975245999692932553420556195947666218817783732277321698530718626473616569363141579006973924426580554440258115906797725876467600553562104806866871231994522095689582979182353096414619276219737965175701157743418949479135223766497100789641666975108899796998120643550134256729286828222781291180119801173883067924383737149379227636135974413196220190386361392368727492401268721143176840321993434287445804236763677677167626660021236578949319663671644942560171189103353364545812512401721666379639908775579664596780963297858280039818704466922979441827950256755129530891806977345261245027888196466317115423737500219449001855946448981519430599296539769779308711678073566604884126564591948938329961856955123008376856414723006342572279338096472515209290438706414212543462458339912265139726225353847391723408979123781439590584929102031841205921430986394292651854375633865028936616707128107203526984588746453557548818823490527390670937064664888540034828872106689581085490038767786617052386032412102888766063570186083570558266479082485632353713541642746556200307461958235046393624092623579352756315073689874876493695428228117683260069105857541075739463718449038482397419907551157649857436918521358618049517026565309787444765829534662544163663942675815991043425431677330706405040508738857312026183043919515558725429515176534186578574433843507398253438696359802261138999031052978637335170923592870040046201370444101901727922451475017813112468272948996603542790984663248779084070642984526025101730412934015559416974777531334490997353701636676702936569248567041408431958246307983986817270020454231904928816035963559167615585893171330721368306381750649953790931775675724103999480124065544927689308916528186823620575895385636248996642147480690405201513037761913377447809182693930034549300080572647755408031424840283802089419134242428310096842836777905672273424813054228444198932730622970725097573011112418265697084450591815559391369196259740902657404423638530165589603757420787144007076118669631489367522447366425166552372566832557240774120568077678087109555893678659268293761535383340910795918245469610236458553974321542463839594382556493257009363184031532618614083545077320801418291988385913050712031491985878670283174645014956013712390619490882426935298662161875603242062934446040315198160470748039494554059717443327410181541643594763523463275460064452137085522932743332441295518115381736063757604011830901535112548838387795205150413529417933502491034151719838792068446947190710914969929070066394403471171333700323619052872357669816820399484752322937489162896265970495879286821782951694020868225071839284799612135227518887294955000899304814057751241476431395674231166584540393159180305974349467149110538254241110876023184719862675424062551150091550408978689939292092182926377014659248483941491791278543882839653746261951165898983760930459394680370123136523416747629829288631431875035340796151958156115824062241071114051536369007287434464142135237449483518014707641363155257879170733753299048847983510810139578271091068703027637291199851096902306977091950602267587119231031758725946755282358888281621534919167356868646979416208229639532901968675943530252903392724045780649398250416966011417757136131324867832747175226675106558802963664307955869211174862248049713341394027198214321451486619476734682844252454185584553958901377468826881075293184806625165324103379883378012041596219518077761755346096326241292325151213811768051176357015814937655760236853164576381374490562357759385466495753806444427763221634904065990848215305588275587624097656900166183899022812876405043140813511800229572288438023337561252258335503643289918559342036366194956825188658575949784040082974828042892613829487016005499428365686898290615409956240825604712331563806983606500814260746998527025291083648394381009873394740519521956109510023746492545232914274269457896695556643660646833180038496960341942134250810618477582843037338854562927997042815958263884245622690953547877004729954527538474280999416131164398553217115205295040548217292427502004544311314258306155315934255617216182288836796502418553794963029728660863419293652893771862443503750553537165986995270706533694210206065495465879857371252008050150282190581427245524849275081798180396442282214234553334557576981262838111970763104996785353193320460183470025115521379092019763280361773969041824188265045165690191873988517413862589974875149655203172126973955921428548601695946639981613838356206059515112761948716226203089519377545093012933603140050003949710606439389641943530477355411755309193087805650425845981372526908736888993650632266015015473776602939794939087013956414369232160547097108676380700646391816676098857257876005266310263604681331400953839572714843440195719595027285432478552732590926674899100564087294077825098483381873384864252099633038946402423316305563424600652137166846542772926988775058706970013687640849942464683104955955810291937960539428164582719335966496677167128121281351799841017945499056026361288545025231001811748128641894186628078213154833046375405331929601967956305289504556448561242275447525691069136177899806751799197716234099283068147663442810440010363180884365971781984535698788176207027543088757214918608371342338995611256745349967372237701731766324236145723522971434740945840990700114715710574794862072283111605357777969704770427246977323495672439702230673572582270387017591391593978360549980424334049796455309799598492599719955982639074946455057468381032313039714520111974051044124469235511451429614441198554140150332636864694325332520695218301850769984727469464150849086480907000926976427651389261417053908901929022676953744335115104418610717907939950124343946376146423749243131048885730688853238980984739346468611781617660346154906893080758462670268562556679029168468180534346964700110745876143620433541597813056864627965075174042241900988355355998150021795466932366088458689838274610908544657045238559816182530570772155884746432581652293142722925348382815348922748892618016150308733226509447711870740068291606803774628460138189409560001169096200620540374538706492283737935505477626156896352075754085878921848066162396828856075981226078899391640628810356302503724142366871463689340749943064927618227615925629414290490921294636706789085472511056049320219810171524062247267710601487734207027030028388866852522412965137123367543108524893506487060527608147297779943416884689517904590919841606847064921840629180984922678216230153868379587845972730416527230952447027605009081454046923920356614131024836453737615015460244760865107419517040812907603101478023707106323573543030097210294304134800271073642918263516838751661789119867675882770957687581071343927144581229029279843739887406700516801279579311868358702679703050853211330024069866174204892348515210473987686348279343751557957298068102274173430271672339939355898370553109829640560952286215215540088581109040885062331211444875782452185556170945047115254589413815223623811863438352351429262531961314916627119728823744925242278065856827492339887182926896533509058604692412665931911160078917271539634713183112163052935250974274483548080210551985262461834969895081488717618276366766847649622854295481481920258747129549250181994902124951040133330994549225720328350596459746129071476315194057139623408271590485895136621674499162979504495484311189445522171362922910844196496196132662939950078675948597808389469929905024771862808293372965078691499124315208620596472045613764144287175194659267935901423561953169384504925070985833335723619273333971395936360503580840351649225460697264974675145546666331882471594969314537755617272917051215260138385805060500024193246877789810456270402620914897644158505974541344538707542530082761350738046760088942295883710500022150790413616077353867772725419128670011543217096579383552381439198080844068129813356668007694142210672047448643431021287249398935655525819272241151700436019089875196423508527501966034140045019044710481161989846942768307321544952462990605187185102221364732617758085084614666632630109319783883971562656876892322729408979047400325999568553507625641844164038749172414267384521115635226234118341593670241624268903174292740997723114540584655904858737507345026147463066486093323148241451357317550363915063528493159334877995616883376689171940893306743271709940354868406098058968062916651735705764397310343742792994747996896605258846739428279116834490208868861815391084835025715121977151736826365251866709230973539229181511853092451075392175837488340651472377832137448823731073890629429876928971379789059818857179428269162920970719523328017415868215325713151630561920075035284607754466085449302544406554756968335655346717358505650326182746395081955430145024663492432498370245761346459927438204112162997978194249518721024779457140558041897409952227562536647429323863382166043952049108593852506019953578096948725409844037189385640353008605692300768693274278358168469242361989647246018356663274098279229657684147536190627068155328829178948198050604537414845414310338267157261750435128183039055279100864807142338144964984500483476293522908641300480989966997049979447866963099500468522034840205757284368227405156076237312438314258948599919531673879432614143045800624210775516232666394906206036059270937976591876049083350630462709784817910355209070345353481603775835772082212044300947517346348026843732794645248800675221697125361165684522705176835710526681322590223151856737932589552955921469707732340427446751545924611824023087955065996715401482169583412778495004044490769478060162242535097315226669481257833906729028800671962725825907029047713532270547231966424436290681976588240515995914329740338977114832845215701559495365103881946246790226637432767680751569109864998996679756067857899157584707031704735522125162073415915294150850523271306831711414782150717084095674371724000413021787753515435381062227102386115653741409049480722171604540350069243842933617786763330688409253861062112363588677468173153655736500845091261315801103752026136649514651076344056723469191267047416118232867746758864631490799853308055795809816555018840767752884898199066337311255494450619330655292316877575955703054247889841618975282599142641059693654839440094502959276242002313163581291199592147407356259806444907853712152048854882656940001087944750211479227800890661338199728419564393222812381727999095033930691925408527051838065545381793898460674491811242424024703463878277451506487733937702589754917319442920716045211926077988099702696464791907578094983881403081664219697432071828406751145341227012664084937613242087234119174446086286669529502539846239648064655300041642887880504742566444335873780980028488518110757537483153452416400867568674387145278165780905793005112073076098378743598493315921185523379241131036826970212928278033045208955546033383361029969864541931347247857238635802771422494766659308080944300335711740060401905570806931298760849519553373067561580599033430388900371864224951456598562118045420712276713821433252175369494381484395770125247410108485538119211680957631182056147935077768566378193924040981694561752842104134378698634241098143635694280021851214837479057075951729288161728546677282590225935464674174259340632084690184733434625076123857773121580151862698165404020647469041157068562870971554002253861578279620810655922188835557922316735839676898259498278285417260214753755818493840573144510564702267907015134081695475263077005380429388160822587131461826054839965705259227882593050126340017950935683068393506205952913056801929970681686171821086765012802507458674032189439660093276246692232438595715021172668339009786512156423473271648677636839734312533151646648828549749631155959929771424270476391298162586393689503573752608165089814877831342359817497554523146663908659762860293936383556114677906049130090933966835382008926833356737850951636884767911895045436786728500072551648451979556924919927560362588264677983588533768124791327000449679633765258959499391365562545474297527322447220977030104173575413156794033918933328165851720823784240141554675451158859116258964807887792086776615784470303057102387739762131523356771478978066260133147147304528465322906684904794311396748172680431165521569976173300065539802622840849171559206123680393888699912748968875102435185417934140477477358988651774766011092958545086285606968246611097082042959621878831278348464549867177139520595152874217188729922161623655286017983337695387151303393740817748558301831671925770281991832103674389134525879303120598796997831988441031673145334577576736303621475515404070174415152809684382851530403985891127402149331504106165898910222103569021825763402977756717185765846401517181937674988181861632095847784138165458165042680819905912159904810335748370217123523795671459401777814516555695710883293614524096864157011598381316268609685382377370563598949732749565802451823235442028145808968833122926132970209573829505430578477887173784751566561671870338197355246755512125475650473533625491526495135455669066562508274060864323127613526490944827794237709745764564330559047952958847053907520999089747017925095315124099942726709209566860055661967747269304453583060558554028503552714698038748566421504275374423435077261933247213907834827996423419704979191320040786873517987720663897700749063002721380679698426570159236275446530901419351523563832395902885261195703108696568663122699686957655724800101222664817465760703315050614491696592910746337364378437220088309837782710250970266029124155006536571150165292511435872332810734808375251071557823809568508934190079724906910760658441509419242272583111503806199632975929709675497145278249969533606533966428515841340068999898515707994666046974874464781469304910687133961145505455181173392774287411641147277783814909318343605324780313212295291269287407695451636740927269686317647047479348538743819305111035113656291428597662296409377913918422750389609952088742141881080200901636376766480702278829129635306440053476655590743502387505341972664428881039151953476826075817252340490532993892375201248899394302282226050852785818945368199027053493310933640388665117310507160331376628024644936098460806766868098054862906158486936173989847515819542427020219978191316200985592392373629320914007756198763552349389682133187245914505796699277247913757910030370956656455315728502654373614732814686579380824383582782986338256108231997933645404117660326274657394068103638085770405983387280277285903631918053980200060646373024380435798498590229986115294147857189380464663565167375790885750415491956116928956268228575611640372321055985625260186590499008000721888796654451544060046768450182159760228777166693582324402788137269589758906508663631474643662595324720515765639759366149186819162931890340397582143087336910307997133131618636774927122103592187466049049606923086710785836016400307648823100776034152691259325807620452743259753020506453027291285342041405784386094497403067054603408457905239843752343715406826390717359962030084070435178937926673344503281489130958717987637287516116719269531971903298619445173905471579810566927787996998205374756634876738385389146990952486743205118682526757041909888262581253522636758987372407828769849814840834412842337598317092451521584793937134307611189476796376065478874115378933318801559868286370336991744309072464606169325106942900557738557218178333485800653377750667269892245040493394582847117892953629415895954823984933482979199651637072912240104943127517641956587825476808507898082438337297989631167060242694879770555911554383055012059162178220605945257273940144946989468752996756200557795389754045407650336547658851634957462272857391023317660070733757748114192233529367188197325193843035840227248639885858066142720217929725393396719459968965703351995313870817421044054654632744748607611023832365355913679178035926714167331665150231483864619797775436235273808493781864700603888743947465164962979910953403847787519004837515641494250003296037330871310891602991473852020097322033698904339535737118921586380405827403135111790300655917765870512446619911643868725059882524090720738394201369735768469085076819397938013748644574532779637033058031974633560108936285022594335160280552503178025324059016020516397338913274447482894633099601249233822428543819338304756046617242215518462184343809998506036066147986202854056083487610131404014079064465211835542462443547468967000329603950790641781082818172908804653026381350231175325497647402626657088654448537390065249570474888782286503717782757657470508688876066673978134944287589358834808534036238820836651101454533423190959393259587629504990641633777314055870381148362076903366859692210085793017696654156016413506749482992818375978057686728762155708704561416203054629846785788941025735031048563925761036867465833688264821078440021730508291811950757473497336408579135386742407865062050585912371579840402062958268216526409360887490060312882704243535869349078973119526081809612938810354836566656095054984926899702391745833154001965862714901037122876710662769280255581215672315487065628293368247508981232682598737563162391517225512030191161125786030568321768438767578175677461979504798983663050818731417361259189880765780274246752566964063577488833335510154031134924904049182643495977591879400094766737346323183394799811842334883418361869835164167869342152166468068710341046089802130669578949817790355970429312946707143115369700620697112035775858178648305047168357366928222815627428136939714264833651323335726829744989476661527862742510788378628914061579332390034323933489142107935459050286195850471700630690995512948041291572572703663538739416057730225674268048918085776944635099287824538759941718314586640162155796190081580934706856580811446870549931178364174772909230719586015645125482957706684867558793211264578491738547871898818955254893243261620621808949421745724873781612121111898656949021927626737398263479428555754012972893931768643940336855318431293690197602401086159023126615449238892408948084012861671227748821384884264656090916058577143333968781463536661302347049789810473641901434367962262975973771533273464235409959841301265859141309706037715996162668782667070958667320938056891055565097893958030240821578167451551607471773314515857118267420214450310501221766762543764907329036115556783683115054370064390114127342897077678886860973639008008925201308217120556700095769725302596575303978047999718372669715456661294166683894652927428923883505544385119004533963645866393686780824848525607258523058079245392912589646649613798531323665482315895706520006932890578982158881257112086441122962895175599779067296698192361923145871452930905256623524197010218388046042853534537795952999624512951103279274532894575802764081884872193637183516173550759193784562066887243683609021524466697187010387806165553684286673940179372237054638225063070215075529226825045043915478672562639915183133495745571847536935610943704333315488232155970928224729281536810604150478784218646339995423578761533899725485234171655136364033987254404176782729703437280456119070762368778688801363312316323678488836429894823795546527139153992684346718605911259294393123127543260608073518126703869136252949231225198481489116516297932278805451341910305331995789302442791525456779636535055000051482703807044311796855063297867697063424115622921955238122369624514661054623413109335991627477152852155044592766356909613310295614212817256615611343581325798826308257567108198562024574277945715024999700681754308863046060446006701856868492974314256207530206504754580467477619098101816159406543428081880122263843364250751624429309157712182506315443311919209097012654359096377334658510470299802372543766631112550389562875327920211525391367987814092250939766237714020419963329767916973627350017037163502013388740951053817138521554070903718528199026152978704161781161034037895709671844071794761903892263708614710493927253489313986470211039063249589644335119305054023715432428045444857594298802131997519430224618729646652077889925196360240829278851052749867008186053100410316767127930097996815363408007158207845670670321875378860993091834426245481555454802800604666707278117918040116956861893288737244615796472418440451255020976654506164136473221317937513396075499243603079070039420331896974079979005880570861947703805927232456228715726472219924071062682305558371193141181870541730771273574232125365725229487862223175979214056104399548278289537720259273148053629726899286679173284938866816146314261995790030278207771628214643564715669124927588385765480794508469115138239247070665855533992780237410070284529040470670178755636732005733343051990025893775644333028546984548907851428713537481823304752934124442466204514368912747537279718328093109309385286095898494457146739424532330248226740056351019943264059447660328298813055001146391969727256792658010062068065733151182316796928367002171244109685440718300116036584526109085907055155759923331023154397356412635541723233558245891217016868380216771668715234731981638337229770079553970961214732292336157040905411551494439990119374023362066691723819121801475050636042875958995438355142530498142235751557279170909472287575474307175534093817364136698342977390990586770154501895501529155719577498468262123028638140422643320697014231290759313769469451030999095367352160996039406736584772910786713540383199753021554061284915982561425055239521377132010420912082407518694202101727783595498628466535762610883487353343458585149076419323354220754062367244137315495321114385684759058696134213451901349004274211761741272329090308810109287424322305771166965741541001959164937283833285356695119890170523365809530352040606490963873937835369762063667887262869427299681601970304607767843588637984833983856466279673401154855056937819857248993927663919065839380052659242165992970445688989152421320306126626550212739990663654689597988786706869653152358920358029977861661370662138051260177564152368562466770220142210242176129744447993835104778617109769492474699396291895565404987665771119561884671311998890915071638414659373561084927114640597450255948042896909859617463127903572626698725119296830222032653775439685189737646417321848482995574165402274939454602391387002649929895026098966938913737439226187441615908902385703678726819231751187392821937991985620054199725743861864063348040990214180186057784247358782827988347775546150040725405455249751742086104810202123786629012337334255779790447576635358270567361144861767946556372964737962110281790990909078079491765084926583982787814800104241562979552298247311805909033159043242178194214627137788204893272169015389535655118208951267653312583733402641612302342185898089543657784167206482563196434553924410992128082934506610338824081103063339701234601285137769474253512862169357149246696379781178916244772381706540363205835054554302472714440345846599888835380024665716568604957246740786487846786558713384261757439651039891239348522253083498864746768968853573086139751585553694905854076026852790737708217974886411020190707486329083064802453006386014868987421643848049080054741817438528117596750637565427128348374120419453240128181829196923182647989949003746895704584474024153114551581223846273556895190392257218373623068536744754124946123841361302597900509511650498852758389801262929757343979594090055333473974644738320690624072130283000402549384491796488993445508918751011289943316849806534667158944800513039410360452589858330562810342989512154900642465399558661445144256160216439182197094915733588376039623826327766837573650551731459695715912201300006020747318256800758080662640894531391166724010859805894331389602005371992430541423622273457894848444177341352632981031142986325981103457645704075262617935169769354968128060605202938096881958578075473769930579925101526106557557081355171445705302575281442747488485884129790242245927797578570533675883204236383790414070456854570552788193646346819981702154441959110529819185865267619958691135551221486769002833429662920745527028421962327780133970662608103384086905837478870099113214301291340145502207039106368304606763420964206075069851986203271728842838745888471735666435933707770351927581825942117677653252465489190205917675163343738851300505399942213387909927483040293018074976467941765820059529467221627672506085760651871687647822910489108256174895602271803157706142345227965653134557673454814412713467567221882192294768474510834207627429893960229859927134894110556720783158546449611067839803130897778826073441534055929334614517472448797851980451759762045769137851032253790857434903944737163122316465791356648880768278379146128954539692853330347769230182760172266702559039336816849854376521978572748124049969943970121481356414368194407074634217824386150358474641000117978650309327798515992601948220881875785889493996057697516347386296039489491760895493640181451525154064269067737736388240942872861758101027437725660936708992085851294919113860820191091069796841285250774888336733563448218760777450068590851289843698035841421111626886293649211063627849738145126509055331553292528934418920723498546776153259644581215959908223174742439998886201122788001119238892125550938675602452406008137912149305779076652546902366755360475789100822881941328892317906456243080957365184331271180123877060779105479190133473833106895305738953895751291042517760050437123854850122661678972655500008329854973793523207675024032238531796601160815638365710135359296176599904000399944488911686014896579424221100740461977088544447120193333278293298897574196529797139256399715947813493704132871247233910925324433390780902477690522687580396521743577405334161822588949643209840050046742609731426317226006996382382361475274932177149830573759695867068235463249341973384744376210552855688576379010165779580172467182724428871366381160338304070086597903811015540070809348046428547522680735744811598864835510536348070595762389696323320163483586985428590298978612408490839329440386596715472783037595997348890686721091359192400948346305694306919927960716014111054982547000853294468283390331276683103132698798873309554197947977421029328395519501667105321623873683721766451152191406743088493148186647457865026067910702438056114281716050570995758506654104099271841587463858590533767585094467910938398838843491092198688452902798924952819403145511896515285766391589937211432994344083161548585797161004090510809999677553100959759796244593660411268435808399861559138742094756401827814796684630476007187235807429319754304051497100024115645401207268232383131940751017889402129927121387069666686831663216862099862569625175598519165942414015285406051590610951678069520688713290296356611866824810965889532319688542633691543231694632306330890226921370970447650239564355271955383639401269764547876514215577775619614448883715630137160089982379355031061807312585071581556180914219621011733922488712763229214742675985910611086884548696652142275166299256993764930037048194055531786355403530108220896385588982763385554574560620395681234410740004722238479730890701706689220625797540383746802228064117406503843758735876205389563204583267169860057319316133991038921932355392585241447670685920222074821104351047161469092366457551092344538660586675292099090693981838851958271411465460955199541244767077672506121603911366297277758016625694644833062910993198900512462569426194755857652416997658582598126703802260618511334249162975955099440331569563401718944499771369912207301791224843093572055423131059181384082211366905801505976706263563231894157978536425884858433335220908624428883953072033588347527252026702733852325854095786898395664473043732073821059819295264340104787877860421009982542975856462190913151521483027573031781082781637381684171576962663179658687112215912038230344473111804221756647930320430357633772529632438631401711328376543620357140229660093279163162060006667434022675398528074609552689174240137457416248203184782208022618768458103321366311094637933713127439226130970265884899333370706048775916787871155080903068334846907926307897713899433940287130110847636008746625251100986544735793170442486090462740370655744077809865440096095785633146280130103507429161295850767076311030654197417886062621320719452301143986258009707611756562468590456818537719490688652610702190270600420394232076692127922651519309482621372142252070117943784123429690065968271565752732927934737791302395281953701216063119770111050630246077845152997232615519431773702422223606118683568924691419834819208962729633969023199035273982398054055115944874096851096141888590236446852078654483442141229235434994653375430568953044140644893555355538894467229391028096447596792646045243601638826105143926617248406135810355939713001810398957461203305266760088031062486987700688202507657377902661894742413429940283881712977201022359712202364143987219514041007182254300087802463876489046460807527728147787676317486274080964006844956880656079920124433419580944620058880291457068015590952090649309751726239410282057079199344151506861609660991432780458749093054401766153318829227614598807732280282599186372471312045805205361851267167036779479980033111435901575975253902146600268670989961018612435952799293669141852882202714717259438281116338841840586016710775455756570055071111515263422622908632752258995319149069741148660450219194910777373190765281543909219934636924617643903535661077330172059550034817832131804940928859497404031831562711453357703394196074298898111923322924385873818943705938029855908653983956458496551133903177414139376933101515477646081562098743544865118562036740469552359015193467932480773610380438784857471205963922099914145910088602970728657826166570498113355491895977191304651596786617417287991053244246433336007135767530640592623281117154718268982492050541306603911448336163399324351919551761575750941530779914559217145746628910008837878804388901882481337406604266541041806665887373231533110932047895052676068819923129246815202878055461730299256500296028994754383792261820008542638909351972322106649051123261134395408806560453846246698694351243156930146721385626935902984330021891332343787473676823612569520437868796184732931313786993918237782894976765331318734027832905825931927770546039145349101604316420512276327320532473711094359945932471252931827448047298284059441175217980958986177334152107174820758156390807500335008501290344179027818460524806884617065385529271814815213902715597370107548254528653341239217147388377707554367383376562178661719815939487500130664431279534341185350900851655945888329506772653630602176736030632622614418188616482346447165867858397724938979220774449447486795424665642239925025497913959113386631691653802298927971093763147423480853255339183031296986677794336296284803079778596567411383217284315239700680382648832622904287120162653151205563407533169549106033480958134589553631108284830355353622948441244055157453556560075851606521214601456322599881299504812906868335553959485719605739318086175181977447703844112563851495558398459544785485127330198713242478122984690520025118261377714336259391217720870001757206576838644297381629946852365044071523683516644733694013626231557042816231355566039104711565564355748935835356185303855299903242868878037144551945411658985362157968870728739261350187740523400447484109746921762798995331733580604710916364589432579662673643319904375709962923699721076602447910637566574915641830319864417284125195590101864846193462498158864714180390132882940328294770756327722768586247300131751530593651612402731071655183365345459447249239248111695485091835919800700649331914821905763680222993032776485675671510796972762237902256204025812803413933497405703538618597287552812184141568095240657726752409509381801300907491584413892339253365789538322552210070167459240991968379483125215730931024100252083983496630302161210918409709856542595989869369985247447378979405250348181746837549281082422844193176580017974484178365310050742734728577616719495211104513317531172445825275444376417253166034113412274379619919467235511272194967585340561236285547131031410188848772311089481150636184776656669973906844584565085211597879611030604694657997526627167356201157380610531985195488297600547205952582060062750907679246391148392296726294616657279287212668067535832050176390805232046665926648406586747712663889481038281206617093192285901753713999005598686794529981766658212980184458035024212858696417967284046126815663010156674164876808747869882829029082547846300762440763020083188102789845938863281994269695454731092755506512701698511113087770546973972288120745957497778271720117658214064871037643607515479998821391770404806305188725737254195043354874188336089111110540036401846275315962986848851763423286778255265202742542837978388347929734359475428177313028618760903238341179289704618923599957655930822568309562329848401739379520806429816353268081550355813289011813145438598652132406541139648088202297061292620764623984281054760226444955700402416749086554236298138242441567449937917741943015040072648172041462685342575396690711260122862501787538814570868472201273506959208991251307861958768838662406292507364015478365581310317760159206770004003054436275042276966632135216997898452358587315239847264209106993741778610708735948260111749348317040692922925430962886549305687196519516857361145997177206186376519151971340512585437235580612076704242166608485582057682090127493181883325889297845689713169877022792082499411297557015469053201523263238511998801894622174439996392337068038651685233155909364975252506363762808598256972312091851958921841896996219220652530402292904370100148634318903633835549825681744862555881747157968772955832502969634018804646914667698200473064490802020060896789125572532780666892165955164755621381766478402440340522809159295137506547074273108139154542244859067956334658011929429244543088071341023620549778698974784668848778840729967375394276883428148515149842532694277324429959933387589027718686604668136070055351116507447522085499499028403460096502822680844504915562486681736255995097521353087170355568415550206230821789453583294974169059288853817090913191731343201355993315708123095746032011043723818478763524601913348503411692718627879727232461848075161083245886557375348347101373161935818279962220423996537776639355900394053491977191917558086487530614779374470611400078456421157093092798695797604420621265508768015500472844905222752195433143523722233166182581391678627768206920349260185327291317425648843199751581723437074131622400795018325732892098052750523530681861221667307245391342307272347399710705677552630105494010043005241170340394670245728686080263878505551498642187333634768715195726817594560867183683003853153284641326921553863552263443846438136369596428308785726000562692396123997890576278816005929895668704954785515061573378981332046791271872155548196326665023073055307864383901962120513688031107406723403131307829677782976248750045199440604481937223711980995699732014817796135500813344540483653854558166720481199850758289247418677598717330878620765704256945119065611910544245257316355218641532807385803892871046530337383548928708484733205827916240071950260849095305922514228429113190862801659677804165612513959216808655745194236700978319811626022512902699326393316197378485470373900153217031804417651406253764294100989669124351544576114076912165564940465695993467245990258532735905800428506601177999477651846136737751606076048270532693400945657472174459630216337146696376528080971818365348124859261736072070918400989857342155570740855623368458240629150322203176984853038458962294023400241644766542456009299264188697513554401666680310677378190863111319048178056997363946591064138578854890568101046157091668079630069408866072177237683248918154512251237282082016200496591615774805889926013308515294250008670436266874591518562782045551440505002731678125210917328223542582402558123846550411567010836353345309890486623611645451676054563687362364114095399527574877684020367018643122897282991172499192928250148056061425079449975146064897284576911753627566350124940469248943116038533907569921082250512410713591945730340904912669005304878897209282349450768062125696569905008968995836636076949191808687082523762570175628464436106305445007355238687892310533830061801949908039596257725292809848529018306124118811574604921400779240888726645325450506402356810999111591756603524576102891191270898211161724136895977480024810393143867569034594419444261200269352365513838797542516734358452092365980793144432659151523363003877041722159306047676753859063789469893794795582518003400630410318698639134100324887194378231341258474372845325440883046437449375000664128077705209620063722925746520250930452863731113207673949940812587208430408426018302912951061377086536150676045046318739103245845517285718114426866548842624885870537913493069144779083627739568825890700991799312131999013416700663685120580592373420102258990346421448280369054756091937517087153737392146873622525063747318785262055505787091729936236534885424995508667392291702755577707411575942050919067133025638234312501917500316545313105855774855312805627148499998429817969166892380834903668681877942554171357116878735399560296291502911531834210615942366320595129030560948201573565834684961109750757024540078265007509299136613599712373594749036691118021789242242706768276587592166237080758594100168223293856936557994093759335135862556081998549867293742853452730523835573716992240209027207551498641144454594979121273113951652105906424544248110876612905953605417765039419597182339058682015157625200720272433919018510356063525902185975949381005878473244281414615331810564634062406380010834496881993578343458347315128165311009817802060263251828093189496226797013810409585445238069522807093043971319064765133103899457329291889107148825425567096948143524053888147947018760375611214155054246235609340128579826320491276312577789331674033587363723396233009046272514649720540716969817369404117226927945946945545081363990779018414049712674189197118635443660631899028136580662704838682843884568820357064463159556401862324638111579552295157061011457780815462795109897599203125204205209935758723846785429537510489265311307543865815055168430288157788305652296648635641622134750671473748323573271946177164877498792539342998864074822309846684693837357508767767020140324459510850801841329245078643931258032469935305267135773929440536876288770926692881313417583412018701290494810968123134296525086461027750513537288150544054241456127947657176541401647626352481851154462012630361789958289380823427109679376929474848708750380343704080302628743605088613080433807345763776577382035999620978955384961794443492454423907452222600792835097513016260587246825014120937864161298220592034481588928480210949879373570898439360073168939210491381855477470552527312088878848166617758318814802026927711412148805982409592861200574222377326768570713824469242253707037770015220891585603671204683514553531796233595123346174166305391239369416094804866069669168972321628650529237704645022672281106803529187302675616255311183236421573296595077816613281963895113473886661625996404246073571274607731962226368989609193111702886723258093363169635626412223211683000500895407959385075173012987273219122200197673107620168838211212637615639005037420407977434357867526514715097501782321976567554650050439205032188997536409324460413826263878364117754196588630756356569961664364432105213347546838072169461718697851397593436933813797392482878468227496315177704351332080565614702978262914742391804584126407932378433465780910917435329467909137485166277583464014447731493943220924916164346287180324189769491390238300997498564169771054110762846984080191368006709794620473178012511584710798868569374864081504183337382417050180168789527570173134405536929371869208373448544611970595290493651449822537526865569566776930951417960416474503099851264238283438082711382628607524109817871539309444085182479162682744155497678796937612189766332574074820256667407010828878632162358218578140629034744223193710299708173981820712701661963156095026184293543160307585674449641907530109575324888219538180728433858504628034607288918309697519528115900413168485779481460254145240182424580170483806292932307047648373511286204966297614293557294492656090054982751396799548938420838632819225496034877787565494428171833643818980377072457536274627542673436806965942632725230572588167413883878893045388024420125985787028156464400271027409412077437011577710605672243603987229925593029740106702986334784283975581643801530660213978645123266881293070194934573136758107237030692832021845867605623747891355123228733698177147693936243999359869476532874039494060367126842453546115854235967004660620738086306066680118947092746854030457914625008392401276326618650807583591142820865548701038612163676440501186476482919536086290686789242373307406759551879834231097826077331849852023810675599343775340648064073140587941507530431615473223423503350249832342114633162406887722822966206096416247212959648788015006296749738037535720789937582059170786039444589740353347100704953692715897095143810130836936216220210880127265763374722017858657521921888484217422380084055114151218798882146700451223660868722152003518424759184566563799802340439359626284027890346117965323452020938021805986828296289661185873549994233077196927003274293939223782727403156867105725871642431661934926016123379488841555776140532702700842838966089293588637365637084302974527526300757770161484586708467803442811343864356401427269194437719451132518052725674780200754547717890941545005763937279326894160165373526975911767581998695809295740035181023469617221082528497407678824768333486577734731497926028105646124379394429490560949983456728396221969292365698432875289664479521608581436673526737639138615588063091873251315926865365517781798795842534911305559024522474796758887233667468013790948835775177618443166434319752777000001454768840783030201115842674353479982963212554736801827922487275428618242065498639311851307017448934730411732395290233162551550224196658531584612684292525110025766440763690227098424492143868583895547980335563067859990363135363841987728483678713474709338567854525378703588759613365796291689775788572687247712543378708185748622943509892649846070183930240121131288966911713877490216780190373194228130779955772042546381641706132188573070258534872312381165098858125440062210496546872970891091596928279458763081411480265361505568028573730929894604184615068084225395599719679109856186095615899664177783065255799059825106705986824831704843133839445632823093902222433237672273407482664931556787211845045276280463667107971615075992549171104102441059040487661011504178975556967753890299849540824459029740272347965479501591264351241553599950367972752369861391936768541306037178696847140986747812508335275823924401524265317059121024870732614217983087889832735695980469125934213786575455500955048515023022969682942549895878423896792506451662382961872534267949935484023475701057172766066738508101001934625992309198253488240719273769277221384467429131147738706565956082281100853634580647797658485763387182887346674078044349279294415091398356233774276779909954796805855733112403471748176580658309018175747261098733905680345066706820471411552218348104184773685280183410574662292455046309512697613075051285436792116318325950090073105443031710587555300642605332357352524683432720490828851010305428805785822029953573936199546580944446057557152695715329437866971578284816863061733539279622726848502770547737777387477850214919214110214433092909164127706247086971535383250459592584148887330929459672749265538339838966720443626876767256816291986455607693693368639187894880109031950060332534925150840515986402663519284965543815071702290321735415107456410712146689001041155938123962323252263148064928103676717631663301209813650431356750434304361309383986891601983187745327775558936619341754611022559270150438225060306991717172722319062319101483165674589977422633418881632674718406095120951973847117819912111427881101899811780128884225530271503161012590806132614538532836448117814029637807277668533428174031679801764999212708343703047871667869204447925881288640467719868049082341233282213042530023074628246892518023592069200634837961112288526161473462211016595779880478669897528035793501491839968562197923628440764584632479121643568688546556372485527606869296898120483349675748457719215696321966354808767622400678914176562826719566163927522323289827462473920157256234690297362801137021179117453026853368487499138417412212609639802349371383087543172760171173209135132456675540609194314561756648036323636004964040259074043095208317709344193017432375621182848639400478728489651837535127008346461061478979233707803245218879244298275885131411773366891008042588728514542569345918818815350567287698354250186754179079170408535300357201251569245879229782100414068350343861674863225606969338068288100085781612600806396271021185471410476673392568059996109718348429337001983558589263561087702398998927606641760600285209550051378730533519157557718427881867251987826137341620259708122801415207938056758487073932020967541419174055783925970878983715462346530443244917196966628785333549087988086285842330892916363043370582220105516385176772769855735013816412328051865250473485023864379898357884828731393200118384379807374612835456042531426767717352335302594822843648862991135444343052919929695821062082971720775044128558133379031746219783556614246482760478419685822323763192546337164803245200637719321548182423226572575856126972935136237007642682924718367982807538507253639471768694557724433906792016235886222248853322638347657008182775342756485752561942062703628182502639539895127759066110443818684319201500566825036877162526460261625040050644247998139493211634882042392838220845803742551042562987610774662059142852531365325084833568542032298562148341537933818287573094318588562932863368711020084776152088076876561641109373099877508919973687620667823722574603665226692395748807852540658299681397172691838728631667648225282637202858715463589143473579522893837609538352787151475740928300381948095135797335025426701570931960356762466898176067898429170220423680758512764336413100952757036154913490020135040145303268526634081455178111785550112340289190665482761397155200509875291264739471854395356367734960990649872310403116411622140998765136321089945971857495636497893667634748970546237084606051534672446192817098140148847512570710203211961026301562625333560186622524069067080741391775992454674041889492705785173249458736338498310729216272456087056976178290146440481124937663464500492981837427252266233224745487818370761364072290439021248128419202919550182326560893922414157923524953954335742439255877977979772698663718573795325673283712646366311968183386101619800926790707278948491105759528518026959838091476631590148049484804663531757273475458688197754865663242702927759254626080623007722131621584454603646470261162490527950724440352399782485956526142267019669363530794066898176993626467893991616861404403512357737567532730014027939249278033428636498410920792339247567489368409657252270834884989210494335938155925302153344337935005498257209884048119906271320826182207301429547789795949461761439657932489643896783136958175460224730856933453986621366059398671045960285916140310103941878016188353186637998407410425902863200179115454113054309850013270528838272070633032782545293023774826082291817828077067450698671096886046602827505062112466159236867763064468675487561329462480192095685315929345768578003030470638290907096559463874260596695162226043186226621198276333405983325500461130763704642171477063495432338562726328079104122370927210003330757495578114067880168050547087996382874933964662118194085800046691822609980431785549582820947169841678884882263989565443840506628747897060085121983506605367884595704776717863735465466329352189937723034037524741068404197989153097217349858709377499490472595683422427973460780138521391770798612933756781396078778386796673547367710998659145209300136191405611075127185574638446016518081355698353725074364001747672365668321560529318979907936813449282700791463247920165361581483220176899111479358456118801524530314454622314462146380077981142505932096645903469342033212727826037801079107229413399054990545869423868386216295069671077287275481074662135563713908584095263922878429556156474182107473545146788847002556400343859720453829973553091235114471573212633116049963660222399119835408865567009569250612536347685911470876071197394449577128834068055660416054915392125234137574682695860667905384274535405878276988811847072827507861411350053191057556067266472981774469414694334486795622485533524716494857123430952830034712659366904072656719517753717317555153823824811772829285052248586693496983763769244452376465459079074842779936667355611266856447388017998085958033799949394127470840120061690078740116073592232470232946568919395622015313002663987097080323070643432511539372881955603616303000603393404145877260779650730021724443632507494135210214475469419127689848001373570094210136369903959170920340660259101571213983793609476082645995426812531533411708518530331747590591811268303240689424438030945233253324334320959067223531533452712797927511473376443276892061267784064001607096969810575403301856096084284942528057408416959803494140204123672559119154607211534447304584149259554255636189924523659932847430088433620612466973221557959761643400504400697012687077043496555459134625645730237182354031360736070235178411827671367146839426481166206858634935250792849282480591739626210540103393365114194423626753903900011163409671783475164704351514092073304062880384359979556985315576088223048670084906502243842425086920051788706885426561824404324053355631098261588966395972592085479525008357699306085591952766429520509124198372853468979572957294785612427077204511590009550897260732733216555777616122794762122220278312233453176218522633507320236319515867766047626000021998777690162353301777675074576398830594336993157511082961803308579795481209182663034470328301005722468324343803872633339688956357885971862624741326613441718927188827165835530397522293808932322718713288288263587631170532913621446415844194858551124924460235097179889335001207102606929407862966991071695355105135814325662900465361728563502249640425103687429471873912942587130597758436466571268902635900724328148146296777605608217932922544281738457302302976497501874724864962530290405862163178020441198319555698254711373703484109918271170457325190138444423831240947515619578864873392045887398250007228312651106590733676132687120622070961503416424556259712711650681173921659570379353607651092696577014656433546657405513878537760646991297583488448662921918180500680911475194469935874230076718773746902116073653126019466149220176969744795739728210017894410416886572675005550246577897064774544295943546859143500291282013238249945249503352596783866282903958650564037180156454191980505472388448733214186443420595983302360571519946305365580685754450111797933117363121246914015674211073037827825176303997489138359923358210763323788945750132100196717331944700130635207551658939604526212061337039446197642477998870034692355538535314834375182684371949544608920454490016218120145502024653708908240708144923484540111153342136883739642684652019399173017981111525084360077618430169485540436210026195439911994260191206346415120606363665115140224181467126741587216229943514595403128905807598610620025066144189531069334633297960722359360506378877505061094931320735981190808228077845826318747813428008215079393310650481750540046101282308658132077132088082722505499307669408376582669968657952181207492442037056794205931339137881782597583701477527875087621899575146328115310023423538061456860660142734276450093377956589822835458087042294315296343535168565530283961796481582997113936610242596570939639906920344512176263844391484063559991583222484444199421662720690565918394748778771313930718973029182413079013410932898396538368520959746335928952047832895290042921849842337048194019655578230313802191906500566941975210013999633126179278869687990616716264383764231447154621407574083017320011843141157704464172408780208076456180446480066948652503061321541208062956941155404767166780181070216369455292848604244486375432406270960065764070863408355234412687363739150879989652291948145803916884652556590459960769069095305475908705279579523960684714798373922828704044461516565540351468943119968617245637738740220737858312525265229981825407614500540771819620610631371219932376983874551017666275139073219298804093081282601899025629579862541382200384591174316316605503531587552214628343650913798576101890332972392490386650969624448421433005374965042261501557692626102697995105806223894116157565980550025871105320501767768318774182338802988850574185545000153308875037068660617379218482263739141147560050454966085844855068989566150742282048878082517984274595059342422048525926520118591127958904085645390978162956239711489357642255255903077163365203766675303681024009057087290759405556008509482343470356661263534668702836397534081554342010556993769303416313021103137922563818022563585091806443115924813680476276447192097979416961087755656062246278954635865691600057140714249581388052955905763058522760993654373525653031398666300526500657557722514336625306384416429030765191266863074751099558778001319026812623549737057656480201093164450287313619546050500534720481256111964882221170557305008003281344577889141496874180220781029133541302861373971705537331238740778500936925281210366163867076900647221664221414812698471087760584211493909817231491420203642000856058446999710711293212802435727030361126435134773836898771144326505634062791463736961207793056652486095783528373874240449335646151868053315688941041798649058578292345992069446935551898777648791364015393721434372752454423492517097611548247609218066192464624366637049065993822199681931162567232826978755214803487944733390846094875555048361000882408638128595721692251732523921027849668129791963383262081305143332714391035202623973568560126981407760598085191365391470338976779018008530571947591143192900022114994192262220429739899219015487536215047946545989248961249257162154933459030439011829972460950265183524520162344691557126862089069732104052994148217983219183145342534284389562263707171788104342797872818149960570555937170309228682713544933942028269721823172463960088013115268353967227762124349674318865952970899769875624947180095385316877957759782415798239641076986216798640372723371641662057022293661570900034984194970029756819403562425321487802687434547167433947196833151913288589235928106964707961665175350923296244664028302594111444073061600960608461453031824883599502076758941525347621016465610144131130762947401775508586626966227598428139253480648458158406218029057088336626149694785334944542843577321996381985954790402069917704306138990985937716888812493229387530525138958619282365063508823491629450540199290610297564929994120829280432294198646520977826686626069274703139139434885373447847468580027992480158795339995967703373946411740002647396404878594544764206727528218771886933544309163540392588986593864364542200057720556377869164211862015838432627109491989434990085982446516430037702723194290763239344830468363707408277487171963895004582925095418081459489292079590428893740596252099357657567201508012848822540609015179431518806455635081129181946845796954393870488364367079398433706506249901247539084700428210089676662357210476576717718638775163862301789564970991557397010149916726774519468916775123496203891605389621550703146527470233600096689985471245303220661691671603629475082965169532431351070042350740033513177242190987025879005751356867321170342548974509597094328562750424227818355948963316655551363287628580552913485639521308860421358204282749519030386086853814986953219412069571892357405903182167338490216658823374391123315300686603351740381147163332612965750229260747025680895453244578509541394153271857750701671523555815731797145834015074568740021482456214714883569763508649722291262851556624957474112652895336840802329555171293779613407229161160929068823629897832937299273783345304028806515574168365113903559125274044866841101981210174193843234792090080924674975970826749473176466676704081953684965005630682799775810106514228440187856862414681935524581544751013169264070162258427513386662156384279720438948259085561665879097945937447531810389778354452779874020481551321354558479705133988917921970097924821956853752310981758639104981622394351145145621140116818615907871700324943561322103495438975201507623473088298221715394687841241734211134665519024979926637730203388979489661833247686313660980838420938159989080804381395345062033449423434008152542976902294359148706930279052574892112839636473804957845406801076877137520408814216684189158400309402203989590062968431672117223785939949894825973009332216365866921575364175407591736148907796812979727951625667382621385628695336694573413000470994111830083157217512978929764343254712720570101200638077752490138820614929840505244531517918306337421334736533597318012333658155834716835675355611029556983176650588176713070174041507445324838140983818964711832066748153695260582888623918029079788707794779631586557703857802293044870945630241261258524529022388248828177822800543377057013387009059890201871005082226897758867239230441783728615898561222728095005115027970944253327459347592494658466083453223670479941662071302685986821861846241832785571753107125698545741159161850374837931459737572080193333320186394139784740569776517940773977236572829767204947831055918034394782403959967502887214435723495710517544768081363787610783155855610575732429946841803916190225807549265260431059727693791862588190524444800335734337439343046164744881743426001657012072905893575187640447917918194560576035393270059496138224392061962253025908550200177700281627488032977176463892929114291102066624661963676726997832460963978004640195899715957882742656943715242076613689777567556686094389061678355773762756918332075108656120629289929083269680983558265394022159579865231952405061008236496120566172678652292713547641642680646277927759138217353771411512079004002662053817141043696380939139327956821795487967232088376881935418146481053645635278326002658933718185645851260089719991066787913828716564495639309531024621348385593229500115520400449491616061049844457649616580931420980948102620989450260232238444730638453668396156219208583283998353972785791362468091509535273653350220737192868272524370333100845436564038018725687068311688031775222978561994409935895569306442252554597295787934382251461257866386963764860400917291043758971176154491421453463975094038623489044301389705833170362264168187453850742595395695878679910234763918559475045642125533088675958381660661157310669008630844136015714657399286237678101318935309073548050746267304190706898054313215898357988543665723413534738451387566287070643128486763364195405085662198803473366634891671011177298222812346492129191894953012167552362125053874716012484113941922972071598624046512218868291698356331318338927764627635788052854337577861141494346191533484247839465315005880305115469210310321329788358117332613526809293269999668624366758332192572842953385628883087024275064101091802295002923125761866368434692042850499319674659263101094286867370048330837935050529105997046820402172386658048179487109654074399545613957777417093136325123103647470200141136649409868961976009974223930273882579743855803311035765041260084511584459689633509833492873530071066847692985813128542947304568787102772945720703462525958193163956117442248930499934680804767104220933242034327116341336903439562828986137878903021835768347406585959801812376637329424242834721003088966143217965297853865304305925710188219883187479952345887722147934237113166286247858946320774115042976976511516374429267799490221529868874557061574601879249837591278304353685446792183166171358760641569028366764924922471463110177013934149558876939248406179707790952477099501382496532425407751414378422155322408926415260108033532897555131040884657313511893582884657237360217625252006816623568344942719766763676413974617091875316195056780401542738444192021472467187610251394295567056895678602715631472861834163253917215981347260212615141798819619918198208880861946104680645219468455399318562735688262006669183931710943394418544462928549447091346285013020405677455285724645943740430315223732602657985810532598096393306160700861725193035055912098666624891046552081354124920070170912161249247047462562045487377705762193056313278799697239994749795170835005702825302933920352590926797135171225026318332328613548575578156040516278544102870097965268999668323010778609852710349156610950015482119423620445002001398212789029076132067435510774026995939248581608072523447220741230716976308106981068604091964029333185809419021308924731504266994488336210194612032016478809637187988241208208033238511356415963048859004935843101750862210348613169150286375097269865969916381701399464135711975844618705446505507609754946755949140382206403871734648372143862356230154573275373889967389358755590250526487286051780806539045132464756323188562201649754805255884845684004183037388774903558355797581824087479775191674637066392408822438148335758502962085800301630655367053996890313244029341665224557232746955700228542389093812247472499372142722562237981560889273941307696864972843650639359662419811429640374419282023474583761587878012458739271112946172170137784112787736940335715501771764619193061112898138533100169485766640009349106015022477580214605335466327264724742938105908951041094745782283875183278545058571648955964676443408409742600293148575377418044809450660901183715537971243188393467874109409741362759521193679485075663500779743359607831481265700481157547057123998252688983297695946166842189633718206922481605706505208316106371474160365380139067938537215512570465089534370861746529627576757424186632328025542846374864559619480520072868019556844349168755308787653818875713335226707648051453141502836365016564796301870805623993472976989134171756346798986004979547362684203564148033752472419326861578595507805306931967956534916000921947552311957908687948583502807036528572785089335137146902521481882424182644702257570159959870307124301314760804569375523244652527623391448644357462117274324605352169782851029159619635493364073577672123012024275004860370299106713353182765422225846418051022341407366469593551683196936483255010977916856468905382480648458046097990059466729333629339311600717759275721785363667427408625779162538448977690974087462353065739286578458659377739115714279937167537239522967613885322977643135322594089245001435611818983102287260627145839501377581185776487036553183358214087601913261964940679653448176794631220840706176771011340706221047509999368594281958832440096663298056457012721594259287462435513853486346745615063872962187548535752577705548390991541235486511001144940384255603109053975011891810007904966670655254107058513048941701278896817736801735037971250548312999573976854839092872348730995031097107741504971545772579938192014907998022218782629040582698807997187143360179179934743594529676319495010080650751939052582938253052349355561041403872690767464878380854222214629239203145455188983846324897649214866563394539105865596396967859164418909548097606329330386721519237599107102751693899963354171905191476477833036930498572635622270505976865179018811412384203604436657414287538816223854180593895186513940568614196248936314631240561434779487404839345863340554141252841376780384029746723394392253448441295776335731554088693390498250686058285852726123621553372229891029479671082651301918175557014018108343489270436907916234016721352295270841899469450958576625929658362828838089571307704573865677269025085861322724747314397519183484879228405344145076774139548364494317455856105938553339223531264870405939040376343864806456218208402747127580435158779121631251378261365502017796411607453760218291823310568004768633032637091706192046463219652486660759726278974304381726782991439775783557061924361296524224782658926934185627495178551731319508254557061495453004073347190044856091693081834010589509329869109709775155882407702283867765570715390721257646858068787425394175102801571051147834440548799028066712690054406892224617716925668147106820291851183621688432397321707510220032033766639149857655643363207120864415344084292364247377921057507680646997740990121470431781806746942347250244402358754693763979449673182698577755559644594844863586792892034047359660095328684525422102904751069103148723841450559716256045707009718557483483756545260492855929722678365099801504968180739684335268791833557859642674343939642110762592282401865841881605073661984818778139040977438024285632189123435800407898407920277234932240073331947187349647004562425956193170286145288642535865366044259914379358898349125677762077221466976248689863064060274958693810035622818991487623451442893156942094659834907424330655126871500848649002925657324483122924964673694836851161534016614938665497275831794076261531170342495733552015559221777576724361123435377803982361835016045484663163946761952951665208686463372548943112880783633610160838769321030234043344453501378122110833232375668106124478237954853406112606629319640905212328018049793429533287553353646109222643933500376569741413432789023376330939388552730729694785392851145393443336961442144541100435088054461230371345377085356854689594217584238898382984851054021338652793155486097830148862182796001349670645309780056634705493690242975463220661331189456605603901246451817800866385049365139051419202222195650178963488707400747009253477687183220380119390537908825065703671746207049103331382050607065333430404990234828963134009405277549715004852681204949470520614935026927980405098693318759458586218229419775190619496654258664686518427617876200597871587189378983264657945224305819811885760186994783542101872214119489148117007859661335821176789182127628226871048153986934869938025713840884180615378227146720136432544005461348307786282617682823754373780352902979473748083767295972030838625841080622774949928954170959452815003776733644130082665271022151679957078293503942803483395155830674411876778320934630062370593658722422236639555821547565038682944992981471127491609443306513759586865655042396636508183202433872926887672357541074021308610298525438919729955479653251013669330439519404712161540818611735521643248872693666301510875353483129776012120896765561693194652252448922704158543641087473185877133617484990015070484793222169747615590931956761583550836847425960991341417057902254933984872081416471706665116914919051612545578222677026998870018095240870937480686978050470057761775399751267410942489757278472372641167244607222898069870896871345638182119840200389999791016345244698463458145044724830315811035362129169759177871788680998525224062425654613243183055099511521187493308713872551378689530445312726695803703890063470449479192146739038464039035107125306840811320318064598231580771446903816802331090480127121566000946059489476871305503215352978342429310507049156720070452600060384402347121535625661431499930103987185880941726445727751900143489971764553216050913423700115311293056432356548351156282457160024427764936634967268922343364948546430446068451309096394229006633324461860085581227686608871267651542589172279067813063778083758665355234676289879649464904903135076352445452575339633537798792418636900108653389882642826142078399677611017719769104794632472400329442407301690080425996905958760045329495612287789574662897457927809493096703421629859873373763448587789590109740928867836185401162867475838334405160659551205643883352523598202649800295113547114280925347800171553489549803762153894246696884220965105456784243118898218264664184859213047453399883097903466527501805376280055487860131277853154517635899207018495972135289815889065566891223153644082179491067091659000401375569786475152654066274614726635684241521782872517912025735850961449343708101789369610252763271010110118858130215173456747224784479789578880661822073439305059461862967132792914778960443412511725831871882832106197249796144208275069339772815330127416490238677570330562583184968816694122827082302871062905154706087786845459625692850434924798496033289139199934433664382052236412207713104412521074920536102435068384499776868143162970508980954375703521498896555703764351684171280285771065058368755634590736301494233060683377245830722090807168260918882070595816441939168025847742888028408478516144722217089828659755302006177231960013831243833938557350070598487339646608063078917342491402128840712907737084411225689909574291929678240108690449058128418122369882189685283536581238175308847581956591818141593275658822528621879991260043483189145145264797748192542726042610602908339821820408646464559327347975412748297044123123004050123599609446856162319883075545929422908762827928269255857872283812073035184786105759831580513566213120613497553710919256669846154392123180964017643301600808419055933140529745721008079819613954523769610216654202945597988822451072709807095728242125357295426425361388922383691436755248183873540354083546761415764135292255411447650587254082563413337989654881979448371616533326802887101844219813095571630886444724014163418139860703170164195725488495723806855782827117428339532470491055235429475695298077350670160719544417719638620896399416996665097033145080683386416555837002231503193445527293188175742507585710128166902428082654321866661810428641567632517690691372465579419965815553615761018179743462040609071463021336130788887302903079255538655572193863704834935722268361954726717840548020781992631443887696760633726072456138605589467793509819597226807406931942347034350805363491932831249942310038600975900256859308250863165957881814772659412932767157035281903238745320382721841243691292400775193791245700938768153723866919880352291639300137621403107077983255252920321203285301945909165403347559679597809163376501109129176510244378115920406737061646059108048588455623627316342595631218979389229226852700602064870568836205627009716075677356390741576422690904309215380126389231840484699477453637918318183404812441559578731389551792698045897999783924927097810813606930905109098459694856172692187039863956694350932213834773948363493345426847656947723135474445465340647752473836873660364811997415201820357633160727928815845312477000080378896061157440382073731507139461987577971397056078953637552853910229359491841424592356351668726103044994467938844772073297738013705856380998194747580587176853293081340634011296529914890390852662586998804352385791084888768745670781668721609726453291404025774874207009557677503222160240688294508459896550614842833277509176111959976549747447715318976369507937869126912490504979712936916543473801633276629069326554547524478685590042675727694824631253414050991389259044267297114855677122776466258758197888120576562106101668306244941535181410017677332927159691768745566332249411440365803131310426958195960888417097944147216981031263188212288082466550858622686507218181129416143346876683684418734386323283354292683818193637629442009976316378125515434231075436723628630048386565483817091178713067009303353196944901881259825589595619257294225711471962165014181856478585044874702398089628671009329639268651376775571434565284159646605949849629677845570606734411398909629020390205059258360161657202140003860732702767344527295095824130211854402998162693557923411050807611450999045346924732852137378872130033113928316274757059451135615415611163101389974357588519710411682421508832322440011322869399574489850077159133231168120941838109966896648025052472869142538707416508801743161017018665095699475880008940603253798103105572770550171697188251304022267719405706608529674633996373384682734144754953023854465023479498305762708963439928750508944919690454740582868521988086727754661142930318942816343089794205892716728832177466348199232884785490111170876080815258514075227924420303675475234029656829707221630754787726582419379327485244575455978276655751092851916772242909477312372695015142923885820746149581587582097986687438368173518776241790022493952026361308656106161067707944971661267939007580025234751115859981788302031903093282823262563200743426330806972062067030020837030135519124580080761014229122109167413513810153982533718259777273522508233671972879483129372759410436916985842056680824177233492939469011169242343086975302878224452899623213431678798268457486569188855469270191934199518412045403965749596452592089189964270492143656440501089115766926229612237608227400631682510719761807251263007189879322537627966265293528633267089628389788432428084730402655396236934608643840986204373342534191672836431396725316271426829571993889002201612889657633954104255129364547375232242411119636701212090592368847761869461834566924875050766649394442070617858688899609580182785045709033593580241228212828135264127790154834021103280542209431285100921041222616040589755345820044931171635614008406190706856564988161894282754637324628881977721912547578328174842507457884501170761280352340747145912868854639063859977252141908316740205677892294600746743162567360873645507174651285001812512400354009638607557672535751885203235353464297951713286555288252192425786392996818652437349346254425853403362181539535493354229331579682077707462269952197890061498803950444424404672982628238909984441148639727063120332554550380893567139555338986885818814457940163096420535120234558900466395553337860743378715467683483599093645755183435850837635787269885634838783079640695720547957666942856231853083714024794121619464496875210573544473287103924931799682053006242836596287361790125099306358103435588641113433801346368688936362992476425164984795990665522179728892906659370785689956227471886767726412796360592530232776122354010857160118650611188387917289695564329417179741904441128865269069343959587620182994491433752697328346202018739792895300404659096545345614652882462935714413987764966136388737275243020154520112986091724956411695741927743692890604119128295621192034011646061773026167717200551645887223903980143259737108832325819019413549016538222092602538519717162959191551011929934176998444362956466899534324194556502148586747149608371103923504176775383737880586615544458141175828213627701427159380588240860686799460944852055700625068752844888250728766291067690751437629882723420470908858190106928458086503020655738350372641522495488866614375595549138609069664121997773413304649965881689478728474223535742397612057000322280312013544178504582965888040809432394942028316864267041001666953563133639921394454870546374531171815288377118479426971481712003327070472298851941154970900140241637310044349365859811753475058930005274055448366605120393158041020404414496114950749733984590351474103793706023580405904042886179910943646764583535363584623855042537871816757754830282270096458187521452994666604248210409614954093109753818418765143199871672918925870768255642535943328652331206600670587697975517599953105526330524516463463174537002821916908308345502077027606378817222796272285927564385202672959757287053347480157204044859727118055931163847069298674812026163063015097819153086279872362028804154047000889852310570804943813855559467962947748676158212750706743371463130650364284157239348570948268996237229182604956213100620846120026870619484373925533035610577256806152347688577449923709854199485657577436077052026650492909202900361880949911019066386830814181396565297825181770504298184604072053997659442643301642496039925496059501484581624525843341108707919491359869622671892444788697475953578152624842257136336239820969651923012433125624845291869534445742697220747830680805257649006742896915261145086654332750577408604666013343158538567362863212608983468844913271928146035641850066099831960492407223257841551006626920043786724025021786456692406177114507688148144691683971719558736261592137376785444887403952383271537409315545913127104578028202399892428796002765324361452910678169886804392270733709252751878024613830434196243190492415167005941335892072498656699839396123520908233137954831921240853227328509495761732909120978064996068058700402690546273637777047628596253738254404383369274589052246695861569020664341556579604965362656298709142745126708612531894079656317947988805470863965173031193638705677044210276721180064842570875989286818954986910079361786856714261450340236628553828250009918127399108122239771766181781999152787443260317764430590476230979016772727424730306523907128241906723536447396860288091373421616128588372358607495192398881675950862621144634731546907500035374984743395740185841545940012845166780007873476602073034160163949199077608358266241693916985672104913302751381037781583268626691482407456724499457194855973359098267554498815779898918097664072358725362594989513670025788630851266139460623994183058359559839180485385889960710306797740013018387919689091626392610533488407519090469270291394277282930034408171877374343477108752382833353984619741032927323030092735242601186750859957853682369635864273118017488086025110856108837423915649751378601100231933405640418357373268986274849235399695216728618799309404453274485462806108695093510371553364629189329364486396304724212764526829681572619933533791252537355739787847693488101140412305940914890138769764655638598529123224781738947823795717703222953308624606931652272622352540794688471618990517495341593168436304765608262274558773222059721086459539412204206135942173882591512195530817150843263661143092075437769597923666621074261344563907746673858837233406198174814182595158961967015450145766667215123946406378927172198967703264479614325272272030618445136771454387160795169137659343444973940027323184998226698761537371765191674701449994776312568655904800083586716825240219072095615766745839004957477702264852451615216103936131997936950982796617177208768975457555999678230735833770525035967351107413236485607798090428731680491412155455147569164642754019541594404807029402055536503330913552083015416444143509413882605009152463721584185378869149251045004531471398654570537878910784594892372971565329275805815011866845591066172296612309735615341429848655680898134184787008023278311669135185959336825467565018270998073605861541930066911765176485635387140780753546706147961405125186601389567304436718192680546264099997797089880726736972272842812522526017827660969334955196525416148477052688455706187263902457630102306624063775260382115426327823707168475864061436705790584337591757808892064293661254444150515284987862188580242959543253566172643311552173431018848687063469726741481579657868121591613661827820561164196702818184344598183283351428618917374928351426433499542886556646608329995576342846375754798121566762373231650276100213898474671626103304348781422251247245823121639151336574098424779924993696156729768647577964256919059014482136294310451404559942074014011878390186900723410889105303387409636253964907789591168340553994434081010720476587666756995662197362247506519037470422760811233386969559641449923913152334309174884175761291577005578693261350800089865558077367390320196423318303894057711659002550960755146232038500164086273124604839215420505111870124593955578326386964856616662538154759053727285368126397745858260715208131342300564228993036024409939833499046289110264521575835267525685879860335094067120598337657016693534655792416802696722162774212471969593182402639817121546055802128593417889385364172398303186840752936780433394196364800753788601597259798427957117244908619252352200582093624037947452916544224101810740860494955990726537031639834782484105590631145986201215950258595981667196415413553872946522145022358152693144198848347748073434765423259107597440845666683415692000211751878775018971907654806260015272296314521580284423023856834142901324901335768927115932483803848442073692635878383416667130515787837569207368283647269432467875009621846580500141027525740706488447979920829482791851104858575133998553092588036794132259695000018439596683626358440631681025500934781014766364149499006800433794269297685497775953320166401934236782499789955870168448802094680952624208406207800358346257450986702816096738241367421092440515454996855563060282544958273674444091325451518211693107818150710850647053044837938946101080895689883672091754661032591814185162812738650509735232340034859372303809391489213811232836717289177831324569544607329579124722607287091840554982515734881636098473395598359935834398983259729202499209373085552482192697379876534185792738881947894234254731076664163513570160995806192829997029994046945805171065442864180540266887461179404365232653151902281755402369528521225196678677462625526064577107460403562316753171824497649219199647310668956422128345882628830799272580167990411656173157205474916086326491210522877753745547323637762648307351132797661633365894497957802122358611577858332680088511791105465230233326260755856048655131503545538137735145410794543459422548591748382068457115389853611757106371850946970338351487510358535889357546728234078992087362479909013259062703283666643586925165262727420291555016247600611243802107460173613765565444688760937014078282735554937773305924423841038871531700586471229700593735194294374682685675987032760839936813305546200474474756311119812134560609054964975641506395255586298578570238536098491354080184056265938080523316882955216583654360727521677609073568229546621263744229180552282981017745600450143447279471391809005094868723939280264162222768013739409110964596406385276293222388107374542633402577660470162557577449229523335825319176117196391366312489886011022217217476626120495664150490046981631780450212454768358528998634205969321582307815442088053090465822428620570402646748509711347268232692426832856128462522813756204767866574130885284213306159269946631461698478507450551180899417895053083427168667987614230793489052073325070319441285257886395578548322134819290214707251442154390939623893378841622394749046388652597809149429671148287583931754784384164521692821459897196714878016543566468714303340440052070282548344888791403343042334745259266483581767740658699299564517147520321967084291663470478683940104894228779868889996852987885381073846546383135685029442720686708707645070133126481656225035020791115987126903579600215389244863801550062806390042984678090609086541575979750386471474986440895328319571569515906020537534429411977219452314409397715790082682177716291229033584351947202978412546854793053688352458014658814444820252168539427249615469000945718659063331941765830458112403083052076879399523145559082377039324354099151015276164194294099289677193719845383269204421437811951431672311099809879553033488179168697034913582814084969271996914787330047239796814201657940600107501216310848982162094717306213434042758919143140782766278023253103251831514526581667322845974450433691205597732970298548936827115261532489919862418771043581746288261939906683214147100590561806828602760735355876332255373996130877957108348832715460807713703382095153779460097722283673476720293318970061582090032161853277808743749092598956069088919533118201042931677100843738665771345021074461860672437165017899031269916336653663278492100771434868232861253793222045739669630804952232718111831403551352117024201700436609335511777102130576143660095974402737012281602532970954095858197315319103882649353699989745083691448825101099125679100354873723267182115841033546101031225075117372109296985850895374376532137470965342591776223814527459135920835342809660363479601169590930297624272035890632538651496361770478928907773140870612615476803176057986401274502582826498211012040984221748374581903320081668934472756352433156872372320536310446917222195134657705735050555643791013992056969709792595287801340333409147491492574958212422302824244607732411577004240866891289691510360244742665827456000833061064652765299074652635737162364909880646118655341187775842417294422962540932770997431374583780823032303932213602844242003954901978092383892229449645688925720677518333284181873918383480713299276818183756660103857563066946481520386399402413175529027657752723528295548003751312139980554741151916822130388588944508953886335761303107736376406332915937944878858005241944094057110345056253799042350515702771081898247327439738503186727626848041895789005214607458155511820773905081709948407833909451712376244800071058028792672152457663065290201013646884652675208267981080144498196420792925501943382872719123071240519983642662624565460961085796782490235907478503904358123904293560162936273375193217121407723364769106944884549414531151022189582120310497901165903393564106993720506370462337710917033865961474534865539875296898185538460894847997704920777693994047112322656204350619596197150730278092965857482839310816139775101166902370838985563870176680061486595907104914119114527867454733864190966709096542274431480604059010229675098725243430199765630525133900371929599184761858705123800032885387004748363269117361251567224205057161210907641428593866136276512871534667062852861046491885670207918322523271866050684972733922110771404334761386743524933081587127614607589762821185345343875204042389958636414365649640508707887430749050770807622264378923426510377229075700023019588535539263899111706465852276777681255298728220894411247897482128433977226909017825373925439270506924028432708031811596045318338772318412960417982797812313393168741308809996026070130625753993961292330058658040685994321318810023254984044897866757816305218698300348615149979364828129785567329406798647631684117411012383906645257210935651300632986390820068489780547249168467800782251303682091954796106153103216793591032766499853752847036465687486324361496120865986120816449006676312028041476558795796482160326409102020242764175870688019273106828715852885130204723155169173605099994370461123910758052386628394796744717430652592512029267609465701775451704998080948668554411143659797777149472085574873470169069298047359948254948195647837509089863491000478388537156948698649235414961505872118726708768821771058820298349966121621640442678388023512061082356089824329087095622517327244572733959388198591491503432493118351248930715034032553194787787601254193265424727767787195819867628152159153209954948055706804692889498497362275036307362187889765323533934182191217072106211242865669213037806034915841734587037595982995424222591909207347792974250582284909861144841510331133047581725886140206815031620336381244547421990165110038802551112068634143290723507871329684526683478429671149218656188259278028529479665533385390375450231286297181812952965768592097908679207834137462715774475885619795303554228625772489798212877373828753085520565486900954549573536379835018062828175303263037625721357664716898694717304458752384810251800489188583442872809134217736544459554993742615997207708383989962923645554170763687895733279922119228032502035390601571796237549180579257012159787922843128024905368236255316428238973893438998666499943974345204987779957434318484483037582540365484827061030367482123116067607866813772154623301218606527711132349902776248475757378795309202251298834087013544382828454748264025584948421692952766795547410700243368800339253388895698275047219720819003892771445574315933683561025086315383571778297711474069490120125982053529670281488301877058420157523424339705563562832945511737160636054971492596658366630741432937824908544095617483176979728276375158384858806661223177732426834040386363505554236295992603555413928843266482531996069828700245593216977527760031970514089832217744872826379991081115880194149044838507002165859861729599380332610151084609260187195596355781437305551470693064022561180778007353025544254770659681000615822429000433651663036727787861053439277411996070237420368624059320063625118137082980018031679856089718949684408993366293304463300721366599847706309362373088422620641284197325088737516822307136130359386535968176526218759845432297792151932764748029289763898599027203189571489768728039969764227893845851806165929168667287641976371223364129744014061618829795949924898252107218456654155114401531539837127861577219117808579587628100901624244602572631523386930228865507678094173610318244090449812833651725915962850432836219994699614897984290391316839160787244904740667903428127157192187476227409816760511520812653773443942358914087604358065350396667947316030720862380369168435559310183531593907768503034019658378475247878858869340295047651395538070353814639796796269952224106761946346119734007553938254830022547451718480052296064784341376841031549307246393099728464039027087623831646925275672810988910624205566339777306052095081644609296166978031593717255633314048729252056916947273465051224005674517117663405008935226012545214328382142213474201556038428923766515551131822188028916119504874878663640423938922324544623720599280348355928568075954163914986735135655438688241291753423110373751329272632228471871241733687476549561340095518837382406850754844282959072487365632391130888464896853403300810680810542893660766938317071008380293932928854075747917713950006025060371492315477752478003985460978035483302810126173873225289233114250305976010973720724064235007798573057776808479133828058618342550008286473681881205356364464428011408467778113737226355128410198348560536520815464782408740984882418986260100887676939746669806982638950097349076739858997909763748689706567286977206735175828845300761098444367693394850250464433743417496418629885331380035142822131448402220023546064768097191697706924254315294580744621569292857025785157659350897590118535120026360768812970429393259393066814033962775720403418578418880748287082022233922447420187775412127802431110012929911194038417911981968498783977144347543981269646738638284355541794811498038324952338242521503929681774937305826560394444323644040357231020000208985298208744966566171154640479380330675808706390386344636031157743638221762526725896732718047810169641009411296405915360531041983007465907437948930754340345986515157822918911698649349608829561047864449739912491605918371676806612266817982933919618465224834760151263861848578570469920298028406285664478517594217052785832886283224148024505241111242970951089510203020914178544918300808266804000840344126236085085875852591469867896136845833998974920065087350783684543742076281417352550480219645747144149598513597720314691262431022487244435589802873657944704422515054052780631405208420362843524508272571003184869474071688250980521850703416480812424557642137886018242570321333479689418924534052720273458613412705949559344989539418879491768586222401052012702292476138867368611291472195298879154620685859117115922892839136906616954701869488192710713944174712132343074123235340139319624877674627793202763145851569202458449101820450952582281372265402770151229598463864343019708419485139499707658513353836251374543846161639159046382994059896048071800888006049924652716200376987300663591832259098131602553826632216524834546192022284069236946961414972360190144459226477127622405515739450647766967064400188728281518016317255072542272789241090096431421233650365506311300587167561864459804296831895833694565884998798220627395689616136841489439594713897500302854892044140244904159094107295009892673148443186406131920783040188805805436122910052503384607372513740802578192973280072166329285527943425209803073675660266566940618414038862180230045401920043924563258914543361866649800315619684885802734460054133431035564693660968199013183062770758272210488016934176007721413215690028872562865838417208536833255435288087297157032711294138273468682856104820273176157425236932695061075067256921251996991979042083214763171930235211267475851068273580761900357564593244579171469194602388823342615517799305426553787927178088325104743771507991073899562908342471419120845096616728622437934033115893457434146088174221013742000268290861976901399909913536890926289346612082203292217066026709601490097623954185877661533791493375042987342007965568499897667673106697197028188300486244696623947279771490102160086243868001149697730526336996862124558398478985211439764556423932054899123791163687251090032470742491417437669701576068445797433899258607938497707270142191878456900344204908130440935336421414586463400065105554193061497738761746887465151082439509871467099503745289984591645551563630689502539073146263431994336654837112897471028076259824136575360167922107809466316577191150190052830153942890580811385574526615642472613981915856261360574473453760709070346891263991522650197330457327866697926824214875868851117461050240388880562827044601658886710790013974816802510557774261570496872551736905419837294938821226786049828100204789392089944010659728205618034294656864884747667580860653277949402814186888524027357548285752577808944910171751701047332920349402803627862179271589522648078499650879199625840727486353272362952259871382922668789730702120103658597717747642581047905775631853233029050970011511897740217715703597222025949495681644699918826444799553799569688991951380967727235175862505289240447456927900695557798030079142530598334750593512732197431590312734246722447502523297666415129958354366752648298476294358749044991830181134568030103032940160833799826272458617415903631592342982819166928597018313790041049506783806735325701403288732257296724966516389190953800664923843269448380006871594936301321269703219452738487583793552209754544544220549832282554031196882224740885457470282699624970196408534967473747800691582246935649545503369250640458537661795116164006085952109606620796892682657378690374206592426730783330123787647295200210955898855033544819208822004467383621833914263991952679318318386028074932861600592979499351890161345027784315480226465684696392704565253388697806384938135262647955896461999680539915588217645710683996527762039486209156991840254131293383384243489168157438014821554353453844936513769583766387921240029903876742062491289432219462212587200594588736949845884256389902262138633539460399970715738009025579410721848510260100947661788520558482815042716854741911307364653385983325259004532736375194812153059154276998877277298485749071248885037584970949771788780869033508484571903956803547557966734893769800697877135183309018868179980480939326750150776866649833606671397756685769888455331356649805715102358457191935488406387998561783350586094520169825988639826205893468970357441304392630918964676382405974113280412198499385810518117090866091640192495204632508665646914203345442191977419367702697501720460159210942935955096097663203162014964845677116256499794247875775705929054960047816754035645224919085388034710216329426218719888580505588685287513169152207542511295228702757635675251859424883932817848369861745587409126925084248610553955781872524515110610659068829579893250977835883344355200527433292201473900373080755630006366897384491258420253920711416206715482008696405283943714813682761422777662727198891590626525620995246857047235738928422973167780341160923611854865529558504803372216334700412304055129613309965665531493389917079455080328623173030416913538229964910877774332406317881527157724105978331834867760622523902206653224375071528489188613148332689590169356159163555728656089565809385712996439789176641443216562729949840702983132604167991459549768705656058887774571893387299146003273130602171860650972052540470669815744576698473715694222035488739802986680066953228570161953079391533218592249838202418266769372320697250251008585275839549312640424478928128016829124827130486500093903317478575244760087491447874299005001517679431279929139040625537223244746796381113732913648705660360292455244819134121856942477583607449540928041733817160145221019179683831291874744169649945054025097217758281541299313714934917439005350965945296554286874607721940018122354835955523406868916619507661386357047063963721352862498201466517086365571753994263774999118363987070681710202671391199813330047288013943337867645413844503178992174877110416208963993956825617671917994415491572747080227007267254613531481775223932629913425285266228673279434256993491341445882854437021470581729847876286579459016156517237822629118565769637759000056785557487467226410743385508321875678202564231487185325672293175539167075499683185567873632766832523479764524730841432190158422473720660899645777879074617491957140940256668127723685972639388738306714925887636847355838735994180739298115303958767795942160091436853650795106123687882181677293320302424170634786067258439577544778862686673033289225006011726647951582815536992732956376236426580886677017598896024988042822016291630115576447776376763953772580861885754254643618200397821554699969442235655172754425014111130796695257762850855526492263106245689666380691002936824340944401513998032222007831225030260092053235728732704463239645171354151871352184482302466055630168414172988571629891590442181773410263509590183726809547242862114158685412173774754030704190937231685256144077410501978120934765727537654090200129345210092440069857839116886099188860684765865014570201315677361025244568668771885282833196665006683477106579074081798967436135944635711858222135633374974409702813465437945395430856219321225728801352175727469394425974342423717346268551346838897525077898588273645173362749462660392366835717045435260768060036370936204683331527227320831937218318887082532041544994692368428405203930189484910515523652009041513901293335597412153828622749283510100824332240255667367731250009282047246591627414325006867623128115509848113260734678473970711977577667052351370320922460960995059784470481219811197455125381137788355330593912763428870444897659664307960143646423653725965740161111841370919677315604772330905964379525221593518854380618623146189490360449243716189000552782249535205278979296519978145081733418211063596278362452113799699434839765843239333052883061687160175596156008799153167635013158146623735181973189994821427059637066083585556122815969058105666423825661278073766237378876425447129677757713209508791582835598775837144818324008480452297152109758949442861749159568233357410854939916442730096765170017003988128191464837901531037751944014988345945247992941219449698986118107108734599576302467798499199719555660812286753983496346539162288390548584227355572521672889885477203427459200059244797026815544552585160352614219334494448680342178847805138171693201546473133210728345839260522055940619272579636045631988917888791010539616842793553059622768554629688914605523905775153555598448144059700123801047896219294883538356579888010119110788692690225539626138904941798915116764689249406436626529750688148073217808090330907680964970360406912330118078900788928609680039906954244438260128139069239434911175202532586580962081368265792493111315182280170494741688391309392357978178230866410068605119678294734885909406092184701762318767438584097048697957802527355413889871432262371542530327172084589245583288450116213216343221629444458906432876560909303902442841225940140022442675669466120463809085997922957934503036575850591488375824062493117247241926460511847516602559195827061272741290590891375286275961098354269993944895223558821965317632462537938242866761526002531259442031490782447763461752453423048005771248852895501016927424941513474430834130452647547117225979876473588198849792411449355079789242297656602390764652918337415771556603901053169370588072548363102085148820061544363543133198265524522071267022361429144501791745504768884312675356661861017417121622089325827220883879802346587835286740405144966660703823358944659167962533753104429736390960804081899860111811883943004416763613877571762383582539166053898493133421317890973317891760336224949956892094934608773078451010825135503205855013832701352039474847572643187449736725691580142995167644645570822177844847664474602421387532989857934145945699113771614079405824022455258689285002670739144570713085391092045363074114391749285076287007184942385151162486765746459713501482688310684526962652783416731883137162673148063283203309202053625852441683414604168900384854167210071423749012317237098367550761943732513337199364050304877707342739041323595265902956194587008695168833371672004486480679474887580499807599206677666300328820606215197914323996161703462031988466634387452157337220707832937567618621764314229666278968857580392067702202207053180494347463869049874710519174568965883801846061554454300648366265537614375710611766770735088723993938212241304288783074192024026902819286585383354503465460696795593715561819903051688529249381532027437008380534774567805270073385013154465704273053009760789421311053454034092596308359860168829505239715333999839747933041816217648091803327138076840465760052101032252296651046881473631403627850852194548731693148560122438329871890841505828342568808429657902266259113557532186560265925171221466652350840379502998758208858152131463318680181451829187329486107182108171601756509461736787190747596476169795388687891145657012738736230634895530357424295616470486941813018198629877972240614453211983309631022104908759179112098968719166083905986700071061582407471054346027080768226016022775345611308235006812391799071255381065473467793369753974887716648928569517079789224004324461969177800450704560864843589554448508942610687340924405199907445391046739940656716321887738108643191728198666741785905848578448555155882354721806465398473249605448923241021915648880520614266914137345612967346021933826933457309923797802841141204460398474198455514437650000723068028489624121452272795841892997774297830411327379554005249698197668840576198092821200645515869617517445344221713246072931656365774462205820063378772376059836899965643671478882317100637825354541430054849223640059669839109498039276997986099873166969041361903834027520533383782765831398931034850651740853576485320999740824245862735788917450848417504937276022607947624246571643932312572394700596418756276229832697181006780719874695928472352255248451290173298244832590515119536790147704902164325208329691731896107669735670063515335481712429658691536759798494070636571643475317646293208677598323148827556801276517794278131740012995644729281481995045365510416789435399814108268355213473375319653007589106262935977017249242725386796508505052748579997560796237395789238424760931766717586403217201263672194529301601724195305664129040463422938617692705045110240128623416738700884118186469239662993248968329028237276639247697251326992199529164746167797649657453463242050051475622365618167340374033227773968069483331752236429446426797505613073273254908860422447112367528502243253497430052357520511952953381881509396842524165756572558578148400852004505056224390917368613231046822114111175407323549687747925486581993762875737546621023423538669681462668459954449651962569432991652005262586614279644645682185870903361045637240671803782706593121651368515096435751784143388001900383546013731117204013972304355165437884423162103534901044671298701185534350005475842468462064103003029968590622222611085062433596336261816441201595404512122872927724552321698855247810711649657757989132512637814717117093634138973076927807199268724331746676143250025773370300201971902509120916187352085078092752641045839340388662339342774791199120781782363343334525552746128386084202164316238284114840865617861458515528813520062127148574009661599502822030511755937598024720817157171067762863090549498030491339252902376448665165699200395925345474829263366043578457246671766958923370332418890499608194392453158988094643996445927187826931096651927716822814766239147891062978569598572196508647069277625955890652301230539070151240497868729230410261306366527657883455361235124897650483866785477785190626305822570553531081707685216987721305400595007079035680541105413615836972711408124326791119151154836241461580338271183744789358774587014608501713286603413892916445068314436120071253432251174648643523940766745531840180712614170632813938138247052335160720231159312292944225621483970777646789473829111405829486733102239425138868091893383675460949227403906062937306416638006486124268095596485005075304862494149646744084564174303038628030845493706207209180173445480978736991631357318713347969713022898690740898170782467107860786101660330328214553980253042128766371569028913877468769376910720091988440312989490057933178958015665788909798636034378157323924843881959507323699352387606260795781355608005429999086724931809189125348619702491035000618738552808251896497159785906417497607869538642856716768103870246629847908456335582445437198983394398262097433287914161111957892075831793886452533485402642712260484657016410157287232639590018003918725092288973191904367634738877067314366232350330020040761624101554519912304127432111558301796893801600376460973270704821243687615208233513138146476349770744923419747166236062484347337050852679260622694004489318682277843949452218581968549602589741757929080020423003994507058042770255885604490409771668859296762849789280731658592416036783427700294976211812467446484597952862678536514724924871676908533602122347196036035552861619704593529517016081678169156711185083809577348404759543462974456770300251897390156235308712260033400390374005347664342875106817969166224776722894262057785289056696137705372959941472517479687029669381759196417106202255917067689670542676659491478147212420656547519158824446356303346499704369951104760439639665281933967719896476047863819357541465094441428175980385608248198607598990825063509216555556948241515456656050232525150475641731309849725301572289182872947379031726035491372793279219892193924455123269045258544751047529213789534603349809321622026005434762850622835697339020478521375597773297197342905959188967357086725471492887280259890924248066010910275129479102945402285234063268285346129179668911491146294859935003404715582009416465293264375311281640949139122980082847477551338433596313690917807407300375781244319916425934561699002509434824346370121235260053923321914930950349849733271577548910264001267049649033795728301143236686806299312287513272873311879892978102938903809331796260271606827143190522783625850429179965676671145893385549229762181962525863352263852682489215878112919710736495592450572094424833822368962711662599368149263368263866739731216609439178184115050134340405518622145374759294358863636906283141059710311273451687934605465879220374526114943216362099790805810769871108344806501654374024127938644280480129925099513734189692753822900430683668095299471606781933104785199692939041427087984812336255248781839580954094399746224120009889077191618566999109115066113714621143668399034641879536428235525742907707021462306031038509188638984090760063585196409693984636205747859991975329073831240491517081043982648150778499843158324929521613534029907397068505880325546649964645115356850098293776563953454530324747104955668121565800673758691113864330662864126163571775842930183604116214800756784502182129574281534997533466272501541785159345596094266155455341837584884984189545152182073645378096438523773879606711329044790313156215546126336071804747287066060194385889618155431202165131994980895908283349429199514090974174653887709204960221957804533820026002527538890855079678094914302022500765601736341942140564657774467480526314882874168203974988509463275316929336897704848391815478800341867241484930771377666365324502389690699176264433441168166791592241193631096214596621502097506081557205927910931859742905603204721577904845401911860317127344699211268059855435185450039973999775612887686049836106533523552729065604706383400045396239979506436467705804074903372684616926981592541740784229521782012831539111306638895119492171321882973382281339648967591928139063622633200960053063002677552921722041241346319436827048875830526577902780209696169596271090683897534334817912443606208727165706619936632313478156070537227881570194593320141957124886157567225265405982552198455124861086627507639271969818134735656569829549500717307678241780446892919130462691919496844530473690595897871511619267050406121276198884599319397341084130117037414669506558801460699820845601989256010421985502796083192108819125805099071869250687467221828388997975698376837339307241892308567384575919010148017599401512794540657722252665017333664070839025398887208168150141849368546782754077029839716706526456581905320731747562481971041486799416213292442254918375771820332315699802027450506880044425094627560606866539320121714186258453607773362287004729490892109595896416415978333274491001005352491669713780360156173714721972245156575526404570942136486462704026520459410714144036705361390810074945643863863504408165909847486859528114470519010063514761016893401294550102424545249974972516763641377834999201949180116730074864387702198060566923481557777241101746797069355106522894339173571114492110829475375535012228180406362541099073365109875160953036108388388629592283059798599284812804154628996367197202273971148302811285044458302428773803947248379592252887475478546601091778434873486325165656248575154104299931615038072321732314587795435772623503947547382813686552750572714390722344306242004390603082951170666746252576766393739209631279767665848777464156882071958516691163959903191882688664521624250166385059672504335773169498788200678036061945802147541665598923284979002938599615894083222184358948838204773294002781394131874130185070262089232646163471784852272723776763526347295243710805406568896555830867128561323624939355071518021886658245160906737679175511979603693106711819425647829291043071161018945236763827174720160345692908036657828523232900499173807815952488454998078214732994351871309969243375726493126254833326379712848777815241569396881165778715807489574948787741454254450484692878535931841463346217610829375057791673704577880251280928192220828041899478836020919100047195225907224522502622599130301769134524668612259610975379856848692999415787990345646027187629396763856318797777092426700796061949781208504553974545806319235793663807443196789187667923341627735807720849823970832316265688682919117567340334832828251510908468607008587678053124040910216354760047935875621277378057066855312190365641473375471003249075575977246001761072697589381312676420781568766225889929696446396345174773053364906385487332331642686476292511213780975048666865987482903623631618922380256981123182120080727348833910802838092453625243071326434653033250642090246931185529487915720409244745968444118953200987281802287045846946004825548221822889208638026244315752150361973930368858062077401880678475955283391650514649486994677181952190008527633466677548473156733998127156406077248442211168744049904921885008580988741262296553042061918193928576259136238026303253922710011904778387272874415151454260967564522161468298208372120938039362822869213318462026525734310367758743606609838990562884933796160503558004886822226484782308250253823587732661480134922662275131226345426246665519718922763285415163463462296512425794503936877420836912224609991098065057804425364495338004299415201575672307674575140369233439633833825550223891326489632049021760463917951008392814630360009594303154746327207354895590585549659853864130140748498994590412200579903050355388806299151501077518476687658506867830391887296828826741601816138463235685656403565783323096621991200974615738863368282870833235600564452966458500723409008965216351241746575302000856657276491854845665848874784772676840436910670728400289854107239206854468542341382135242293100761156908771470699274723758466704944539902786162688845249429197818867980041700643835079557625391344806436813022277984753447945504052743207727384270024300428932738875242310448680711505160527837011525933670743194702677062593685290304410035670030258684710969984875170342080341119897169861639643086092319571546067450454358572405667678180201943253349907659185403524216773411990725190503271644006311386455574377449536404852322544002373708679942164228456908544389277864068475532377576499120612296128951450346529751920971316887768043615070920062699454757914873622492464159878313885599878258869833100770740016272149953161324801610775388188685033034283329387967345808177241349384608530453769996343797297019987481239713975734931697623154423220775166391950788534321105718368048385069094825398566057621696890260579647655945533004631146759976585150826105128168034192433958388500069160355813474456124989445148071234149715803821216652634689352592149709489441726968248312852202377273542570874750357839710424601532811409727217691854942347533365058235602025729467097584113785967572021985592072229623091109764843795901101381331030085436711416801329583401261261526728766154313706938058347737103452746332008947537885469567698967686785839913609176328558456301761589957684792859344729579644416055639133488642460508499158969048585767884450827030325961660881004074439854462875240742697802726003873022928330297907773671558471435918027282089841584309213462096290177166907548259362212856036449352117460095911113189647582202603170403208614051605620050926334890386280030060430294518186089281100814893512237787499688318772055184855652126736419723255528105852963545226085906161789433732777364834085146800779219673390986034150247459267566011043359590358149551909801448172885725367968229036342869973813061576812018102667759927388761147940292103747856428035963834418364963682669649564867615925989186391570791362895262655559599779648484630403042170807953241171267693453838566407642198870664932444459766082293494069180545882473669182702645406444839071082459028290163486491624741123488714497711813929520064551255510108900237936297665911538832485437125006922000342516911274388207419089249090003289575758075511711715714564265094172182700837970696228222354106961826499482887469223934415166715348308045512571104694460579632086618339402264254545642023022178439001470931548916385527091923098933277502808801093891435360996989822629525036304445108959132758064170803046705031537648309822355607783311644817157317409283190592481844632528699700434798541242843736850515516914691892375222609159533370683763762200671646439110774448306771503274391939245862676330647468902924077981283559837697060642030450950692919556436939336994111700857082329984895999291531967101021659546029503300358684417651757441467791512497642715361437798890139597981377364527150711210853520987434056334081752044821216068258031707893752809416666296018247311894133305171114251069748708638350625681507466565069224254436665929842401845103754442630532343184620370578364328506545806275608321368205633227074986128109362586496813278343777095022477343573664296431569783474402574223144075457020808895409558246060920664598319456745786348577099908033798689299888113542353310618929252166524392164264660656731054535022945872126555735914565777713528760282889682992931180029626106332628217359189294607750098870199237461256030518470722468518145263278958336770037561990958343103063809862673197403096120819363256877926148191811224446909681978431018384647437371778159546870813067603913881041303341421420258100670516216786405139932058273282627455346106053735229918656957175601517655280684486988580589845167481693293424504399413602979712694098531846692867545557921263004882900634052420727957047339668714706500412819254153356237532561229860226654313123473082058256259575127634098337888520926396604773584056843969952859081335736235279972465221756546751538197601893780066428839023662419323353786413970074446842528024517823235973374615912074782284849017788060780455412859980297341890204795731106747826170133892006771797915322921146327048000509217273793904525497078629135219648962387081740899064205764383156510673800107997753945885590751059714745279352444297945620916841708202929313343292722986779621776193996923678005604603554505436785776133744359473416952629223976907000466365684706967088289417592136191046046582089530208879354379303472926910493558686850809332957629417462864496079562156500037766695149494073476193276021711498088812652280357068877522526471265991591216438702153366825659393754196891190526210927185669556953603217623143381850513956936167659148995096477479225710451231936557240417853191639455129164716782648507009318339586283917945988392001866281964786978934815934225169565285275439537393264650263398593971853928397141758234120256444871134687823222455200491356590021461078211799743877435972474656492825221619108725998440578827624113989569370478634482171371557510422762921006338594793167527757153646765436876695158779349676846548596950174847676048005812438461053246031009975124847795221647534774974337109873671882832142196846587379786260475358254199857381156308966422356890491003993066545658461309034433926466911725102077972118061349027542059573420551418881860895917940979883608708592300926889056287687525035748443928362453975085950354244779283037909607304683771518859791522831833651698603846738822212408862918188426488641042884221313785665911299935693028908841620096076647497621215429182092104769710731192010393135762980031216196069375493420299127921340472389062905376920956447272348108030278253012914405144449477994063443518942069685124174053354195674243024764640118704759200723142039817552923523304694787195215853416181996018851352552656502642937025538609858412838692900941481826052642946166447101835035469057077735535222714923731563211867239817954813279056985834669711796445445427850259092930882166764376566602786158645999022838752249983918167954866741257809400483006758129497651032221643297331710526390400692049146840551079683166475525946975992941039689008307844991630240379513650815756753752473641405620271436462974242807289226809760715743642545605649566844926731981919610338498601616708444232754482627930859817372494985876367742069640745257922552049938284992888102289006272264756905125024457017486838428638894929082422827055799504152675120159642417964131543200770084466823001012227852474093838242865422411226328059159171193957838215195211336193927839171650509423621663060170281578396469594196164561524528644934713463845107041752627394726970726784879024707342407007758860809995999301879879327747254629892392786493607746163816212827595271431795976553300816043829389437194511633339185265207895201102362138873557406485002005756695544617798353594160424259184795421385785609323031558846895226178893893644766979941787282489512317817233910695426770771523789572417294140398137850233724798018043388473388402030783732238228124287776324701224215852584675704630598203215349258211648900696376199832067205743786360167251432565044443792520709512142219879169252700036575927896639740370490877976923122121889120738366492970402826163756242631890767090241214609560620568496797132301731253090134489096593053186122625746909755237802560901308899674883795403707923648932045565871948611137743631878215836301899291881404047140420129954673686386931164960608458375134693466374699070179620446658663157085540700651236172176569230065556027676854674476486180391544473520989311403333852674134816046218708004893335712829967015783558012779803922259824225361696473079667124832498671331038262301676585146962097890880383316873198339080741374204070764117378367360335076331321254700929785377858258816286715896610296479758508819430702735242272285746859218453692608386609966896183222617577618445480164716333021490536491992494477623689289962544785319738154263238817361110690028350841288254790681554077935670994880563752590513052370852886529236537883443462994416614818263789365834077109062758436714733685673706104714625019501427663755540532749193028886970610205609533944023313353233396776144044056846501987032979548637006129642503365449553149648511733029168252015789137014689458423457724912581831085288938018487151034009530478869649736105474894546563389164830897599525197383761975603607412214518366404078337584249551729656961843922807453618418816342700599172682584981186072992783206287295496137728185442202538157989325734097947843226123892136381755947094190229152916987124898671565445066666732957292447356319853554818481410966844038512289737965078727814879592455489258294369735596011166593684237262278270087369715440318924118452646385211713140216754978213903593171634707109028907133602656758226990589323399228487658240658530603616407477767546630900201362397627202714927951243783280605924755748193950393238298639028725398460445307170336028655863706171345498691861842329768693429089856455384986157585358899862059555233303230514732538516688822009199067352778613493602523061091055091957426895525425562035520970216977616888539499532725311424680856552255546032382465117447932763929158459055517745390627433710580736682420897621328440026842178475469581451531397367456298092499868111437910903330319853252397495160173851723625366525066383505663573908631375613716649655803820227538017450135479461657464293962266275938925094670894867090198691103568095680713573496498062289587622268641856606209571030251977141773244823043217328603344038079973408235013425525942051781718835150742473590344652436002166178866868419486821548326231516291362189568894779568908350985289552185229665069058161870333681213278079980861469839992957153116234641838908788170315382165563911560732999542710102841748546940499362275691969708571134136902949988689876985420609115414276455433617012398491996787545200143837145941456331477583583342481974935833128747117904397523626158013771130810858069628546719626249256235891517761136082290414102744945589295690829711019085632397322488343236072498635141581539702376377282385183185993051953931700367370818245254086198897863908715651803305545145882886532913692030210634077291735824369446448419679562650376461858583107529325805972088145242862014452542532795418346767187332735016513189728868753503819376487496563564465627952911820898849819983007840549841382765656309524573813312832930418934328244253905940220343467198436081181998959935907045581463182006392001915292534660758019425000450995928010607390070744465076411044362358895599206103848128702609205233618288868077342652106278103892942974829039849633696712648761519454226610111852444455069239937058791792990762561234570753478583569102308161436994211616043837345511013177875539954143584454667953502006240142598869242026134380160599438485249740425680753617489546805388938172544185347845454471824676557988022547177870293214916391301247624417618542593533792504881052477998743780149395623180135429775984859674953928663674038929583706301045532109422204585239385802256697622322862279728681417981239021538675185867865762486932979509875816130823015535597518336418487854474110230555023204205590940044507254906330154488588030364891526902267783876938314460469055783292937637837690973611572281681567331008787767928100320565846219742990577318188604405910750266230028868727019913122551320721266432041254652996377240389934932117086691486099567498254932515522408199675829619546905552251790005077439395016944375187977764354942625522110392663449685723366604089977778326645208913400176148580195871040321459978385118725424438457425127062021897323398275383855816170534653403282324019572842526547681949551489647803442808459046862242504082545131860577583220621638933371576849522492628072937082160932214532039021596493329680174690556207725206467793656432213979398423270207187959442636002993008042693585389810254334047530730240644933311025395871683016489246587804434384375268068908833778412134678903797911446950781705987381253822433419412412141279809931169131730990925983458792218864466505939321069146739508132611699715990998039752002387162936966383586603968956556939995691313781963988104356883801045845198975191486434047290518728766746471389268468895563187407339342508140052472594145565159030370345734493049432474650521285859375270069840584209107535455222190276498544218977539439313506106745341133966759959822753629185627202448409979490041542370610186813818815417747351938731803712177528442307370725089147030181483150877371819358388313463000719928016346863547813340058235515568151547487217261709717560887193330176131490280812303214480458930079910079287688416190894220855277039349494773778446553103670398419151292049835162367222416791493528344293389858078874360542716923169293899913663813466398333434699075988552063898608667574635940263387206208813650475713355643468848467935182477844597178110887166053080324730548042400762299043705750359251324091210339197523846356581648296854762622032581084086952034380151840456633796480608432681925229136254830592543689653203520667071844616862571413448066692985836520154064484841583505030981156533301904822742781381113848033975822505410904286656630754076605095029124710992781806118115142874382976902446599059957422470897676074393967427424573576412030777266959924481828505760251197587760613236837473409410599738495622696582060984683537671840776756769712113586471792454653288226450373974217798816018666827944512092122362422585078236891809822710117372082699411529267844752079792493780323445843763083893060007708451752802230630405435144064440679148191234856607263026679261790255717392682790211784375014627567869876779770420879421831535480684714698207935868029199113011965312637173308973249284348717319476950942422406445108594414213349912953582955197796806120675956904223913750016770550312649053894675334862048463464023754201517684031605285684344417570990272622100140127957690154444393701549388254176613297134419887489534930138984983574284625848338877214219454985745972289112872371541382315262024641294716973938602480578789890131526192867854681106441283003147911497013974913775206886696544776201150005639822938558527805724491000859576653816875985539108351705813280310846872324517195734014726204266184810879037701335306174196185361275987892869487319279447806298032728075363232061142926516051255189105640885284457136621900062014882028721612349468158472973975609982662870359963160005436348767006230086932161694520504847493903934654602491713299895468572766851796021278306612224093341021546751259390842957369069663065562651752556377714933546159152791066946577594465931617289127133683169184038791251583869062025864310419148054198500639598681045606179718907463922765861230877897080020289501816069769194128733209291336026660613758509912368844987399176710032638786694830595842409883265786631304233076395536619377678892108518242223286831846157166363376009952626021034101468956477203439343422856988388769612477228477494972992787370312595295190382767803287468394418535622832629240553841609715967840625420163685794233543352564378361417364400207856850914182110331916189910615781950914862960536406052120306621064622917083395425859351509440246172435336932535939129517771268627407999973433171937999993933772486587733614627807241026566546984301968602667115476030842344253577609170560505311233788071816840236424378239809776348054983729449229310961251355130387071531404924804441203546554694264343061277218234154487344693099750118182604281619292645463531263251340574819531549164395291383991927408027921382967295049556312327496084151185775841993498270611108729731702698419579245225616979971660336557287482748552528213633130016517647880464947550826693350667502072034679982254613120884387487053878787554804008982835800105543898210364310372920325295292549436520592485624210903835399047354501486193725576503177486332808518204481145388367676707036087040387416785374080827840374379509446979184685437486329576850599422127079095059134886182124292337314753729834766405976801967150823852322292451561233858835743981362249613258443789986799714885251622217415654855506109887759997568582163706733810933988432704743343887455686200916134622968563539145185307514650704868659796295867441155062924936075555767371959837037325547690859761432143464175028650125913640386399520352038054871824298050277545406341741925103518355861729670360916686294203360298937631395168424063722087534391804329498111014444528371214087720144409470016380479933756914742360904631119455409494584541697221322111374979801047808760556436216844223622754467457853649493322515556022157887682766493386275306922954382288264326401838746859133855977444865365936514638901123733456397796053536903621264117777796125298767078106940149099785614081230515976150723996255192016186579029315901980953407305536438889774510233423957906212738947028572558826624180215864709144364834878426123324513498971376070403891070152528762120889030501843514073933767987787986125324802594860524414784223274999274668461065254770589795423382233974250410164131324561554526908059544516384888309199451991772147510438355553739959573322025826585045607150351271133943156069302016748692559057190907262209806414118101518060501073684894873825713433614962647768420145534659049040950280008648666461633552613991482564384290250646741873999724769629535079419483299017377812173766192431577235299185401649252220712361044932091687539692812577782761842030024190953988907835731167815113307261889857328882801685947806544870438379045369250490323340450197737678701098246227171703805600603587724787509829708834533975057105510975127689373977757785320170705126024972169930250535598311777840400179881328305610143759213063279874067320588334490887015166858113025656006426970655296952959461650690385697335270005646821419191974963326128609520212874338723145454551192073922990383512075858722981166134886667634241391361770416468779747849635058221611763749554873899361299526361132101857107476554548923346722220599412125016061310713197649441249048657292628062141992847250677007372983624917206754929346959099094278819152310122004520410487354037020850341745247288867690071955263872640533480385659269179686211932159563249059180523898651963240129475560290843087659595887419185913292724932271995260286576352842595560523747603310854404024928773301103342895179649926288252602121750281197150801232541430574463009882523129909422068042508693166077279842418938780826588508136838002585989497653139029120946375215387860594126812433353376252098585729000402989510789098452999223404264108195400193606664423496709477287299342760913363549299201104231882359565812602332425096933327381800774450377310131325078334981261519666370392364098108060330441201988595286540898181704836015688319568929986293379793196228243975959769060362354537213227339497868488455958816530326616915184875203166292642554798187810670162965209303119240293483784928453633534269359867783350519136937611890083629908129441838904103183731503259854363717032582881132007629534032316078519922847711602093745627788518732172688012171869856159119680037354061797772780894618411626271024421014480549300877129487705335417850805961673278762290291963896485333223749516916103497502375560813361434296414572704703937651705822746107502320206248172918131091950413895997206731679908866933832104477907086258906281069378196948201716642072984975608463835045706180893162007586400798675531061672082812493159583882227625314759877487799179063501944923550041529426113393959441202209928406724844306716230474728000391839065101031219866580080041153966980167553123060994591779544214070028119169062046537682513564036782628345670839692890786139638148521105381124047487487465804664971681564768706307078683333255402724940841352973183325142640285425350382939740858405987433300960721784111580544162961258565462228472694634336852915341365620615345588030148817758908716228810921167295992592891926265410016473222991475929752420201573618536045655752485749006580590996490905876192925278850092860119766671130566507504171304186413976291596611059692664519534219972465032537208937238812681722114187910416921522851568800051129638245010068429711915058573442361690501956901157645098355246978090387993444908486919531506003598110909634081551089960077763912115295870287240933468813957515487766983187767455603172697283864831127290344838574377553750207504806118834887329613747372010728337132228763201438813164153570164481746944669952734407112365016525901117929018904948814595713740891529515359534063213837262457622444930225489543932159392672306981450494332089411530148018762132659151397655600250082714858365066183760291891598958167020764785411426901613095582007017768405012590105652531130313881837597651049489593257780342098625628503341559441144739730526246634048152551472220422065777963657757970257453953782174818124423112454699185049615984884278538589558594019623355018940484855646360977323888765010185583472951895032160206887601043564541773879836021329395428569059166403590430247466694064464062542155679093545441454249016224445338329782255828542752195474106486304774087717368978637685348467567584690525759632247064477593864359321511030734618665154614230925237396142134170051844343908585008879497655578392518919335213337036361932177095292295986749411340324483108369854873651229415575553682232686683724142632867278917887821497148314035517992102805344263792815685448025206436082355886401330394167434385397873482289261230015847505393970149540002139883589573101098632062766338862435097401579434290265955058026494929048834574584563212019768727443796352992155015898500919632608186607517913987211135094246085216192989973877704710917270263860191685230181307441840993687708654889620869621156938267633280514091747122900339807550375936360194189488467453666514558843908678770806086277719288806270114367401036591963221625438150525464681327310826346517779307541383942964526241651476360973677505293491860281337217575609448168736559422931934105939354956735269114020561819893032631078540940986968755855788191993782260430411706871712184246206926945061062625393201741624392777824692646157028723910905964652220587084312681239475496306150911775514619570522776616254036477121932931633063989563458174457255997665635751300188089267796987439780810593899229909281349517586083098993546606349295432078261370902423613816875204452265438369272886899154708708107096926103125323676700592940341462048656033615920803131682888765861670846181788196281032367216732664573624807850626042877578792026212053222380926079627782087548221739611993936357972994670514202722562982075275681104298342762018219224188805198920078104757064395057057947056722376790290217421008662998961505717011148750862649328516600841616942641030527279988237704217712029251582979483295700621722544976944987494837579363303569295307821805591432837540266476636024862518652057270982405418529611830332242504973576797208111996086618582579981383789113243678471865834119702932301401597732667367305120808859125025679087943699703122269101773560749312025763244450344981804283289027448221605585815470858525375658685407994954701834452382399215600936707721428604113820278705398142127931414567311223583104134532379763955027906341130059134310282741415948502276849585210784297971685670219246741028558105505021470812023865875011882415466615247259338690665638369732439764596866098639553550804591656967956719153742764571750220869262303230074351119392158667105015332704151624855516574126250642183033966554635463013299644785458595123489261333791740894072253788811911637114396691979518291705548153163371398147996185210181420633872295633233020210430426081733449985727410354780410162682512331119354484458334042810328546591431111575922958946239979337564234917853939641966545248287691860855840769296137369768645249644278498768186906409484248532842841839477276793543108703705517261124553117203881856375596976708907956484396877379138727774659122392487026826089500825807178028470907701949779803304931864626283028323555845256914211503767200372373485655341500938950153628042682964122842490953264755236868331087255984743259556117499758959112330265745699947547087679531234553236198455029095391911413746980621161864427216172187892510321756017873613215654483535688836271071070559705986702178848679633556793964216778096827027409282695789870355746315963156439920303370821721209108200964662903385700530804571729658991134080050084640839332943415325268651083069088348899961672914372699387005647526076584607188636059012103500301681475731795512728387956343897632251586269744229314297022699492698444874372109499984473080864164071656592897539336538624137941100240019985670052659141015485044653516538718176988413448221133137742891663683805680777453714401868740051027438379728380882630488287809207398082015120218237292216653399032939122201438222585848121845749861688493970884541144427554742674164850635702056636268599750906384674668897163085245411319432092363227455721265494285482950301774585052748852507747012754495028278033238648011657673967915173996045078768344954904800405060622276030016574629202316043340936334286758342954090639498700800283391364687513416108394490047425700168092380341300052465195501107566115452047759847793057950918600771512091572211521982599862735707076975414094445890028947824215146107177467593568306519621823190875263624710150419885018485049393122933779968261453093908488347871584521451509212129425225532353230823325254913254607058230868404604500503674015876655872502930580130396841429630606860357138048648415044166781384097210354452447979111311168711422941935034012263517201740989408553168555611510068596018919522648404927682453350235674283709213244789551280537724665648694027896699563415001256631192751750473897588898173349291084491235857894684786898247543767433853893957088846977870923022896978889670166369688845356487630740156261247870508874100814063791969556088307282834135229965490456868148236240890124027128298077977230745852366632752179120206706983201735756354005145441106095185194777517071705610237351228528470310619582816743629380505106830535582470716917804952068708209632749853921148396113761144858643446156403614599681391230093048144538150668548297121177589018150990516594952641414251324656219491976886987249856334804923952346485459748542467839004104915616779222202875326431529015088031707057447252797428372922505822699061271847189678279589118401294863539725821231901289810840759889152746328027631216307209125066265550918530370709173642084949597294290332121494976060717456405945322852744542746726992278209495948074238641456768271278270771612755606747432431310165885220834798591648027757377318274816136938889382137575694199463236529975890896633831532558059015854507646586630154534900874003197266192616407974331938198907088101061997141217478171604843822205807460080173683804652777121101995455225327895903559447045756192328161510508725129470805190558989169687564254618302301571411700984602007528005605093476901119459257422011328227389244912376651561010449763241757534649355626597269441723947809669874736367653102295723441537990243823077248707339055776564474307771002009646639654543721033844559244010376278703723512746394213317289224967474129432627850434071107529533719764515750645995959221215145398029114440031412855602958736079097635663780639307703300166945878464582358191930770904847353200854027853445120832157341511757509172754311672409590493736577816030514922064368767973038899666275331114992355393852685006854269281341607072944355919622475814760887994393459932217582882338348610774988420583302246225839401491841755942280218539524575162717377215638576994782851034806713522385728377086613128337540711714133088922633297483755657939924178686857860349632877069409998623026601112136779234748031061851685188329334944845816951563900453251887278019617707278389251705215532779673260333562048689292883631708700776498892287846957407269540781076874928331862569028563569794109617992472113274857081332896609834622614644177958254418699276992335064210204157572813327057595233634626745478782746601453676899566472831664802875636435769574962841482113514654492786460931053257176157889108414709773728954396295808184717384656649122228966815698768356307426546865001856948649222740922447422416328846405565319398169969035915816264545569070403256280946187522223402803812780903816387038546703809043633528715744005285076616014571918804926311226297436893463469450898668369710499380204097212361550256461707511292484283897478698172544304846608865031815974284391176171607039300433375270332708164304998047482053378466981399216508603614439938267623540096271349378225394270461209621136993513078475556226082968593659821404032392545726630001606167799090839454686836567668394475431215981807357095729554508576269233454924760842430890917369272060397427459178293195715703537191817135091602251883355847215206978343915989494858790102611995044192849731743742553849439368872834196075301829731027789737845639439193659294447386409237081284230786094974547468045994096188763793092927461491802667744568923466691122452846686934140936680628400999248955975200180391621718249191016721948084232871965249364494528407006702235419769538675209490352181494890053644121158120483634924308623328177511423016338135360198904395260790577639838939417111088703557902182136203559404653565340955933595399703578820838914153557674439092199241020970928541696460146864752046040948414245663747627870513748982503460263849528798292497455203730466737221856825707505421597295964819019513593131402708693469261027759281531269187457994272855902478632037291357517437679066492880449602659541114159469491141738218723132997927163155712512405765438660877040462617243950149254215309909637102298093004349941748287373227352246003683858688856984706067198860206813837047669051478561310900622589474881799153978028382233920777620409959439353921184816441637877747385259484335965109860923760901319385941575713081886507230276731774703324424029921015765370257211419422709488316284247643617931799637771020797198481710430110940907565976005714853480264321886166024931649418359983770834393532340436581670097226758257402151359376506241265393407690616127328254436165909469611737709782885327881051498106478235991004150931665874576322834590903961110158271396884268879041601494265309953472498533337871113538191675995782456343581070993813738503595324118278083267626949979495140326746149643635141213327691786493460554398250738424111153315382540526379484866317354112990976436286563936080854014346165917050341860784475749952526583817914186021602790568691861065444142374891593292743287527959730977920326670467255869928697359119342042216882089627028195422228907773640160049547086438214346944575945326992728706229297011224493312042123373395832028354520268914126664139011413736432215348050890870429742576645279684071401641135859456786448086970728942706744003977850697249109692093550122806728677725887489204821705276580398708576564321999228673841810546333228488452430926975143975717923895262922056763668897199304490751278363005377057877509174987169456264293375635946172510882260254867702943554546102373860862499967458227532868102260629427892716665550332337928607374017957021114497063499709279427801962760552636642469008701950833713708116463140209328353936778513178605312793151866030448516886747495708901229039747581524742143115083472468841271546876231056694896525847995648134443310859403112653917450523154899109404302452445615165025672388854596449162573653069819804135286435618346808573853410504864713566748133727753315980206932318675834257919113119017331232983152423905385408287361130773555078136808022848784920857473858390372016826384551471749446549585161688692290256526516296962888284922460407424695224162118262615990517122043161483320430128131720943295667062829384805939994382785903137187457213498567341430956248221637456343672007523513108568205335919092951044916674177491580827671799628925597626927021343051767032518420211018611144472052596251966167674077884890546321535167717911835768935473640064681921042093895615608422384565757218880234402318066559308988656441526168461233773265198578079143462871735511391353895556632534500659257245596195929503896093842519076862471042952249476026342298008014224268802139665106849789323778354155991655043593005973559950558115150049765217292407418031984565148989996291428892722332002744010065644513484211863838342503637765403837607881288636949659964326450054822752797063902579373231885222405627893797123979831172277794257074780618321499567449830166726304626195964188854832845228519592084065404088552876331109957964372275239267804718819567902609499307923407242629045930310731390942555784483891098331828987099038291922085559047460355384457684034513054291042335723835350741566389929077929018472843064442158343390090478837157548603098591088498561878783944226124373545926392200564750136118822820856199266538935452736354053388679367659054611102292994393719927295467270348987581985153396124371238589824877522955654980129820922262260079340249363096239945631998006321023425121128428546497105350004535285168510775299419714346001235367598295424769618673621685568745121465844089600854376099477584661016824761647102319324380135431397947196499648735999247758300216930701109785655117999999901014939048263658859525465613905588637265010933379959145226779508630666097824504367571891933496385625650124973740454012227542360424067047564386937652774699150656005843071114174174828565207823899767057329135063289587523494671109121152485731181893653520802393302824572943346993418624119749550249807138808028713874641121998430268329246936036402099289049596989053508992837848599996017192046817139470062986584923367202919431481126144664086048114434866120792319444704038921518590501459366669913445510678082147897307344506294209804060719069930988745995806114139099120170812971926079010861181170468631075069115943656899328424281256263647486441930847683660135856795326003397640648174499582453436656336132949753949686447977410718588076049634114919351772728842970053997325255416441265522109551653802829729955705724254515318060265320396224709338611569403968104927336734672167176893988777044628035375878097258413542527719808007009552864468181131510907675610942565105361650495372071176602376025069122150434352523142804419716997458572095263750915677421050179538039514856918177695598865314619038052845267613748758721260935336443099996618785444443031580791351029359387766518322684239523169197424405159379991864632820538188932990050242304076468146491787048849251211022886255069288542540533755457034875972267298090674251182766460406667424139142088411878285098433176581000805209715231700769463074214808239726594894667709125337097298906659337200472555805625559781834317077766335511316093831454894904739571954855220736949594013810431070404111051574752468232161920053958132467440270094023126875568844616771976545585087724863931370905174873744321747147148664806021172061932257305233723466607612620798009616264386762881667982135505097636187164940735809883278461296935369529570138160749886522321433653062632006059160556619544820914356065885832340698562594632750772705437416020102346043694464866647823118466254308147729000500877053115952162255393403282275335249562901602154407614764897064758166955466372862712021516218823597673365338515019048492876469001335791651511169584693820613266236368415627438739405037428765808649345416442430841629670259312030898159940908255450987905919059466553632313225339994583309849764673614959350657988127737829601019903565658368156198479585414735741910173521487427775162792835579418507111910703827784140472128937959985768437246797474973186998717484081689623293858762889078578785639477400442670739334295577097301698622789949614748124477225427262494447440623843950288775036955903472206268179021626859620551756168857090839406355147694800452906449563210539576482152270528576282521595188284938546602709051587881388926635342553989691900231042788086039594357455766206280459697370187112367555476996469421189480534050275134840551061304765545061783819584660453055193296402798861626305312820828101847198483207408853123832118309803927315132772965435215141514989822818587465949748141935788523298905660084849306579211173716628612624741747322735210849121286561904120175949466686391133681704145465094703740789461249510372790397403578119480879141391923086324733533303919699148235470381918898136953377557677289720681411118877107632273760969185236522228181938488382407835741302289958264303608657816252324591036835899835677726975645523589916968009087801899424750501403332549036107184305993860371617320111714750359105077791131980942217228854970186749501766240486263873272125756771744323917772387955115490880466032480025160566616437381910334290920826419826276698555193536790908922868554713349910693300553211692836068140329836395739878388357678238635963510830633476831149731318113925432823806716561537173263077389124536522005322052617210979863079878046639714063071665572082979010984786131682387854706318618946608012762785428106859348866944766375756322595764494578156920396772929638135986719579805091574649360165374971091118453162072472756601276176615926065421792429298973532568325277082935724596996957088702593712410819876799944288530848679549032166117232705228465354932668068668536991078014049067631727365828091336953195050617756917002429365558645351631842281392018208364544621617192608342673667306295604178853784127840427244286893711352297929177219023665851527577802851678217103253916419459041322053496782728501804834670885507357200215360434343524081135648007139961478052016101502483446315265608394680246558618237588533333816814342610313064439338728669757231243627009501473604407971332276731707505669445868884542738207483582511156337682830583855866626882614497815659300151336501336441766319409662303517978274793820279717198762847951382228707002117347372506977725166779756514660057560047899849688029421161254210009319469304386523319444903661805052112101110957372565581070477633915563311379057909342417997346412139267449817396174390572226511322142390392290574255256932703318036745752943679341916717213178887047751553588131233673578486440438261800539079674756642678045488353456071495471630237282697084000113640494178789117076343680962370940692369275069363452825784910957841531973068352640158624841105697543975855996734329158124295102529726127396384651177869242436529173194563240158126460189771182996080152561676652101752550094866030300030609381082927343178450968180390024242700382286825138102001224220537699407305779553307876252389792551147503657520460376447604952875360106057930245026043826221255784428935146684017855300706422420117260429197398027400876220856020195322803752063137306731897901488395137788902787546231826696870314985748009314236366192575550403316756031043002930554257221301198560632619781033235985425132084073488248214372846980236839944666683476925307769698715669949871685186857758542226769387607223254559476972988239730711713696351532538875569308708685793215500410784068565068469755763852213335015815613419898063306148006793588381148880826679768696403911166613346805070568690679454832051727228752840660983188898794338099443257660997631243701633106312530610212054189042288911473788030854946788278661803868478174777821984029206318960640366279753574777697851252948210457202935383635697811034131088327128138143316543946552080741285348508972469727480245633539593644003506718169380089691546254939751796441904561453792671087740541741944454376827527775722682853957232491841376726660362900390001526691588510838349132452621464402322140190400584649844200587790685244746219053888411175581691933578230053450476438479853303937442729156541597686500642438311969926895979665037133661246935639805931958781429478741429307011369671628446674091140978665419465540185412406174033347488345646805544672167229423700266977045310119494585943007381592360445733009301207798343764360749869612898904296475555232616587161172099945071968952703899481513116926167397092571446817523579565433825721949630590808909251543625879111841686048232957835412567579308047983872082080897231059174917078423437502262994269864318950880284510049604284207481460201888926586398141991329810633301586841115434752474772625505204360649703382221499834596982586942084760366527980091925209928096256881339919759760406216913216558483586079825991147096100955006174057700311329827498829236473805348229269129913512437791129044040627965195702619644586533306965447569429967542083260317985606956919673327926594719459386333004920829030901572023412446336193641516119545638571264109593416854040308100187025897400360566268202230841005737063549822300956851272109850119189600761242374778263928022182791077505782181264650544295064996111600315971576116212822120370749185001336267536202297184831151742520559641657681314156501036031022693680801410295409597633618966183041250155752600650486725003069310260015623315296413611210201211079963087111685077315149068293949026126769393722884601414330808963863677861579763050238653629157847082376255675180492199948153098626229667871142513531490062408318377561326011283113347658622931752419567450319170549453210628502994658740203719349291817953932607310594586164611884484257956498939180750688702030349333386019998724940606955105821273314051552685495594223433378913945520468408910535613524819375818763669560257518340410243383684203009440538606927996683449400861904655029531155695499100533672626551263261147160629922934772238485612439357575720732514662279147829704018388916111108489002927479915520682343094734516436603014408454612917861179262354680308944161570816742133271981347288068382147109499855343216630059796792288513661042545061227131470951576618122881571772790860399024084915992497105517276210951801822980764571368849533068539004068071424338170007731642030187616076584637103483152868103937380280046707020099330425724774014932253367200731038148342912060824527465800422502167023430920160016684186116584721117955894755245926179252725308586665968846582792825700337494003324601034702544606389513038212305824121009205361390785748309136692645579326428914515021534189941258057335505114791216900676446887698470810579427275766790124337425391258715956248298597358201464839279263220256677219451447128119271544088967242412554017680690730049110182407584469232016936769423262668694342274443682134168990520684575523942771077974028626194818082387028924838583045877478887580240912852040650668340600821169776660444206477841729202341164636626699979799090538649045828805885307152496702758784907593454446580007313024641058713294940717352055350198059795937146626995333791269851092127107745579254822173691730411817256504247644475533010397406983383547721419363385604752858051366510710626977836568450803992347668539441259519039569959528930080361729663615760380994535996058580446371969063813879372708247853853191111482026238744925464340892840575051363133481054564980885864340025231819521014882904011704292838850046993714855540259493819951896660328810086994401480820005295960152402046973365931341737481585449907969851546739556273770583767608383559449420730010060828067698521242913376379562787267537550190431214750462947207612362533911936186454086907656413962759261546123721354142433116295507375987809132942066074448284190686663909748544585489175375948115217429028729852581608637271824055928542035174328325045843241450137595549442555156938384632415490408985009652912965183105101154820212980195365104677194146513763913207991043109020189881409627038885612207791031516000958550312578010940062863003168921832545962298657603675813373646290807191218835160043107603183503360023982872080977684863343020549965879703134602645273025049245736871821736101205168173260056740959827951782655322252016263411817472655140611817337603540120514072146871426480272024956789643353159196947031216679130827112042829713415447502173361259758425750684537428895436615935752498411612334648884669169430890499742173443152903677070863613621588952155479921103960754014654780823654611676142935053849360762405330112556881147231551547619470758657825404779971811583227828787328875706963613599920788485040098276858944150514707388364770183690543713738579925011619105486007676212771531597135454235889407033633304540524931183044087067893449963108876911178377109072558986505360078875263709155246239449063348380030947762566526057958983371562713691828768708677133295997246938070944806937396693217779533279203184935756629322010903151313806666780319284186915337496315440891171942921658666745742701229062840450709571672208081080265218466306631048871519911940819293481650833943239930508614394167503660713568947496516864964859466678188897820428849837046487118835796458522590397173169149864362933336364760473547717718912191491833070235527068790445379033351460348839990668150355603770188029228953043742355586929738992837221586624108587433522365971449072002134406011832812162824198360879884237889138730913222766696268364141520968493151372559436827138034872086887159748242624630173412701072895087549853815266979668510101041719750216030759267088568881203782685020095576186214941643829088699329920224882923274850135949068974367228174726750878865071709442791307039405822249981796188605210486352721010695167228382876942022669571567623387201641135301555644223672947942275663775903440356792821897115755617946608881433475178777524569366437924321060226340603899165646450964356227433943210173301506871813726610629800824830108584630394737722261924472748782636363569877573269384353232184653109591383969657453941006924111026958825595982226429097914304933686427463291579754977100022513379475066658969096246539699115247865211374354849901230450722664317270428016209930114097411708524008308888264543238772237355092490831761473668383325500440762445671586763320757297968594468181455164028683720630968386285852537286754072447188231739391607418359740819007804434673783298738750719330725323481416138417869838249918924482771336562141159558510164653640642466234428622005835416169225092882337075287963193622928181938159984264403148765258435012175172432502455699250945193581348729665016077825861452868675279427859622811085956213598156433924351274450244566587967669268990655888569748512109883637938380484815827414296258284251981982740515764012229494186238550878960850824535112065408279614946702179891194978308640912880097646644030008612116735259020935219327231693638199619439626096611406839690372956572504497688724528171191121180011098332467470224699804167865329038758743768950326280816513661419004300531713697185142737629890117041837472280422193489212297212714326918575620886431297800630638969892258365396734789052458530552449387771858391078706563201950155303240785968041291820159776081427176313204661174881914977079447932913849851035136076393534736413013404504436766825588290627173400053747335302493880437024255498043791367345226512524196626264951846472380132757718079468194382336007373516347629170607832732123098573325959119619375446478477050674605289351817122588083504113030318329193226892659087401136000719766539120784660063378662785201880433719777932893988806800392403227125497272493355432554759727802516555888226187730267237562859138430847973160400139624505554537139678052860838541550092836960536608191132634546526857952605988040917352512644618371557622976706941071100747754509756608389589196409053411186142743200648349063899455142161286883251553827834495717743447519174322150689668815410946205597657487096727953214184175725794240577561087203867796601030528349969042983821918703172436951975636564945156777069356010937449998648724178819610544125661204227373727064995301467253008767984303874557761481610986322860833320157686534854089215863849523200698362736214112324920466741613282973147251208686061807711118346475061864495644298278868978683447175776209447261149838370661507309355476327736865407555433672334756446168440281848169008607339835386951017840177292421188988035286759151521376249685899727144808802047302794753964510434066374271698676555556272987696928380710060620326973213916079885812109233510779325139917731585407664739112293139818501494932786927599629741762307895636903947743248986480873151321000705479104138655247304178689065847382899263509541795313734673417168905894324188867827608079366868480846617165995672299268248260567340883904000864367878557154914947821480795738974289611951600878352244204617399089804080005003941941135561426078686570831897189944378294259281187712302033723573322570660870962795190323432342448399858385055448707112620415533189337864523994756935854154964147465894000757628100735940755515032809793182637707650137444527091235856000757701941211239211549101294684751604212385497518805543909469217915747785877882305029598249505050440936940308229954157336968509448592555150698366096681009316160247341052992735674986299908172156228448662990130519556140950770481308265756485439580073653437301208661616236311502983123339557359069845478187771419279421022659492676925894415222146700088322049590316662238272520655850681438649425253501203952098855351749129642742616304832955420104798020074160357726986731235266298218474617519232184627160346467931330520490755619828886498016710757704482657274885705092072907815273550116487263478104762071634704332298728329253869543582338406518353860402749793228248183346307183346554200112499061432994969337315753898655845536800084488144743116485434829410381855560033538753449314038919459740283907834432541708658989054440464523586759738375934955530933896092348390757341447815077212633531548668066334972198765703186851263741756834670632468158815398032516524775216798856155025439843653508900752893848735193793574274649068398347706854482610872907222880091464023474673889294781850653896342897332856608446694218010593345857591047309534094996162011923552055715922862574021601372271278555790129928905505992175076472557374212823347755018389712296130077646920984675023881493548476103893043867316290275142930180876085707324998545252169988012086555632501922510977601785309910442769164492301543802223588371440253450279704099965818292771891090642319064711859133026738693292176638096774419865964321259310529223475842615749842575831708990225141850405685018766501435043661594065755751161392428798357246753673640957275747102415681514676071557903077848638015197339526341411095738558944811362736514773522418171066977057874951435425000366902716481496198233490877306498378312303368251132331085684396734861259076394722812741298325986449278399580609184654259248326688704757878863211998443685492258932156018835547912225343634780547123045377294512368772988326081480479376734113814842151319476550184939383085330365374640094960445240119556622060891015534970313227863791215314668316112821107448786023701642799168362788848224474229661757200708978023983732776572906605616402935171750862057202338045438627238896827164705701332554295917068650560139961497661937700727511728516936861403146704635435230846481676915853416129938039697160247701090830073811834083935606675259632932146173778017027511833667920286415018123279024475046065381238101803364353330769620476843423673279356665543119549351293866151986544688887616789778043402554892443139297824454096438718061106541926708404512176110847061733314288480917313432287397960840728784452196786907836945728260018453342804356703764345319279435465247905974430220056593728242682582958984368961752458651220499303064216407567069968814597590845679087509748572277089740451793217633987667603264289577432383352381878768038270488841397226635007430916696815293970947758875786487858619594818899611919924371694011535123419793558047449223746302751208723469612466994939258933129936236955778576394751920659449029308003223122934727349356526929478817479289838714793673653440787031368142933932746522737883522840284659773839612811324290537369356438015944530102052991854402765740360373759440612959369591957768128271662629155379565515055771516721085986777998549058474612993612334584413260723701046130746656429446338605186101227155495428745383251060145701383214342569501575320141667702434089884827180960196186899646738599416364084332111862284751697129855678019704864359976991773584622509552280368695149485421298018267668303385473608407718754302297842882668682109612629115299196775775028460301113185264972549602255775441464180379829957630522688150226142899538146082655702527626401452540100209797630200881945887078897471988973912345647676869419852206414896071040241064822941158332040476096130847802563456689904556700340820518121792843738537228382679914094601697532185669503849252680289095210520217183328167078129269799898060750401232988035745385463715555610626673093205078399633665876952384178816977821461446024032084771958289176346857073986345700103951288925288102960247130890490110118299401381406785780588896631676613918992446815245852056566481842608585963570919345178069220617988613464248614347353233590663454745450098237931095914940349349783269260994279500975735840442116246080968155011692746095444598639577072018867656396201633026127862032207150079672123685849226756298972870008277580060295387944422050065402425720266246728085750478496656277122155474049883068693998678497201983822279797927079272563872572836804724990809887538784673807031609471033448642648374681901909983538229512869416810109668268895408864635279919988171210930776795365183707276870237383794707457589679579183794858747576954388705155039253801208292944085661741797539772078935287608837533026275620403545009377573685570396910532882380822116113460320990268452993251980238780408457323608285822330368139268380046543155007542270049376233379606042964592155339413941360104006841482398684982728101160740788416345563696173137403769034546199881892657201134298066257482360066529943535014442774494100798968641116131729353610581651906331162873632122039280211195433189132739381367099448963699752028231909222900486062495333306313370204344879041807799956432045977638483471512666703942769296575548397526349500522129942960393812747869742378594057870965362245191912591419782332432713995009194559919933916942392143484451003144558654056235179616067805660106717897851670650053734024440277239623795195585188134765841369289171634706729780763466619911369792801916361446449471151519960411790215676298073033926867455873088083075066720125220007186582507235457715113703879814909258283522969372490456608083883879363138563338012258905988910736642457193678626848050094405886085114275677868534674170180538609815543789517514456970140538357779796326169764885802476428780492977817495415417754122635912773901005579444693906526957233404958816710171312461442924571483327626959656259856656392772210340325931467830810863545675995800629815216633792143187775451576294898694834459055336702726265148896210400136376670561652387168412392624561487132006792384016600954590589073383744711021307344596166703279755789048114907304394037366900394825337497281943373988407076440934313384668535582351126667519017897497315918466032800219985958465738353538789433596098659460053352894795888530178404310743973423367505233422220758968737151702438494548205326585338552011373348431175060543153875085857464116243917935370552082790834858129076775481085693574913624278661600812677455006615988753119225023338745932672511477426107410301587789326118771621963768393603989663136501706441050669804639521553776277106452329602686247312904189979463583476061386168870402099340469102470596226915588414578151595234691942562559303035697626430578189514998147409765986547840841181025216790459176978695997301081564394348155887772824070871459848254344672994634867823820381569277451100874608513876118067818467215376233847377060245392369378726963302139992449130956321995111069001710685416148344680218802962621351361406363893834342206142637736630478561266020047734846049311007357173270574161436830877585598327450976724209269887517075110476838253026593565549783080700010987383457880004514399994288611747506238700686198049331772209895462104964347380884406297950429812886137306041029608116558751891278927468139519605428106508525216644502672416248338804555707742123214328687573769531754157495566313826786510936031446135195848679105426596544816709542576584906007536701581711314718485278544791305218994897737814067367858683769439319547609294193131997605035722471742177601671171737143226815397664153851447496899853505714420085948003743462420030746412777323150903321048590538169049852401454352054867359639530301819681131216109666640039730627040456997761520850108841395763956954190905823393137890773354689488361950514050634029188987509153244962876111144512673000993993767283304094628425245872564984258953877845044442199018627842032296437224129117974653980969839638674653869833162912061933027610380148312064819038887242827799929213224749153131666352853365841502114501564982973801709977813550935114193334186843340344757343036553993791274070219896552226428142334383044634122067498970696678750304481439088669640207966280870589429216905031320922086287772084713921200945062089539781967758759163593549567270249183409825956917231638831081333291904986435347012469245538121219735672973545124285076450623878315715508992868184298341813118518713299264869527433219424434652913060129035694965949237055879598052602042186102326694184237798792617396855771374594274530907361462754006652036903143797545160321122197172647692045762832917452716491460140215591134056901269602912349061961273659886155431492654389783146819427655030404900811835581700838039700018472180922816681679327937212667713853399984345423519787254125920966232604544746075871823903886918869002797104278374853690206158813620312768773123510817667037046637894075110467822511118065207720475475291704354438237987050999825839913111208888815274236887223654157418201098281595262502204202230477814933482814024889297841117323715517852132352383464810192738668403108267769222817220341785467907128714089868114323947096037879881447361564389323655222419480789619240648608752442457401348225181916706699875409384084002305363509916828862375182196288100762830713851246912030766594460546871820421767211256547037873854735793599112935202877959746574556679000218996803114770168961436097372290704808629029686635525881646564018706648688610232085710141299081950621420972131716927926079146954228776417218212978087106188687196617434065498622466121505795106564356370205526275955716015294092979145987691027844877800245946887952790592496065895136433814885799937078627150577791688017543157139963950672988429214786333294392996287460173595743781059920339485465000135512457899784195979909850938279634465027994497762773734070864639944668873618799581435982261546469189871148659163708616963617703375024848360057119401463868477975305549694566244646923910696840125563138534088793691102547105826929069228812174838123752198817314162959990902672599880428260923642756701471672370704918706046840386055322418578444438267878999979843705773501979336016148837813470407706478645418898483928939899983346181951679018787554213306754093953558544400898996315980344237487064215978693236204396508307423789965934805627121476528608645635740435102794857412901178656507833441160765998926267074274060027044051019658519382735715153358946798686725320602293881077414574866761516077336591461903562112886780568296454222103727866043949320911238801175961696464153491863202955707440629887607785712616858041395115512988541006594260378373096026843269300996836174513682707693071041618371888894322860206465976796676940256458498999547437338173788618447779790905134569860863419092536411315729423691998423657500834102531377039767511490997256015697113425966000891202639144568211147398886213150141549594463006549658625893337755438615904236281470424779884991991103168388159957336848737756270453483945108613492972656878673732783795788952812691017595412111884801536717450813901439985931464647655432891843215914908033252164566163726858714319063445406411637382909823727357832260133374794724723291845599732183395653657479221822197100786742503989803994362377440997165213116054335665462445981514148214214044928272541625200569061151337043521441066612005529537165653342879839486946665312217166069608046872599668830852744126696771899310364470877178491922822608051258240894561183290849932709204974603793562915697381545856315190818040924385278852321404922547736627319822316264972597381873712643289105217658379089985108479826349241361536283899662436279017298742604898726863361151298186188790444573704974899648509448565552711244229414244073646631824548789677314972825043491529490047284041179791767943752284803120020219909617273389633809392058572255972965642645228944302019027612938028674777790737768607343661915908185568758368174503967684550596176954812203482927784162267761694633995193346026337785317552696046331607307992541922107377872426623527479017948992422974580774045319855793400146027490873623253880089953579461378403430839776109091773777686156072404767161153682432141687212669289294193147628500286301652656205787278493730639975346044796622200216865951012431341900557439959070475609002387145498206989408251210245061913474418610894745521429794853007638537407718881665998660337646996196144334274499433175292596507965497896749589233547353992110866645541343422904790333086027171825718340935150005173635909771628717280105283563059121054225527383854171022167590002901747274224562667757945035054651602628477078971838180940415734715202023337605439491265684915679142535812020034701749543321540603305032636075385762030753960796279249898243993418868755973071152437301602623912847432333049404755379293922276361752348050400729697869258823556705423099306814673429061526658188118300967685894123684436364508013781332015298678069299371200484684492264118580302020120975466746348152822330036767792450516942560914402061141902865899649487293505214066976866717519623021854767231588863221875300341932976879434429346542691740786117934769664482344333185228914461411081998948555039614241978883171739838524531143040714774682363783645761517452483371967737394942576548831657596500266285375216248799684832727783635925902000886326841360082355747200794921178309165871910576767260477335841100041004627277012752823794177986469688539098912786276677278530763688826309709774064716880166719635247667888937871858297632043235557074674480356865962186371216032019227454688235502143231974532861835552017008628256911212752139699402606943304290485631143200903843464699606937650641545919514214509893838752496759694601482723143787420794526899550416961695774145089836262463255006676872197081496899963905742905546883754900774086920102017674361748838676326585368541337388823846747296086745607509058709984200236426027684482297104897190192175479832650029376870354950780023265003896306257896665975100870127188080212675098411692519021292821841897736439692230699354901407226421655713617047143626611185128761293695774838386949761558107174206388438631024855479989034896572225733189526668845669450428653670661463470648918374480556132682406384799957370974809643886558193771671495489637023473321714535375740370743080349996713644243509497188195407357174318506630529797734750722024780114377855649527633808041149351502113075973754636952280878967856804054169966097387745883858930160083037815791979948012561901150814502849328332582362474730387039153205706243258099316142525002959309087733818619024346652491948195241515402644738390666886485335932576305649944053222748626785670537800572854772649380831017178665093656960792125387326391921640474753507140573541010803660471270016051493907950139099543507692430033063785572126573294449243621505549916956361721093436557214626118888490259643283807593044220336737001591360326779846720986272347764043234042920793351035287986969314339159452209652124586993930877842385301251410070056039442692944813537215978748650077512485907821583776046252636209050843304212713983019978498084224601617130646252300893982335088265833332556014014390619913165261662298376026565519352654880625865188912147077021612966023884820994004687115127030474097592419875109883509676187678858557232467249030653997835607520327005128494377357129552139684003126575125203668921500985389851096865277779970687989727439195878449057313796116936105593566625970185556211945807847644466703974156827249003404773968944724258282311877356539774012914827072200151007069020276575677083862259192543501986502543019254978582631630402254211526985468423841214234448844356625704592431313224014243031896582399065826823527465135887081181568504373707293300238034798379656997417511168767115876209325610731555968932800154150386724369168832047852021129958838101258776142414008082502754498304050680126621826898248316660889709860082715151845802450285489583705096797373069696111545234405054813883845596287429595820404111377844670817796035918612727002158563456383942020230646184460302459868988703071580638320310327986296813708536242464455883009668110753832780111474722251649437056549589493313771533442439676855277208111031191627222756973603661493443781058078324069233732454510535560789831642582077245192425779416063078659698327116988355259299277768601371807173452502509021575763997874043190301808197348589444663207412634520622794586307229629242119028637931762644863219097894998962371002685110405793771979451803341344538321962113282461950478691116130377090745298833456487516945815121735673017720398148228489149819192797222855972399282842941636131312511223268041811507025117725221678008219344269871287657860545823970998152696587363064501313232552059652950929711078883875421777984782849598262679125152923042677473230318490591670992063484083090835349926742409122604474286305011952520068806602690506440375362302066968520347780982719107540730657634632493480470600566021221301007270103748712914446276765715993180133386071666389701638031562893822059278711483159553705104490244946747099547963632120843270626291906517469956659240593857012121939554129035570735714436258511058481814101534846635219759341402812684653729660764885413458717914880540367861742754522185543043839958017175213614521494556528868965786090605724120287397112430111394930086165064252218993764720868088243460400362974141869834405341645523468849559587169058143927703935805103773330111407843070442802660420779261919248669528975393018852524829859829837202224765088970128373412582502288978454703131539534430315221067441323341436636576102379859959255309789577288085012876395185332420507353689998791939408942177966795706724071555480685052819652992482869455826350692405979031123149787608562204718057470485217168104597040763631300692408591001181854278734298681016340055395833133984909507079829969664412066265915579371131943831023924512336371577964050785193458837992391990546974095219995711523276314950270246379888247472865440438312987509855154298626167203990166874202988364570522942750390054918155113424841710151888226654004822133863575114649680888601721014324936287003919227451964546018860596409437760635914130491084717866606033903786659816607616949642288739857204042367544269122135225342537153790495128953897893191033349597989311697958759353371874613102434716257851656514781215745884708538018422233428929680127415385835123089858293296432515264597700414614945500221913096591100794982729028809169651027182630015348529529246898883587977942870117633311176418993878637259984581982737003530186050449232731351777871210925180979008583892215982951662330965517568200263774068909734221089208241337714782622822481662366683123632280819786946136942590758862829956153850425112826062904831568699371662523529824815006763786107038458037564469349725739169320971168747785377305746469451552001481079157460340889500083992984644124345641515850846998069466256827244190031614647869207070790016742238567278735973129811651607381377246734464168109415631834549240114850031033765720707792657479611744675436322030721540339847041101633965254405779971415473982416070385885612300757789131286980348849044848216341007315855565271163233148059771131848132227644353948348358423911725018501561462781774087190095278745981310652760884425799361473233033378204418794083029492470317408181643741343279180027116263757494169594329224855231282980136594054704144571648724075608235530389685826169970735442641640647511363009955874550764153585388511822150975008555882282516900052073782507261560302675728417849039131315931378578068331406990403611598491531658181406864422885850917113942775580685139528852195046207704421370548205825863532838887994376888370133629372137569627630463103899261491878957905649904147258970925529905499056020667514239661932491360198572487829514378757571565483030664621742265866898012500547175475143692043601449515949219014258754542236842977113612805455595197830161610666277796834325309464205603857654560492446102293623997230228127719844362673875278180981845247458597396677866598089712065638181107587170817326493440708122814222728859083038805735153509374170012892901942124265167351712004681236925700975598617717709598138506077243181582659333488850273213850453690463741377744526706217070516915898612799413876112834582801902172284007052046653103670796772935710341727665146716266173196981359445035128124273249908167693135054109019746835064884988817405378144925406330669735479668687249576644004675164423948744316987995879150018649318203427314636447272123185791420934612643754757850576040910359188892814231785293374373314579567089367936268437119859068926977895979153058468794023545176889585961610486135953255252615830580504718631419548169847230296988083812239672313811785791946779989137836937291355512720301928074182034220457614102049448490331760661864789875502101299958791050902763671027400903691253990712282636303176717049657788340706055782666138374950506330078901741589337983668726665889950480657173502479927529581598824678502022929746461146711159935101054170655315313413882293098960256476196533685730624063306083059190787006846242964819449309733013243260032595247022238748716653653048599892620224301011005130138982423782763181843472547862556012791005801652347216509827714151246924112003723999640818418890301182318122291085169693217385526493378095105065543274289839248521066577764583340865819715607590333325190765763273539724060854699803847472237217999158477357281396144216990417961553332179373730560827585797992841848588534668669481829529203623336972482699690761660908360575817337557830311411582327011498595328020967966724760085532429887253106251130616498511383977067987403101849469522639649647807138785864983486703265810784113616445094273330105075439419365898708673323381205694306760781620482393907435237434557381617145638073898967441775865490284629002172487787899149626884036088849526931738700664661525811328284633392588821988815473165050701018492629633469365113375185819167474598119514788751706178104060451573651715670237416563849546672862377039099221658229938625699745796285634784459572443204308202229267039569780256809691756694358315746444151459391464521019973788711808345634322379144974868878377837446682985471764865785223858800700021966134479192553797475030334419065556502542689239458929229145173202401106693265385243915713338243372295774743054913481909802841538401362102561464524826177355191330613900971464018409385436271980607414517038081931226680228808075027693607193773520663297491356717137169546492239585823403160314120179146247102471426127595671155909494983326065793716300821207472731983889659704531253842557986476808787748135190332465849312972193066872504089190695913716503048730688750908866007099472881218532412985338030991445477185180701339854403263874253390817642220600367792928330627439033879850109570358531838650627993377933272636601179272639185727312584092395307905357562465320773308022822048232761524780126564118592876313543747152886263890551403684726671012273803242885461731438584908824953547270013289067112251927167284553632469676243282617417318049499917852339061028390469929741819722692422714648831981067984154488282536824680658559937279417306700906036263518063879786648397090193471727964136849946926021669241493730925027134654367965167656364361658006352349337448312264516975706944227431080892266711358289848774447709240456105382777985178526598674103731043543613733171462827830825242714603250013934972282307010194159715654571955638946931794927970348753935586193315244731061102941979851179153318715175053594759628168640855391842716836017188647264234113188759154289136191288192700996891046003419155298265675626512629474347730604634238186516297534976602568361045872041433605646285145719700914952998199699174492472036703725366786102721546328576692727967155048761179957994013031698526495210876497939165635123778637189594244679929506135439967192936076726578332766567530485534689372891613176105973985600354260410305537585669538815435051288899442651525720190842547416042685799217025690155929286607470391897437408104881631646119988642531275715383244589994830280321332360385454117328806782711009655597708546217860033915505568002199693250796850022265198640279807488032429376184373161017930032532426705877955910379868966692554610124420486223726969422285234167492947794230538330056179298355203767967412499449844432724625688668509239650737932151379016384070346760156019484520113480868256897843714305058348936467086426516207138763975550421821025433908450514157622712709323406184375859135132982574477032517731109773378846252353346771861304873460896887195490126907442742765210963983726574437882092456898153271245359927631504093225259710712813745656429493438817772775435561120829211973322479804252921685925628471462867200446570251050125228524015388619670492929114175176785438001805312559596169276045231364745903139038021403545088907897700702314068587588050545973382445501710008704357734309767385123838753539555037343197011665929487705051374111698535618619415001439862001724681037936029983889863516166555762943317259320301161890680959150929417732669740865895415020967907069567432010236010614169591594072791032512776236696702465052098357298565997736354410456997285805937171414026227064960066778065705504271413024801776666087732643902880399256723234246612641930728048029513569266049169228003153961925626282333980379495844146860055627566807897242802054654881399194760876762879443947613999129487689001787989063730302430739589214703488407197156506305696876719368109230260213225627771775555111560339894488042026005394071777428851669368127964322045388466615860526942959476885845668132114376474320238734833382604546967138953762723484178499879593992693092907130211093867310594952815718349935804253163134558393841060589520633278665131458073264981676047287520593195537068669175831498411125319408074789434564590844224949672091145847600885447228861405898888016417902702647390394285621269651704535016572622090728649246753337049670837459109137253408748382992862561071727159310723173263990024493780539992709932090419317213896688901994450718448163476905786771345854077110516792162718523510852530893353395358572041300876853444169518882945725967126692606050040695998850123583678073743375968923341780230482387899356980870531058690957962939202556339290231338918158804446735798882199337163536305422306903701826845216329757251027154257473099282606105119919605607060953720325752550699875010462220537950803491174078328360095316199419129940816968048512344017883708488106997484158775907857598618807775592428566426372841752689512160536564802595606319962912611935769406766489482250307023322177974501013731857030610661721553748940099208069629441727129458406087245876325309253690966145210559380354629988952121962657751187788032880155679048791244685341274480946160123838457093156653652137939722530822832476116330143567825237953777767023627424521226562029482234286252320776976237724916425708405275555130265200357204550421053258751754306461985866532698907023274043470456173899470264214018756080568064000454087678317208676422758032389854904354658589800374283144087328629193756241736166346238769337433370941386377916528575592718141354597977343916470003304320277907299365203284077878017095689931839158812395719348085464591056902073474107892275082341553173835827584784769851173835270561308844149822800528615387146328943181257929653914658496301957849190290414780103595684729070650568077488687731015110485476746756395286434457071186238251496691957651896479905374445027777916193016841769558918086363955448946935923780587856680446742942389007393703263480993845293582782812959491390173373098226446481838021026138613475007957410246042973815524581006825251634805125744265258792467525377942656226163036334487521191779400687602618686439000535304994868011098673079367128697093220039275971519817099206875675827497836127550812570468288248971603286280311093994578151656714405173461556179624317779126293480192793775625723330100456034209170549655440941950105174806307179465023493368938979330858357084077766766279319961347085999371859781388197429355683290625478334048646808283852265625336987192857706627100563494988328842110200620463499994388091699568727170348411245294974398922397584724422565031389209154284708461539601933886971707884143136596623541250545947916209867250508404326593188620115441657846594592228298185048168924972138888506185412070702843962475493468713099024288599878735531559465832878739456521195855650429363124041734871689792439058208840865421566154113906712253420095723499128004892375843582165038766382075437013832110855170599351727490315485663887788719111515975922705968817466596007288802723347747959103886049188231648670932510526745154000723389798674765934865194240620931734204297601095245834731884914414974508767323621945494414277501536965010657095761311343137900076323234959347525057916825465544335852604045917600730726985126807924281383220312052784880680781628399975682411054370806039886671394375039061874518072826685127704756384007884125881365635016402882510448301569554531801528756962002756170654956411576231533891687655936375037613413502804215811427412862162594572033597760718495601944388558733039621551939257470589525480351350296443061152281163226491801227340631512602168272851175686325378804839762968715621417204376503750163288463224214787436037657121236480891463066453505346894952124103005806659605695437586182696569552614824207431654449691906675994127686149500650811657858526650404357769179484642295868087411310846221414415634540233492412693516998907434918903921935003771489912918130198231985774520080749200528239219922054712226888343513901475644192146703377624348549719382862206839033227112056366415348220112819906740356120602846721524649038116247302159415496595627777901242958482235367145247795967037667633300965430864292995578973586026837996803080109372394423964909881532160139969562730214856940417394624981038470535433847531551043091368687471699618270532527667262942178023944817858004157872739533186019747956070119018085985563570324829429519673287288368947342007180209562274251483535421214215153290707417649254296808186321803587635807928791575447652090293950712965941779925272572472335289253901227718582850227114903581439909044404022389895664230623649607901834669082249459621505729165525655501791175228874021923865323294623950900379240088084743965509297125714209354507858446407187033938819424696551654626823908067164654368161506158083243035904660000938759737257491320956275741956772841112532349103500053829519093737437901790061122126461961120608589514232668378310385765618998728136213677653825284498680458147668232107541266103692142269935891840193442326923560116694011455761583952503965194990120033646354044482016165027778482847385107473443802126136963543744779621071607084901902988999016710395958053282387272939671823792816339971092567554192686964044335650174616643541843392348653067147688525341721200205407273005078912299771332776119066546285563238176192758834569750768641525461476221732566597402725562789725408395840016006841095998808524428070569485736848234375335412985510261612495443127519172124412687634829209094559820937038277192841405948179429140987509046496148873952931947454717593068914572156602581844205641960501300216873590296007789088851694305908742229420391646697766621786681085959527275442798163833251697601956672601523047039301566288163463393542516697998372246578223568455416509873314498586865039559141209883914873758663651930542777484616353543134633726672411074486000209611226760498162292784610565890080805466107578421429978332288828205131685921796434890982955457154375333421330914165699230971303349295276863175979035105953286475554363273799018554377833628431057402013331483896981199416636610083057810364667140815990944146979069139901526833606081710239334029603414286445653924499287450842487947473137301287571273025128799869606505051865276846686688191203888165876589039905082175457907156511825351331523086821952074555602510600661754363373044228809378787666398895182865298871904069988915422334053876483864679986093493662319747614239405341217794486428919836465013333834038430573414049333903847349273007764205689080450629785972171679611850115054208700017017604061529816610947833492420274360601806837151767545484249227056844528842383418976521118875115415144714480587208218735548471795969238856532094575766129382681796808300088719487691962539410311207188030952202723178929051518388897109703191823280106456527372158287066232781563106353650981019597578379834007362570930686811385447427425367573463789709388618945041785142062872044766340460505588223246218924906279928643524752974145864761754445031938551242002416651427452185313679661010284569175787302623565569814065386232746116097720959661330537088612388275843173697531248050212390311268365673206835183336853293753372370561744146531799550266775515731755911165251559233577689271325911046412353438866366058056279459145895176185744854122512464356110421023118906618678004068615833860422880575996185260909598378117975969739024546926706221912081330394746329247390645748974041660529846107265129650306751764475146545005138649997528534607200302902923703578766606899844655048056056507657434577291683431982090681245467438520591916071540944332217876282276423385781297161921563161950290184117702838230989521006766075261631777333650860837467698339214113216893700708325883745518172748426837097440165322932211267239221483121674625339426157602287133663258750559325584666350749143904962880962246264172360384082345213342844696728605914989957134583191661558949215606316139399390489919901626814618404490317477386542074557079647210870334013204448761844461166742227584215606611448906770457959668252400173310354215834836692999971148098559653484643735901415210572863000061658421434576443214917373797193784918943574956719252094354068845067383441210303346870144561960478884728467450380716870066268200918578723752391017092777341464851679109651328535157590917600054762629548413880429027755579118118014165476801644170311078132609669982034177438958937318898364183463043475333903818635163840332042882404105230372232797842294314146413572385604576734612774842470440517385048245468778597395969335202437177398479230664866154597238105993468934215649707643072365773743697778833344394052580712385548922569327803723159638108757879753692652284619245483814600939180203608292525277614546466176786581603734758778809725237558128613976318390560501622952717505275242887129373486431866044000320701816643460594003165049680937737504445260859757005944216188151260162459640608915364088100612492110575276448908769262956463890885082648168641202283192040861442969150182070275948395384855038870070303716592649726333152685189553069735331323528330895728719759732348243518102615422377763998650285070565315306817298065563143205009894515588551378812133371204928801238825819269923429093880716259799755183217886527873227134450524214244820132233953461770797375759777639080755214597398235773076953523091291081211229733756782295110782711996038759762284123601422215621399025326647418726574811904127174787538447862204484708359579086779947161788797599715993340827489043985914231671646793657175933542955772229410069639898144753225656456457552699059859530066615429795105618394294661029871643722593922505089992632942974189460544667289542015393652594847316864551607914307443699653249881348579511699916914630921975799108670256206093735958945932437104136140356661835961283793186619912084054538862480747052640683602623100174530102751283816902548390352849578919595321925043833324607292840557073188115394921338179671490861724886288675304891546983738031576989512637448419487277640421791616084363358563855998036672986134364090053769582124226675136792879798171319760446288631602821200505864531805902206278431013039527136795327651052514609980842921641892719700486447329500147988071274303995535277847129779585789261569305844427314188445919033993131965754412997238851798397457545995714361204485202335365105474925042161721660662912919405566898904712495078981192299215255871236759406358727102371776534839254324546890020145949253635563280478229787655562370299181443832113179136491720846462014560752985620437464406334563256607516235960878133594373063597165429952539683932529293753140234149528896343373818812678386685376183258880877001886552349392398775400616407739252587809364980938519962635538153573711273761337281821118620636318528423930906474648584524646822455118778628448744559615659381071422223401975239180499558058783697130304554015067048918277402461813015783002212236137660373525311020613485120208734108759284302924402531152992695823125493838828644153193452597550909164046357946184423062785518229621229551487800633709069499206895766214584194133888690248700711685804056847646605473016444462234845602944282503986321201132627433779768277263498528042951351577602581032780104057080904917303901104070307872549108039185650134033729617214074857983745920612055368595746401093550336218656801313002183239018958501746045598340579495193360529326544385122632493741756147241595031323933490576220174196090072374801497594521015871773908899441488617352679845049542245718479084878075284948991450698936490220632711799506188528940510069729024405553470392160873237259633254306341807096154824653296564478729364187361712583992290512432702271373404130083950493060600552909822618648384816750875078414674802343209621257838432066277324428104075517918797011195520884642289793749406413223751975713338772594480510621370439441386641980526265422740147480150989420547166942944498524518946470191597557392734868958345932834403253760422316386379272006885300415138981152922002767090264061066202927954444788961161514998278898349981995677700267501379952715272651783999735016627826050287078325324782260244250911939158904623841470811557204787352694902746007522827267438528674876123278332688061285498081723100188524579450068216873796487071047446854748527672191339679801023151748608318561561351457263670634526981500195185155739396342806551382890874308846844428327540604333148085515853071464907383854411466831633882644575544990101132258985703665095496973982937673656104502869093305249900469525481838339697448343342691191526495970718768664270855465174930855482949610428384834581251627577266930212303396715683269534564316627209326106397420394197202938052372770296939884595572585513608935712831664447681479374807449277872906440246961463868789452333490707359949793324111311585744744626252516275288172927575896171026016719146852365690523267579339117201118169504184981594638593310354772474864719548232764382950792923834216978154277020392050513104709998918033548548645990749942354809644663230280210331154577957078076830998581409572559617385827462676576086424089645089340479262845831588399909663671437024263789423200149316477643807622838251431325252289780391057812014996777275998854082087347247544320807247076215718397785864193662111032717591849274007628354728885648877121666651792270103710806685121752212027892482322512917566626717442712246715691131986765966795675280454209178816537738750553847834164342213916045740489351178126202961493592362377235566412877053232548713708752336815154941362829693799935239910940772739560684442844529305671229863424682377245496351464170312994569192984089550140181728655810297620890618138802003349750807134507170389451003652279569895709234334114572232400804250691118061464823026193438645447250139323040438711276069168666870341247976280001344559740365173117704532456820119512227350310960178748613047339484629453771319927456524692454224399435484446105724760728498971783235021505552505369240464748543428231724741581648388267657546362553840339428717597432324062585494284658224879338877196330527487899490893867042378967317764864151804563397035305566948063941174231382667906271411419778559015372604463750929937603545487176310005335866979268395563338462070975389237810986360736288751171996355350910692561556521079556306872285122450644448179402636637757462604599656434631239131242280619449134422621039591576803826382546664750446713298466731365567736841367084128763823256859043514579661691271090981299719735845935854060199000637106197209694663435579876691214273376323426381811465855952434199407411883148758153021315381406719537048518033333301702164134778013455380343633029541199625723577428907268584912207295576432961151639566557789114718698217527203129940855208745317464218746588580017482141596258766716108695909549388995844438604342485684572841040347647006803610866416356673393558586355981552507306193409496220912771405070667099785358257224960376005729178378460749255372302507178705283995140279717139232673036509196159490482868505262014605576593568780156793516448097130417227410652545384270445193664720171872233363234321091219013759462968754505735293595363039401207343322668110143758359258989855627654303511188504929218004954039268669487247731012849491849400483662142225188241864792336890350009338368561357968486791463751814346752250626400820922482300561605766406001857593244025951862357352905811390025549904180744746363236316532243709036657031587235421689825778857832978048138758853648874730203886096373172660722238517239801677432165027716700320102792548790803179269867496702975715944896067429461950345585122057215993105912395752681559631198277307134303289135313843917844637512515675069220643530670495989146927001000156308838433829171657481285440447576544312233721273038428075552415097467265604448158513592238814251401690624701782353750804454407359720207210060383005894825282758607073558697350064549331181187339622440529214625936615283131985140680596481382567171344250452018836290107049425148619087677436312243345483448622446297783734387134004999392362416952014131421857644027491245507284861171233593370786496353712943835809461974291532661630042627900246285384610401034623222124032976554247157625773024347718912304190672661439651298006013558633670670465366799488125221478097517588957479387071736475269315084395398948795285939910962001443439986748022642050889333218436650595770161906293095466675296061859681220462725012786608106538939825860019177289014232602293364118906430195479993461159570301484133042098965953330270219601597018529545248398438013256329127687652084780092568611038218207988065606893964615338682019603591667672024719161477463733153560608452240763169778372713815782730351855550552433693009080537973123625326391187159844916227241192914752418485301294817550305824490972560128904921451589773221887793544888631072598810898682941214874355211761427796651750677143123060240782883549138399073679698479967733430784119518492131352083094356078850936286451067491443929103761125572440521062580303856204842879619826733251492325798367663948800134814521596449931830484518568825771875826199299488497294983219526407234051271610228923094902975072038950854378801897297768479357557643597216780411723497609924972851524072780916541276029132813108813552774381372346872353238795407112681328052307198376225733856833705037762343521534675858216025878189971837120503575014433169660724403521868743466449639375856402732144345237556929095329749787719087610453037091578175087350326963764711875037431908276099437408342285294608341812449336505772564743829638708686596014117272549832236270153161103994102758021778213115682533791560160448032074796881027547166492648105644874312726958982236841670468365083177339841658039671022587258180440333235624576944136144655323217350561376494832772675333197732459320329659758136843232591673356016443523891614088375262340117916556682638007096270540463174813462214165698233024681206919777759762992076136173666216301716631674537953108508690160238348598260864313060476149879734908711077998682208812226506627629615108729827663637531356628457337593683437377277161824362121266776535553563090760045293983520635368105179174167345235823982400962825303232384944887761768679053782020567564469402430436640208460745423840085135500256220396047224303567654413929881173035444577946397350719734040610994484150922007305826124661108674201380702693015369985282720924474585597251558609113795579355976267409031771616492298685238606357808467845245173347578128340462386639420233700459678911925460085551197454068398902710251397707502458585746733598397132033866700484286242025549873539257691624994610175136341793671406890713987751695682391806060954447104575616707049272048886164325581746481186972678364035683515780843910469479708914682486765749030205635538676622905013518217801313100847257477137113674148272592017543321219303451766572125119272614020046679519451057110590371642037061166275062149259630299709829347527425979818182155641959912435587878995717279840171778649324990938261382545215081488615073659170157137478729929034859316925395478439124338619827168999701856099588345038350431107770921011844553782318624228273478963067431566631954957187871005174559020671958783156349068315543820984094214131227105910094588326071468357298638420429900731183091196450449063007955648037249722955532338733536917117791594151693070316028729961704205377475080759250034659545089284627211869125050795772208098958681962584729187221716331844353901229100224092046512794213091901380525621589197244365853513574128553891993907928207364390445284823808226282214944802043070974119049089364385257110152187744334586137910835473187830359760968971420124428277577412193083912855268418565097280507679608923749180163609454124901573698798974885937072221723931219594057685297383042249517364817050167665380937823967665327281727842329865253034602544133760235207175699284725664915993690335400295844701201895155263873644163426708411824231313531940196161056011622990559466122126336463153934051984147837691932171756698412255708007851959187446812245702956568968759439686356234524438575080528765013861615767365687988235257821413872637450099393338027180966774443016250184838522635807872753816709431186829006223975569170704598727973922268549477590656685133993218861671299955507074116419102204998791539443738366589369525428281380540559992427716010753529951413629817288652773543850457185860116664905281388056782925717224742009239698282342023309894174812519685365959326504040661892343857764078192478770519923595076928711329022082160320092085871067612561441497864703524379730198561218238147136092016161263129311003921647969831478550482718295736094512737594597516834926355343042840900017412304555251875062068879975490832457663670084244152160853613180500466770676254537287671539028347883616682778645431792303389884923819204855573534548627887309993585794141840690311102900521362939980133601220776544047683831194069763280404763366996461321087478699768729868915798147025998382017518326916032991586283655650677006078073538468374361047507438584654622938268524986063707397498273916927390155518519722291750465123625639073985974748852402875446755928257789071511775448579602983599070223723331663891774893622961336992325584804925216800890631269287223694609108436039472159355041979754544152828704118847457645077685132023467658419430802039375895553833381224352517924749246234933347190853168566077199827609721513552521760266538354289460370203814503485166288485803246123850087915380203453093149878660685205921269669120317086821672544512222893695131281525357194963468964753365080569147500886038044713753341822726941795243143310714366824800811507047198941190398251644345155918603136572043441700077255217649205356991073274721180203441338266865444305390310005661061686529944931846000295356719127522097029920778351033983587848484460191944571914573229805210049997983762064151877253819755857025321820475343833665709727465831874846044935321613854028108928155968269652429771791337836088976946181749834073468547774361208425304608277092494697710675437302461494866397241695019650677947454694701405723251615103589203283926331679414308398169458980254168168554367185417587061060553921165869381578949169300923436453096600084418132676536741639948252913750262432600264521057312135220940390297372305026190352373808460203345936721276387124806053236093171402515508751384108310765840299542614163119515103216699914719684152442750271788793265244676279330125970789570893679283336128152307452462762260512384058301464001533675602092023236720794091826878179766452229254617665856353533604654534221562598167104349116836408199047618338137155189411603330203237170152555873238184517347276420248983421128450112735150504213873740705863977096508658382537425818952768589174396589679339207778278660117509947563054018455274954998296674343046515613047067731854384656661450180618923890774532353089914084304878999762482627201335405122905271238408640634994688340432749278302932768792726769150972230229842848593304991880909616592443138258961578219824399546182318922996230043650175383538002882096366388784117400322339048706835729971524852923144956620671206263280018089959549542122667883273358833277111104803201007180138385676943673599153541517009827968065505220341505311825762840020499405375910696425910415680666695537262278607093772275035102621718713819539773643164346226167630391571908764296409131780085858803187941484793178524498256043178427971799556773823201064428447703899343784890846185337354181346910363813053067327735851016415383839619462516937204393064670710127922563776281985948845798182712491974811438757350566322457028028593788547096946942715313470588807718872408484089115702665800758693704611485036324740339548251712099877465343691620255621640731602319480610675658116178910567420856444662198858785742906909646355380153536319736699777530023128303691295214233575210696990697312060547453779145138595430352451773828821362716143932808681349158133082652712726676760685564255241632400674193232053904092566520980541896482486032863420542116409799128943432290108758982366563274195309017291507670063381064017583448247262884142399005633705323863480013691024300375310136622327751665036490742518318792943315091721429469241965003929566057065121781767374072726459540691207441873643442554308083919793751301536109024579130072655011856907501302946693766961113325257056864496767763409565467765685699251917402062010991791793657351864452694846047361647827195802373528674183676175320467899757725805986237513414117124800170519051687235672257051536268746643544359210557839413413918590245539252147379188599652205803962637359595262746552194652247762634539216643723582144107316789911069639288561271804403575705575509748887726412493732720352295132343288355105880064976962438816456977993798213252026189933372025905016048675319447834022462212302978536285731190487890336920076009843969660718750897771901487653299146049076801447961229378604276973416457028640850086716884113085507808537197547458275962605441349265030388038915346788701388675220816610706332698726982357491473757842191266300974200268929500498765466388833182003847719846001519940071473367760152112677356121470192031787892742846651950300056634682358334496041841077335421957414398473686141034243251715559106935408047667280449812614784026624896790294663992237987048093965298214049059040272583159279689487038133123697403124103460701179679309808627718695682870896899305349052037855752519990979424456839338968002556576009993526024252859267944164744585464868773915337508536795438748703319321224500645136897009264428688908321796700554600520751805942396067165928786535645024641934181259700847983737094410822045203907903561426824096593061097308283418775960597904409637100700562277237636292428406535390925572010224164044556613138645335777792573390125173066584986120337015615518175061377840817592467734732300037673772429561784790033632646183137213943525943511120992698503184386463150998206927717509637008850293844049945903551684303749497886698230260634607845032876781936698552315787701223620487280320854421881805634685788247014443382386786591207680366401285935056683046422520385430385403508807723437969526922604214171071698850616332889272443398149875256346238804932228177491584817396405921812367074843720002894819970943752187918676254771663863628424007232479506102280490704660955136385524661024710265405042592415870632445339836512873437272939111321725366553227911384714707567837117640791210527723765683860175597761928399600187140903967075311050386565026396497778125769619037110526693439374581237345161647595687446794561565907673704265986513225175689086122868673037190692720093974008120609964816164717594517582361911859880040961516088800229688339549918585428801399585600664132514930120500989093334313014909886269156715939497633249058299907217562161283695364578407383648328350961192366819516343452624093731217735835248424667757617695020040818066709863192205403624452108641867468320156629795261450115606980669967092697971592660204359563292927379955600284260383442342393449890892319702191833127148745714750644344831972032589322096824774498520992411742149158810053351449253875395425200406146598018801762408124459042042039745450067917170582837228250829305703575707282331994943220926822984185618208334676027467149704340964109606127192821367497380264705931379879003281166553560747655539064360005116413723117289720917007529988224485693705193422369218507645400271235069437054843277203827992737947168242290344324944495287404720937540468805413558758098554900643867612123562542148902334552747681966011935162455864420768670435793576508355780521847118197569555060452011026023830492851343034521900191773952158995432220379513169731045033274570442866696369644093609554369534084107598698123535988855831410371154320107133950823977115006328540770492248312498535845749167256657762298666360160268384247944302084444292383203898631782473756909666819899066716708236058902637603998563170741556788200563713322566124758447369720942893504333628076809113262554470293432258400683204050276557388901913268242340538964409657694793394843109316492367308429823929328337934468866515714740190822215128918884512002574393604402839500925557117360176021429412331269778362061755073111587654075562598050029430612549888912121712503953735353334612990319953784042876391157553953554881355471093337252173791839273992160975973784152338706407984875585420838861298464527101013638789205158215030146844998125235522681187746050999659627274982297054869437721432682428189971291292215555596869500358471179037697799588860351691280139959098581041677774018565293398657522618913001295608450524511255855194026243382579983447985751021613759610080485315487795913148807107867637308416921999737388182405785629343058942407370767546282653325845854175694606589389265873523572968340727785270932999994300401323821603411059072865050036533672095240415832845756411089785489281563365719605579905843003196288868642960597772891668893661230944664649677820449914792589703403147656197985518894213592733671625516079849645486522611623359443582180701296510671101429094004962737749575925691311458374710465266354643999843528220954503695964549890648827452639097222686424008888157738414727733862847077231179931744013524588215566450880516686742468406389287098666687572439959591577259657718292491183796406536802615226030980077523744406115783988117608974152039861197672452398679059877447434256864438003633476416757006894726081016526884169867244359162249283430277268957842619449771548673190838490125171453247470950240750702782949905204952014990354292512221720557468635781589071492440207966343584797163033609087525457366091405713050622034935582757368188896867253383527109116070169173132478140707452078160261041818258803872111393308941613731457518980748931747425469667046031628217240058025219770785568275401710503688050095907343178064084014311916287948367175144470127225151133242334009870183151897119992109293229568573499244883874697511191776093779175301111473922081652393776513810297269736410115099657384921450456924759525002961301598682235123463437275893771126800700404656576650852002510906884827218978733581299793749405928553817699762506192385945511906199822716772894256331435701105091097724316393229946480731173642553623215804340967041157952435512832309334544497585810735475066098446423242177032227541009364397252360672172662867563414551194100448508938563575071830704992863536183859679008040995891887472729722807071265245202223673620984970343380228588667250942252119032164322360549031612319309329429921404267197510804294190604363499699606930662457607680317804392260128677621848697759104201167860191940519101141344612690096993611839763115329101816832801950411029603302779939533945516979235124919939275131258166244847676018551681361172058089915218420494377041449294026846040041631017126762615303224017742093506356175028337538847921468769152942182621553346136486706640753981993730264080989502370206908101021587721377613717337139314180151014142852732037164732771541093914871443160857582466760854130307470776956985741506183768258664927446676604714726419441238895745753442780653410734359275221038333688048103637981358945502193236603224538637907159859280750094417942222438522826554591779356374811495534235386198209241671790216831858872135414472490314079250677982701447801461617868054048864494271150161850107599506851659756240319283959297283752669285023777424574398915644915662195591097797618539169118580837909623397222068154812661222151763891354590741761144630141384500640467775790009326189387800050711591756973508906971018755897281275632275942380165989242313507770100296727865035847239836737408821030173375387270951386953969436514556260081869004891805090184781318815920429601179956196695717527197952769917159936733875290340298943603022117743211169631532484454694556083183472567696676491117552080513775677936503714278233290705734347276757125158332668089283925203886828945900686880144994791248599497009026823276414558340630889985874732632573482454316983265638300218997260247681900423912199756709611790121482744188394690831055657469577490850921884448456035067554785123963477589978243607885698534959302791144724910699397373612375517380289176461371362927549817121188541354897087374304752961170107672467005198436332150296811028333239315848474251081173722154649258285290423378010538664381154934861529015605958675783243435794436880953862124950246827304588170694940242158636255622207327860324831932403750657162180519763002344647562643189292654825646442030305279090114295513203398064295382492408619084389355385001136118724785172150771048909659898897003771068725357381358299723823000386917734213024186689904866194598432882951438823143380827422886450335729479265710567693593262176170654005766163359235213321343272371092268006941282038124197862334446546442976090548800046189695968306951783038819275680309168731373081263202914241110518778944534576725608186109429903494624628168483995931747278145850792747205785981030620423738264115603835026729721715935843239532397356208454528989323769259988094963842452621388234790645736800670203633830438208467599993817403292900281632955694483025905410756779506507545113394932225969717678287337142861584329932785536950719396708414985557917806341229302650812483407894049774872252319227611603244241496629242752259348446953119860928200725845017687132916956159276974772127993563191528287827170243164410699654302324715802759987294192697343109999122245269171910890850997477181827191344947927451263487010064379079322343487811723218365309001298802878018076866771268612189169666749520202239050345723158358920195606433574349604649342967574041579026343955165071322930059397068951564835634195558890969738063016020822932613024678405153328555212751503317586168458849705392666947295407611830797061266006451837219753951574064491984702754114332763321764541895895071475463392148648562324392272614839216059494634107470258486372525676533756832703960694739018756613328072366986190688040990957361039223977475858654821322849122296543491099854580938237727264348190229476816426728573903992327003454823094470885220566591376080180122294396541407607202502389206245162448759670905708155549470730163043219883916926163287238127776412885128011727515149756494060706110448705689419968448164726399832732167585118911323086005040810252626553374190358059203886478975442286107820970982311610480603302342221094380865909905465778599076829316121895042502714709776870323543878463618735406293065729181328504291268048685899724500990524710179038256856349852796949224070631024583315583612655912815925190270229398057598570073957055636343852453859003468543314364802391850012346824522352925364483368381731469912591446683823761919887966645855560712068054875547392796490822424633436305064451539724562149764755423880833381769560106479053064819474450294987273582551826985819518010510048670411999071595722808576613199523608006693101130289404230910770526345317405331729013826457610997133542116733280654125370683551226339224747157167113466584966177394310222593773070625825979423204064758728799583409115304607932801532783748959048505491678431555381825174785577460929260775397235546214785327056613442614602456468615070579469817944690984772938053984152918684229893831433297778883578854643093536207194144501306438892788499349603655510897468026169066716864396888744688365837638558452746216158136816849704493845878623631439280797257430716092921151937392380664680782530780966321420646686558888043524011580175691594148836368001718509294347795114310263495583633489928155273910354910309508594050054654875676223997257807495255835869879657275629622897688568031260049689811449163390622573732058927400495268877332264114131754653262365372380670476001335944692588013197665337894684924896774061469062424940595692494059654787727115797325157355412324042487674600227579897420074863913900001811165019734145878050576694828219909457644239623525350290061471208655229239346048116925588489388008632587084191922330259947717987915731300364326869815158320132191740242611793816851789321084853164251573794718502784460862022669412343044166527979564788209091205590389653282303057071161711939820404212789283375738236346415045754414160513227615419789541506393551039709199615048968454984373903246495064239913636629657328035004357402882670751174736679827984654733469658853678518479163005491896576671028219110262171217841131279735959370076461001897663886069114003284341985700556562825242959855860805377798344285578779220876136687554443313851654634278857098091268187778463920765142516251482949496247817702256401308067862690332865855188332160278820380584824805813695074925771354946206845874211424450965740818878023316934008265970270344014947348259767939887679615079354337592724870820050389623809722521990730591989284353072517497538302242376518372121128864333241276100743651877964196177141984911058808749925646956566790611609853497886547921456862200789834275013334230269003000439823823963173548163640643880380868045510609617110965065093966298454917758134437564181264963777821904583020970969609336492877876633514598842321378816789084786309348844142834316099220683626703585689045226990195478576882906055968413160383046837101195515486861969046566921309084608836221066520091561967312015344783877721712115524734627962481368847855231159432776006837099232926368088499048063170191713954047511708103457361814127823029701157331272555068023793158963602663985475753102753769299844021924675489315557262425200478480585306496201742326706208883608889042945700903790944880901368454169149815736256786692821440828851220489816558051045648023664454224332462838367285573403689879262971552540141067836579017788684453823440738031970139865783373681138768490074937935865213368603697672431687939060169310434239131537780133500604736892362686481662749080252859778219199528600003704537198543066606406213793841276480150762226921751252819566011683114668398119800268881771326061439922560894279840016367775444444910931535905635303364753527530708116410191245478481830199689198917241573678570051985620761276277061381696149498486906780391487392777570620363049465400640959347016060816302643571855751142448715052564965527698597628789010912023417532603127991585494916337503461907570119649056041919501283023404503451507380841874224856015528646521719614868920659597934154447018234452720672219272604831922325326668777253338212394808696132251192315072338716177829324181366437748768832572255151753682119681598932089433336004976229580841703339389304897591978803547622268594772057922023586100000740593421379902624753983306054118877417576267383013780684916993051533908265272335454419530382579449805885739150687640690202633607668529495788155691976653320356174037402999723071411308638511114969916451341324798075868449778381281764361516677666855335448479811062232684926437402894636136943382126300917024258434001516513738102712933627994884773763302514423924453953213920752427222028248537128385027175381117206723315564454537565222359582550359861782400177026731342784193174453952069597409271811367932351480422904930669588522919663706305807057423392555596113387460235405137805460642299825132146648303269166972365515577205152588324941585117596273603736246566890097055381902139753825791477854175766447829285710152661283170419243434784196279302685893917905472737914492813573671415971052614487860794056460901013295403670225912604031428372872815346315173996655685860853355939897041749242103918387973231100441331899864262959330803161540615311797262169317975913094986275675570765249453531764798391238987135582863122918016181948373919205551794273049073356210354904437662965265676781320343309804423823530401072543339384432448834002965352416336821339483054570134493793509662586920044702522025474418416822018141339659626084808425196236525012800648678790940397012387259907959823947656073534375332289678776099237465211144021923201469794406580341340903819241725586209832307565239384760500365943804522187854238427352460793008054941475525206808729575372942795724046181208965909981332676360462823287407964917863636309089106106590475130983071065467223331978375190137907755802077251898969531739539483251576560320279347280778526151474953311580616500472739764937748862391775546204292681132236063648714614676484866550173754595479441961075292300677305225093687202367327532158907115813669277057501461176460183242190391398076804932774505123705096672304242208065174669041080493557855901332915543950612658882997759493880748444123832104372554814882790994491500719247138460471585977744651049310544839345627148238095238465234452540976589490191242960644858682249963711954778737806970702086501691944373757907267545730846452774907103606624417994703724223829619256267489535120017622415651196899521344006656374559425589710372611129479429126459178925693491935966488120876852037805260538213068683787072272765777301466560210438193529185827034541593815472807770460576173459154610454336045731581754276001823665442961463953986408099779984592038680340591701856909765434148073123690319671856276193434086339196224915324639834379429562923296364092787298253116261378007436904934829600413252621289241093418818405259973116134619230380093187590648135307058234662726310853601975433756754293963336536991307276889152170337627810292223674305901657609566060713307381718911841780395566433675447702949822293669684292729682479777323271276244874650329685495789825765460547206214438237860783994015198994482523829933729039369594242257381117297880291194050890927629214135501174832213790529358912384933237274671921725937130754904767938600227316222495973543596530831797293052810653702045061948060666095940166108609493251117453187068094605091113471838669139328225061877337833776753956784751667215865086261996705776739816365194815706620035245445024937957536088765642922028340423111827732064172564190472461021940883908355123505615547690459389909483875133655710244525184948656672598966500145513199407558742045934728789947159534809247510376834208640199097869089338843408769253609818132823413588353989273581008785542861754404156022179352372739545649825859173907862498467388478063240204954469285000658135958325736711158203059810866704902750047911733209176703470622599735063881991034887928286508016254236700075742780092917656252559711835044768160911478272244859053204594770844568075467530738690340082906643604599334134332616565754896106831704880646051120872732328816937679973995091291075298738604868669150321935835119575243567244359545662162175845304645308176078473026933550728307826017922962457593237396068919747484147183817806062355946675795151300034547184050851310816531998989287351393854937728169615133842514572716026682209685340551222103069888163303103418332161681027790916736706141135715669502958672078192201322864718334684850639483953855530164225820039294864073843126866894235036699553656104820357457335811192572623749302870564848132700352458733932081800657063961182206541288481562926328322089901121637219000286505114145603957563502051757562809983064040459165844772137753180259083173858840443895113497161410340751372664768534033173085363344079540515100588562954102078010151572814291179765029590024321394052083776548501910641282449228269144246496960978959043800738755793217735303929095569792148579772433393342583942236324137584699163233306145897626420297969623864019805287965941869825929519681842525335600747167136939013182595129149708962726876627872925685969946821587135701615954967857683096300927349894724099311115078491042846556422200378948634295962127881118015552541084436091562368805329985162456997287410528142480426908368180866747241467126131679535874138650064084529348624488110107099033403063863945373148226572525493670642247546176227887832282163656706043687209970479216990198279421735798604227674242793873883953472433325401449637412965456595597729043654633632096684221959465953900222723864080537753988514221457585744524492571483662093024215925329549434404031276899903526829224366286533106162321639573458618410857734680336804025685643656430521804467328845198372028286350090339408151595445544222928195943028569025807635233143766042724998892262747906901940558916049520784544335770640110018459998125248122055742114717191756963199291100375966177533982768567244377974978942813125901380146831597955248604340581286820256863191982518381502907159014260242970470176070469047081113262976303259324706347426875240403304550317744683665397279458034549617841535783972521528712285624122842123417035318586436886017577107877566779425998217569442991280647030086806020180275603111496314850355461429561249431398550194843768632380065715134770850918542024178263585773466971920436388725256190289116419432048029567602285796475035935388900600653306117031332804463373052501544011446703733767577625570531178629954490581616657249820008517362588496477711362362038495354599895759364095332943462523168747779692634417757763120637805891820454154164920573259247486442752582664248530684688315723461622649499612660794028449204801016452519427234608711012584415614306266096903136063186531177647878663926215146825619116799833989647396244154810538000673362821426015391038948378038202817318734768680376123786149747911464434486158910749472209276215984153089578473312620736644767226962311151514294198957980294503479588832061621693242557454578666287314253878876804086409175456709859312048120016466103850449581334442321138380907767273033058748754687861935320485077094420661013187872792563648559633685018741176630060988988201570729790201844474225049759991101918137507541480529858498481549533632201255597717066473013881925521132165591754158287048534861207266174988599361250031211053271205085847819378649552991403921653993435031770135886831490555840222429682391743169337308880460272029374348349069031676889125604772680262725366735328924249703029403921984041917753680142097019167271092804775145485481480508134570011159886560018291292166703433371889295762638010835827003357726749145508701512894829632994429104742234367520501592995335460215115158446695358498836388568476622196989807249588891983681884025119364764704824980095115280416078152289161574141087817921518704597503306943969327297213465553201105077506382204112857808774744012146447587996390467822560410282667447880724586364950137535738372462786747531207817103426023560862745957460680160775301259095491801744374703673859343241829687412603165430009925994628225070897439924947257062657435297491967226207439571995210767571224200106329163685078921764349042875753520764475961040952454410274711529028847840313712720233760640066656918042408846349331233043603719478903322125977256082789049648050994845660165850410504283441532383443177574004956135015927317634772229735506812658202393314411203375294039124220389000503601907278941551891955069255255855026710999328423059441304650113678354930788936101518467053799041772337450824858639842474721394029250852526613654421580444425753478357460659723233639256548611063927423133803421664325978341496878542131840676537941611468525615008665028964700786794247227985013067903927638833855980494870516163551347751928701774625215847499810403677902599475304779752252357632081501219092364610772219895048502771779330198279743281690972525149168973367669406280698573934889027989743408503998665408852435428579379689878884741593971771979218006966001515667494606891723548106702232581004143072663519047529234984649709995984861707145984256403038169068633626055691305028786516790585092894607695828847582829409596325024983179449938817310984814045885822737925580662343671531111451999110369032296538824798828419698265886586693244968906671031194096489635440808281341500578362504538442595882938173500513413930952791099412208501314682363843441820861235696156458508930672174404264101608297481292819575098970744747394799925627314053093383152253648960106012688368540227392349820856838898789245069015487013828761354271897967439919112686545684993024851971052036869953689173095610096505444078453341091304908160991577012413052699977433237307639413867727349613724897152823219227397802711856192152325927201561097544768948975284220974353964100087046743508504482573549247951477352499312314784087459259673521769216766842018192382534562330837789443599390664988739954508753878835801959870382620909339450134272151989139390235526723208747683684602193122015506656371579392417755488470309562566528814336257343434989136524035399922051753921461852808454491517305567232797846804507402307147901292506701054381563358943034275560606785701792976638070903806130631804030058028028248915821409141065783149244814628217060499196812333062157357048540748292329358858732686987727432019202110305961775375937967726509802892902991561669169000886946714330274321890713013075726522298593857556886356832866487636847683017698712981793856466797940417715988934326601187120578407858782862416840228711072971315404968501514405490352473281548493071338957660525215665135915799431466403648989998565779701039330056329906742378235149584422466378041468210537637565853571215513052095263291995560950868442584928905612085340055912962665228876141424413058206220397085437651780368017554083352325642079169891980994218912843996903878465924490249182258727003382794614955167553356787879973539358188608118015753511743317431427519211830841446564817692396777183435094663127328834664620937782594750929337005123576321243487154404459801766466718996658953277238252455732934771131442222640777022899518851001804868954264806953121603475325388139926784461289254734621695239945257334807959000269313914595294676891969757276449682312156749516494209508763498007613623274288036049492846008586724789276618887455335323927550390620283407948047929476727789784604928462629246607218071081972585086584115378976875726750826905070713481154234684918215699564063893260051686943059378662953103201861491522052591261754482243356938364751367809160360964957327262860251907064627457009869892277945465508064252908502298119215495706922397529991514987489489248372138522068884553667911770591855202230929619559552411332215053811853939201113051691267408010475882091315547357426651818744367450914937649376887229586770065699427893861224585553395384160394126329242492488672892948798527809090228284623308306102839211117853894801074086285654552928097462130214502428274801332504106128026877952458619892250075255718377411269257664089425017761314828566235934258212970956026889383619032769546386325969544821741056547291700658622323886740090468127874425387888955351293518718131258885734643244406238839627248803007123521061987053351277697584486527351113368828369409097166314136217006201063077823700569394625027930254504810901180329872456540108724289755098750025867039105225788171856228126402719236779392572386573916736317377603775525396626643166790558670107089114132803634305147538281591359777959559025633810543186098547171676020458829690042829082445020742400802504816048104953396738584295159344450193210269083282961604363114005552606913806331709583288383359669586210500834557388451524246857344995518550100990799475011708799859925922307240079166502504869737727183793363971783506993609278704128975732939551734781342699717527605474869859724529905716755320618814646345934316882761005419938513607359581971834837456249149868512538298423244837980128056860017243967091871199898101428482145627321326407018635568333760727249441452092226386635135567147491786155167133855124169125407910710561485310151562792241827797271140033157418985391656368256964284965492219929146288763827360625917055879862928509529443689427538544258316875967035721578570598155184580671599513454494847790173359576929835827949988068396764905295177304491348207751771084855230743438957717405616190149560771927677358477306411981359397982068382162116950256317582996313430812573305220783651261119145388468842639504550880382194251310952417971314970268449518314791658553191968398948640239041177691440322799388058248419035042042250204660169567926962450780288358007327460407613255711911583131157090562522474671452773316909973512789070125288618215405233180881131775078254313298263671730396357472621081043186486724793340317834891351881535393243715568867261398357210867932945344057234335236647943629961497582508979134044294675919655636691928100705157393347102199345802229800931696014464469473475607724704597513739844567925209473089938810216288194329542896794478044625873282619085812652045923039550981413229062637774795756089789743336934020349691050928620560757546363357652633533351938745076667555015919502578932924034583216643940278824655080260790446387608600501354580162123916315222947630524353806759982667970959543096510859544371434058863911535612086040437554269225123537755996684926990520257058379909393158118145783965888147908423092777695661244965977401632029377596058583375621139889721878407924064529000518421837849978089610227361686114108873497407652933684985238921980568673641663234386383634168412218554274280090620381423120928103310022021047606356370476723548583631545179803271037386901004257295326119445200826200315208322369474545014984080874776062864475704970370101538703656793521166063360155120835319908051701949221375897814074625092010782541508051585414278381069550068921824661323439428483225357187704654658798068975491222278480013443129317380286001305620144418749624500983039503004377724964554264465891989821001456375046457803415055144215068110015446699020067059908231818825886502204491701405133474580376319699767040717537869787795206232840367837850497369407364964188535198035308590752215179558220400133676679629279263241174836873272720192003915334780731433419638561971206065558797973903279390494749854001733479145541651167452946909606380422823961914568319975076110591309090743451668417600124959079931326692405746207416978660327504392142543376414400455444501676930131715612669200311712300174519262485433022598187463516729037706286345620010943674992814086330431883394435652845760937769643506626834254372781232798934592503748150386566364939756951603052590021797378389846793925371498002276834200085239834679796886747913746607129521780210255999356327753539309861130358308000756286311023382604587614157514378961828168617739244939421552001115303677785280379308395059766349347047321609894844696712878619428465463069914910819184809903698301773245364155646917071586660927290154352844936029842091595938130916087700465077728802147882643116827473433904460687674351207112315797270095337992126160034105500731355312452634759155485853604924159278125455379913598520991997168181076656312153543217599716924814902649666923140005709201077998233009585545456448831580148439636861080286212586157567830174826643379596329136109957084886791448434969531000678971288205761088738552241609986161085499463565748494118920672324592310695259938356878046910836986603318026758790007853007485316124329555102512100662987841533563553504559151610971669764862317228287971441172439877457882690106570622858606216497267258373458581771232904278685527950146050182737426708309907869262006650994764100683870232112222185086083674561054632119284959923364948720895851633856542048132484629953357210218119874490261771051316631457534133433530012222770806286988806716245870636151756330992861252594052335846648736457334786282505207825766272216033976190658819885935625009671956795124784180674422914012412176591981325836199424572946029502137156186634594677164990354121935879133320012045820810384359571992289469280197790694785325316325009701961017352854751851537405757174005070608330612284248808912635482223781336858332976661815783190245320077435002485561297783751274026893446246238189954981694000122867587624938157299277579959220642262113236322411677766660601110289547310250192943634911124370519207133750657605777507276304151363205338538660643523416985809761624687360654228964746600659298829203444464007220170107689515787504522971739943349025804169837400797202716910462545285875948056782283465164397620875816780500277745117565727957533086375892529605942678702870027226024837613900135441825985643791600318544961329822317723335379963328467214285666793640838139537172124830422828727645266987209653863150656786902850614919016634183051373360869471931331555584594620381155146871882573462274562625521780716300553356320407727318156441026962063775172682469636264621222344593127089353876379547567172142712130817719502053366364360146735984271208462319782021400588067503151893440877651507844544200570699269981537259070276709424597869678594691863576034981244446762190980405079556647418917580068954845903688214692414786516525837713915636507016972688986619568568468478835320748084970902887238488018251676468459935890603173268080896292434594483933844487754253140684515993903964409302982303574065235154312202199680569024346258198749999634366759213514824945474601359338222143820064377075588416610433793658581099904279051739089316712256857366089919805397818587716280237180320876171214168255055300078731004492414105530426245755646255462430069125588323245532885218487850187720227027928482996427885283247408742410136342739808084349440513738551786246434823843337073903910355966505064416626097818414717353826006777474754354041536696981248256707192783059363413492068559031808499045958971360278374785353985041025738392530954554678863802063769558017462588635058268963478350735706410767207910900280763471912685081101622366248124726366812218204438363248423325454744252702917304772721491770085699036573427426300066051714592420027589236881608973407100953068275993073361914371091333110070607424476916169271086293792296007744838305510818554030229920895603774179062803517395923393399066573407127312967013498322059808668950006858337056388828034467338414006333567349759994545385470963251500444312203388216596587230648970407065765290956604725122794406897963252131350204371950637100305222063859706000306331763397452786261269101983381509187987015956563819527895315916840054432653600190466081198033506819703796932776406976970032871552454966524971514268284195896729076033129726031466249020963635775079166368742883895098739754682364229603086444272456479391114921729780406194305739241390759549849391732478355250500468453147555903721025519359955592773724708576869781518465499092766668231369792265626918653295596353807817874112544923108619455975730432694205728003767592180231468379402571902537109693532422578730764248983999279478723175880753325905654647381519090497575721555762768109667478450208465619980301933271298750873582008202955805528885605290183206596139971602530153404812701685478296937803903778910785171495054695144144180155713551623759818460014371515170518958285590803477849227889017997649349511779434445478564199447736585256169870627931768808581568458828740188843490432682704740035025546766224347009857138375058855290201450747128166716767313835753616385144149704758000471826567429631955397543704265754761415890661809348399585805602825237831969004289001977060026764906251505767407627762461940377227432644399446366181602987827279784471937780117649207829543401274809322433040699084225656949659517711523705812163630844892324810778349110382176229626604346846612137107764471144374238686729285726163696432445456788242301185679065111723248452881380435887733709119062986498869995758264114750464627415646781385838308953975389806652874842658948170739123699631139190114209756749243391024560456403824636531874434823208394888246832938015978293666336542752292043861372749502107795627291290461266778954944894931013375782038898758249911336200698331413874051116198836771559429011154903214775061151207748224280742114228245307421646722290685787704996326651366139577815487849272506198554791970435820837665793395725706770829120457106691484801437108850871411110597752266871380161205991541623887516609656653847331850668461301720622235803208694308625928005031032747540464360530292933795756245944693438309879250986171371918792317934563571982422117731253836087820445128953425904339568994102875297670540797987008409002128869700408272424626630362930611151164455930796605986768477762730203372207424259702328987938117296970046066769477947040852963884662993338122291533534996865678272687597039292073782881548034022450808301854691972168397205976581229008267683051767003704995901977877500634695399125263876542311138373447982731723335535943953664736963870806118960373510403891751928977476809035851256990894736164565207095093581022977597045286751707097594965198395136663249752145103366807676100475770971701863012989547774971758195521753336499068310068924262195415238588500740310775753066103984901841908861410399224698330040320116112841162263131251624594347498543939356012185641223848148489518984143375434825298707169757725514750695662771255523203773635519188682125538187477441972823061277274906350391084334069029716373737483315744923476761824655324202628486156630674167399934716489539266232875666508242129999785328202249402198688055300721208225776248585177454825766715940463424330192644633299405575203319050260076214911916798831851476210510879264469181855212227823813152155923706774278072222492275281826327847420594008883161014972412351810278457133595270165434545589280586370513068858506411465176309493424390860425372553058771584715011233865642442054278809925137339457216156430143642000008296149552625438702317401886744849501198378678032104973321901040315087345807692043459732062809620982284416151945764158495349504551511108285017592782691937460915290384368955807048201226454124276241978567186350818458160738602347710832333278535502553492554001716520614175858210076120320644191540019416529034541632963099604398863431691818822906468891506326425103436206749445588129555759770048322887687388130101583334216855497432608506916972430996934418689419420564333924779433132201221050365545334765872909049008114829248837149435154719652636506952303411916613128020337269948674920938798989182839369237676772440005594410235819499103754669696722893191239993477341564899302646214196558582564767062266803302087534907424095244940954920855733710211050710271524477209977898197791623804698914692001260400975360585474872686041489543321029065771290052610221604002553965410414993342683549938093128645255257413321949511156438171965554409062431059042560521899087769196850992716825315742286659297879545718198815992428081467799842057561123723982522431108620237126376609330264803640841954485344635149966256999491555146842520674561555495733691275872819237155003612755709912197068320205656504831774310353144791529892173554012645163325343333560538729272078702929448853785686886747374403241077616633949244647683083909515410627316108893111077324013244333879408753202865368968270419401028854595747190871516331489166350472189579538464052224203717950327510618496776774974265420061165762808591646586407924593211803505532355717588475636101442935682485514169466461313071273015183169580832026570350793912654310552146174140487446586503280530900763001694068975845581952923238617237357528655848103779797754105164407182808975158605713528609287224792057628404241894542514275190891876595157908409525290371801510300036474762635808053941225535735239007032878748691864398293973196901857219214113644921600214598430891853030582883375280293290939158507715191359470225395943921483423848617327149629049155988226619535036779776414261039154271521349130183632183940773997836858491919464051066098836735668202187117828723741380685295312005942396467962169670957573310772574378821787952643382623171218715930521049902537783205481714324741239452844868593006547559317215141737676928850716727908998145772466307549268915413040666304660702385569871348262499086215469324743713439143854731835901757915537751827040444733718818271276813141979265521186116349978189237567576178761750411903889849024299734367586622527179572400990508212343792696836760882959556239837294620791161208789098725830844265485744216707913441612795420524422147908423780170532792147486787369132159803867205035880432738551096429664873551251552382461120466436795445212101013486970559470052283890172823933296749925732211697500387651880342805770811977833108389687470522206246072980191712824180148879228164968225152290533320211344351891847052772297172112298290652889100798562017535638696967594059559501871443838069566567493393888415052896946862146081824250618246941106570166384462134699147917062427944232508773149008752584659977089933760329234956425709004400878014260021386981359414508129324181554656526074515398425372957787651983791077041378998721794855389554908914162136120920185524480020308208586254963011737613433119159849132250452980103581877498050515234207387127372783834648927309077177271446424038169956500564062672111969216055728335914139186304968062874052044967975483520204756073479683971703346711866078080897837795322056604514761321392581650265348296343591168722459497015429026146417684230092381779669419850837073270803985607832094732017059354723564257924578301476748179585040890857137299794848782435220919961322888762036744215562984672716906047834940711510325454645368555782058298961696025674426228126379404127067766739228386518331244503070558595276882382965955768452912928992900761985058575370150462267811107041525519897707250303123804160096925154505719370436539920057003096420683007682261427050888826288314359033125118835666892135660872647470293521383983660898227531262245760650901561704355243784875318287689855977898285823596327960469410753855540191669389307208588264976500721685614540473722925913877397448971784844678768188031577933516008581415874287516481602206357744391226980634024549927897193700244572752444853527863047199192524237577886562251342613290235989825716853010553991685767347945852718055598700193230907476194468544247322038675649449082175219372248754888934158030305517589723405087496216622895375025803967864249570847359561874640989512356368489743564234798925344907526459502776365560459835610717953207290738918154099584635571119164453644290360686316437150571364091110365387157432468094416829693688180389193293702447971695378688244613723710891381271244474466423081923002187900757804435447076073237136019584827885423903570783327474450467252455141372061478035164588821907570391901325726810882205785331639952040259883329817722977003576479565684134761054748680212795194750788972639346116472141472987431344136226189808065971987088667883144171090687537143754717225772373069173447407041135176254542904096627075774546765289546432326830051959767077539820597835304215907875377795864469210856108020205060915955238394805663844585200492016636873278500772997360568267651135986949395638452633114980992055772621599870164730345240312268821118357463590938731144756141703968865816169298563036906418689256882113912084566992588656709407546758524745884312836671658762377424244772727093861973691603120817053691778228537691947778003678359326664629411526457448742678834664529519724054253050152967835446111720217526594287796388162959082152599787727200312368017263462911261428112313716231251238914109165096101256451898052736575812054355590180131609495422356703165391213879668683314052546363658258441476430525802166949676200269505955802639426411815355032789347571184234234204523947079460133707938579867400521588859219982131178635839602569673684181197186549600876335284683650945696402089377355572515364354660137892362217206608550999196002036956292886381064164218342321579669913715284064992471462980364159020430057818830078167915066572659745592080486225902734438718380113442645687340127862381658623053070018701822417782615087860403089729859960047913100778643913994194684374639104799092086568985169679340695053680267734416531845907419650955704257604152761623625644180417249683684716021318321938018278632950888694383213081843679734531952640343300590663703946176665193496998400812677032866031716512015458885981683356054278117430310310022966765679274227767166859704038317256233228848627315401684813934067047508844343288883861509702555790259612423871082292193774137633826124367778430456574500904244668090385421148186216145239345038204919080611182750392934159874941727034683760007492322024474435198890675562793279616344075163678800429735571781530143143335011262795189471256231423592776435562105333707074350028037509317952794001221386162697839083083611572340179015450198331269219301902952060032134891833441499201937349137205471683966011416332175515936027828525393703920421830286395122399514384632763610827779059989332325467599378004938016271526222278793555202432000567983421654233805380564218524723682113063575154201634094282013110040396952682538575945721395367980017455718404984072255040842229723354352650815516194613432337782107774137125060078472891183288352776783870810413413571535270474503965216307100042882325525980031995627362091964262639039904524729983528950459358699957436488327317206598410397441308131731221589079418032089175705861584160954890505339184461845652999037411544567341960587138624738915312930125043087753669227580907832290489976101516221628196350088045237191777699168433445197278078790093371584386517994968508164739543500686198907909756258121217345150544577275196819543269449357710458434461687200227780729307363353939794311836078446650706208776757188837870792776511389180137926644950996907285580551609198983382386062178123564115740651403423987247261264256419548177932904923595207280905443978229971553310874367946543540682681657999614025885093413533389042241754338960715281660974757260821633776231308309436726842055885225398411451940084534472075743857182469817002310773960675968118293008200232044692126284816782386383084065880574467423229771762432928680061041424714915577418137254926684675405683537963244673867727245736521480191273842802116493100818145217852528622539079979252695464074239826775126651019902658086669537307864602218263767569743160647965282826558072272509942965724553583662300630775403658868988610285856570551124020977455799058271658443799674684156625548541766933597369287548454540110895857051483655406403575702249111729071551959778926296094852384405208368411245593460673779979744137658139237720532818108829531856365438215806830995216075243507135307533408760015540581053572207916189173993022875723643774338532013578140491123663930144960319408468262471112324105168432364818052784718507873733389322819180733489986458459626548227233672616360054647715160848525162180922795041983274900481563337612043801100137405491729438140627772486862962380203814458643232610372355363067133288068609834667941092651918308520791815875415557415131927621652655332228591774668407190702323758075125873692317778337647238963172476300505672236956208116909729560709757995249023683568798797778314503771976825320479850424326573901759406893908546962053065813209101310094879977670745894604937786290094455248361291513452787288838843354891123389164172125475124863178401765538396843362791811269905489269999112219850663642719633974528994273322406122784359639017201023374488953531001507244741079733609498062466062227086157303027307355517652251881729387332446860210231958054698371460375572657234834435836645468563994936085088295285440313604361720275526730370360283824468382918750280294278024483836722677249454533841865660067315551474076902587142553324835850300143824777509614099254829049814876191096175024346976515365997893483197909302505322729657813754164309342795569903910461239843700400621580172499447359363617871266823010110918131832061489529424180903939084693708210305149568147308997862071949295653853247422906579891257929513450765762021711184905714111798545221832631159446912154144290769314307059837868208836450324527828370755553390448782297131323658170977088291992939917295805971513245498919829034192255441485495370000835044907283511919710010624342440871314537340763442897257280504130307741043294405538542829449501796273766824846614315173241532134901416896986560170743506240988043604462090969937178754821241864357749889597529945550462911577106053556889931332973128235092864145752838570640614719540284433039044435823282899872973960511807862472101729811320889756077647730264407277070103358415077356209296396184325084901262248367030579477296666862172405322282761109965293421437996760350803854615544456353414143992837455732126168502877797236887133360023030795532036098637560357419342518858846691756675933119243812336914127378027892715434298077223383148264538404815181311364046775246030126239460575945697895858413456039084428043207717275054542444473644577305218327044866925993889573807889512601632396855910381082726930159101236329070142699867748154790177696182581785736305797014653200562013812421977059816560124146124932639544893847617271930740115336037403579221733920347424039564265926877297731811374209046581398294155557983741125959115091890292146339090995827265805428598359129986335854932689278352073392299841815615294478967436587367533683583510618173407829035684761540368018766990686597278302524173829063586609253775874241880434387424301962930246625363301669857826904338210899622002893327776741984274062202324667228234336273588873585801930228000390746353318783909377760573351407047140369279212463498462628255129921646387687062071142646154078810775595265244574198706262995303034568604183273789227595404805023124525378229224541219668094801542080663758827358933886869922905564610854431789170479499563019407683954044490338440566206906656516643121307950628021459716682124793676585001713090353779776605873978835932527034148329769871237067304723446613609042237460030556379477786817461682360402162594375032691556913047381247159929188668573761880682053607003922032863720973143615097347193838568559510139937084348847827329392375302037830396983611311687395117129514222910639990858477530646791633880167499308658454401570622948244294158722124803564606612476194414322811075681266971618867138597541575500621737710020332295752954523115863960425063108603599396679956621668447311956211224782374131804146204131298811336355963893653958049163881335333220398111715471518245705837147122765335042428383397764269616411514411633339852560980936223567988857724052377996798670955867552490506320438432837359765580816971754524375266931293318460913889822387726064357701402733832570050142320863439732781871221768118047290315906544663530981714257252441327826949104008212711870272741906574549512858988284751732894627933266256291260752777399584825891852808203316015441833259044852319085105447026565050725650725172322539078769789156295390819518057393639473455608937905632550283697953358207344702310502395084907373751793302606729497495544590065285335547356384141561180580180927351389059134018099933658580406541158382862445333639770249857824777843486518896241370296982796360532689141354770078065027703290329124131025577193615041983169318140277433443926292435491280888803979775956828458653057092321191912668924297313378806490373549680500447400339059836451751471526532929923126472087239190351387156790740344233363262297142532023838300671067996719272817408120627999558722032100291686951617288813039555308673123636865565334908008558197574495225748802331949537584827048763239315368894856811859973194860562070280130855108230835110294807452673534387450091465202619278597136365350176962526725203965318481696224451024852861449579703177054972552529568734054486931812520161596898724740654302518720702004967449306036747292259875000886456961647113960993865485390662247414219439929571334292354167715348225437033067415835530186359495994134734197349999890497484742659435886205664658283439256968971071857261627566129416327851860060070336623075035720322912549902856218372855106545526528290198667643898199478261139770023111715634429445675292850140469513638233246172823089387292402341933374507863537605682407599277534132010416949109829184705401578111302622423973857421066111143554235184195581949135305585959301173282482259981922256127017420517560345801903846421585162461263825113808094051553318574501626966073815950524291188080030121736415379533014024400190186144806614045490061546233867137800092957471965495889362245818183140987487686096353476784093927956647625600925666866310671585884023036429623993584169508228584455119277515444681482007919981441175877719185244537160535933095011584926124357164159679149933378994701717669859795895796250461464645343115793988605785870074644421012632010463749083366616755167278432141643690147667810800290942120403873227328846726311361587249474797563965885935342266681763684051333604794260723066862648729253037758727475727554837925213664785933471451778403692486062653539440454103513881397581486819649980744857648464565122507156354499958339081502551131482462396318384899577480578089164428634713875886160117876177693674168984855893424786562738361126956726126383075760640809572884692036945582650532043657075730666477027062528089037827324473284051984166720626445345130129100137488728768896402849687373460573307543983941176970966370731701037381725173528634968556440014826776675124793892481931869249059549188640926329131961505715896913214148838349598549184823892209283326938608692943401197453065740432199589257529047046498301089782710385262864211318829596348293074197831772284402432382094128587437764830754907121966154791001302694185705924866944943682112679231302973626925747623474317706582369789364027616539468041444242895223218440499981127858942502926939615481880132512856719705679173783506934257439103260751119691082887676923643374779178025834092396148494891558811728608340032956993586845246455152160481583537231865707949204503614568572585092936923328703251004614060540735913713713776922016850966512018154681171203519074450686132290605943352521839404393550733218133517778285109637616414740617168577011537604217319817350168674710422479777080683954357531640351886283958648169170184291948939484471043686930854150421934749547579848529033397785061004247581432912038407344368328039152533492695769109395768190181386103611891490726082071930855380875702493973456751255737224852146186023270188703035923659880292494151264080112795306641987495015469760066435104021275003181178826908159596340418529622916241561039201445103805236835203730166141176836078218949560229378432647939195924014699621146638099172964543950119056894782246947818074882254389825332907350614450527668110302181329084167359669080418701963249750510644859092738202432844940548099621458468135631953544766402640372440366181891019323371646251467852692141953306075929276889721476125474374783339226222573747837251876710205065741364295872691128523373550743230601506036918050851618408983268080823540012030388804225861692054150729888297498964414708561266994372356198861138044952262730330032243649364107571664338002099187168991861338768360004213780179534393032223139046637391837371505371122883482671940121065913076987127372736434631639325384890806134327406416758815232243307798664016455751373393253474520731726201393057578114553708034105511634427201135894940506893539683386136641285461119400091212966004665611316473815852667494165987065221036485190247837376088397419325198051200375020173998498819827673515681714179241492763457603223337055092539191385055057345955927767279657396620372659566609966512279547972952532118321021066014507011846602610187290049296869626752403109288094977667554157608196142001742592267016926813303716522464923173088553551897538461776414331686297540933629369039258534766278169591347231113227491041739109989198095371921333511458377629548615434818825523513968048901448840162213257347468080622610139688215660414633167875858424257321088972906281923255555662827470211177037411100614219329816547132597743604643425902663315651936739535981380792774681684357328902770056285179104563119757583532210332942133840628945638509994192986732606780307423126346118393289288597153320622404748711832475659129585490053842863362731516314788696210383846061309088114394689778469704571008408388482870044253910978785143107308898284817106900164103098193835323969024826038303837051487318719091489529176669105648081528526092426182909126684018668170382021598466834284929985802592969975560995240721509932296011125449167703702956706309268602352882000677770332409395561785940165762497655733311973236336503186130273353961405564220785198037936483495837490916137712081510535966277915364017311711477259104575494784628543609144677662997989578765754117982548319484002372642492420108467136961579485897486158338225338387882358806530133477728605150159569298195186221821618383613609547571333133782849939077418449074177159972287383233513966084026494851144606142772120728270380303949447105386662484817217456759175911766336307888366531722985886598631544714981843036131411846255070695431234963535951010804940838554867090051908181879677552965457339587840519296753710374898971583353649319215585280841368549751838230394418396497039666104826749122781657130413076849781788342197259276172996613947760518049311038931140625400316883722748648639447566581494438035728567853590965031348268909077880316158351236323843593169867356936492110498305651666865696563563973135211452616811841585175761259569635863021527366495257889842567834159234965965098181325773110595924941582115532969656240979135786915166230430381565906157318944988292999673769491476253537167317302718362130281755908736185914162635973636161918158336383494554552051889535349276580735203726275210779529077391282164565616220425862263239963916230242354880116620148057826557790917873942132637068512136433166238864444190054062157296921536570729615252951923030708084332716994419486047280515670660173814596564115838489963428209755629727985033290318159006429815927540625902731190685140040393678288248341378363755849330485373087205942003361157951461804546227130423068318419980299438764107855934492791836911019100678741711228570603767857837925922960260000435574814216439078229784990097815517206524855506605504344181097712479584627565553602097029837827520162434902681599280440553258688387017950039948675682440983927104267213279580549199757969297253417940128027963466710648565104612799316152437291339867288893623245406827077963738084220235181992913301815974128770012237400146815433305824195087670883922928643025785992365628560706365997315422741432049302914324068834730564516289171748062553763683973632834718631395198726421366166064655825945665871105992553336385591150648163930788309488910975461639836731993686943840294478501357983747647362244338410699049122053233274995697405984156481309328585262719541544268008492899715163207263912620690896753529054995609212529857809997786038552358216422191726060806294286539420897147997567691258430280004401596121598684902525533235896506063600023387261857841167608345196892931573049659019498840430845042809718638856063926404032447501341505589434176137469195902633343199923581234762145912080055013473290410937404497298059903347840843110557186905586897385974502909038095948063912592875357401531122629195598041202907534471164544448736325322615012455919635039037916937672098590075250919732141463689566168352653929864474297445476894241469499354722311723567326522876868503675828641976320184295023091350755827534932793979265883571113143218167957942561362148208480653534656979631525875417552795207533849457174098910015123532896552295521453935848446446541199521637399840012854222546586177302768048637447613451938827176175114442819717318061161097997431523184788590687654237087882770156613178050092744594184326943843764591463019278185038672351949298832603092825512748940783580579402494499734771618701666616762636053554830331958431525745154070453262508665741454338268911662497619556802507894150639493314082557669118253106812144335497557021102564102484472941716728146965854741413303643688934500183064281588271497120085932325866312922135820863649863972646111915525644719709165657314411684206723952620239838487536240088068781653738606501879412538491714584724618685937629141206892469124683029306395213388265451720476137560917703244662112566809686554849380780149477641531636809628069176095080536029714916694642808736369856051694309285380124402974506514837463853780816809111145508720904522235116904338615210668184284797861889425343690531138297922649498072366238428442393625344203993101158784578950323641180859628425854401679992859180436755000527312731443798285675310287621830167426050617700518169117754613547489067559400593904666311456122737984373875626597700498975041610889322937899187822201973688472347539215123464879949181457621010825055772302509166986747316417214415554363007765806598512005826249801057505833129031652148288762599773189304978749071918776651877896188051002558195612614729271972853472147941145753458921152723576624671036483831739756067952417163563865600041522598831129817106316172168592464262499488268663314409775908521727352841278706745385989204085373770203217835592709481068600825534651834116581567445501981110442816062450086120861488401875079784620814351764321633647177940005883309876625677001377161509528172612604004037448232686872197707993854982375241683468096194664497484316199358284362151934503972888168836963074951233931319516575636423452672389409103928491293537356289104231194445182324803356261592356055595997780298336431778441310680385250074924072432764952027583355899846822408301132220412315331637008604735160816512103895527638737285561794513754244616876547616762940560063368925135140432952489123464494745034605812837345016605270565784273141628513472372286486704786710232387454745766798254197173499511914142624761614879226004753570384378862332376705827731111058456312664746077039182421864293095551335521143132553995150797760603758279291502139078629577171438136327874719304702841456360615796079411710184744134981837621121252175929779320162808748436739266935927016883672171410512126949455216111338476933605343993086373464630267325136840724409157855545322845310027627017202458367734341768661790673080688443544282387989405295585078210495311066808091673939714359287894201788200273829229432264401905209398593281554538534355617667052405508631666653323680668635767450736104023450187550016386326783886136604950045133302190993906071605921579955677435490927956211856483664711640931932434620490076926878931179323146578330337962741188877115380746336150448966171112120337662199494644962824593209910327894138414444943518535910951837151591188856329381496630551775895708903028266325410609762286489544115556000843155050655818452435313062823508147611518037234851720735465861822396377964832208668138190911778910105677405206482104712772607755863954708845915089403211287576300506228146200675656186530770832271483662576341823868918940017756870541870845634696658701728484355962981632441389697769044005362514678742834624025487387799028764920440519147076456854569779099814420067083250915721808131021272746826434337092484765128225120083182148958637720711348118897306502109032883744637899111663025091916279829093088311230672681058821692559789945140088531465811247792528529858865196402362448202799576508323082642513806416900602124251959994959956049864210213628047816295333073404620461539836351989708334238617227412582198848412662021900962117882392564239007105341339166336253085161640036710230201592508664579865871034631001411476553444557752145651408172910374001648262711573036945558210655519230880033578147159587092687183297861351864145568436525671265596909778702275937990591007316555737277790444694291829344270832138007347260179392873520103517844984197399920993045320126885517780792160538112093172498577742188059756842379746712968666918579273770259198817945782917212166886346575359201963721563372724625105520227191424255251843271865277555580004594301934521495330456152333304438158158134336822033883740628357876978371787244324294891128442174743406847398008638340457001352272251537016524891936524170779197866674927894368810326323928728854535181674718103537158232155956671604308190515299973396621697181398014517659206599045690573885002965660853102338473066887332220342499208346256720602211075955514187594731498790380972532245456971783242209711330911241546363848799927970530386615767424274138960894563783551706861203214118335094104683970988753448467523400190471544610286207554768463046354790082225102920802317129876749365773887353769861200836403508777219019381450064265756304572676087394896326000988147650051297795386108923172958738288248224358266979281148788399345715664522201074252370449148151531180138094136084887458323929961972453902857115872996449112616582708554175846805356073869194742080278586178537367229345389578620646543654542806626364078380799534475709342146985103765276292145800485714872637345030175813006290456475406782654619869161065602345291598717918325018934252881407317755857449095579666291977723788569137088983333791085182399535363768901948793853639404531649835016928280185571124988551105025680152995517079642401343311241365178720395809719445127104744650863624141806006271121332563287845115580566609245275378965614678126557806654102442055959076539300704750954961295984071543667026426350151391361236719694520640665511548337716104755671550044313643227526814513262130514542234738838183714575445953947316715964733992340590766963304986148321265132814075959383776382048801831286462984022885727928227969683191153428229361540608137710705333668646067351246047260311270584693050467334269279866400585283108970057074555154202546264680181569992729402524450563544567958834589377196095023484394809939893817236654061408371601372037644267983914854260335736629981562140383388282700957185227406669696110699018982293188129186739255980670251976795836712077405521768373279470733473830198066544620477043044980414327272179840112699964330017659694917780695807250085124232872277647542887009620093855852390669992829157789431303088959119364770478970385186197262843606151180667559924145145606468086789882245701117396174695266157175410452220965206856528402742441685196831334427434551620815939994560597879168806576104254692172741680199643572639352847438227913672483031266307632212882300526885591815716541781082497975009764333824944936902725890002603636463284106315682977049748746231931165675846883095474070862332719413985254456396581186361092249378289940072582552621518375846592875508201063093360137647025165484799297877566219946089063202503619410891878336658780219605886638780675969902551646262121121510452856441695597299172427375781034326000847405229880547153398966399015970666239559594446184478109145874362704566698527209673702982174436153741452849170140797927900905473119095237090695543354892793522108523752316569325017895006095065370792648332730713535878756646505508824455408340166803666338597486293773321417045690722911585862900709039481043265640381779045299935677704155852060557432889586051643277292045755690829916228433944703907596955099573143698562208378413427884679183145398452230845326385426109297116930783728412868957895506845495923050912242565666067159918818067821709200940610177996891613374767190633705166307718724651987051129854128732210919266102894431464318493444814894643805787269454662557236427979873794482681985577163151338579439792230511321828898599436277549802399405375473605349851710563037438360322117065875950883234304796975844841697140069071274415917238638723761911210242308264688075827362965752012591247724076598474216742056718671805512137628648354976471279777494267337253830839657283768636413672139440679966633113265418071829966747004806031875687936961894907115182766624214504397648435512186847944637546499427989098988269586661505048434025350671492566721186015252601242450823945388516244569422213779085145383138854489509169557873149428477193394169203280410407470962530551853673002352201550096476307534621418481450084295870890314671991342563931067971958332709108767389832569326094983365939728385919712286369792649743139626299448983356884937475056365911308811185340411385589920466272196613576496797775717138306182667777103313799522782826119943370222788576974298323719295740792769260646823049829327652586319277069419161231893224555416048785053753014997056203098523387304559635575918758449898213910944375274882498520374297143650827593022031938913456467989511008891105966189942044116631832475266484485282445473545859777454173760839416422900649953996288612868539822053767934740448172344502991972028233594058769476728099254644748846499939779112535263003093218336095049977021900718509774067392145953979989116156966677525974786063877910284228001020829984545633732939274488656414111459277654998969799598656456705942240274592964757778549213998624664453377313066660013882170063223791202952970034797885784397297148828221930385031232812015025175422664049235643949782072234896288878312597247647946019010840077106691630655936399593338545533356943826021489482533322394548923207450646926322618506185191433799577260205732250945165872063946408189535287451400901299298096947892449499621385201950939221299774786165288794384069221998166443878444740634956826599301447185085288365325610163995250302227203547692204696835204672117149879468259224479622139849226430918074939660675299928438559010598025944725286152752407689382528658883980523594941337650453299071743322797294421232085094707681582352493737789711998737212291503459568971003400488545665222804065489366956445871836924971406711129360794232073097591988436080680707339706549081082952047447359228052230840056976682149528773816387295736664498592269088639240840961621096000425678064045589637640813911044360706843767836498611093786444290126743482007969520888299117291329888808651299502852346219242861239019427110996617066078314359176997371903076285940681894513949510183934038418452827671613012249491568477353928892487518141942121309401783390661937094233690713201124226411095904014493036948615387105003070477660588396602497125739897080244826892076319700295204015453003121822171784193113805831971996425657519733943850332874411665345910437809268767189865205285192103989089624889927964115027252330521410832939955026605597405957095599355461683607479113023098912821456965623089209914195351702217685400578038799111187096678211032835339593375508246699317718307312109415949944150542862926615593443958322064214430440562876373347853472362837425472913171935140153781054708848540392641240684737083169220420959162546636640784437263519657894329425064004045748855251037959319345442062436681709707166456366227300724335961068298889785886331923721422338042394593208848916290098583248568406422015511213902975800129615971629678084625043262123359951483273301298554625075122196598966236021872224677514603770386487170227412517827550531733451276196041785730196829161178213731384749565646602523396661888300287858510389434123893567909675099636849782782511371670267116700663238217759185891247464407818171304408191249115330730453331970920289435436289728671807427026161360054593608235954838564746553301723595816727003319168547768047761774422954360996887041231436733280190126076005712021133425136608225339759044210972129879061597942512101903000119660377249014684482305071970325232121210182364345348202023711818081470606141080469950020219881318204996430734345507453769998147309070562040832799874249660764115522566019519524364384600020994738557351670756556147160038099473373580054832005123427913216807455933785170147203258850336343708950912286925185375814562398648060092671854686297134840224036554408365402228730837757481848866745722006409787897083757654994974133291820615468111465094639421536798998965335235708920466321482429014285122447850660023216346488080910309738779549278602810674565927745585281369718354549072282213461969993543051492835294725970035423108446392759698201520442988297838043634777522202560151848638008938464412343931261472120383057723553886616548668083489358623667277951303038903893226571830622930510580043853884947084738764969808206696419247575319042392192472616899245541096482040284144725801611406569460370621030458369255826105472020413160106329059139831099342155304256440608228793976113422908857077348734267061843181827889031502975409501035217267700439719519555939683649348852087886898438495080450694495031867180606231283585572394754362776478961162933112276610637917905210417615201340132837043572338591740989991996688058039329048528323977693250938587424033472437494007188985906879418820083436963362783001644732615634205070563501735501150090442393177447997456601166958436234089101817610967929307746074554314021250397725206214147116700709920326179690923409872210799775730137846931428085035460873693642545181426682933039973764803678552663205617522792333241798859595993725565788784167887955047997670682572108326247285671810852884586227864735820430562763227889218361773049090318260675320469615281712048067126870135543432980648932687086389022514673249736000014951960772343487679158507920621555797935881181234313927640585568713308414886699114923579510964903204460971777418282597315773885120206843416030490370589387689355379317027496084402788924687358780619268973717662066339485506991262597204317914652471657406591132123569576949557505683790235112726697968791920537708791396666640541186642696554576096883391234104164932752323431193991635569193757638952300258229253009622149134385513539013891632557114966471095694997647385758617989525831086692721737593921381955828187784040700004765899051338343923563303736684796728852347621780181077997033592179185628220387624799815863506867502468596885208589310811234856979265598384528853111096321564607211192680209487744478553983660263138272670431984869842535071432324349664585926092939457115560026968710914573476479651988963003109737380267565887725690496755716281629527237364489695139359178617239587004777173137729446420555816616168027483477550095077338520190118389205201246122855487811076992922929227201632895869235584626044218156336058363478389374677672508271186822010293674178105426443861635339554157097862397020730195710492191901347229421613925797667141602956678795810033844239648920394604794460204884119109914347243840054714914111110917877547572460035290503615485518873378394326655085343357967179989121090512066913571237214876075310622425866689443209387515130193899173254409560649946702240614048693875830073793704280721916849360706536324834626483624042430550248288627183412586165734684484357018067599152965070417484269760726224686535083514995518416949662388704375030089441514579321874513769449234979889534535001853446604334229461576393025674046933955041788398172529270162442648281228307525797967708311018703095132650314783196671217486798873387814627069716104659455021494321690850769080457028868654058599023155447779797180346434718371685448320429902097583481129553557559869150455450324477234561837163005106256280047071615245660462774315728590504530678272949346796979491097591798565587382706183760367855033455008704932845172901977566507493567462313427120610497774661056902243213751356117881762232518143747546963860673849958973942482113347544185189021081625528234559337169474157025066361382651935751903444176774262836883062847487794254949244470655131847368078119691484146548879343215691461842464706708873453170690178527658874657431358361279803427427434247416761189195888389690135481917577130518457097889765773182188402175978409912693933197204548350584598524134666591973294349893742558340156988910500382791821747142646713748782876239280148867755632979716208711990093419172532194937568257221007117237199783139580451324991597892545144731293076094254824150602408919049382210797525668422928216819957358891395981386143921047026326214638975650409785991566919962396913264656413201508564686447119331453785436290657262108956033073034536062172792383296875430150419819761467479487093822868383773583075538169832651370263893641405617312185643786243186797730154176183939215632561974882753367077560091088797447833957089308581602977829327411333801271965256122578613677929106528475427626367352622895488033206493908811554024395115682450826248987673542247204981865274463698944943934111467543243751045389027068768967340275110106556978507353032551343756356094615404626863705272660530543316487948279902897255055495635451025620272717553796572557126407150522573622559998389853216848977575675832704250697168695985489376404112523265847097192798028193578941754944407894865231728921206259980897915940742128622034998523146562285248402723341927054843474013594710877575626687049779681608933664214942466693738021009803682595923038363635964101868883943877044969801049110506914257672088326042837315008883611971534584941507478183517041920196133796393364763732792371022786003693124172856249935778148481936817418970130067883740596237000970326496826773217574245778447420815200472393219585796162244530033619534568365237797004996962079248877123699017606966238680839411881290514160683547261807096379565450036086730617261196647800493912990911577373177257749387099487633329859153111018485923910333928134670071976758664875323908212787989431845722212004470734322635488385631253473765161085409555115228369996153048718193766794519614963002597768672532670184552657785483850150941202751064330009575472783275436320012218368411108635854070906772150778156538337092054779707447022835679962208537339371551100170084077663854774595845951908108711587102742486259533785579237513654997521952431010226178284389930624544977681391443861676950006877675393552895933202622387681359156543403767701234093460137998690030568383934980602949672731126605054572061349412279227425309316231465730977788732008910327684975679933606771127832647441677823810275885490331554314468919990977746299650811869774531467515480679553920141750023583163079824187079433450911010817028442233285248885149799554613168016785362774548450048169391486691584875818784088938282827697513688775595235174064722140310970769045328722274878418773738583949926206955879584402363891553209170778085531907639971187442099239897716280276856323823882553100643415264753329758101111064112445688089029039782253242473143048338095085117378885051673119064297190965937535818251621038737764357912437705760195505290618468299974408582239245199529338888710112185558803930238619738526587911794798253116285872536744386912022327377507290904277406795922207951132101997730080197049963091303872784754496492105604454228942887516150772801376697837758705934270922651539774878847386936661088292481287086126252890537684525485792304185841554947360565842770179583587221633851876765399866350028362828549478969172384641796388715338738206091132469396947816153972570296485441897598707892935411039548889946026353861096803364624245973604984812532378108479473299599091420233159524909169443673750839027605443849968886350587005704083440254586485664263188897964010756756769465029321055394213758059141854009121195704692732322438823360955916973265934378254987583854836946913900801158051612798507990399503002745622487364195651587007152536267887455227828025767828957020999242916430586801724372746292619392202251189945826315225409161526336152769644666763954750776116287087154839839674623686694222797952591401105663551203246960061048067237974670450005482322303024121825180366625434373766617178042943149739994628693775468480948396096693164323502490455100482253580492581932816322911219764115486174098987370509179080023133159708757973778513795203672570596188424476102712675811321900062472070282460551751430002268590284556676816753092388868245436263440025633746140663255090180438267882746078478020428014690306748015571150750190611511060111001521458745324277527972454486632797738052327237356508319120403316094352366940553042640563605783117086811198795094434222002827514967693222567178578438079316302505749477028209339426804532924642397919974932411035871952514100869143596981443870782558624821904505568375921534802358822359694973674665199108896180484109038548049326509314789454384922435711537585204877986257683813896746464982805958391097631379765380019178574880111571354501366624890251230071703643900801650952064196805865253663689896311954509305629913040393909307677473969135381829155238852815323466937680193034394426175611403028583094309360373686112153171012833370112059310180667584895590980824416412802806860339753817443370234764013267869817406865094988231275383635453603161855258131125858731983361894233059020987292553974940672652076619342732100198934414816691021683385057054946876825690783778265702690375600918647217867555943961475815014116024861444251571615522829069033028008819949375777832542975088799595899738633584428903339892498224563125023359457500245292872895439106132109520523848349945912656985677827799697305105272919548704042674976904721709832941992297180303754597776059162543093182723040595785863657223703098641339367744297258274809738553272946170858307780310968748748677867649706449506281124355504829879670073808233354916235585881966293580757620771851640393424058390751835786958648026269552674758172672197125259113674331128395030470204827879402667725227118591026627604157917762313333330191484282031366682770219249693663354347103570587894873107302928126853549505772904618821386442112133093666675921015403576719436708576507736250473505095552435153955778877205737265632353208308444269253244641615439561085925860807981657868393534004502236276672761819291803727483420833157850406718847606118718925377319652741450773846987519782347332215571465758752639116653711425258155571939395725231654811665805645330760204441252332798011904494783770489972977051131861447218055738084204504318992528656618656977326012426677468537706871328804022581037767560307813628297735462073792644178576062195658831627381028301485266770957293076532321212296676601885269754372508412961179296585175558017726895092179177351945031059681491512301823096945770774872297284110895024422491586298192366630896992310319259846781265886839294222334781015948771816788099985124553515204041032178852362240940381165371455586771256889902215462080499020198456844472831219972794634233025372146445104605855903138062379759914058707162423496994589770033832783645391334910031432469826348024781066843274593905532999825856959254929295475652729230233690191443863402470086247601400535044776881113687145772213073684349829694542662291269717943042222077117731009334827536392842923015366719470378442272571908986659686122614047354623951199317554299556800403595238424151974008342485216603773258222664809853450496671020999389466953017962707989330916988288178774571006947398158763106797156423864116167275868737301769212239461327749339318610765175506104232441160032303662739754965558380584366545097159456627550078916862217231703055219432829187871562732539365321904528796497222944661524481455145041755741278807904115370372790303841551430232051773284667563412409978878546873223971367634228596628398794863296326820049469862116567324191778785952791320816076548886287225419441819797182714544744505353162214536462359916754234541869081562817064351324890310531032755068426847042334048292492997933279622585010190300299572979428493763373558977324139082350873546472615184089140164306049786494431798981947339222225210163886469093040162093246764496897026652122347832276433188362449546440410365932980829177387471062049575008185701110830572874420081045518673195680699889078819230977378798188283006891677200254324209698469858050828870836652513789804174755957516718902949330308768744326361305559989073399492331002677954829167531218087588596784534336333261115172056011866658489250781596068320774183470514019169644602480861648594865666855926529168746416797438975974988896916040140776742189642394326399172812335163211500053971389196898086801270343281103641605778388831381650623692064727267321922427793404848935187850592815262333475426074249144503906852196372194470223850128742817062890755937195237965041403840202656247036710172330823521356968096716001424468101557675834279488346309653803792738224415831692440783393040108829130166641014728466817675921178430535722708603541589395630732204552476401976524627860371487335470485676381981274992890656695467060941046055113947520252855372111210060489280751263174030062521226817551718771747926605765140850845702571332991880420972885502038963657896858567583603280280976552842948192748221621593722767542737104179479503013168876608079560837922128192875133945531386179221842963914148976810630239007073439353204045065503646677141863021481996688573006995424861868231933958831991785779080729222566796809240626252817194810866484184830373838697315600568303952148018917030675015888544515945775379034528229323678740381400716484905588650760519200592415787034243692311313431519461267495972187112731830277617949366445073590363534043356990401810729065077778346606891740318979480372963027045352157074390288989783936612424995221023354332267714780098783374565627363701514658101679969078964235580593058027365249267595243713213487194356387696269163125493158938136111092205510577073628253651169510284250228639238452037878702334687219291484684774211455743252240421793679670954380783549759707747640599144238440536638661760214239037263758053483963291345880487995740831806466663634231305265889458439569743218763927511402847477144669395641880937439601241661334726741524317688719828239469598567393005064605268904923903585225102392843032671892145124328372106702605101790873171731980616722200104759257395413644206757391888737591500381193134036061141882889246562873377992895254049526275391456375848441820624098702254401780237951327747915999741663614794351923909019251333291692973132074101966456380395201957095448709200977896966311479402900544057366087364702514501434290664589958964750700483065845121849573361235633783705791444301575615366102381133377767404281939032313619782787580585284721202018997722101016120553254961402679382241886554136176829360108890808249480150041090744379754285299380194394593167516894468043998956118347422827871693040831119202363219567141385283773400251577852319587264615060837045992741642709145952999586861427080037266083639610393695858884448348769313769787323426672486410981118529685748642901738107040891261665790065635259056167974609500859078962821658656191921769427162524221271544332564704261402627732650717818942382655460031630202583147337252255742292534658594937316260010907987491995283105890352590412201074168627643159625970641356456383313602987309138439787469915825291641260211594994819158163684068547190379907210000905372279360673740452709167055504439170917998768358754492587036820523669797620852401222564443706750156238058053169916579765449116984735006327297082882795194770461335796478921439166952115237856077787791608915280774106409060292551813995311537053151318673620769100255874154648137230496968478929417923107816422099120897179428163926362438539056178406577840316619461716556669072800968126123467142054339303301930535353524052432711048621695718142063700309832090473912526566485614758043206640485172564942118924659575506520891625125982293114525983720505546650762316180266822519480660575520020975346837343215677099244392810756427227885759791566915242591454302718967550979650022206693189130256180898996186481784674993806682525729444735260365404581475835563347033569900976241039562300539431158007235910014721732125031143888922243453144993645656642785588707376346084901478794234845665604356202558180152162339767292721719578464210010992991721574501914735675628653531135153363458103827156981237438879524493924786391698566512213628216161500366321432611794579875979670827835444817064254714516180040893692877892016175684208902066947337680980773730767109592371800767571056189572989124995948012350884959912582831025714537621724413456397924441305302068475158308387446267537790641559188965921167171102924345816647322626819223315342423014527592159366923382023747896836830210272000611086683838495743438872699533577990026258352405640230987511733093388814925691278414239515775219158875845833553813849018817094173378311354039088182897736008040015932899503829638097475758574515972643432737114625860431353203570923354566495248301349103517781968221752962990775872243004565430536873186738277316855269162148448973644503737099388334676157035572672774659310709618956063652189066741493264935467866064879695901107734918452572882491611679778400651920872593733410302278056085960470541776905004837135809600296373761596972534453144097703458937597275005525864771248042115614398612577885629869389708839176593896371527107980878434536746319366777476983741476540359770812234744742036490477697419505444651212891238360928454220875910487077018889341879569914116633967541572475538672585224520749559631499144988010104848582180891546048186193714525857775441506369114819788306089782967143019050961203575525489697064138204729587830810331576319560287079634045881624523859193560960834689308650763690774318849928736697291378416068421871608741893712217498312984721531306928962037931448865872285836349258257858449407101148789979420103803290359375630252563008624146264110935920764788986679669978972709244461980593483492602521671340762177040659211216159765397337435136055613584435763960121424988487282392565982197279171980202571800067891427808021739884327013697856199849328144647349250184440769716021527149544867123828963348309404704865175715823090065010746464031132074909830564514760573520897058648050356933531629513513268638770154160669260073346233736645916130805375138789484595949895313084291101467125324436518227912439557914952825817563384295052548038928937336068988502561044387956443733685100618564520196212060751466855402089598743862185106589232119190572934275860443088281154315454861568032625432572337899344113772468587114530485171365885852450864470642161278677102325877171664795233201626114353822861542753862342764397738898870484352315117607942807834065254974976130177025427154501599044572584908982220610172285065706199607589200787231187104352069979543758576905855284774870773374382061567086884406510145914814148548104139613438460987089543977582854044840257463519662622821848996498242277741153932543939587611143900216866447808688971728561623337461093130807869917799427755747843751647611282491514740496153785193366711925197134484591203205596829873188217261320557645914643427490915581338066763183490246323297487719275313710822855250238146813994623232696965484619147729186404361979682591292843682874181393225029406163886681290969355023012028276390426327894664382604063729037113412820303112164093610346187236495858423596997382220942579907911764905171338379364653199971428078658976610502183639872842711514039100065235724591771800057891439982182753559195723226303076035410404871148201743606668298021582167261085261468520208065370616121101103409644073366582906637247055297290862848353102962653085457701289145396981190741240617642574378615600296554302417422535232199891716073480262121381985147506165859381465116749000905311908287736336003884913258470013125069010980187587932359066768171418410816811910930159566897155191676286089586594114248645458943055872569983316187078350377685151712700023291940879539738178091923140970511968607871627052025190815236340512087251219780239245156460082955815518108489812099102431127900605676528507918326461459685402860478540669061572444602206691044213449723597523604197335158861070799337294183783088785286676625301767843709186651611915120572357411967141161552994692104659570457846316490716290907460670107404334688263855272950376172711479954465607806530727053839462410020257528069212249237273620269686497628962645336987496119488027127886957468008800711905531786036383452289185202067816586233830290645914132498040165003001034469280394275311680064350684903609406359035152903943498426652976300750306456636263497015754177125485421809443026915892291728217245262924070878589688174485252040857048427305558349983326646975215065009867226428571401329438301403928232152538343283915931569165277638817925534880481508266999856997317711058308561284568156976189212228797073760425479521931440499390016716492185886750486542431127826960729407078432630688259472728257683585969918929799921343136574425710594961666243830178012969983867576492813065717383069915521850341368217442720489379751050455912745701520292440444371078489033333408311367057539987620984119134369533397410459870648487579539927635629610895638291053800440048182585072339834407675493763028112548480791779453815387674893943382968061356109384575569960617286510926701966138445658789188539172123714960150550304816715603075404102718957666375238996735000864661693923710479803620486374893926374222614965548227884908795584388598880747902333033468870781064040228025746043747548280480174597704502695539752170801401668036321668863424162585011146710038677276200335368550650075251109782926004304635588347079434830152245222117145262299824108798054901634052165003206379001612800571959661757325928209733760744216317084223360333373695588002782309042892952909340499517660687977285658782165884237145100811392814118878788146469228005333098136802876608084706854801794168563899453233817355990703799464070272122930126264293607583141473250938412609990249601827370765999291767697900923044075790891365264967906274802804285671945279782329612752909935689821583505448889894898666855228594048394885402784990890678218839782344237433512832124604654250686838274639383993140821618695989667158634091257595703785292782332464030134057167653895764864752821929692733827390285893452075684410721473296515320839617507339860658020292308188649922759707293356994879096936932696273408999550929182056606684317669276732538506872181455718768257447779973546559248395872010914475292675768300213859349300244293198684033482428448091150412991445871355240215810095783204349154020508484994760594474211849865097867678404412699042315368077385927409393140098932281626285215077889801236345173733499064319661731352041021287121456438168712110392991266872402406018003385118678393514410853177171877123871060571737228000400864480855160415430858311630578798352381671008959746096764779095691708142391863310287470509550432677894489193450038868808358787645362987486946529262298990628041212074704786939943725977459887608280401319784077583387560655032754710374437575445485413173539546647210002184447124245963954801812724229280801687954275779231669773604512415147554460088279742356974784221326484375903680277081071028859562324540193609416592376467550470427511278992714740456858777592097984488079761288098043918941494578327130483449937416285640281873721660693019400472235663514705654051564596165595414715750584602813042718987215460207250291844778493387156165097503361159938224793727961600226259438734032257959039725151738515186500489805633810141527747611554787686704839237973772544490746104451620606692409817158476775178296770030136759946396564889354914217943362325517210279296254490406208316979312978838342678851167757420579135498246219565328680609814639479278615243984550891490642904150047888280254351759187187631482450790448274917120749348945543641950654595895500254133789498782843974057439904575599842340213151466278432062707433124596297827083696164847595072545121221378482063628289011374359494385072342808096178517577645617363318139427574887536373868181129910135035978687687606230851006707199293505717970909051216452355990810742702718624498067311460751434292546074260525229614689919896821297535883813272362142965538515305920417310345513935785520432570720601549752770952639519962336732012519790611677847627056932728726261602004374034510556923016509706808886277387151600327242398544005794763645527474520213469122767298137754933323029336383794942696939443893848148536980220471972049167682568561158602969986010355094235468789795778155152962317452583837390642245687775021202210762649972619001807185276047864672507944986799781140568963921801398220941437863371005919931022333220141468350427658199701271120333191872247421004890987318746252504124306610801120342894458111640964139237863511100201724363793609750659380840601156651959111943661655975442826393419072734196032337806869624742612896166121469915616214573217856021674068990294968976178523329138220415617570992412995599056839311603180287167106844772989308469957912283508194682668945693025523189285868021387255353336806037011863319494632826939422036783563244104558296013772174454550731310742683430988088074706619272419608616021651699259030099802565803228816253059776519331136475738186762785983876535541374668650062568420376847564514770393039130211408266643274501467291097331648492442570834701870808614745747445997904064192301983493225511097891586256896173812301632089877029319092282450548690630605792219051762468953216832072585780530770251894806206347314601662608725353503894602798672996658184765682129839076723031325356170211687076365894789707678252285614764074850856328385788568292444801470317612072649140010037401587522899922023441184959530351278366217331669658943378679264535397656083272145419880148648039453424704548743352213361583314330876339209151654958091780075561051947547730930860215143345347085851287753433239355382003169756178378317293904593356685102925261725575623244103881897551499921249333280603919161388947124431900832711063831387934907749412585035136369902410679494673143860688519374293675787961098785774956188237815821535843393187122598899950559269659380561675506955409010242516607050563999311661419495198317207379402850426077591022581599409512330435780966408198059623519283658077387630777044027241847142932336308981323508003564725182548429749827737606916782285523008363259397618744976077991508052693495756157636911308061328149333370119096659826496575892377715760739850675486963074784946838809873875346981052740167018914990155998106866677465062169367843275806313550687406406951934199515558995416223420886235880434935684096352793905034060521874705797171613816505043953907250856827427720601550811331143382845825022337332001544009988150361275151487987598224706708585374992174135567420678825230948443828251068601889599100320196998080712930847947196934803206794563403490767848785250475540924206621999642106607088793382190401671385981134800902944263798817936296553732279039670672777544886382665610853778938966776632128156519183865179368506180431517552098225294677448310564075890027645892291772054935462902590546160258273283031216136879674029184608881463777099308847278866750544142902082961499503661688875061900004551611058276670490425620820166077696132033223032363495471094592596846259707825877003943908241885746359292777926786267139659897616017773353113023585457235334517439939030419521585244652062347533114297907954239585385052281699506385007152792515784170669323475123198075576463084740987984598462777639694393638520336217741555661099904815381479683404246987909227650838470706204381319264699840016156159667861027363079685618550116727322096598463234578064332656865987189384214605153469175508899201596315184428604190492881622061026032274306058242165255380354654688384825702836254012215730016095333023194855482779255737840073215271614472934418180169963684781915393233358239452949479372158692753441888156752198814941772836094507120338184685485150087910723541128113969661222351302671480337351751618841483455273710336298117218411721687483373542242854722596195832723035570478968412916675088220644063611816963145480522368901885565280777659814418256451175649586020099463412783408379542855589957029571576347994284329576185222694693536730022689410743199455412936001587568223003905037885472350100776784118585513196566704722304198412997096647407396910800311986848782438595968820096396474726965970256720007000772625342543510573210587644517527334116303361387833529654971893494875026213033858480301726662343358434124254541668849890917683905451644713746185266498688217210190680741586841855656877704581005228520830610139746851724576856717847591286064469501430711825831989411786714473368718677815714282014353827408374346729869182682990019776752895489281743763232981192498065229626424128319240704432354681332662848178679205879194577155503799588778476824546120582919343972343540211692697070507969068294152773427888334430764906127304272517932570519804435359142691119729394096275833940022079681967090641478642099320932300379181924022665350977361255008404496399935568315472255867092565100071766099671542555842895681194835916620793500736737873379358221132949970837866099518263366413441542476625951211286253007970615416610062222866787990952552026321426998916870566261689194314925476838092658624983703825070093874541885822577933280034331602833512790437004026139170804964070001224814253111396764892200356977984610569294202592898856466003545098043924746361909148237074204722582955868655479804550028641825546247747036007999305700296283552309752345394027704079284207813273134470197570406948628602433609946898300414762027658181862622696205419893458331052604375460050973808954405100099505468509792499743745737067669578019968145819016232116568939910073798260560411691598612632708172076495564253107474026508024069563426875075534374318120084268763457755865697820072498263809423859002936802357145518405849626691328670147894559094913652485513669493102415186474801996435695640674336639332742158116647123362124139618138671556357781273948345820164078554347671730909056420891634658402909510820685455895869726600343749705037315462892420572742013781136585310755086175530467799733018427260666212234521773540788444693490530442152051201565016562254958253557216077305921048129668593721008924261499051914555719406427548066600960666116715391859067118542663197206855455944256316542150016442315280114802976274521697729442220700799220393568452220109293845040366708403694605315477644542144907303350804704951219170165583703205908844050396676915914736151815948772734336406228563465700824274862221115044349607086625925444924201223335153564312120393211575504537247249241207882480468149292825307894642122040664742247469857164038957993448761003903129400853681339971980247401697853503798264324330129982173255784572983116927718464250357593442943600120065153591853488161131523115453567211902895187335868467921327524668632014949967233726136698088745112386752211453444226564773683610635705639508459983324120874184950190001787736399645346963442103856627402704285610827610027190515791302849952762895291366121196875366248021610028224818051009563076238634336883418217235380000747899182494150202915468676057871418769395609351892180452669351927958186834916921229057948583460530285213247037079695576989324920736567987944132034365771567144820246014230813458032528193748832902669083868085083305316502596932553679838115508987592909397459463434521313818711575415757919679878308351021261998278310706992913579357760756257934624909069307715120463251491988643875159261052033643278043399899492108402775632044146924929557841124597890586928850528375597404979468838458871988109490932369674076379888390875593751413595735280721016179226122208548304321993422820432599940806022844597936898028734580054333701655804679212161113443428368758318786751347062796225616933652633179893459868067659982620857413022792697776735572868136062001477839470148067350650575793592943473378534201457349322877230612441230364840828621058737492500372377439032996326364661529965351046627881244369589341603733380340493564737248016877714001190702769357275308278944906457293102462428332582461946873923816435177063319508130121907636790853052217538548441552325021647622156586733978259650472961090389426667717569126162207081468904196590967564241384198631118637461819033433742793410024909271875938144546853291890395878167856522427670770299425712322286294163801635118519223817902695100508497892938666957916701852776464031080377229483588680137597773638224929002737242627892342335500976508692002581381153422366394361731558510546840554892397894806929010117737996828615144750630463081887186267864483284349234812196856535554475099393591903497208857699116641166793631737375455121736350489741992420399848549624376906414504397698002931568002577228964219016215010569307383505543582179583903303517152188047910852164410280142253284142542115976266569631160746176190228081062399951535949195311429455409322997580376843905206162609857947917813340846727289055305872196604707093463853289118677253678723559044320468855375263830144780213151773492237527986394087105422339906866336158646253989234181100506561740054239741411280318823395545141164085137593749280387701936872370864666448831341952396929538382399884723195972643845690006576959090310515391161699781539259186005159136358783496711129163425115812034985506879477550084750102301908930932770877629734537387325902287141015036988603907740768799803040016518386892563032505173232268479744329411053876586202197603676503833986638765399297216841858426581407304125764978407659727597427336321038931171544186357416433206578596912319860670122563540040031901719621194508578461609409176025356888553948333891778888136078986348414204849471081502425072127106017315742165939313031783412855938532017810325979116880464665419066190408106357340426508846794255790244408969813186898027990892184330314866759772766957159565070475219682403718794003159100739858209398253550124773617690110941196814147582291176818124126699674038921051522860724418103734286734992973104571751011318023171470167894870021273615214311313898748014372328140442806296271630208544322591298716380479451243060995536316486221832609237275691301117820715055033183428032266929189066012062047192145143693412436477036925983622625181935927698521807277893489620170812382514738559572488317888679852194036235824332613218813404979583317333021571497704938747313660453450636030690703302657056522299880286651147031194219233881753395330820337587642892957498592467665585941467145374738772667391607904784185695767230631240925038052752492997531223472403499446370711403213296010426324250103524633497263682594233069815938046402421681624871007984277998634499316603890185137480872225354215742630495849899874569057126728196199755837834741791504577616039438025395898210153752875576327743027791344736411065188201855338452832015554551915779113105980883018561033906207820241278581227212039042915993129248740501427637774139831315125942737628035075781633743456839526528056744541063764554307082006226307582323498537333532673208018421294366501503547828292486641855487514412351187245220731753291178409863119755433400608505096580164943692354272344476070978157214330454772345467403425165969695293508365171630202091217597456337484894012481405633202956629453763084808621833561100897154972149020432542096736962752211716949896381168964484766526872278649634484102212703309458656996148070711429908345258828064980863149286479563063016852967345596027317388758995622275158943082822102214763224038251202954217062255325934939621536465532304821927938602366674652814056566837607091341442072707273491815330459789083602850222945615329211818745680712224619196976797792129146504326812623407177065908809623723567653624887213137485802606081912915365001172574373202330755003395812857555815576521134157761184838591261533232896823651584938119829899291765717826918576867354012572123848125459405003936032662059013105762902764198205856631178442132871045243463982545816825773622673714732208879846560335404181296569024852372481225995984903397994480085036468535034469072760554330921807544150591065599582051773647844682293368117604748393679457872605746954556187450819492158484200245585496921104147641705362169507661813350957429696062143017578979031379124341729677330969932659485464367778684219325528471068189174649208442961157041368354753663677084094495690008358357654855154092132494967691404480600739220982982093153586288788240083991753495482970561760160206054217118160713985630516371362793440430734902775498090756637011232463054514437785549339949390083249268304027438583556085387458617610762416405100300422144070891541115418516047917289211063075508879165987583566038404506735276392240693810132687706690156565420477910353152898176321709120607362147485127015898436141344789900685385018832673999760207032638245754833134912551777653144395438222215325214008689912611884978889342443472010472317293486785429969554394546655272103786012237996033380771551410040549915627193466028310707194128643955258020047840554741460132465324681491120868951848001035973327986686268864774736966603066596332272205332958847946697631211255909710807907879435573745103141820352469266329135796456245864747566075072786950662390001065618341677024895087165747015989009726816100433503314182205023056838500092222457559885148694354871503891191694306369545490126752832362550657527773840760844836806230556637465767060536494843233624733920589690480822467766423235106558369947342607522151731214744901137610067563468681794206394634414151288698961344413761304334944871491893763229400602782813141846444098180374493426682720662242380271398051663545095087995488466289305611789816957870300978310833894400124306044918902794349483619257697135043963972972865262975853417700398587490254086266076504496601115528218831075115493053828180027260912158694309852798331080852250770004013545641327465706170649951734456488160075587355687856928557132768265737530728238126903759430863792143530136661195432560103358772885476123104733197030762999906509792839614967499140909409316068108218911329658194805657761917192415569420939311723303821427309618341519393887001709439071881239876808299099836153287563793501574579124617349858501993191942137771694579392384500244580361371855593556374982460006897954792003746682713668143946532961174068595738649047374128601940320024752144217755610796839904627794693029482973312724393761900867245900144855162952944127656621415604001076569714762861176458233933386912875222593909636304310734840013586318806178210378544804568721596839738551488048316757283746989833411315969935623284781833177335635557960793983782800272411388314987039044485540411601591396695218338183234041666087592837794406685118831443723729368352988495724489013598003187706329630297466125677990287999895748452719240206334095295290155707166840123242520351385833999565018346844119301568971928840306095667103504910547544307470117093754968028660249081684028095119807995097316891191650517347214346904772179021785972513204417685856584707999027784147743970961642657016748688340951272156275434019512729014539295993114809218262227922912893529417095710106737728050918083985349447849219579612205754225087874164756980490764818347985942762947960396593978200480015546323495162794658389778410754938050435148729956881129347589688032938024067953490377796315006116650844410393548656855469579360880861727503825818962252168605257461702972981260673457182670314442825378380545235886016240943245469283824222871685450331959074204400877051318157567599456126995973039548033091750095360399493047751375264789401734930494261068765923615390180425186195704602424700281613710483380953672336704132059071995921489384290935614954318034123186925611944501053553910643021635332797033385914735352262241729270631341183216236644980541625948412188279680829468471882406813581486856806303491790527483835750975081745435655119945684672122602689563651316239740034101538809171823085497885743580162476443205879652728236324830269523094420265398148271637730804259403169506385840608163382581710282990714381101918341600306849947917873635893319643463793341470560782431536202789600867566851735454114834928518395002742445768800032144627849604723727556824407814002511901316861823981858149921874682069150125854061359150872325331865999720038393743317324645634346317453826440798073848805763382709136545062077341251451064731019476495940037230856882804891640670594749046133558353461605834952563599250497895063874082663822978413753477776605919366212075589039009920851717415024560126962098931435699350227961741664914590900365895306252307252218983140045198762703997557851402417792548786740628533980516528651386777823954112126225161717892078413307599053887787927839716258191670487634182593957415219466711469533355958004284478445338812395646607520094473555691410168312299606687998317072262304933240109103929383221097747430426244488129299292618649697842312634981930132062735847236607477029042882750185316098541114259157367655008877929511475996524425201267772853038775272115309339716450846466380807215140965728640639678756266175457549888595410058000273567563731356313440617320810324915500791118991808278517697907404765292785565953970537591155955384044780602533967332834462308969809455068412286976671637912490457145430954948685958035008005485623032782893478803426028369596245491859007238960694586648221649230972546023869218012516438683919347627504785231590203043783655997706387033077924029164403124543947061896815721412150223120009674401369908716085732094574314321009874624504579784977489070813681351147362070274835690023097300111796717175347874889984131495254695443712261136156211559646112050624705566802189659020386162028626664722372699816732189436612535468427791532293770580432141647593120800077956925165257287701192058311930386238014529784881262391307876434440543962250653592737321937737847665286342988763940860103457080259191453525142262820651069533955734689024868293848838547572645801798670494911583456106616385148874860705561824400338565328155701626347485565123166457176844316267752108378376658737618355075277528949681969668319003594098710677848259010045510946805392836013410019305025013527501964468608025150014364068620938472160187921500360767761843460721645960752076655906388075750757330682415724205577210536071605479104704756509645219339364919185619057593142733209271656898447385612478154843454203197229769422349643031163227790766653180663839248872049267111643331675116159242278376607565006507060113207075422169581946112292429175233403939344546670024632803731138246032307949409157468986473790403749430291050901907113720388749631676786033709912256520509111778170656213557502075110968441071475086929322913293292053075831470624478309919352822738641172005462324266716591724135618235627017150998272235522545525556712557518596395842576210647011776662799087636979016011476275299377770999886654345242066734762178759057112219872021193990362320986002209337700476954169131522537911989577441327909664323205305680023453557553803519434530743166843130120632599745268202454881210310536244915650690836123365946338055203486240758987376152860193462830100758876037511586879800765176606111585972340368359713838428248722531189977145844893403439353275486921873700415539689278858938305592046524312841493202267332459886749091241447872860874248199199976113007057856677496985241313756402295716600216319712629027062812049936719938845842518779317255700264822236913094303020571484948448734680530078893759120610634177022499189633442328996077135029165238828331626786563249870765442215587720579694111799501857390914910369729756371219202390961017525590243028507431052664884118052893286691347200617359383962460780853197818015417975860423012875713956601515434527426199321848616059864297354446123166939748502573541517418159289558226069346785660629730123842878837096691841199113094531488000972344490071636678316920054301778336801261967907136650028045663868016620311471213095865729570477746408476940810873591090139799047697737369646467784822225533130807183474790921858138602104880910105167171873543681308998803469595394936056117602802801213368607104415113874113247134585048520056726934287688660668900847915085270507350787334823818822435680914280776421775537816451059415109039884683813929095561049375245477126545007774812906789597689995573991140041670279358381994811551994908061500738038683748650750158050941799138185666771626375316276034213832459193469270625951551004587258128881152068220215251264248932718709657260603989052648149475558711740261914108584969313483595365618764676410145799139249150592001570957693359790039476207105489460101438521755927200121906530416454697519150499058791181209426460461951368870279086129291698755438236533613098154499586717824526611073136670674423933260720883068906352783113381878193055023531116446437211656160855685100437889133609603016561290454639730069185080896188262113268599218002040492429247221094195348292554078127347666844885663421124459555416489308297177267127963554334651547732455851616016413806303360294384835375826527192110984157674437311704543984814277386331286209626809625620903289715536710356624096615053617229124827174004409261955187181502065680070036532656995170970946288769980782184036507477570572763051957837767143479009582238178911339687514947886882280002153148343901895746842574495750186755653684594943847861169800782977896485556851468138613369167314583849323076817348176279669265077727418983118729007617277562378812202713925279045317834300567026079037248197262544873990790374069266890473547689145865112370353869002894865112882584877890116829471112498612094043714922093431281158244380574303885989881749370448685936840669804995878598363992205490049401475287660518977109894327220796736990928854282260515260327507299814247048001773730105732198887638480857173660054239760539173643525275888081510508358191839531968847769529976630213554607516194140340855478196824366131445578574003985181963680200525505631787269933423502874150112612805606300312527398039051361486294132241691131517075095011790425506734991908008331912699736884984443594148709471975431059411982368866546784223875342790961791210366890717751339176140583343590312347971510163708511524719881258311773397147813977122211224856667556128338320191874902578980935946506121829000786472197250113390380328969977285322133825793161971648383345892993092038178908657032355164984671691334987119526583631289941570622758318284422521474276983177525098375567670040919757197777366798531034723399650974470275814351101802089387917356969071112266285014140971073195491671120290244820905804690212944090407251163959809601354350805961550051109026098325785960682922983712984402850269112972861691867371590706941070226084324116604542055709175893613480610038365854451809454464061276613365055233791953532269141799350870387930978907802554700517132116604420615741313437396589785650999666228500451622863091723160167661515187748468633875121378612079648968900185077358673149818944526574909483544889738276145143270226222148711857943615564627607172307152014359766903411804558024978797323963600503472275825760612002341020434734527940239229989445900780583714933921450818242817167101419997166825846611519072493280092481632830878839955437699926284282121340138847296253791712069070758222301881787674383479311369134614343042523659834824659601781500280649231306264389547910792072162744364224505036101329204107913951073205460075620972111025377392030736199490235001015355406314070337711416749374403184259742474911798162887424050510377689449144293629195573767526252648004987128707964337433722443036266425362013788586245012350608230503930559932437605966077214537168307075668455570478463614737881823168046423627709024922287655604139287961097526370464758535946508260890468268856086763593097789954350947864283239861943822929452126687627940158898766842923495738746499258789492605792147365089284307780329782523302363885065542228757936305319403105700488253800382584573000671703314143358849805072557463330828125454124376933062232083455419411393245523780378103618145944615564127173174293944702400212827552594387547017651661200455337501480432445952882288233954988663475007939724444316852037038427885181749778387481100506111454563615309634029716455117531050242164523031938061721618626372988517153637967426301000112518233505235240173990348427625718851030557452330766393580358462879608320439587354679321807433122862915205339979052650856409302316645458779105153469966559071174291028721103967717747562846429442288083062499150751006710763580579533244902840036513140960943735176516899066855627147599731168269107890428857571490147318603029094503623214159552742698121394050880928574527576493233592873185417467274370514289385507873094672576454990150701654635358569490027971137644102849953452651148272937554436626503600628445075132312206975184278269448755147604686085393619463280882301258020601420465322221748839795346365066804794739051264530870012033357407564878721058759412567033685977897160547628969084487428185173252447319425182627192872223803738261921327228313441873959463061801698990948456077431846367619176764236152230283512571703663104550705944152455777239226098536097004088922684850946944016598510836707569462587244990907695322471599748718646347306239701952168295242447204132138495225753070111058397433455313491041209316237199115572779751867672821205052727574120086863073854954308085958907159308274503388502920899290675161704750858778309895473070960082031496137014947879948063477702842952706525583825987743681165196251667505308963876776506503901022725144176743784850670068298253687377308875532923524093913441637421330840734909075149697365674038122467558953878316405987350916226045273911036469843006106609573988376684747928047863105142095135007004998164062141067935783896325054085945353997568462568216922083229604742283989051498829263133265966639039003128821233017087795156877442486308090767217458657685644043472546529118954550957575107730199475124041168593932054677887391400541421084134909546416320345493718011128638253584365061175124178357391916460938368779340198099441277470226653584387051852754313238085873080830668560446118860553733554616787595933713382294156811394074279990989215715529106883150190841446589675726413453476378463164881729834542644786307758347544497884195639459207901962118481840432087648108713206087066912180090888178914133941428270613461477531194270390597520353199511814843804286400601016906928275172504536511803456701114513097511504692413250490362881017819810998681135637567242863648917442909075305956488366616736304487830101531426060422684676249391140298369162781607512612695132591618569909993801121286930188721845810378451682928121303999065040947118253938097321599462345228560183074666273219722219029371566492363042501778483905863461555266435819405405901488999873756967515980767254499535849771584928046733454907859484564996646639535514641230051496844945703099121607840668358512634271875050872412306568281093406788966816885514656576701866826605627857736083661010465942818778071053724124171030817851295079268360859282003759093643562395338992642204201621414728812965605175749826938892048596968061922142581009878426290167479913871318494331149761300566825919654289315711074027294375507719265676207417044456067421503180016886244548000305440225665048540403554360947245932738770231769502276041830657501423298097044635431818719877226259133316555251507435460930857083829485612883830138958199512780486961857494927121063289426723580725899174063412698682093073285337681072773163427962451992231805585883998945530402876982017138837723136473424421236174136683621802062906752268371610109014778109451936278924086227980436905421646909317853929308238034869732102529706437484942924717197422076423339707513720059353645513913091373647507078304513586873578605299990868120620734539194726502446211110507851635424756977260796481277880750861115048741428536476656691097519451371235183315176015854269134271778175286875529840754220994463637260644293159150313656506699021621663255526258503047329598931553127687345576389133390456420360488055400663060056905532243249247425600795957134893073693422784854116841646449574584831155289883388432667279396158951265648474121949206449569961417816345040804533251765038866702480585164372606180688992014398968105758661265320375816728960642890700858205897559548889643007823227438086261882492511223768914683770511442496982645467417197334427161046209079416119308851459132757181835800553403889615028833401988887029344793284653504816821838256901393287611256126153950760281762676423336293265573300779387508066012990711646418190800607437880834176340382985262235292575181557735333910275213701841206187280249025702292338168431941233673628247514552659627913002738963110356819356720109724182230166222800699093428877095488155777938022876352801620648807882421068776075803231993520323802652242582284939442030954822664963822093724129644289870645773424611463655120676260310328913858418911148423739750456517780332713830079882137105860475286028172063153867332530589527504874402858179522402388120566661165507479349242073919475239732449539271772308435106108101065697207927578022072236501104661366722874008020061017335446560700826897397638779509997788309055874282178140300421860636916226763191282485004999347577377682359476174890322633553411801397201332366495003591161192193060775244359743025341959767414636535703416801352169281348457227208471422294868406276227217651931393502858887877065785823968557871546647078067917693960441487161768902596688607333863291846308950976381691117647689073980425902443227069789558013198167339548717277765035782276590931047749116704726147684625980959190459926437744398189967538271399296290352544105511498664720272969003048225677767295844120372782534176021967665683003059747804057817974609030488219923395585116221052352085213450347548581791358774951923245891854685774874908728154871029895083082168362883434534285320347836303851744191589527616349101508603414461633188203331949695368566742108400721579664334062604682267803390999573735272169023461052899914962488881527855817596140025417292181215543615181367897171736401863993684839427300238768472949710737556169910742421574028723111550175302500865794786503594578299961171768756916700507636948294927355948489090501742872368855787251612217316709362964031821443752674375890701342194326581637014564606124292463182552207894211731883300811021481127134850215055846233867895254515349836929879600249214138193345613290945692817125406783788272413104498728177832609783489987242133256291427788757483001468656166621933040142152121394937492701946040670937173071690776236325430795361416962580633367461648562724228638315640875367514478752876751937026924398965569269722980250603428912409376946443064933487491070026967939244926607131542520757224534973128639241123883723291884958243931238312109673804254717966078674650294230198398977984100069297477682074090865480322779092353550684860258079515168069108096457964276868589236160496693828362162026549015006113683952562076947316821782572201791972538170534823227444432165091925388778360104646910609971834455383591252928807431233758300691750350739463516371205939738648166686278999032824338905198159146261215518090983979350538083790060271741857302509585440803344718071058772161645439384078626488904292174583441067440236472473531137522277872928774946403224808851329010435789350694915804756160118034228876072941091447729846474438390461291049101909531127514477398045265905136466911827731990429417461382697506823889101757914077987972291082339199469349007386188908537271535281163155432441450895422763710705641739154428941110331587406904573109254579448278899514780951990149595876234262789224740890741490952794356152938643071846144739453013933667506594496394483442890430861151525614427904432186661543205273216372907352864722049913773507493013179852356162703546425891930156272984484229593637874949348637164959934520839562013556830602213143907662048961632968829097336956894956916830565922028845922158112001718289672920549424432833123615198347162155937234141460407913397922548903581987895332857952680844236452057423906546592468663167992599399290395548403827549013096588668151237316504268213121504029941962399143161436656732531761919383240392871574908359851504039959709526836564676858212247228260392930230920852683572892441284825408116270160251117023988948007996044954301637446440751869786217333468026424476191195143849550516249370898353892781284939627359507073477690429508618167278634645323905099304846861469339688007235676107904087494333896326621852735817009828543766575462940961881506987547872610060454809785370401147659198896710261336888077056347801661432817421648480155667584610307470825253776397701239466430508077495107406299054907623375340451599726789620267647699718878307874044970340994199887781493788602531374697019492845372701686683232195611995221213274658014374134201268090249660183650969927178540009491425679604821198890329646214792141716739747413495914012295564790503139873171562348820696221658078347838005793705568775742662826309018163504603682291161026140236863337500875815663134862053157953067573371710761821132604521307840116255377727799855809278147855975195954769344499091631364196424195028466567800529268391169886095760468240293255814519883940559223710586606705682851205117168866476824874378734847141796916720494535995365194313659590815393676136108125443953295657245088750367642587017232709292171679352499826946155597040781255440758121765073612360358294479068687830654705508599851593234881906272160721789890754335248983902080180334594044789713041466156236688614275451776326774215087050011767300544255115432575445614367160054663997278804132281793023475787663948433104597712413072973488460966967063958199557774877080717503561445646839411665542904144331266007171729017973180564432503278966188440438490624777251038141004223862067868137921950345642306589748390167692984672586088079863478736525150741184709255518534428482568897004567478199905755201703096797359926342688197579306983470240399329212549130036956168340242920050330573994470810053190392172029651526258480277522368268743364372284381000231428129343852541483659460112627539948162149242606960601036517976066969484757792876557934753264730529283857950133741772956540245410452311835938345680304814372084363159138051262767984644266169948068640205980889661387921690251852443586868634342107955240550387730777708613994124662312369065027306280690472857180986247894266226920747004023881781543361510455559579591195875214601721577878594059719732765150369178244420403256623131366317372533016654308713315251124499142024102767198984838442790340572005479305769685730041535630129784094407962479412820241930228994697196004056619893317560735283100074126389715591773162530043361681051171365174360290762847508434216920888872673623547636104326899406497274915187720742558989298444555634661401999264796620183157901064837328816154280715247094965574963124013768953525688118747495475551869975600472341472573480520983370402776733618973942159544523169682967885473403501920051624661542646403278606315999501895525371265040740273317464294105594252740831381001782454921728748498051572599329702830952651576084166619429181086345088867411278998274339968829396440620382152173451887358620570713571108826067231963968347520517843822414399445695302736334014475111162760973086890776832054115741376795515942045702846139881647864982896966446412713464242361173073769139603146009128086164523393039318747359151639242634713602621540445100967860563523522293404341295739377502342225582395766922901186084405247880763195494433100396175969152407336213483416482860740343033506564938286674655590310641985164628196792374689007716281702318222378027929395427397095669316487246404759575521471238366048495556295538502740815944017568247139376226557745924600996877772125522046594622091402526282581923397036855458121771635483281116344128803393554834007591750053477541076215081219934110500966916163620592311870974332742495314917960934105702474542063636095070754524774331656111881596443878029480954129303793509524416790238693477580740089055184835500878505344730822318325574365255320547896513650193132137680066503441375868112885817005701985652269960515942084198918008765886228879069492174812855113112118782003739535521533296883658596620926189645517615768197037883591476109489153709044334148588825658266160358240964198680911725540645150266538859811395448791355894960112826884729300552600900987689438761047428751558060385854468226440236446853363195821298708398868236805619972832514950365280733099469973149964643053135926884794091029145694487549001078224640860772945255208754008435436904873430351597876357800336337671742593285187461555182477621316821841409898986236342935976841445695951394056636508458381178793841954521520363112473957021517833438220480642511197142235134929934762685994648070054647010336898705930039253605955350675262177361808396488738042628863694902138198350821074515566092687197740711078995429193499262928448284473713173770629217983860051039404855034700922419902369184510299154816723328792677402251806996441799200908685939225903889145079765120381308713754153872565537874895039415200381287476919163389936375417398859107973250984547815130212081946141419895909845241555617469225941416322737403542997160440105693134868262299843524304103518177406281555937686387502620947871485146813154906296710136638333919016363831363817754783260532381953843284028845240477342991094322258800959613176545065034488429932673215546606148798046619711202804524181356230973071091395351985974088350937375135161281711794668525380655639829065835066862859893940535636075409678722718034946580727094422690521960533070387636013533046037708529145317380109297874389485381506805628672040576989657036078045821379628641674659504226491850772103967735919933041375586313241971954186554346523047558929014497699005066803574464794016010561383153943394918556263635326771710938856129518992420782867070390780858565750401324566746710230816813575112899513424244548737956190554706920007447722393507365224678960342813320278777069126873779470521341413425243641401338051827804554546374222903257998769333874855504414278270597364883785386409777984793939949661877104696795966547723576688027818146014823143465227692524666029068659690800729013123997900925148257142470073748023972662256973152631199042828151625376135665150349515345503702617950792319916990320601816652721675821627759421301910244978652388484042793706537017324657976003685695818601838862260884433823866670371142540885068168507742376727725761961571420531959431893539971213478555975448585616277269465104311065922016726545372595129608083236933868697571698277672887282676037041401671785136545884930785474359966472233097304463277083861332136932423250896289377792475254666638034312212694812327696679866071823501072283510132698962219724101094742735909120726455993910574846538606005458878356559092780840924813910341784732542767932661581617493760168893685476330285193040462005665639051920547042363727172005116499149660488316534580315817627237023409780704901374873752331624415293778694628639553959001558983165909401018054511020440052536686978432716847569981406010288848951114877759952832412292756701405288598307833538162865690202109047903851411785099353716827175409672934889418597744098759803492786786331448678675296700056805735808491865081847255333024759905631935236008082956459536663176019464023065469454299506038212291359272430290708694754782486032679558243267232318678981146820100619463611285466186643333454053527677010639691210958436298282816640197858869322394242160484494629393016064693866669185019949909695252196736354627444734421744767699004558375773471584244437130454779689703174163636101684719469361295075113859477972846453263425740419189382486283306527765890256306504879245557657656217781788270680116640542841448777545554371459944451957678248120503427400425730958746340304330681211248667222131086509304641329525693966642437636279320884225389489473853642063381057717063607574935317900857631721977707251664100787853798033653759832171718541643502613222551319989294765724480549862995424503001267324411223452236740554656323094124770537965835469375696866131971931850034030831910931455778755888460589324390423110855784383736043096802548192698410587942770579711461139965938888185109821018817917346246796651168895784096313173747885019547427105435157791719300536616705603277818162056258558036290007702058472643598069871778405229433325413903375314453527424682693601190559203852822364193302086930290933114609242867964976499342729780787529282778558169651088033548862979971410394048205813056475359001322362273370259972966170354808842963693136892667375800202213292612533992276743646184950503105730339352118982791809432709397619785064912163563337908040286807190748597569193566763712831076993895633766222782948931897690701078156351293710801322057616815231420596343049244144666936654988852288634857382447128607468243525636401726850576375764536510665586112207971609688076570423925554341491154202464941104463919074958013919727990721382720592506673613226369630685303157885321399771554627810863762105969735126230963744871148121941122423691923537942519935778894538024413569799948510922392863114079247315043130466004070172188726644284893003112989201583148653153386854632494077049604325314387858049511813866141448616925129598481390101054809341475886525390566121392924919056737791686197583412534824156409894731102303252239888908392383152847538777748868125608909601758853066140116917599039009684716991041975576455411615618787402203323829780753460431587351240723191692100923446154679212399341536529927037644597393670217239046559625878644938732505589849536528755867891729081245914505992513851499926167200869626488967466499121184227792702124985350782858657840801887623784434460334766103555494911421262191328528980282801393335641548646647690490620140311967677182814495441469012201203930390390865407403636357181372488484666352730195510519928682432383646885825752369218421012797118751079284549857000607664983597373151473299648087966654081950393231304307961142576601070240341785249207537163409478982921311869243248454469471490982394099745851399964559351809952602048798160948726200924528277469896812602053319645079225260172876209483181666000508950117880060010112674954776976257474411168556551872497850938907125999303302150343999434220046679309453701651030115198766943824563706992532987004991769168388348243440020471406160538507724588660432550487943002538254890966510397110933455799721796214218069285652606265000846880973346690474225531401736929343904552420935501626851458882919675319746953455758404437672580437747826602148386194749050865507116585786065483651604997630637847035725560979271959197706313114350267814869109948616070872201492789129867737287187220764465540259630905942477103075052196785642792162821156437169159118081019010118206745621077052938624104395646691324711289348865344125662462042684688370078793780630505216950409253987314223224027558593308184521777477489208815970551870112007129719086633440430637881824651903397037589806579461487813116958605094954129136693668738517658950586130765534339450973548608463324417839247468975601585625941403905012300402002316818295794449694146518715182365927840702453572003452489347132829649405720670580201352023518918290733994795918701387408898849602386671406238690892243670856040428336027966579837287489253649326332709432454547458926617305747879894149138871510110600980316501368199892449974257310075478345322072226183826787813608591240555985393535946685161497489166263309398854659257355102290633324347372414600359723244529118475593886272308241010098249616137781659985685129484515440209959558092312866808821746508993448332628382568239631698615391546555495651033634905862374832276233968420651459668327831953712475490728418260921185147064888912324110595567729378026079031830462881383272956378169393345368270923818132515535670755439423055957366846677028477452736087557440464331125290932727762095146353234929800984440346001099584943637086580727243312048493694452209196258205508502241543705379294566070094880912672117892483260215874350901249897774647916538709952415708826612060981755265431134906119719215838039678444878133796698878479528833953321565051035007487188966968709382497847074912930416550013375396330858257292888358347444399487895671649696684513269395650214719561083682872056752975476079390407912024804880682555900527540060585844657374381141051015330470019588326098371284126757614676724689219828374451322818823800179019006486134194554337853686420939309212187916311315584028833233369199259632872647251176644163124485588595544573641774170177779136270604991125299591433604302887332860386690618314530074349705582918715559289411115263394012196957583852909356398014639142093389166499827504189580382479384736967085938058570279370291493921385798346944125200038216654552689769443743755236242062093149724010725985873627167765842164892866975699377859705661271092782038791311403158961317513376052570847999343964002355365883720556444974233897709169406472700795268629011466902623625162225134106368506839618122324302668731439117696534516308664988404829926865352398153551668473811378888012273424008191201852593358169491674475823068493644084121048109185970618162784390874349870526763000312014164246837531081808164634863771767112567199393970805963805669876627474088752264768249034554791849243883380477517321710470866501139716750897968788803355373619438489776826250336415395898720657599384755464529686927542612501793911091016076482374134608625272182205307223310387259091355163316241753130560930896635711690966462544659348893290511575844619535649858322893960766351636414509359161460798873415801521137217985601253443767851295820313890427025791233164032360869760783136150775290361608742961793124462744391871135264491870525545298345346447598720814777177063928394233045574887124841031638211693148861984017488509318707818324108161611738295190217804621371576847049816340635704874062550644362765772358290297307736869308119438888311089475343954778280086080292676232384907052556633816746538691736805175958936815370310566775297910789973631449727706224488440757311279606910231265778386226785322893357468868518885064706028090691285010674012238824827800203130697130043538820414054173000996066656027358985282274443311458441352010129658021790115166499306079947705130918971852393031525812482793919895617230565512682646121381362677730749311989381968134753521828532619155819879534679264399856967435812053221686763106923242159100046559056007508354674337025383125024081930422363130092531160219779585328813022170504253092328821998900979452043755019122260451935302183692306462099466338944149612395795980710869115541776397577749241354828160807603925125260322565474091650792052395385794992333253258657721979188355663881175986182825359918005905015663191425598814235654616314393485879297062209449711816479670707758866581749072947519926752333788333400955856417653462740058622465404505355246479993850612915809907021105426788869349837215796128788878860308812258711585017302651120456597362613897984147852044572919254481418149961808485594506507430371755395168108838142099088856637234620488780500409198431630855463680421624366316455562502190179434941031940386880402541855935478331606558539312456027120711505189754731372985364344280956838088738970514184031720656541074938803086971888446831642805579522929828389564670409264040430067559798271404681757390006289721814805609301537489819213817051397571281136954926970470860589486779368916754273993157194146853583129033521537525182041141886466884774376794062824723114528280212796531662044836489627575104856158356944161452516873124948254072554211616965159268847648205431446069114299875203897144124333518483075838524281993769944537449564018400682751864574856477997206564217675283284157269602370247982468494679576925766866143665000330547434755570819074640796926453498055746263496531642733194498602131255622600415349984473535503246219597185690979614159032695261307839002443155133734853076157557106128624495817297269086151648193777669968212750491239873290315118928871134083059704687791989422649205947797223203862701868814285729496692003532494197538908160564603376326641270277623188008401484537811812536314925767772986593712978988227494855845738275895490237288245618794817505480770583944375353038543726776211476934294484380964664585264607495119205744017961999381606625934879484832919766425943820128633206010534681851321737260268911715084870456010878049202063649730222398223571241736689271186327927704325448404115856214010856755991355602746463230715653994273226663484554092672007536553851192192238993332851389786878258717158370496741274303240872320335666365168559478412630610698949610751428816044983280446120551063253583359655429333418916546294046608891237935079478676690027298427608607671637473249916016550907315436455104023036361452226239004396169025073703808683563353351674846208076223070109510192409020281054568048802037875240945078045038713069646314870787147358880037223184014079126560331969991623474771123683320461049661830684989961572617282364346825461924279710738267604274899160239413365783937843406069476521333630601433842889502347612493223135916427358021499446615660112238443189286667089025674742054382912421085185490591500916225463937126272540065912781263662154310777576757713186742884867581275990344118311663283497090220669537749556328879398714802578755986957282672615925090259684796726375027094024230711658443035494867464742631962946497811761123637571509455115276845951675261853976063290676617331812981546647346445543110066984467706473973965052161143490084246424301715846807681347450104133302441351449814181633748972208829292492237531679051532564875561648388715358065136519701073222161755723416499894716168464687552498173627402690273048894849245981797618772195434288891630552774596416957317088644280875221843825697527145209524417807269814083788214090997352820994738497667283407005471181431856090436515121116168169111850010132019480015232114833271963100803808954019015853506968886662397753712552431633182328985155372429119111826349047077831115133038415219272512230424950123496914922492407879184727352625809615035102906440910714169324960412466150080219908510172550256062365566225736828119090668932206809182023445698960520806818640204201186967604689616330191301041902885149343010123110664743723574266348880726741793635856738058214035992011764822955984098004998207494442972829806622520978160331299059823073556457783379142010227552482250215740587727122614153286527911275430269275363576163216448707929777336459346434309433564349575299355902450301851322430103483646452711452017344468149081329766886801428580966217911495076394122090113665487000560071577057398522685271288534105387044466746928629066530015003612516327115670663299645961125343154526756741667763163190806123517804316721475092604709409718202733260325519422431607856051661946638048298030758766084071410708694009723235449528585528836024584018395854848956662372315739468566713629200252948636743373157762466656957363228139528552054721438138798982380628458504866218320008388778788962691072636179059789611089703503385761274700455401821778091832078031773101870249383420344070234576797026412530209333307444807337895908776858235761262944778416285830485228255814965573612036919904438952914276279623722822251909349940618257220735676455551651194360532478051064459051523194653636342340274435787454262549452979825908753691505835205574834118010513873797742364371429375726502601192166534929033645764722924510417908590889522976160603255555091414145752418797076265060886877873336054189837797609562648341710788447189962458590104367349496280660097840552284034945604553008226604904540800124819192430163895983537962705116585252427664796250712844821522030782213254617886824294218799213882108921262989934312595120873303848048889959612986902099942262835897437757592529370854675490414748367914651615506515126554354679827841320387037962160554816979100256845002289300055570645809104884537598180712124403541846233090476556172823991158833160846281583923678968418931971926063060882537514448929512834907148622403731189722205936619327589863587798828711224625125937786307693985186719315302615585450056088408732741825014689720410814618030729037667593008576174755690173965873918164868263806059141388076375129554971758853373984039835677425212951220942961533440480278756058570162534485047335345134932127207112693068208081185190063939307108117492647980018241806220801089944973735555574472649391650659276549427369357147914951378132828821921137820599566636655184802594694153982386151307866810153009571642410701082448852053603192724430967067737809824853655149418251822631342991978296725468295126044140329598820103725442089034252357754042464856195237370729395885142750494984642310157904858253612520967986685595223609958956180809611598357435563631693159976200607751046352785702444809801194771177527156887751026535440298358612468166644622581431900705291248576236169254035938667014683672414361898453445273040912937291707247385260608433687351387795455290922246819661905348961004721620380922768940106129546980423461690796394685349077366136291686446827368944322783588006549093463528986670114798907940115525463394311296014808671396970547216568449328816442254981091674143629796731880635578811527558108461455726443300625613898298931723166138740003887095523986510486027669166818727484916301503611269249171812391020184635822767756516988860360815367236855451103600244617732996402800291883283583747897696627468582773385393175000930186647714643857739634534881237363654484256390067592207980716864092670944940779879848220732514509203120508610671147624345539865713856900734150563422014840281256715636604971936739753807602826683394458424429081285703815144089835491410600161955959566534090443635564977566291188174405166718532845143263995170372636349186653047941849230275014007801516002388860363264016546310421363895278338903534892430910421474592001958783849607534279110057073121443850926488082814272493903695890745993791157309886682585930768445214326953683110436932923572795005055100350930893720806018985670190324896058368036902177221527916909724919408050477588306248159289437386592562488949141966368965343110211096061722803004170920095938494003900774241059511110099022845072142484728181430281355516450908340558652807565073032239676186986334395304506074972920327012458135844230602019714702254390498096955403919702100686272525514488745839712107001984076502318485852028587016980404038164332595715488051904800624351256207911293613714587009403213015474545531958871549590815191227980070657356731430823286184809794700411793283652939208797575665430944095183725262816687168065156161821851567093983778520769849519329986166922375086634126471965888649262065771268765685301610447982006373816325308601054787507068126133035470869390154359003719678868536647778224987140058421553620739864961157806549381171066045781738038756332709103144773624015997085610510954491376730607546943275953875215596534304279598984301295686904578068560996064753788369170143715465166078084338957685488646537455724897659239512105707523394688361966870607842820222430969751143536674042637287457312397136847156720007426560329183233857840004750588683488811544530875793358405635099939109932936569221582111300501784956884475819731023765046603514214279769487133079989381173780985055893980524939116329344475174771728751020219265660451389369210217302023637115726316069066280973140454062647061506194764481666148861140632591661617599271236072335116515282396015585272388530042693944042628055759695485293020946927933239655854950771715135715464529925649798399508734407768539796729034879521144046251242858304278496709221319207024601908266539153572945886204379357874868893078948114703242092853554201077095606508816437612853453562850890444973539356781636346675159215954442222186056554781639179805284376864653016874831438757889416651362522629843106605785511343469613187188724753687708846994222249849787859680711664707420254795621435332126024431087158734873938956373813449039773189067525048312674890008207267872350883710998753940596896037261068859255948843168654247625247302169487923852445782860784293254855658460617250618457224864032648664154802511841706841444201216925449253064806622307253528422887250266211853489139272590015385212108077259609341934854322522305333559335748997772814262181295872935690828695950296351314470413770889154932450913738266405261058116901787593119488627310738688770440142754973510716507969174469556301667841775394077882319193909651432153872030328981072882676953642145938873810849954270502994390621281205399381386105134558627818186491181852060706783929941083500897983415934682078457134030223451310527022384084076244421099392999910749148339991882563956277705225394382910170179734810871622808295858580899650304202421874837275080677905919229720171686512644194397148763642119757428938152541957701054487071606452291014736933358603301169029755592589696920065929151301005563193729242881302132733047064109349106241953887935915030325802429738010621901705094566267660929339392737065778152873583041072025035307001627726996847767426828348203857958091911704054163221339655767212046979775708930219467803779503369629760813219995633752274433025874194446850763661111032487788827234044527151875094631205720201779402212369931061024081850594303563257302610854482270888753582823317558474601705302145615195390539369739494188860387946299073716907820966977219882307948728976967568374280967906392217674247453345395901674780641184945029777892283567607619487813257061788141284837459826958284124412255509849989816964686600403185276236270147877674293348157660300311607433667946500003153726214402943437590379361655261950757529234973383024661366256256660380171799460073146329502939627126629878022160599528376507909494099060884329611652403180251107263908000200412266542963024773141555059144887254045724853525384953277505365792248679045720427182249396074633159142692385159205367300851085295441925715536968979672242097898199108886681877912119942073156239610831247059422461603884558615887956238695842602452536868827036963874031712290244866649521682495012942626321339650618956780380659435275781202436053609126264450488136600814182459648028391314759241160346709351055214045238161537408592166905243200362432263791828665643344175030609095683622617564569092972411252614074049366414176519635079929399841277390514729988471828528421638662162815358579879632915358434328693070236853152228095579396637842990880582580803451256889960365887517402537450366045851979876968391282660651687217102155305420490731466448342256427711192453695031260318148078118921990280628029063074213157742391445877370826832229098951930952337793451323073273388237249237430088289869885742915492708984020517767215384446600443719798190842825938353435774855569096849764944402838093695125704204690274819542787934785315588228038492337756544834860021264993622707067130877367472290161705229537209730286017523145031208688324802997921171452773506916085681494201030934068065014680804396019247817098820051791372371818080420638561976239402760102265340833002635526088630167411319469208513232710804410901257871482535183111462071196186993206993205762848755402785617186771314492828690864463432569809497891733401320695441817515039153969129377165330495516074303485984680761249506650735194653638793333226812730580497252941172697424073497191214076817011189425563545627396756135896600670585350357998737089819553063962120625327485411723351363090158676725893317855927348869626976757279894948725012073416587588546570546094874393889196944888172612662360445527399226837577208269844306369289630401139196629632228282002172580917163076005251960217602037594798981072051373637397088019148207597908413274976197628927071745641771955987484551933554516150630290833044824718368887164886021922303406685838383535274918733123899087467732131721419218990161600508433561407882157535848737427366807547497970083810669130587650442986876086724686243455890408594949353874501438808200375411528331178930989491139945304586586861681997423261768677597945638725258704774663999337213605459252156118169972107213478388333632674284905576124265030269018105381199218661845754974998778566418735874005761322975629563367351054111566469221495438216293834990612005193456547837852197540151271521939546478138253795692006824729109999550995679624650297437313362060361807000270846075318944187640201853378406302251287561101691633927915362929449559228209221799217102466606428309409574333018482848909096872270452443785067913073694510089617038321727680916062352416409130906362438397046003401052697513329924057648627084464944874719123320990540760408563590109129417591328888435702436311040787521504044222007219391519768065364667288093319081156280331131935828196036995502473886248766074931442387664252725936931502639439746818368906116890612947414131269912481718527934818511958671876386520993993765516563697375122430519717147049819819419044096559623259875428908805823909288323163882565994731268583985896614867295966840028163939736760794638272182381851727760955654502402771371509128110341218065509299189334308095477368742319466309668036482958747091166183420797360177889777184704893444997979610177658737244398467821575434641381303924750001824212724769887036486082367554563993874567816400113873027813181615678095913940598697196837355472433011809212473081728075262625819966967014580301599306396020224172439966496316929368327179519498663228979547438279372256490241505050935675492215425070970743686705760679693200698175643819435944250303408896613827316404226428852299282918368964218983328369392381384240473303037230057769173321466760933048558231329938202909057994842988515849452003813116373371906999466075417601133731828846904846504503795080274186644562990935474574089248131552166560540561543244061923864473934451281032352991412987877786957566010444363919491824992548895307711431211315788119924838758185733133056403783073664884856454020367749408277495438151471852477484363798358324135860872982049219013581963183208416267658195704352190561809910749664635075273853849386212879039906892339158563174465376328476325128856762121617043559145628257930587632579746675249616348447929331698079339403433980214166659410552164048231004420120435013423957747028605449422035690033345205512131341223933744003649414084080842005692729591887889850626043315652671951101985308817266041608822567861888715552416631348468095339765741354540841993569955790776085531000712042678738129189980374254163294165698118615879963832185307928890715755676116017370320652896217133278812012190662535155460380747031952811138996731720051905199057319200773886392152028030825755952734078088666321343814502797103964344918599552644467710457464517036979934975875123571086614082696423390784642779356333609447610479475957739580510646745579637328976557247773874861925710837500984889351654437087591324127924113588785415242223214997849810621733440082625734250069071689952826037282444959871715775794709176645159827959781145029853127820114545435791960091053672796215782939597371153081721120303593068282356934273926832192498291244655722568282146234587435439098657946104709965829838852024223822404816817768149604911652444750517796384114899964694321690622496429347978750475267467688904304358364666332832960570300969998329505951738068936715165403126772932161865468376067668114208174522401152955504747240128623845836408413166023855901671374706015501297268456437077441172097366607290330979548880953609885943380218594849761405377905071764072440753509266931125920887511041163837106086920568677486355795768022317657746990896692238424307281454743315808678752677582719355065347321307407897173653654929600290417837875523910851318479924493582755155355555045294642744309289022809419904254833278310081846025044577751464404437218150335816436435098550439945434711243839434070293627579891848616058270789906860429008837670245526859910944145468333124611499613463204705493680799254462000588072234623562389335687447080587613374159042507826259762476147718367799191930973517383997157865587678183973523107732342666431595990945858920389385425028644988337393328745637933565955901585090160088813965995517233021419836572252429928720619382705509497644015382532540472559506917554111828979679054455262439445417155176172851941000297690880376517596344616257053395210967780157558500556975349601540033083010631685390425889598928236380627201431283654828331455856303695681038402213189508687065625778580945234251465137951898886677400953954776098987149805331196825737880799873010257223807777582535011499669798584883098575814426403534596902612843031901339203440241911187488198453638414613700647640832579496682630437150110911590669393309229887690302254086207656120541927568875593271873075523796645290106000755852190064609921601569262455874754293234558731877615016321028905289151387108836523238810791850130910663884878226825996725149531083224906163667529688554375740384326952600069712335477446086139338321194061346806717783556391008290742183104541831966591722363454355494174245970088315846689916115419609532134609778815412426082661208723123417779541781726694493126659656635247294806613123996795539642577930489212738725852306083273695972760667098247879779285220424871325674434862721401395303344812302426695769994269871907402799958054500128809279537381673204157570500837800243874974274976260192770542971152204795830063994436173229169800020057969967365690213856853109969614336538951153883796454484967350926342146656919820103446891892452737863354514592757631391801071830595931252324996611496616590137213636133693615109420266957623389974227613835126473729912817225880312071826202904909555398436417868619339042852769071256853709835866711231978254871082697485617315084189003032286405949952304062302110756887822268589801504036415242612649640295275485721775731672317890671618310642815106665750389314344725581217741916467894476839631644330431425009608406297244324949486316885584801584694796658095526178538751697302968774890385587762521267702626323922216160241632916202040467739827440501904757843229894041322947501326256468523790776026454315425647307150165666697300611320638682749718356502743401290053018628325371143736947474278482669437539848724411680990147999650660365328967986974353633051792410959104311750195242267281690232750713716937962222779245977062011507030376865543720317084282218808552034875400704266531638549015941857258833655226850836585688280219397613674372758618703404047022026931480589003826529925408792748519337473743620354462277084435000885068566066020783102989822409628076818427059305610022052235389555966821644434193345069041485113100408900950564846249891250285613300554505486235489655336703697654485474693408565426977012062699220763087763471560561749871349947090893313058567393207912029106123221927094605711521327499086288901985701000523367128515429359895045760230605093240013903151422661482751170650727203886506291503478623994062903573816979591192226567573066842671394847698980269824930368119637222003195581967585777606260073154319509108884478998467736356905853800924482327520078624894158544707666850380507961568450370786242681894515196015772186683816842568835094590504083156897789126749488021251932193526980863094927300005606967356424483948375401233036955911157178593856893207023352774770233474369990758481211791282056243293829637566290664137890295061402084075193332805165197661629480986308972036537747496265165344425080209270398268460994218587866321024898729909271923489438387759587746822066544750556056935144871096669629954343281485859590195165139881194573759366465023423887529192820431528801914315653654709958537638294463357221919597396647858882811149594984957209495244373089382357512923112850743179840264007157555155438935519655758267491288514390233735430549750497190253400901834583839993440693764224866409886477983754901640863699154548599361652103711350969616005579147713355433362593856966719155305744300417062581287585022435571792749667165182708713946910561409878702516131595867510851849838068837535002380449903422951731598492818294434469641242717744497344488463878298351817481028534296607682809130408296065529708354951827111311244218686833510497096423836761874467614004487732764322018477542890387520593283472737563358559662330385738754802751598797420597475251146004229924656703058841984035667702955308277460256383436019213215262551907575191038359291498321741053634503374871093086205211756817345143800699034650470647655571716299146701376297403671046567299169012053321375579911909568550363650022230497027791565318713991466391981481923603991610043979434492671921857339595150548989639034023629334688764129983127633319680386993286933520248285095195326158802949093132541666122134408571617985330788812346095780760132596974587080431537238524863568489606102964178336288851800646412214618956775474131557682583209660416730870897221159590283132918114895723738160232726235320374820537102805681233599927557000060610852297823252514872202605428013240278888231457950653575691564950204824913817142375238575638079772918439969995105304810302721665256036602110270409809660197539579386495107537034893425703663381596248069155423099475297709662995231032752414060758210139754509969823899124438985713818061515009385722378657434999564158281182858845418909148683423160527362335269812679488340030259963445270990474329543171444421689990413946821818429695231451469313732442612888627980851346389361327186615571409148278088611965817825699733034755272408030129312098300779526919746370060215263501364130123291930723836215950555176532480685424935898542581553102951069073183486491536158367011657018094776641901903617361677441829405514213556495020212391122885721345131751411387977651936884081867009244822664237510238095920536700264749238047311495657959762373680785587061857324203783969470405806743648813001201830060692065754367570458327824457141848486874883104975341483716619910153180638118059882442242635557821784094883619122579110129173204788044653529700951088903038646542877029025785753668695491500005994339360424893163281630952414876061362208106586342524534747019656951449576867704620534258007967783584215824851322880157075367527148553816211246762651368092176171022849911206476038383327586772810233115914314444745250496807543328339429125419833375595801208093254639302230491752997384779759396540304754798516037324165466494264532149953648739661014804774776180511034167321879320499821484556420487736682471408912035268834825431845028186356184730603926977362082880033196188213820284446308905623676251873693839975902110876242180176359956865691967117021084498204244263809581529391997611938064064315720701382086941086120002424291102926768030465536880436975826696894934327660684344176137955598721594340558223562324892664384276810687568100855244362941533630200040373493009491944649832298229666627620287170250635949214699766353964930509496236780696111873105764304033959464147174802930132006251974238312333312