PREME/G/MU410141

044601585884614037688335507903389292405709108326212234716001062837612136409163501809169271246975582872891288991770286373280334856741222491758341726561580539440582433612308188733479979680657021697574278398407800849554112774797456867407622884345418570362922596897552363136699602436170254634893875410426810966761560622931760491006500933706460798917032006364378019091388994327928643114803613671422807613635159002110087806135195494745405885917959898936772835804679221452670739347660709196217297670414579694396569655674902494376416626052216134393618134890881046210297769559468064528828186869330543078696829623577309173058529972383811333170005310884425238290806720295011526200969514715203396668054326563063371855056921150515594393941544593308830754575790598895734928017378957753945475161977671758392383824433071530974299715024339989893311499058872454140169714059972750212651163231439162603802209830619368550747191188913619706165037585483150979505866020224183257976302151773087624692152362244780812313254925020095821562942674426069416799908323971738668083841238595329517342011984329021806475212709614087856662084469465661038837471367097337937139257588491683967012942668611631583481263376014910773824199382325502271403011011704511221946947176959584663287124041090240916695602188875781765474985222872376002664476210051148126332896379977418395046080535797790194307241558763302217548236241636393086017999042611305261728911217459462376268190683763003779442477364988497961735932332362793409411086098154601760416012318710921768601447290350787081427462197989706278433391090735256647172448751154570687909682759655733332404481226589140813736944542894777254675412014550826542726411170482896379720738995648168697556034518818238526484124417024108213870072756240565750040326590252351296993970510383177365299535583087201686394362493940200200466192022786104506655520854560893334515926504420639579790888805703135882978428221279220186260420090186161241018344230322039309093185261639990308790002934160935097417061571261647738366977954093369337848855079187606695915054749612190850129444183653027167149007903164931044381094155176607854262600803793935109188805814018979937867345744975979631150004525008351821085067914959942419493202253070232442542406882726358289507900866798383561087023424225836133869178334006822764978123299513815401239190751052168699763578694032522869999120140054898821681232101400531985747291957582384963296238609650994768992516468133417864220868802571659724789676342188746060728407510962535242474601001009397008584354001393927764094710517422817702689917557573374124440933898993295183116564229770787927166004413069934377224795473254144636625384551579635160244266349106776233657868155797034908779552130670206129384594564020307069337738417401719773853819136808749661076405207290613116321081027156867964580442063268146570573379794835023729409209539187733145884136520917322528476861305884827184612665695238048152283769190364947227488844198642862185000675376298867711398019198502748053432286837367091861677466894547847322150701619504481705499724366909265320085270813004460050402410043465618164108202466856264818283750549901066656902827555689761773258574997084088570087151184710628886062781240504866797296668572557015128417374411455799953540171365690599139459410235846224488539556728243805552535022292001741761057988597384050223593557200931622422876619124327616984618373937444999118805393630484552309920055249289333698853177330816888370795368810915392350106487522921686448929904387362530252723431273535072195524925598229690583757215565872000107282070766843352764381051739623215578195453982903478094575081180936755461841439435593939535826866271827107283961634265249880563302218709972762359242647088317848647101500533835209141582531663017127181031546646823414235790499787201911871810346250326115136875694612452794996087847471725500364526929198334106242881062506966443938320250988380181785901567880526330941153642988232695226382292951362373349402796592681141790654701473748689309215384548637663981050344496450082321093749490768343412234628654005793576797894704430587652024646843767299163229630498776181972224805430517955163295603803148168907615369474093232805187148952124794286386462693828253107497393786081883981047735521170496078889995071992158728127747611080700262669955629028779023776986651145112881680280645172912196109243612419032230175725506077388293214876073805999298229605787161757451590084642767273495526520755396270500263376404228714492591243745162397026284912873503797158935343045564510043884616664106229791983301818918091599225574840302016059756022647077370160933157159793108532671175048089026591616329020846531069306728239584555955367321857552517322266277865361729337699622901620917854464938945247314030732037581140956295232228143307431709822684995094961529343145671963548057267590720350156706700009394057695762994278472715995746157466734716599876379268848537272934826178102296758289579473716070532620704311857513182223671773322795590537440304995802390407368683417873182298917707607620100595377801036552383256828430394047456783466943480204142655995460235605582604010942756048040315735303854750651687161245162022741972219127889249087531286177732210307026943765349117127593638070732695132284820360863520257604248601994752958524632195794610824980663445976220247211215907776571586905398176145928624147428058955532543748368198737721312725182848222603108086713673973670070693768398040049201593635651540091423809957746992241157365633436049605499029188199882214590469624920850636462994147710231380662079024355222674271137099937225220039319989281254139772128873539195364313188194479043565878227854737903847149335424063087684946126404823204709104085917522222536930349598538234292783916014063301602445905380568105309624146888273047340103583335623574402408964088358907108025666053050522403741623107003257547043768531865102856576284883788863892492072751815427181266643295388875790543740264999814369999692961986128920507862467182232417397589856746583491002346616018038596490411201925141174948743387936784640392592219366358973806136627858431008703106283547789295726777356550767835868314507181502733267411739039734336007897391237458401378779319950841345830155142501438360760059840523333564941972295926456473494294350578519050799266604074710034212759706852255562860815380869147592259694689302220946201981697078453909742534376707724884094952373794055237903797273553378465878540945125494255303579697896846818148842142732690007689444193198884341812221967201748440961392788690035260236668526592734584331294287791878611686732957424707454452859451758894134114252462129412748854595371001321791764558499881891462953843803912518101246351348460880159041818665511351284467915388647157309947371731768684663898754243149528049298006227831005887697155144784891339554946992646314720098650828965950973572365752048790759048686653564507104348133935057515868168247202421360337204377508645745524048449915260996843997235031571795473011479759641332467094059105976958232237726390542774438448738698992551160426819921568915363467772063745997374759548700483980824371222651571828837360961914761924139455470547782893095305409205380482879037818060183316549100608255981938962139800225544886339760967614946977435563909896543611454753704225619134733314696585010930000712157236689740827530608738666213598149118718181424142685949569121115246179933595578882285701966016141935503544468944819446926433165848599259760349662474119693535135316161226491295110035801722204594502511302976054708502493146622538880813826658754767887741516591803297997660498891170879838900282229310744378785396889208099768502906028680358759478413960842065403924855109601604448580693962937903068068694299882366914372159183978295705942630815992519203977792876039874079538495669213693999364444503487638837406252362625114044624176355949093753057115391119133500743145036629585236800760679688888542107177461144235288584944321285578946332502455981248737449980574710095315737568452457915765992203622796297973054149871212825719423831189139960914291841496968422182435532035450711653398794568685638962480794467902509160202623626327379265023254286354663840828535509728183978773208344476558474293866866125405818191982238114601759161311198160833876016336391858151892749717469589583476136443200103483500608197178097943325490848426897856229659565542651705230009059897126297195252208643828758911190995415442473115363784682611298031456614805827275619063275813908405285001248492205006342547381736079239984665443219504699592748948362753727072915742410699116201770940523136663282620878092140510546822260462381276433260999230857449620171539853966155809623750092872957031733770800957083973626904201359748135672988042389040995623636526298032019070374932065410424892798837108941266249727073209707080781487581454114542282646296060880011411148990176852563252550180075516433894652543616705638388676070682375535674287713983182903812463666408998204389454099314127093754845480390885487605806141622668028255873401900807201672995172500702610106230041466734048906533689434843267978512441190148600385473816644883100228610415423159150821136349198517036949212096800670872104840679952452253434679610097198493676024058913548804377596287697031159312792543886937335607260148581262830660605158732131676110657108664857544350847812152735260442789897202508967385091810279102060279168867135018198921388782767521443370183370873030100968908815498028562095413060669906160900677005783683659499942505607729407260950751761811593430305633860198204217164226676570552840063570349172606624882054182123065854396231092164915559384364964159522429775728246415873095512138610857386205950042219571947836851720738953055038356933585272511542183343453641983705671774063062097179135184470684965822869019190344590260792799906300943838987172524766848221616850369824840825311019151942417346735872410680434850256141662342336129005980024296203946654154026291462509837975369953306210942120511869736807244487337506915626199437167199498035365897066889246862039254884224735025719278307115456446467524739353745431406762031794405704564581566524278383326816830243181707672750605026511337342667551780170891862450316297904159728933458011428525408829086238119977372774749376464120118351491583708804502811596950188478901756800133107024701965787584789440726955645639457567647234177660751593970064190104046074442570426543238217488443123490290726070231081785921789856168307285801825038827543578681094762779407930150457819090797521750340257852601896979517155010999645060898962360079489313512727347871065051092110780080476783030426226530046699065843291509256194811026386810976258024127494280617293860965778919741578151738690592072803884141093622761425461367089637289329395695218284121160056175574201702060802397199326782196356460210433783044833386307087292657367179727938543977945058890118833114843576883785794790852463695869276783058231251469543560168837943327845989062482680733092612003500459923329541144398099747328913332361419177915104933715481217759249740950029791291035052373082698995838096540578344696008172673104359006244580013104046608918841423006390809145463606829202507628722450261827024308322400975991846048228880117483074489736923999834861965615671267727910971123159816500444040408646614773928898267769508572771310236633802553160079850220746704674702809860980241262575820193981385664620196915119966050087388353930839558083342985261338062515071759347500280402173162556480675864159579608606757541060775694423629989799372263697631374225271536953870780974981610660317909466512618400367514499053737712883339632600670484151233551457868962056093161768089291444026188400646666473276102011258967794747797214905512880935907100587865461009159837194121406905575989975819574468848764582557096018401785424032436335699484613811823733173599872924005699048281378182112097001808886399320188269393686697003941703236948444234575432913716061195846592976021403010345214469129719206216049263318759289494579904665933901961075787062471955499871286013567257064726767283634586994076479720065267921771737249892445058868274377260535450598868726151119196599421175323967325574250711710175140994598141797294111057528056501673372789475269322692246713008503486483700741226968549045091476673515671091312459099738366559927629781082830163690720959285371383369875282627380248957604866577957093728320833883742207081492077285071528995519649589870737005659548386112792938076413347998707328772882005981510521033120702536470191467849110787788951565877197439082887940540785761653274737922488439117365555938782233109611067779126446910395737636605899911973242395574884899057022941636552639782241329161883690250009807737453588348109699715785693976344712776710755726209632121975280259116464288489969551970980120036353033519104584579754320117380384941149978524276919929844397362903246179436073078076706571048476650765808090048319445803730026180425828710786942238317963683390763985199710361146127114681120869536360838104575540590326770730403674115888350287901875804659861357975928169160856935974744346319123154327555197548100155819197651342637471282585635729831118616490901184982148922592820718555333720605835069478587982946572013642685251249736246949149910504997498547121763216071664023428880619539458890000664344481909427429224641882144694072457250672211103069434778373781947225563779588759633125817607895153072054771757872788214499373323100874029912232971586841018844559009938500153682555172911538949576148061910917235232452980494319593657756417950913642843632188058232531885756509629494739219958960824968354610264982066645235832937542652409560811159840938431917256891477548136457200097532203256267276831243208080092322666249481278523093629930035255199249339937052964874507276728796889229486918734061577298712033961078319288267978383098512824486539218196191469012986228600640178316316183006741206676254407527534236903958337851651581312866111693121243161074182489723335730137858783327435125954378684668703650036665129989067780952040794436748069667197206731663072040965347953414281659641704203870932674989619832294054427037270845274424739627644249975620462589980379594600584064676665803860780126113938939190811945247406012837067573617409658424746555029249991016803068026208488414542246618940914881786558007493563252163035379631104768858665983792230592242147731674679554575720878390634405614727619799418066093613177821336785133262143674605413644999238407841717638503468602180986827029620593558534793054129267400345056162310277934358910738020316600835200550272506601308307553480178692832548563100994544806817818200450406842555427489904703723171049099486111492999424512064419115006595160812003456910209447236308012650198157494213241277137809839538204614035878337377217162031173169054825705846358691949552796389583556302707650367079536986198177946242942107387070581820864567628281517348112462176657627017361184994672825957073339006371040041365002615803813672696373706468245227119910057059615143197610822122255091701782638903586538463831905844757992893360232531408155365383401726953393821028530234947590331374137527961497758156111799388603454926574424350938285531623532331354725779653680057792525778920086674572974017494408655804153605348072962339931176624040392710242977029718983886552218365543250993366303941439303015112784919293908926061772157462599508065971150025580202414952680805281345979940043723551405220449856772077731438523048971089091377955769905727129712594880600852714412843585857698529966191168488737817219347926972526225150595880100663358964174562938800302648534138417907065661923210562348241932089769843060681871585209129531035557960903756999707008125654103132113050926811978061622973234961488624246518442832056054943885575398976626721619702918477309194269757280223078077442786102145663998960269411034235535880424950108629109915344754189540567218237094822319041623221112187616252526610807672200199334459325281061114133336193546141057378850900714538358399451783391590262505479197989269857701033258853817710415322012823716933338875958973366397792238265285192106115615172128607996288642990117525408269766489033647735645345865612712031214480315598853983287997672009958858839114531491125594340337837888904935363862722610206043899805979322820245176535084929511080887187226784836279084240403910166490646621085147017556781342362978634871813208644151617797344044120393948800919712565464599553198801062518843451546493029290223483528918883091262517006434120167799458829493133056879421524406051773720894717235737671790902038167293183658424007182322069985821500759184611867412883517100134213748593165242657112775249641132962438653478690131188078024402110642058885949625582559787618525226192095053564817391118405112484814236805391715007500820959456992131288292619226175545340171057047505104457656299336571223795327261535732708214457796359451513958786653767959876732948998776980712829927116760718335012714159502884043666116667431725557550990811095207185700294782244802017780938798831982892238860857357312466984106813418601260672658207447898784525881564357475466379512732804285995842238765499560837387985945896866987402898185231328918344840768731586405703597100737565061310849546753953351101016538747749308636825880846855925923279672242146366921007790197849260290237766386294191442535733600864146739442205752915625558695271265127006432808387879727346522983095226728466744674116571521455858501631020368464819348287215845221104400966564820837728818864551386649873935726244193514756855887671762327259525119561220438856179680934371820696554857812449007775617718385816703846872338212626955792139210632050964429409491400984103297764628543298350170878424763179481706373916486468092700775351667207354856283909074812984992399584808859626124095654011600889691282237480697602513450044010176074817915599502522343635374094055833707070162037819527345187497135003401776816733026035373504211208114101373190556633754346168403842458425030575168141234535110482841662360538176464813035130498559834662883979212170011839803025827603015533204623531885667548593113572745669014479461254415379724078590392274539977829871401206912230078955611557036545156653838918446884162742913206734826420170080305271326116849185476830041120434225860481548370738700848729953009053903984749665574909602118062627717570674810280075045606535980836972772638233742745485278217702709648595175545905102329028083609450635066078350500510167026289891263721943562974438156201670193877513511933031557853301126773980556614004347829527618846091328974732801651150466497445510978873223613139602571241554505960215035113421058294508642135388722343792276542483707924797128885774300908561557865893002127191389574180668337475407635044193231815706335600338128438816924593629781757065457408724476080090911198161714868689130511240777433619013186462281912222167039821598109941428272463614681057640348529666506066636311957488199216241293860706519778364045548563375406157945864713782676946010611769922823525524254704130169045792728613855254233217974548272942722367974802362813069250506007959326039781714302243779251483319724500885270172664711964346083462424937404685119181634892164720387801967624940072266801776633287553943292814541901326986731218149400470841197195730512050105040884376568787907291569505167846413437435670976721562451305192989248561692896841747057583660531593734127497567814410715656849591666260163228021539811984492485834076354101088956008266637655115019782763259020962846322738932088947733019915422853836459003425665110816701077403445061418172515029460677209851384826270648067860494128672033603142439585945105333170097566147919628029575745157455311158213029153700621718936349116184833633344849566840795543760516839147039923484359319044688037074872749753372906683624077011006735490041276847999984071424864873915806968088112672432977939732312919056500424934078001784246672768062338582619149530958604962998144692227528413063973251557951903479295047745378807628236524461170637976091061307976935804571858429320266610460713330450894350792000347057639540438044035771383039325345953329909347610100575848858214826480578574681078633909194253760834879486548767675539505656045419744934874349549763789116282705405956285347439717868637034657268808322201614460230143703240369307121940814155354835009458885041746079155977908536828195923697105143924022974277539766115008228015273246615279318172285283958297498516157218264953461560089704920831304601836971645926920784918790631407121174180419174115680211943440769332197767207555148660666701709314142647581239167950178815424262219441965006223587011447389812271123154002651199917957278463102078087864984065488129307854020568474683559369689845671292584986021352794191938209117250318163757761197822938905642295349701747831695244514219346864809371451379678844391286556685212893267192459362271995203398504379807063190492276695183868043054042517691438219719982261159168283546286219415932411620304573689598643797699475955090378975498656161785604331432995587383164496730178040830454597259269679673802643698655353851588393242477222141899436601137488974251635480066662193119236830470221193297903806933306783832580313566829494965904439745206385847206847558365295068403940354256602477422854234750217537973584627897127940018791342822799857873011925762352995932561218999113910638466092875639370265460328377780093044600155670296864370207900333429534919438855701189032562340012837991169275040100881605361079159078744244786595965929503123751860494291416363962727176114928968462580722379075323390202942661550405675337638219560883074845309271822613075266094534213639828677779839013314116897876156674057801406759187418392153949449339847902931164762441115488056956767270340142461628567099448682918168678583690076923126735178752255265706827919842943559097683753802239777439599879920952092580932670004135443996750452897296161058874728663329224028328000062439410462076991425783901040964290182090327986952405678146447976185638609425876918413210764795311721009130507409347362244281086270911191616741200327935233283105929103598827209187831729741604713778544376917733764541446217091026394696212682111760624683017100145801270053543301470819277733134151378741632775909425916719766970507300783402793325372094961998009567700982700395512171837255685310993795596915772342701103628589019296915395300116650919315587307420570727615225568371884008091832862100894198863756686413895127090885219410702381195789781052235079615779188024991627407798395520376971385916121882155138562972337292159439217919928048800733516336250678748684702531547729048132909918742267214656378023925349587138294377196584442057234181269707204691713713950745509421133528093238068423121829567251948241403070183632837797874038903085277293593874908731011006717403875920680584001051567472352393687504318125595643342179225741136096530657249389492285096992993689901983511145843655366454300335523635614244533374219942318438921400809040250819321733481172200838020724993725373616596880452915483309052039245929277015640899260707686794290640072220596959899991662023362031505567785443271675088824194008206002367180905507763676398793886316242168231841707034684237378486068201829330266918940734426046491795878341315369680168185295104689309722380292685265970120854080466842137135649759330696488159038157735200993867946757439481946212368559254350798168561483223601036745520220764117162967574698153402231734383873101130627256833552831157218010573556926396759788844311407161972452881604786498563452750313872076257997395038583197200932204189487538172838584253919408491955918996185633177464318032291261064437796349342312127190178596996878369211501352060958997857085700782210544236971889314231352461890279778119535015637495275668711603317355563599522847111408447160876699861326507081428927384436979415739138194200662900046510859483429748870930326255161334775215947733031880110452498639206828150792569386237088904543564381720055179460717775093323291189992677409949701215878975267126588635719267774474868960187612776734021734469628317168875236541478146117814602858648768781233458603731439897303834962742712088176878194515201991599700170850011486685991473480251086682962959642055451314532809875310305438866516640066438293213905535017431983432993869645936157548355015131283880543006748830291207511062528353415757058999815802592052615752164891902692849342904855045312577237531929091059442928641713131290558916573526764762388912296286305182975955549558051886710399251000570618985771635151624831949832161671297768631920123558953824483698852680745567859094842147829335589145458762347228304075182091449631327144029176916478938395102096606311818971984425405999270975701273368839395530332266516329338890835552899724799308745771861431008369247801559601714358098809831593157020304499402895544299246975663127321042902781792479558520316259670707833428018130446751462058493249605410665770963415932483569330646484572260270623620204644456829013395940654369564434201739550358424338466858363218659612928337502288771109070806973132507848405168541124831299421119127121328584101450451867917338215967605701892359607505039458575412161097065891963166951520595370493801095189472313128551265939420310093625901306426611190008193040605143383609363021421158516887572221609028114835051694258496246330561141696509047894190854849755928672490676286998041446847084645046739890996004712268202179333444411896395679161360211433774848647425285772518568195964723093565660580953465768844892327530550580406767567973036061650483179961942552705682791016003241846467107668889001397104005370469108817363330400381428922961031378156419146844016645522843954914149798752192439518712233964290716116681477025074036498233236911682562230154153535755994937448661854033651228118430959722851660882816354344328347043335993672842152431553101217461979978092440393432522119965829493012834477479114330213997097923513622357894090936737676129762981862011630172129423262071925258646147907794814004923564816776616841246151126454624989051690024795238715509043622367982145386694466789782241780531191029213292276595119622902999904547428456118320338705765156043339806839301036309079356336754623658640415719787184080043139180977999299839503210577203718390989185106068996415002540221368676478006176602214339513192777856959949461914652627979895296268565278952037996315643306536846880780130903773554853235478969415508192507005212437300662016525342397521734880058553436022106312572904318989695411817507097692583519198945698244583846369699465402775055574912929413354825296120999741745349900292241664325796257912703076199235924204762804976081364716607220449471591202076222646838493297240527979354514144240636122159984815022501537444649294136958540069042551590162295253894065137871332022097737773068178851815354878801014743663992555215415068603312626390963745496007013790450753842138648087078163176829997166049833168424414207992961075447000244573135064345759929464951628461347528869215842194007858169868389807660308361044426352772504201185612755950506225509304236613118217488287012274000081279142190305584921083641405666109568316448944687045448769900410264836051704468582009306333696552653838620712537006054679590338077274901700495443150940404691377818029073027845376228653766553105481051123584705730200439737453075179050583074688978925715007539630996911242174452633484085147508198145353086808550058731008367940326203188762895651326692572991101352717566448292746500493631333877502505101446940122330228923566527005300149505908144618374001793803380578398555457000461983338339505060042659961727348454879145522764725415225506185276825678099617135700948820460474058785526866518385574253336214042991643278092423188936524245236886240047012522142549254619135476357760755358186340197452127389677566844390654564724669305690512164400252380276472636771215961515163375897630211756179096532954020036382425427378200562646871582226570538972111067780725138438936028466951831511939346465346678712386918205742195792329988562869875130216796219166705545226555995371268029671709289981611570709753706612715123809860596526264327510222595344989732621475399936882657680229049576272530137168144323859135137334999478035918997121689617489932773511133605493160610489267527792997106156026265827621151814424031545615150203869118251657914923392990076899526229113050995057880799178643584314989221788916709285777127682167239259987013354461517732207465342118229367740410921359802074653556878229021920520742848019608290979891843213403473630647350443018667625692180346369174058994041329080064288009047763424185522128446028930158421620397602029547966471562600430542144973923627574624256088095794849817617192559726408577023491406915576960315963878290696373576526761812183633224113657565556822044578236743986849737318145836727817394623477920032318028118141635958935810250435630678491139395974347343625659342810588691926693353565019407941748316532652850802311553468767408745093221090016733131724467670935780287247982696100305652169968738224733155815983711303857936447850756111470904509262107915833986060228124902903960488323986991389494826351532612009344371809623780176411076561197648519444848459099109699022171685419963004537358290618894612441905576595087368792324344412086313196839991713153078859223617592020636462118165812645395965354156592726191935244364100325061157301443801037416028850365099322421961484161871828291402413054700057729200356725504364621152921358802892693227523485985603782639505820641960067292654065312493306362997719426753145323145609232287223969270311934583519466068733944328885514953638816136999027165845457856779196296855613911264450710368182103047225962558119373041398147838317988467627700743623802955058656060191584402940283872499080133460807914654154644095230466591054974661280250174452849164923454278088424926924986389151107272255709657696262249674883272169232631930059792562808646538788841685955501478958104552558422722512295630115856736986529882361503802089508822873821322665393051384395887271315841002458449917487072499600627909190586360001733845530372826077108348092622396814800806913672326054039764591816126391962089780201940849004981228570284713861747110376596285316916473586183688856036934355517032957512041277978521300715569840868865890901468054365637028560845190354992544256815886496796333163726066875459829549155267714582938332836388664551510151439765813461868201262369949756782067819678408648715882760090788014592503762667345448677374556656207679895476839749892365679274277463580246047168967295937996226434303331680769853114160753397853091151787034649241644879982060608015651005348786540542848780629478928766051763242733004048503645997279168821126553654857607343830444561418379078085685218275706107191821894638312924567217905434369744867606847384869318860290325105349223850589460408515731408257616319722805599637096390886001011958903088223344322404317425014233272277127016396544890648794608109260226193706329476359512087104492940822352506478186230105890976649160417291518510834677066600469146627044458364273722163509183320428848332380605023116159579064939086620808218091040944364559839113500645014515691789748541909355112653409845645348971348023319515929416310636724622016274032949270986872436680116995596832746004973097028734596534819219933449919446870788368753628095859189364934460531990223791160867627515521867266443210346317203607954463060109406286533323811024217567309876760206817807709744664284629916090173133597593338989997101580838608742253968347528141860759342822007112328324946839498653150201587575263796767190460337871957835573237195886372942750469117765071807650435633659986486694918571261955954976608601726958124854431102969919517794937806592615453895058837396269871511706505774517177059976166773089257167716303621846543051558808495419278038051483109826187105050875003725596883216705734048241320996115890110349413472670825029657016872716099546737032972777599585563903609584686224548244131508596071337693961762580141161149787819584324394275382219588902954487330773803940388167887914803704255710395270290084568492316280239789192227579918021949585480633916542725589393598833806161670365520599751305912567906594157405108157515580317780825272650590313938138737987119062346432157756450550831728715320597768971060475224620757548811694969177554237443644855704355458371160949749308268616879508454807091695425403392478186519437668165983347288476558053949826733859841604301523227374514550156377041411015954695358867093560221977390607177671886201695033746518282205138662597930198542665975948890193745837171047631617386528530546942854701585949181886675707215777324686058587739718992173071622798206747600606326695842792880663088183263745593451278798634813696958599105902064611312616011039428224292398438135610112207385699125170105726733340984735675663973604718469433175847998014063339429603662247488369504989687160346652089065183385722664345757340618700159112371409617726025673116862659248141503151214840063471636346109930618150921726777258452808800347220910787025009634696007467288930258468710985602725058164615915736334015600789866909753336493454443380824320370335271946414150898656761327700350824048072234775151633805253121937652018441849668456926628547275551403048474834762658646285775445663730201117004688072404496757474617609120194048373679101276886072266935347787392742868079305888065244226811437572534305262819588499010128471399520036301204650796135317417673719155786661058342880960406575117973764965422867940338815603931055513270197650768555207590808476902599993494874593772572387276761441176603382331505217897547234658086324793193997168022530597983573471884090350628252470977803413559412650650077565603982469036256442723380357683970729877006837222607782025763487579088979613636982330530881546025264153805158675077175777801731374038584116489286870992696934396716288363751780402910359211897881452609566266261598112236859371992956092380481040811604691238898833472734109676410601748479359495991237954463540822318435672436912799488383443549788022065543766789871939212807682224983856384589501506316704356996588627991716416164420565170651200747396521301367410118203376268022896202155288095893617112486946563462293808683948723447028901710693983372947701644889075562987179038999509290587988713959251260032868775544495643965266143082791287793406673188171806150406151778526251315735597533968748552633846731450385171682601022636282830189525075789373092544738382972016667714904749928038958347523045060491104738556902865217948708155324753446145497853967592117266154787815914521260239566145035660960868410636168265896554537430552745618093334248422682636297309497134238064926281980640028905806838253895647907974920571139477169314524471291320947447216100202757010571084234683737420972800336013794943689588875347055456092906266227186667760739909690272211690080742932808190948473506169262490832296958626907892438547579238815419156791005801738454563331059508904918089968690409671455368213104532531291878901058266722287519213971205865735886575034554805934590947878544146814129375170159872469513541233377160644096009965690558109317537067419212113677703055007273895842931967960122228602209392939649678802940126103513959310484780152136350608604924903851339653332637656992976545997659592907394115662806189698508378621901263889779381029055844134516387143276116051016046612784400608775256571311808436633117577200936812164818732624335691380594748553423053617844432160142317554825222990740841191235121920254778316924413663539286779798226456404286219857675459709832355145457254917028963378552548980304396195634579365929515135023875986753904572770448320992662774341097582007601108172930311643746339740906052838326462262886144810946554576462648216144802105024203720937792427045050866590515644318584787817167644626903146595204303541210067229448474427477356757545619167189451078946414704669586052074413007200678797386862688357005366193289556146803552151429540612745817227874561294538250150983714821739711268185841114323753853063063986713838899550973499568638786364930173261669704062210786387823471097022678454885736523890048528878289120544946271287880110598674353866932381694257601256748462932549645832245014854849351673898975804312087884843255889435243389434342646401499342704890110693304550215893985808812130026610143468680520064520518100580128003345795511435250881129544823316974516172377988259045171366632373384180129969548799395814325505712632618584074392576991516157272681653441161279001345715476064351384699027392804579952529162998895521595309413726038959194082888812122717627695535362578306386804909421419952253259485278818594507118599337421600906896794183363368755852642206005830761390270322998205337577477141315228708145030220052273544800300427604957962950392598422825846385310967089920027098339971267135274722169376826204659504709417344048160375972775959806551198021030780118124411402393848704848753209261186221586144790378715005567616711928735780326625025633679177979515692926398745006424003012128361476934426223608851663543824916063064855465071693783074369847066496084398884476136460847456875170741106370448636541995893859933183943098370593333077013576636919785895181725936180971942446693511966624530390026773831322305752249078071393076443331452216913237246291931404316484101194603368443116370361729294204017899429620253637612119867576997992424282462324000998322546914874666193544004819595560241688285835691208115962052295441778771466670952560201089654394699825292936518312885943276328177449269141571318404815165107272215162702254555205961358856362354341669672840542183483396499301378544305746599227050642463236223291913565472068213549729625801740064997250967153489096389047859645445127409788298307674079512249833261126487289544240038541540908701712556554941025177818077516335821856213495644354442977933975178231920058673977040564035708343681108471655905983746992139233299263837064932854456202413207372266225749984893229053136328702495694813440463684007903804051684937778671398590683386672830362827060776967284543547209335732489712476576754480248149085311952087254165529638247177509830937091491233730893232307851580469158503211130787833100015878859111226840867290089387131963617069516897320132748519095563265690819559573890064477434549312354299744427283839887374191630464414238329255638149442305242658658158354409042145747781422540183148896876384341541837465723174477268619321089956581780993958597811639942459411985156849698834585657112971914475652352554742970695275495776739900640329602395401932846620860533601545546408939724567272214346275895688718016090136320656276134479083750441073776555942103550918402437502965824133723000501873319839275560802600734186097570737802368059404374158248376741523033629017862269756085830078250079585054943629343881499063472106800346305223395470764420987698111561751883952422297270760148191518258269646385580010785430949846514020658290929894047978189398824765947337362421097906816048504411403244756998573854020561385348899208388957870834093603109335167356706659566802471357782501351984692091272088404695353764143047552009263873507650129394437453988227025472097611091331426681063449568018339429838625382212670219839093653733307567544195379747579795539456705572470544859041446370270962260070516706333641720592196101575342910129096084539528100628446103436768884662180136675953992109280759007893246177453848698973326292482714242628887681242077713704721125124036179624618398358259660737315716903648233948936170752445121796641828059243641442848235732978650125015117627103550312600640290385424098621409670426967777868071234740032190459591483840050813277577910843781098650424417645489237357461774511036751158753500647113732913228287568873834661500233044724669142567538985172302921692240102930735886934780631751152156678616633584151515572693057632702730434969516477553416638934650733887191608191485444552776967941311697230994852398344306796119100006330745494556648036112353742686845661334975510480697740012416038990140318574512899500497833186686510849605251074420928956168063999317203173576645477049295075648090379837490394683750520423129353230336510535915043165863582628810970131603715906394749932922719237531105343074591406668454122646033303559154934050970277894809529041648581496498067944972788332517894454731241668938151958435351348488104505157278756674459070651901709571751397924942648268088822901557905847683677724030992305948525163972533121039974959247158507078361742970965342444105721557371495784840719577852291413586450416419990215289091800816777359867287474266155499766059723578214536193035407360230904780995058912860089945541885692168611910613869808194442762085845825012459293338890591439043078310594697228891892603524047049748968820998596157784005252459318373349167339312641354736414608246665591169246663407114928505396920371649315474999562182751325571512756360543966106894752340834821564898268763069933044339652061624024111598535457143931533540029954068867449404916347312606796088634793026510522365238661548493173165113524578825464366003899112335488809485316984370365916119076597254547935800031772550866685506589142516864641876298544719784769842992108154852072692647854047453482025973795916329707214390943484727089110321613413249835452091758689442845878786176184732153509965331371255779913382938901341205931027745822668744153049749134359219117403293442564561584864002127048480702699921886268502968371799916792544463804916521676580810519425615590472344587713493244235425603764510400058327609874247159152902301406433841059134538960961744906587486082712139591533075248527577368268478235106662152067842498207406169678335557719089869045326321137277918247109619575744525144190562174062134002683744713240838907463974441973663257545325445513176270534847606894348108213969946427101068194759866815828970573278815654019328190078006320764425422959428118761388779940941945262664201458560445179134562234107409926372192006320176639140631552914376353568341014524164067840325707866791660823044025672314818817597321850621439384884769988826469964157647222949625658677572058461144947178017867515230898943400741778730238320579511523978607833504002047143401528430991920167831639802697811280162774265040835657921496268073088501924248952112739508248051327740559718499329550460221892349907605366611646515617782810371309334041821869766321034173182315413064462620933680628337043471488602675393014303176841182351925822121560112790363387016826541175703283754797025581071806171462731521103064317752650954843515948404414389322064562693652276949946411106853639827036838304687001511286529588395667214127097874555843730273808835098124581271232849602722154786305659093785333143189275620089811827881856642852505942660469866682053506267009847834950146521740181065439865165576083093638754504379704902379237086410056219049347366914723887770765686979758786314428148795061119647087436916751115976401608131740228650747033857243045603069956811454933080009977008966975250728670855187543820417280003165873352155608742004422094582383789166183334973856181334188866382567249945940047635899153368365899063472874143701684558861816526466806001619215610984816290320637890168738693038700031237320154887526286401695414637284426774743178511832042253321514806436797469813632298798687432584603030782858690266068343080453660699102886766598455332562069428417290869338633018013578212708296105850716219235430123034335308194681601217831649087585246253539126905350483850395686090770798543266409921543736999156793192162944681512231727913969287430913710957608878527106595035608302380597934327933316987526650768170133947826992275432800079555406599953290183799041985035651696144000943942895620910260197712267162009897421348725352858310924753029341789003833378322640292472562973118353941865888670466652580915063230675869408749217145519276583046396623392240232665730180709951002144049150523127071146351240499900763388657600421466565338583239218703207482337218263457064229110905729801604018705176443776042045800009754981060089183326252896840620433717217774494825862041908317893437093224246054028996798650067997550984878840666339309577952507192787671692567197476311252520206789535329483255335781939528778243963189692332847857029923598387887895251535703621512168628109357585227609752516820379728887112499132708141897515499188087955535284545703239148451898412638396111901305728857323804719073839573496766731747194038409610446511670268098304667601774239104946926826282613873444380042143880667164457999969770125433065656278522308901549945872208234811433435863415556512049647630982641263760005158791474481452938939901205879166653043617889993864736284816205658414962162463483337178150426417249086090604880608507548837236933868726881248769295230713877973255548442062025627036963486562919095897724007744265866450253662037271592347446647579461501794573431510206812324651492786797044550430237065790620763256470161734312349145492540397613559389232029441251897181485004380774730132527725562656864513649357956295799400341481680801098451799092763836478658313180297642924897453017890543012431702472077175862894027349109319425350553591657848562171307446706752798672368354097897199590183195959419657347559021448464096813803652544407123593038662709870565999978486375434373389242454572231600175604460436022641594064317475553744273236677475247681840851750384408390203611275689901370547599470875337571293261920364453073525270559450990008295769188717284864385799212501896634275335468461681437417681338380391840989341566398362298543300591154771870265832967183414273192793170582164278313594763628399461177564077502722847265079269522845805111989333552764436957021090415586478358565126605061024387716490113125928741851083705408760183967330014537009633885202840186775798908882775276790649668575929244892619262337261232131698789449957514766776814011816932411670328364310047709745726694814577290320544575408653115441558429811571359962968795575734932181386572824924573490770525349590775830918856492161078712026579190531268445334008329207702242684565736888833332833425083356243572856962785750041594768507358471046561509475632296346773353201440423778861460690994536132850715272910133946163590312132085187770116872946731414544481661276770288220400190135976994625802201610032162503291434694041610414304799539363636414646247381313936745023234751244823754822242362225057152419526437635228175728256772614981970887279506364752534132498555500584469856060563419721186563231772896552123283872101655767043428582546147293554723993473078747840184785429991399626225907363874877947491539599772493253433231423582629235400880818947056889861180213128124250916152706443139351227395506918702257971886365622684565887244521400018981200973845894984557223234045681264649587265644561839117145359665855650009452107587986397198013340098298826012978656273585378484546721442002372429915301532798290258697522875441523240498675609216881047840259827118734109482412826886379717284773862520243104265605455907463574945613797405263959803613086447577053199779285780013825503349783518033909178611233890188994275687764622745209607553280156900740600582899210811856887765314598131180730403805207725730564221488368161942175959576534772338930362144391682839359388394981541787147898215972527685776641505506300038974674561543046009844891729668833233391590963803972978547357734309463543715881768796728600553532951133665757649226107306115729073725680930102433853985337061060612111599402844075143718399970355716606992399094911097574876242360994830720675645530067361782770818975891805812625281563664177565154009924643239865075622113165715665295789033107684289197704163545949735944712955370115985664351002162265513069257338343847763641907698834097184954619146600935756183960617728918732396249717644914604250333180472401808696408736270003693188661641881601434758602847326964351918973921657638312557753073366653220876819796352407156048048156235263416038367360493331914844475208705220599878546279810129792270155324907059053528791026880477260095204603249065005077250004641463620666062387281391663453924964279742879752725185586278890237441322320087815383455753287742156663066771708077870676449801539976863575738713280246349230370521945430295088632452687959153878387927555318977972950256624542210641577132274003264965319272097693014980063000958712458240392419742871431225894832329666443531837390112353309058687913945356536974809838251844990277002565273783832129883429622082552350262813571628376658781705962130843023063552954266060871934429828880497879414082246197228913611491425202714249894819195952705561547868517603691910787492620084823209671784401999214043394163021933873567615083056852109979073906936261108045838214707124170555758202404884243425312546567170974101393615246352247382203202725897815723280082294073470201011594853739979209890031535265822566664034987566518184963939614097971346659067850395815469050664317455198619486029554326462422387528194121102980844994173949202586138087856693711822212490965218232289104031886183390729304001393560305569951861933023608421775026128048391927748042915933905899341423814086031553997883583786177759000581738869233530638852375739055853947890896298596728278860905630977703314577237366034466699795014690275161808254951261186422777042707469070838678720864909556584630362895099454558829799592232633992744328533803137307386047741532857705324332312397105859357238898960738051916881768678823492852612651459421440770280704247446812742589350503635601077424411563089065125945387301783457472410217837660979124762258604379443400865864139745998276111493198571774520540007880458944122968793419057172730486620836173113032730158306706843715118391489250552785598479058883356077171731516767266077766632601511748828297922264542413815917128180508491347214264615223141731308381717389950589747817340655469273224687432698650465116582109383966961548940289148284789244160874992674928392131829669848362640377108736623621948476828157291485127359195557390379918333985305702538927619413968834874179284922573664977970275690107899346934694018613291255218660461936320468990577699598615439061558845422108224244301988316316429837736537859567060275520928806814990016995133546858124942021236203261656792905761410837854520412422738086882301674316029076096078029418876083810866552198187717908390023640572824477265231611285388609429795900753451041163935593494071563032564119981162689492103389033040906949709559108424958197744746774068587025981854065313935625474602460251431170873592906909973998398353257607501076805379491583244383144654931198941657304663442021090125111789855352636387211019099200784645289293124077440617239571434660115585336261943734715625367917823806664289392842091168676373668564637443449836781691191921757748920040554646370850292872271330800974770177909664904910285345236836367630399731161766828038940299348693664047293963251323747179501013033364925660381264724188259735422270440982486082444290060857732140856209052154565880028791088426898395997853014158775497072951491389457610661346661126910985302100036645277717116379504895150451435506826779667841992743351960405909348757560703864352874213004252975900925665099460541434937705023260709984139182328108640907931116756047156831029799097566357237469391117794564856898620275901704044629589244476447317667987225283265776907788255838666791544395022783458802790923905062098819052615043736696988009283056237914792274194489387990479984097937379718001124101958722271549152804463801040884032971127365533447692808968376321036040038750951626670264947846032987662446971004590484749839427402880432689293640634792567290953956567182741714232041404696227512257779205499253087009919521857129136994025569485857551382424052775709244151242250472730232401884145696387374331783245463651189511743062546018492388029337340771372765148167927023671856342417711522122044516111251145373081321607062092869927258485239395475181924908346164063746393535308807544434586127829023934830383081709151687025459353039096592202828794238398662899144132215127637876723519227882005215880267925652345427747748768724022692745146882258381140693724129579094483831587880780092288694378881229437907807268129856293453752419828062930140562194105893926649942671778736428112158600874324671156526316758043139909078926364812397403369803913680184315050216798443964909479704611938217885815506736920327261468675534401061264115039554542552524131240277634783512046414935052583221321645957086598644383836674064747769586305917174506373566089704994066223663258919668839212683184871988225657204586791668542541060560662961767062003523435117588355324600488894195193558053868311695947510536531859198419754929640276468405016867585760164191832889499259124907063524650512878558186532970338856506596266500404404584879413289846661678551940501734948699921122039391730277437948307338569330093290222647179230069147950140217401404973011276739027885506254743801127172324651995332430232846574525214086548549238071433638950269529258007543361371580156870305202757659854372795726212619495670097292229822426427395974329335441558638618274721017982935241140635588601005574185256167570171761871415246905945257318875292474455673647128663415200618307265844169062288498581152813836388555724879102248913652559763460026523022656216306184812181773274150333691724580924911175880661972755816340447985826810676501166546553410545506546272701833807708403746939054095037322873367168679680628636324761184863651849510547685403875455172858758479348122657192623774506613235455305795367752670332219147705419333220330708805206545132587305349764967888314774293037974646842649839500119137588772992281182778755823898482714361332198949714115764518498861011638741523144701813947870535328412297065511800200036543300993857587399506217811799381255070002995568157086032148338768954398001782794336756917126198765858964312773347646382255435682273371205642662619911200612709998323545104329497774804532417428452868107708880219024395917198489380306283483094173481940749916364492281767390813641551130509214630859272991922437310553852815760634388659506584166982228979454815499449010591115742544666436013795285446429824208055690523418954168256047960936400929594455149391938725136445143457217967078192749932204976086316588137717003601773954673327792797027250553752795311917649528553734404124491329565049092405104203639802109750904602439106924877597979951150815558147491629106808963848276634046615132592249114125395646531726249899075665530242945271038317955003522898365327993952597125436766367596736880992946651989252666131356872837306684937754226899231415614213894395016328408612589887964453916310285585723590933074037573951204780682281995975627830387930367893840425170436768205883867622270301766395209014982988132696170071907797034460695533253272034231417004208312004653881198713235526469680024775903984694272751514928528969703244161925064505717843778603052319545317348037121834058912911507878024945629810242662175584532281082457471441075150276700528856259896929066356155284529438387504411407774236326303153252241243344983523750719469827779707189007767023078648014370670324761412620573348411046033704724295666427520637592056094466337238400679195216324279395525897737654527317460684395641761354556812469419370599882178621930812628769294584739142383860241310945505435346651613032134539515999787876278383693534670556981869294147281153005700872192769257808798390316116873997135390340876042225358399926781931692988928997114501546640576339186310220197690897991693708178246350790836641456706469398714260137128714604221354129141327825691411492992288630163526504567475001556027975895576234368325387469958664175153138669159868895970994518741598074832875473765313782291615568598654809413472135783509066409076451956605493398065785439031995897391127424537334238441784520600547781900400703905592714608137972336656686906787345568775824139673843252198118763663190201054509624175044562762290839820618591840308452760582848241636500989687540132890569107593562478288163884410117664900475869804266074738828245245916878892085105648517260319192981620842368431921636218099368553018811537538432596865003544922339990798025374383758566605206500851658380061921282836160686320551460863576746167529719962016113613283286029901653926853806124644541587629799560457616605471859342758362121732336130133057227034042651739015231603370319151306605678275650109969723849242679624267681465475562472932365171402474923950472845898996004724291740306540156908134350606120010704997716651748848541452401859058274679738886997045196420504899111539519190456923084788856652357851941725486487979331954831102918005978461471422037430964281217499593563427238860962887074569622694252328779471398190693281710534030158379438000305937969222499882460047555458200950188835209266380371422485187827344654771096788865799989846972292456780687146116291800247771626458657400311965482287921724089648428723706553374620333595343456671147025667362684721052495119782633129701316933144757803179919995907710478393115322433328004567949751712631337248332433402295274498650790903343937237730219108662857722579296437312471507262920194322160861219160157187099649049977048649732340456039833055077972724566050466749310016585539680658257635517896644645932569698953943996037467170003891065129683779556040985209534832086330104437485810528841526965583859449052449736217234276913342356777307657116800994046730668182285967241792378737559385776612268535180018009879719950613900625215776041900492738337157286248523548339526136651225664754306527631979059450513354451768862052186124524675626508623291047111609203780745432397520823059190521461271869666078228488491330977770132204432475504897043198711135164253427360048239968007000273201359470817257655532795664918132789095500673170357234503548432145286771640790909532747430164112661553374412951235495026399679515155990713354279198257348519846033792227050968999900191951971625182659760190693234103715540894335962631765292293874094092336180604526069475630750165835112279382534792465707879725540435223091616330719344639562370545815902135570068489328178620808396486645627005838026816023866234280929117069901199868570986208579165538531015860348280360655652814084158973512280218068884095410525227079084605943754573852053198466680800797529358151373499595352660249655889157984172254427662738032971151206229383548920235314569406210588776130138000392994268071821891020437126452079210189127932638413241143203834911442367947430861996807719083668954420791909142178819255277546869454626934798476019145432875663556454383203475350175421789540221720625178161348911082631423458035229066386876253113177591287085451091332798767816266011217134548749538739098549939474460832721466584065283355645192709215236148154999979418339027477883301377916293916343325166092338696081795184068562489836041538791412157681879167016594801347318470582107695338597905647385218315785110939902432744020450303579989724323953362318605729409708498724406361698660321442288981118533867082211721559974795335282829938920118301105419729752829558608279644880685110179037481599022359665208641049613718341083118548846268607797543639746426511571768526221150045432761657146139188801285027371408121803641835973048295049420162989440450933389314407120778651074222548515038597286930046033271693325105148510978600878727353403629379805348591369121563523780630712052890179016855243913040969796919905578503114868076501138939764045906687883141301719941355471307462440229179373752735568140679660164084923842726849386323571572206073753750542134459953643866847606182451468477327519637230239442758033045106450208501657644507710751915741947640438129623450504517429579194897569221820134563192677788264390189009956487859700309781694256733793587514356974559788100596394362648434610204605470900517651346803174025600406386705533941854862672755145787297304153545950949206622633321129808817103044972070702282117128303389209938381407607411161105035781309113090755474400397282519973083832949813770755219837226904430864682921795215763166302429479693425780815312715768501717010154645494686115896238740412611858944469472132949435787612569971892238213096923085156136728369202352174792285590553046990259913604736876166299814901474106681613273868089520578706385057469624278574806123530963578565426079260458203425165339759695756533447128132960708707990258596335016880240902664143646811067247696599224191481069215539770543899475433755289029233928802454666819347282358278651491699591387583942568303753463564427911740352921645489263401052966532451092131136282522620575145321254850833715103588470828530023913875918576925490661252713915958456843261629321955345568678186862075652983219064692008907836322372638905768715442354696907062820439885961889779697699517891047543130894296766809908917049430186349340419111609663958807549094666921167157023243118770672137111366930446670340826279541021975337465463036668585728421392353720392004890729399301189490472633583468239349639956028543670039707343014176675517652581246236616542952321474073836607734579617991400424494159597727157571841996644279823530507592927996419383792096680996123942330165137724279977141611396179843720183125666720506333412090400921292276648409888572609680438734918916797280236217607152400387005950516101736756113411959056226848166934545693552857620512561041804289016940412311592403133671768718668834691307092190972219940652923071794336907020664281251390649604773846546991931273123398693047618548775265099584779657963991380135180834151763338496141402734851016044341511319981426728934922643582553782668349940011333283811741461231229789851738177580888093547229325493985142270409779296719655041894535692648109989605689649482814558875120086928739284972366562076318245045270706333001360205528302807654226403073029260175217193799509411837571178853756934314116698831542094564813738807875444186933712947960979511088391199529562905124052548246799178731751484820351185687764501885578844222657537597679223977293778720475908347047267390190120145009880086838293999257327033161889774426317707587562216924722330278178371039139916272119268796858126338415472151536558678668282604928398536333259403912115431252775069628268903226973793761201670959568338404825464995054651318749110434728524817936265792061963085090875348228652862258368930095881442710430814539338285187260409626072060978946701602892014994034761391636796743008240659728905509010603654526747152872207429562647330033785203058364982175441899308899840138401789923050532876706780735016821105438498870310243800374576031858797306684045915028523807931711388442498989706925194907655348739904839365198124285977765085342608537858698436951613813125747889948693742683423467897343550641381646427037457938769212353055844684873113163757367103108182530117349855585649828425103914732590591775167529907662160873806984217075979653563789111940940515658559274625087811352617444338152532114040311232890708896985423019612256740532595297364488093925282934789896517265963298593286953339717297849798739417854079096274542394435856737451358160488197003259036370367001392375094790339766034138803868282823783272011650314207904703367891193173922347431849465421841758692849871306885633623065301549750558205190320308501886621445396038618173552592799895078451082498677268075262567144189098285272719880827265271591966488401250112955456797075086260978187328482755067815233477321059869947672381719578081547856315662878857181291393880807915490651031359391683305690122560159944188635490243390891043478507096558536854358637305637303800485434929129251164325393040971370458110972644691099464499990266683315397920919595781003273307547108985069930941663745212376821813146441468773439576913332589355314634315163608077760087686049243322493534566961438507021363537899138466999904709020206836678650811778704294491138277522214877360919794794535974736931690219768417888587246891719469508283624920907394968448159631578575427600623332164912603100203837224500535460618522153638209218897146460064257346111373070781202184594195059313789381347936203327305902752404436879836575274754468021834237466562398226997957488909736040320467801174002653182099560530582030325332070736091409764255082768008230855000369200179038986628448793011098179686842859877764850510831320381431012442721398472612572769295214677062627895812381912082685968786759884534239368919328924979817771732380862504141692603203228452897991991210857068010829494630452696501073778861546715722945390010347356782382658253459115819317553395310356500465431072707095887536565502067680526076281157164895241588954474643442664518577401864143315881830513315444922965795050900952092175895356975072429609693554849415905237061354871193963616292125051907871583117463530940025164365052094845265032932964289993700903104833337868714855306358625690796223250390644551402296842357084271790141476236213934956001525077035660058689213317147505026238816472661647008247878567258195284441406729390381306546876246677806298532314056276162206209322214793990722142156779784625944503814328434526860682114622437243343694871305846035631112347536913857502113042682687341241922765906467220776549137614890527026584831060893341757949729087008811069718132147503306705495650807025819803770180342075409068050533284348212063584973826110941312342632816861143334997830649284090377522492218808331853037513305801862028388720703249336791245456419476342119745512915559356461057741266425527724823127742596461287415942860249325760670897485519648770468144159374866841953141176571656630698986058992553812872982545483313449403912110510965357226606752826445395530459829323292783563442944132249351115429942435741354650213906220321997027244471417031884535814746562426754425859820412680147561232845554330257074582620133130877738662821348035278946129126955978124807445960993057454531742822145989300591357076316219153298619624610972073721105765938410465165733564295328954719947403419002364918737026701828354025549975492047200229506435932645003209022631235994214387437134250667246282661087928169004232293179810255629895996576212792099047857491283885806800132138305942979831655052205875324697525860748080714324746968414984548458307221600091078829744154948040550038318942563751847410539738913705860513377471565749084946981764927394530795744728446136302416905510292109785234663427430342611865161449688870983326165900678721050867555316581305289124405610373950732269718650931227444676853788142496929183352977002144017673484481222521218103548824653641535554937504245078403249934455536737089775414530964019933715104030014368519860679971029037656429931447753530436278147662077903184997385054806967405999463957943167650445263283537535526599175906193357776740663415058575955716089052047483516959642449375645591638626108774290481319815622969353816867398832141839331427668026316659822452787732730417171245259649659640439388212903990338795996005779114714823858402778573040891641361115329103447734164934743998680568413082015572315021602053925386775193003755592776812308010397949722592534332934848934178496497862101225099148203824668452948327321362998172605383401861536633620749801141193021715873933522977208500930482349647632518334288649407969855008515678858345728740036584661764610844747752059056097785160005339775138904724314247625728035368134202488900481256632558115152539328694500659369245974635837538922579720619765606223695299501390922149568880169025912853858741339611560126124644007875435278512444850862914357351678071004968790351587897686096864186007142811351105731906554994512595747788793294310780178805910040062784044344383966531764174075559263928674641639482177620091511089255559574488933149611652571033701025630497401263807878762314639973357572719021567299363794037449341462074757017953508322120038644306526397274226641385327922386308898933432260838772472488292436709683317632477500301136393722708800706655449189015440362748714656999546896345805148441073611797845076259585426962577229014970896083464506779573591135784307724948131587912228663056842279567732213288496743645208342496322174678387386340825427507439333165221887593128057709969444866646432037329509841228063586178256533127591475952349925140328160792451956959842618664633883896734891141878874294672043218042854134295065120529226784798390032708099813229177773490642412150771509868578953380690253008149565108902125549052468311782451075826339139922375300584918537514478142198002749867242080231467148735914111233579202780305892579649305937150104640779679126698218541349658764298883170796746405997623837764612072154736105225826387858190769165112300666869103539839777521977406331823254381191514547759329760337254332650612913304347360551192570618046538814840731956503311885828007950324883081260308056408977536273155955739583589409208922796783053195244351755736297856845787660294262087950234066183952347325049652795751477283796804659986547766494935460451454791818612146501980343037952408372480826873838099005661178274187821155273022103016897067320280179363657370835061454797589809272709104701356685322893560337420057739236475857674737606506168314433452328155743022610678150109538276276452811343982967220717206984211327821299350069724997888126143607116755994269410603976002124558147027936250535577151917305372608810687876306012661924861951058061227391249246904491692659740381084098341063147245282283443142682859976450432274890005653402014790554274730788698790560538300118604895758027331644028799881961744272564783931332429139129628324396007903653994057798762748575407885844539307640528851149496813273500913381378482212103039993154767285366911565663347743309195715893237789779371339066066461771029903857436839459852963708185514816091001241836781697236890076499437317731184647010268762949289118376914515813532655538239742686228464271195670727140331872530017067270477164749267642186736573688048368356546306841721892545727114760714031732949068600623602927862233802824480694785894856513529385598941370681758687499601052510003489663789982629331829221153265728155457499314724409636318308366260042751059243613013389390626737877829825678983109716023186455268844664686069642769786671268055397555045558184037555773861715776253019275984634748276294319003744229016183737392620676735292418419796073551198150279870914291586345020991940356007058465667348656738502316979068897668539751550528952401499163365170829561678013685066084625131671819105404394399236309112830822435769101139744557280993104959678378939741056781832055275947644073932356846885799519465047876825251011937847545470083235621863807644429354530078246662079928235612743309340176029122664672982931047515323931982821604218965101539984838573894142389053744584027879703251342924571690479150697875024943463012308722859937468053300580541468436598158954133292589717799372607640615557992439650045840397358020407550246290990368280945018226200437020708772000018155066940985636147687463917892334386470965134159238906793859237468173214062283973587191879179788577766592617200013461427767532745756534205729052680423080841263997472071452012712437513847134692615581778852678894973759832026173575181209650164615686310604549728022906449735881310935932403367389701930908375427010103121119287983026974096168342369328898345398356994743975871950738352899933106123474828930868837924199028429732451334496042928158313714042564669391459541975763066756263148125423322314728648966860082717844136242089726486880723576145348737725679968042025179958836601316702127693941817119750328488799875876592164660617728219300493983630013599059100178750920464547297841116641331871399598505926256079335991487617491307012894242142415582682636001643293391914054698425469483402777998822923015082695879263723607498854044545695452146915698441173429158398511563530466954874129821762793792650711428804686778440794387306674951590834565215413306180099386664522569779880736938437324002992572082770791290975523722781059127293646015567255246402173714465205099207334625149459795116625134734145744438139915640749747489897178454373395909057696567661900358418504331884517614970206027222139719702884600520444682258057343013169967780822166580368548039109055852636752501773296798853865744046203036406468021717968205808164153932170680107971978019461621285034358065813129589395770900516121548425057085896432413063892243326237635635236896280358930930336697712536174274263762859803710501552761119000499111525249366188870989322481706184613002823345791758758563990370113303118239743949061229527036490981042791490356064583703393867062904161546020220392171333321198764846314094004022695558758745841485302995133146526177345099855948879591583304380236110737930567180774500786508822178499925688497557983356686724977894002733945036524252025810047869329392681294022399966322904949223045257981031959715367842321160040778565262824490899852449316035321264174148334902222685052510548980768031076272297417246636036889043114767803052896341759104621971229654921345641830798901664356929127804707676238590674516761367801583126780604247860156868146880040916303889253064707223846991236978962030150938518157751089902425834225804176147380777464239389022138286944473837686620337748180858243383469740243811323591985974728170077279376555533208687972614709440358520372138788429370010444486786951443071978141419080940020584388281784723444242653167536028926861382440994355866327135427125741864584102716811451915757598173855936278265141862986231994386757825731302598793874387368324318371058173245700787454171475802722704888288483177865731926084889056604303403420430321049747757415826575743962070372161670965409615758766526384737191711774227486026462059531631639838826410964352685130112367201478934207513051390315319705542899455425840913589305973919951448250714257471288968634083025732856087254573188864576134991455668483468807265048413253488584115030859583239242957678329569869398284671697659923234739186557968146547102252370466310349558388839749802934080233620394931458342569823039486390326336415094764418927400432451290907795733679787292584733916994949225067646726125949364032468367077442933667307907932293234797233388253326382303230527660713999861647499958307261984888824593621956054839727395953936420328266625488482409941070548505689239922689768713207032734630349320362434957960938822788611123058923547300525717429288192446741544105178356136133981165353689547555431767932533166336089675297924693534235855177457251756609398121040619219295466443892588641764685695271077167185954558602007608739471334871154125048035362865224182679892383636753895013738107850543256973335199882749411992190075239491160078506186549530828787225115711542583023053514053870091873439530980081766098771625392274164017732509370966110926870167209296075787435224593832354692174058666352140024054876526857670979050162426290428233824242796192869209141889927550921165027487677171941347120164354293611580469127688826401057502270121554862345731897727319915971858045623096941771290522012214958657924613308678551022431862564589759996372696944635174988857610757155378912283332895635997917110260410777041354097259229621722287979076223409590830700655020063159785875917687900585900448216982446413703740590733392838888935378093264696563394552714480396420737890342510683277056549223969923856630462581609105797813927431899419605481063226179930056973674266943735261819174300328051273510199807415707480256338348333213073901746806126289455523654141818324059596526765055212311938120235751930610377273301724523059088483441337034311965409792488549433303588197391299173380991716093025310899068054692035490749706368754330692120660848427258357323752985112948424586740917445701124545236978729234294173789565284778271719028540204107412013487495812479492622644882854828362344297873260071931733060097837009422221800520241568900110327893725240689086481945540464697305949433909862062828234315046762517721327307634356471007585207428570807015777186614175303634195493635903323654987807876033300915591134068872688390254106322195935806441335046795984885109029231851722599416208099591594673988355230902058543413656357984833808391772989356203325080524242234057609122927910677173507185379678598674219102638672908342112706774216790037753338612383897610144843154303542001387070174209930557754364635253687197404874337179858065386237820597601728499914630378749156102362977197292787629271853688842434310706312164301421337872832810954751240335714252621234897389163095746426205436662693374122730776767046728202842313905687451161833072273280117962603035891759404195451054064026903816441011498795890075562722636440497068175893044453870846091178640441251593563064254098924251174391106223054773155919880738659185306638294537038590195616405696529574518778693844208915478886015078728508522272070276543466797718412973069502504635740366837001509048283905987489559000316266817402819168199138041101996103810053863089968604069925702265149956261327930188015306596579397019921064059089173361298375149003918109489204392225864500280807452216428306942824093964617213700425029954751749573457250294967289807045460773897481777040329752870874058280145280877473575542582040746133967204387491257395260686371016792467506240020989764911474025381141140623336107036527176648052221723552536626552003633716185219764999854364474393121108147809580771049275100500508568428556333709570115177754634940425968423632457836802339830581916109866691115564903578881615452951105750792162963020845716293070455641834708344909745267559643940107875691673664530683215217498048208235465987732509629345038268929975389780564048790558651071243193923097759255413707095464731246125614797394034229064434325515466634541432354736878680722031866336304074024453140911140188848592468537820855246647645042554829884411592882877479594829124278107463310207415231710216077601224433399847091424421203115926190512382876515400512491812772060842600481245502297050292577856977744491379372224255492616415964885042315290229593326873879771288672927504467244301743044779872247152542700207397518451108216788757650507290896653773034143273228359036573688266722072103528826073657071307285750502810730663388199750989781851671978816145798877629566659113801184532327354991256145268036710791650667958272594692340663888726506042122834197931880684035367437318211039978026061133733480056867947727436906738904629643288628160126078999384349782859375209021551326139577290096660183999400274533093742535713827707827637458427037980790657838038767453003633895154837170471081143911992994842663019435632628213775771798275481279115941214942251647936061337363296599866801741984241426939657073292517326923850183130145604867668544316994049410775556136310864992309706558729349280791407027004240945069579033957202935983274774733069383012932435215965554544434312179027682623453608077247188074784017156525181702981071992820222480377247811396107127287148062327612637625805512145473589499133030698177422850297621882188505458292122689230402973112740680428350884587994038817239868240258693878971887422873769663393318032005445294162856602788240492040028772087416756636249205466128148570252159565461024874828895933569279343822217315162074643141623177746880255046724718456200980832510444288840237869338547335127589265158544845712734772223446448139497074996860253116702349641081373685544548386833562413828015079234650571617374447896462679387494060045937170772962260224526085240512341321738189233233648695008895107840424684609837775295141001608017925135167627072009992270831130579558611268952810049748466960173755127689838838080010360063398539968456803224415119731542161326859252693354950324524866920057920702230901588946504450765245147736486582298618777228113422165115710094513664724817476981471354048052877431902071613771681019780212904693067106512023448053474220090922614017100581480024354708994978674628210232385563367571720941225890902528275365862507943470236219960134240758674131196575518862496474092729976893366707415428929915930220121954952634501792113638536579721607599001011550858492050866741968583004697677039786472897367375071089750594832395631013273246441681287429864994267902837540666372985973112119443017949214428959266861595823066326767479347843914552567895478323935595115755783548191003788968698297314473352328510100986101892187157221125648562946329941179945382293114698400894696068722047297757610066776503145714883384137568926624081303593034992198326653767837500586048893533067646643872904377098740282051480916261829753437812262841498398255042228767457846894753745440199123030071142936281674319957458085256967772659534996248087222356786995674723761678324132318528835700207267150431021147779471558699149297562520941905750061146697230791243743344616128365572545661848376255180932180190429783722836987804408612868555513979858962706358439405777623850727628470639965159611440663726998910882903554302066840123717349816770110479912537624720029655054042595551846680682145102327399146494835297828171983505914360966199733316759649982788823884156491869664584967480146131827665811133836176002351866378639271685119217721027029619014182636710942446611163810728121571686034464385710259126506351331576221404917284664249422238280226860518087952333311110044746460329511540053264720922643917310961377883990196463634742704492562119216557991326627107024882930024605891960316897411142334033560098656348110220983315528619699133046883671628640055792633266500960055235198762734385005064794788468445651928375055861963298009813630095661959920779795179838391941730802200757664623812332512130550247056130450925189161968248493052912366695445002034112815680624389754087905309413283426196073812767122365463611222573707860162688590679466038556943226758469875053124034945171677015135776236152377248317747316953922692626510785619199656571807492380481284557841316639264587829002330844635295979472081074119929429898143358587827813570399398966831181279286331001129145465516184262900752203364658826392802047515065941464609583376918711997687433243634214479446454428432937836275600531842216323121560878077850612734101552568192360131670635993985932002477744563559280565597480567372662037851305025868880297249878513166402318268230896947987614159645251259888858948654875638275448756503570294903177342918256850778719012777699610622633963000179351808474608442066438247878415729908830408277609637847619470611770738128593619195675523033695684850904500883125113396415548180287967543819726144112697789108594364197183579693797717781589270673689528726216432789425514713258302818762815067018006643458154568462382768832685436753864588758430761241920614065039952238838729408723953135147808322264579758404428605516333765555723852550183003710328588250767369046979626946471591179219392099052550687040321030939085970397106541627856975929064245930124228209767247415008427949988654824911503062270747539700169777791774710253122227484136331200641833129081437487124400086206029108198551627511626535477057978083493458769353232296554682967587281879109677642139428610834656599606425541958164845423025703520444971937786272686407034535987460552802331139304210069781895305969909757266496655596625691244285063501422656290909880337161991198030076930657128318566985060751472285185706632936876609986803347707094137166588026596750904828144344045634988263852487534848282772933996869641380904227463244932568500910649209218563497354332470788305245764551029279765868496530613031236502922192216684049794474990881357869693290694059596075834005333408571244846858764731809047087549727875483930122352753618561434039491165718879793049295248676075070355016432379734709420765841172280097506767483541589209608847945485918687470016492937032079531478446403168467131533506210082615866089233553700681039280921175032942098029063181554287638982821191281782248828110394024386541649576115032453302930137444811904191857042149871606783132332179226961457343972125525554078837512065945806910000809847125436834588299022469437252602770198085763088295459457612674695774293937800802597693066185522965777126715757301359401253295953230268590772257588460196442949160702636948751459804076078244081069327353098879131586841070997358330607760129765682485671178270109280354358075224856827771289535544582516554583014542522326759893576469713137924340269775466614064406965455024823502556627242742766134790761030282143311649186415948042861566713238353030628723763158849537820306657223179905824226046132783210968065425931928547160888638009732522050621513330810332541396544918134323203275087955118271967218262927370560726769783160174964892878657810720147690574551941046722438220963030499966152467828495304812292884652896361632057818289304444189529018423420290819062561112880631792938268496639165603135297102257707357870154554358597175688041995176527288252795911110671113277142572143969878910817393063033774721515526499033903031232985951996618598706162490924695555150456080890864482624038419260976623498881579817518101385288590854269992798402409985217755987389395080940777824811649905639203566640249238654282120963884309330459087866309910222545139464075796200273017739251313068922554672366447158859049870015516065168308933585208142520315010918411629068869917546371164098638686295386361841008168138072345501704159801603787799651815170929477198750567427145272585699058868926411541902336450758169185916928234970395917723729889639934598674620064158094813211331653782543229741876175048753125085958635389637887937425983311278723365584076847923922309844309864005439021932525959065298126933116126418340772570457508774630529202701604845104108272730884248297371196020140675539793755870311399817317328445461162543852747519516920647462146217098129793304985376586104817340977252046587665650247295452338748025077999635593691683149456326520087031040000992309383838884672071660121359820805352677714569343758446525749151740877386736073209995083265708432060798577894779810958284453690637680854592071605497636903169640449215772530203146047869183544325714696082294226208615604598563620145934463238383372138408059373336429258773445793856332692762122278202357117092637030254932699076549223691731964514810203792952031323490306272659564741360090344259014919740613228759023681117505380161294173024492862796610346062872204814598596576417731474882142575610272592972573229434885884951180154005243820800514483387241393083815418099499254906197334654980626785980626199300121375493030471764180216729603952103892561748289326793422728799350997532735429793546773102331945118362726454726605841899824058067513523241863123240067973183992228629271148808307960846227589847502753785784205364718119086455918768118675363098338927483189319215988752545659831036611606697454997917867839318022692198586161255524590363203382614426755109852128952599949815204342366326177557763884832556393794066306190534535595074294044312323769872992421300725796583123385252624513562689483734071900075684519588923786061927910714092677251414921428640007269946074963275189085175815186513562949950878461838914663825232614616549528076465638130298281030163357679121397910987927066298392152544211039144248023603102446824884990086027094259365836620913697729183757756128695660211704206112201145806461911599383972809282644232717552642455023052027720264441901274745624323244836542588375296229526865042217598562045483644151481363658157873143037833326629279440088372971409089925214152989921754863958230770812420726243062102351619127707730718213968867553790181016477771792904169185750143535549006768979558263551595046023340520974631190033168099746453116709095357170243735632035900370119848237936826437349196739187103670632167636848188261135570963669097527882636378468324718278374024894664668037535543029641979228328888288459406382682104136494690526094770979003979086559390169542028066414365205776964800447226382803321965682820337200051660171084438364521907700620197093729416361278162227606996161946218894179979979262712308105276104685675616475791238755551534980074151097532154633200479109175927883557950213913651289476994313882168348804124380276467610279187073186218740699321556721727448136584651463706735224875469897844916109940419898720912764453778674512021298298627997183595058171536995218899818848890362733491525596345108902877445845630147855757485359178166040623277444402575209933010637597624813507045361440344806587345862862191305587825800069024940161084105507293091470473076491869251197888059687807717001174525614651602148245701169829932836829207807663569588205249371003951048094944717852441210279146447199947715902073371257514938234114038565052646597062844572228051608837812938125410355868309932332671174994555775589155844361278125809245187111343557278963733295805196733893161185685542110058924367226508211224230198933222819606267572000770690853419569478852223519000500243921033129115510392034118019347026758575374348131882017278619317575568615199870880716414888776205720317737448995131294547744965226754427919721526784928321560753351994651559475933281245320705521957433469973080983088866272609507575824876416499016604470639404665370355165577106732662120117052564069707575646936982932532640019654491722289151485091342130142545144592753277485724939625357230965706968137668011670757236181617467058668789055860475048358437100590784577743997296806909756383471762002556399411956278753875265680071325563030900934264284489775653933808538501218335388697461913877005138084157065231741129438287203937058951661552912246650948633275999854438460556047669910807514607157451848013067304996723659572222918425931507571332975175820753043769088818332802718994589875405294041506112793643497276068225208902066396263963156059139271043560632300555305254961835278887237242019849319188275310889253507298288412723700829861016604274728100162637425892822238227462697310090245445005034533666989609329741650913479620708601428744215087885613668215257886094767587880758914583019638386744569483924276950556362601203482209641752213331447635423487442095324353705861808034659335362026399997927923247046389452396703625780251918190671068788092874472715405346365863967651376964196326375366951449812584259895024878800317503803589838164743969790501838017784549530034713786570713595850789630385632142625637686055738018124892847459996256446918429565643657000616065681474710964947465087004620414143105723463413722872654641266909109091865606934804306669909259755823955419499057797522393654083837257034675032398945127531522401336488828823917004044810238283805693220117473056481145818482032637898738457453841485613998966615524150384341106978745592613065917093785098377489895477882304870295287930328519165746430183486435516567967221924760651140316398667678885037055859786639646582605541039454172609359555056024024367331395770927339027386621679906473652857044528395586655170791652576809276868452690309125598180400053509805280699003178881098447242494953261825765730964105323860491766623808021684880290453174657173495254130150537218281062265481246978248876997346334704664873604809262189560211159715740140250222051439040079200627376775669526702349325258335647960999693932383557029157061421705918017002917944660780775122169656344330158404495782081681067872395180694745367211062159634347028923146456295052100244337223601076542098047763814572127802116931738731867534699775301427608145252500240699308578081027533228937867187686640641580005584486247020695552017940520223021233612858607172337078475270774468770049780243170911640038524141562790043853192202200150835379444473285539367331226199660402566978775400749278995374626307206534463365381220844368954764732055790708125170352840760585102616682529147687325976473039413563015165678288647707956191055777364929220768511451499748147353038002553203561880726143279066095577106778221486808401033658334223771626490379855094916013041996962151182838169751471177347548000100814403078217443958556574939185748883929979974030102608628294198981195283023359229258542653911678876114749746321978889808052325949929986587096457757952988968960186134615081496353654297255217697172375532317122776568354760849927460396847388470723220867912053840316755117409086973689017965713915680784541405246332864665380142854506448970245431301795451245020017080651298151223045324623264364601625121739849515907523975231865979929410475274842799474076112293655357005746462801835217809572734025077014040607513554920879163763558283581871822550581150389838150522930836219342353177187412259640336387638516921727276400434423621143273269004583612555678289064244758483501751193439821797391640723734373073786552228424020690904113313465349609910722493291834634527967929499312319361578978234930272108986737939198502399657995405589985838981271497733974365555457140575852184600977480414838519406699908743146470503711957789331949173041394075039379086083188064820467652075361336696039020205683744676751779006664404114309088220062553476593795727903170123813270724034966499964514109708651864140927499325842943899848211464473576810786863146811236780418936891958143393185912687167385978217895299707098260802708246017053681030215399240410099793288583857789100184150428700757725666057720512243820512578236181578681545060952506978564529950735249422207727250882294408475123296404267710804171937194909666556773580162245349151936330521550046532061343075052528039851538609442546132456091143234546306649983557732898759069828312420483640407560580039836567096956492001710279640874382300836787574979546005307805889942072308067475364953380870896026821771847844732114604686185550039184804136520068691279376934401604921967763459271259166391284601641366620764362923514972318231739690395058153516333665121706369639299892848219525945085415007479605408204352727404531927877174873861416742031361365758319636661255375520331608211474359588399145837881150324507555140552735593519255189595276631372967726184193584533505697943910352700362652161105702174645068358676227034528313031442670860536891543139032000259257652186673274919358868822889721350416391551582717474321139936096006702400604762128491198224184962105667207638028066109360937789913238133910492094846401829284929950581677937951915588269718400719365342822088240223651898235317152323673282204836356236251903277757885295558756173246990952690606277971733733133627762896842943419250882840189976800018640243414414284229973081342277756876640064032635419965468509348746088075922681960732893680566889346159805854962286740551117775949718007539373685754998050192716167373346860150744456539806900751342063194251475061085972837158394668735355853693933366839861224318430563233841143515793839597298703708264382003671979269890163165260568158410104443802143894480600327916930961551260249801969286485495299213662584909448780437072100777126983316820626579351803407433426900383748528160666562870130557647889235736008287581479654125771511312626006445879106973617130693652956855019171886044494899851276055185482794468126837599801105943705584328219234497206781455353594093346847678086550222436636875343025210632721041407352393706937750424822470239197698297528396634066138414576557706669183846976118230781581709926143616681461415969230946827804626424528465930789834772576294282329993133941713069662437064315037899294739599754304237723319664163518017264119381798512877895366816029322805590160619952999687042083064564033643414453200726062464342886624662541854718455725197297901183718770953843816881073717992790374806161509029872665159704884533774110003406541254699157215560423073723905358255515810649522966752698738354590122516342047107406877675408288961604527280981464953618227431224226680757261487755446231446275363745742486567222378449286544066486881548705463931302704537047783969658628585081791156936482638141750819257638461859098597052303535952672707524924353814127924880336334574856415743525921289154678616292561411816070208413320777441530468022242112361349180887434528155592520998418326351475008490619529873255009311578338683834994794905330875036945219445850083394908998121493816733342282183091843647339872224325318031797706888618590675089463767319581995420090438957653889689301091870296294476319195384437754303596005481398305731803485607787599599594516495693629970819414186758780901473027814884106253306963321110484827658602892699753808026844373033999767858083165014889771641737125814940876124732411443654243391553843795439751060730310677543428493318402209323169068371055831826213008740705369088130176586644359745646940037454547476869845085615250843899887838795819686786915527512414253770744537618363465831102978559144144563262107292011913095466007068386562927621252332385414632871767390318993189063463659975033986186423645474202611560471955420555499755563998281551309278332042400326517316511593173610415635033255451598050351844990278048422840954851857036606471990756107970718489600305330946734282363696961930256850066402185617028290755881163631763450006008538061209000576099386376888468973999445255852970986902410863680593097561500342663144689786963844921787061588043808230891080596137131846632989386806317285184639056452784444000083281200335880814650044997728558003349537975124933090314487606255457235953171292615441816753350257020509769935143603524379972197041569928845403224445333253701732862438094208398640667764185805025099853331802902401211100125564577945537087028000577912704844226608627372233960595737291273900987005734589945779273785859505184995141943898399123731063554325281920562932507776996135608431132431719142053476741682455174398922462250763711979682452891248508638175305553235306517400047066896762117767962383264726455654539743912456386479419478623469617006038047565568049859007504929472868552483566766518031720419074257384498685726977215239804998218147690631577338510131623880943566830392566205809315415540833701810641919116790036823048564018377597821205666631454097298357297539878469425132877817838127324148421392440393923647301191007009806632367965321674698102548822115420480140492067663956775416301295935093936365115453719226072809364618926816361432324361075899923438869526252431328811846753669206134643588117886970129832502829981155968771822927481415041415581427702694412299621272109026040984696932758554015373910750046260557951192829866004459991519858183114452148996201864879253190636654588170508346850824046227314088111296758081032929499239162734207959379126405934243564662041427829168079526526899554470391031834553865908633180240837992050043922397920017692569730475695357750080683554590143521418497934147293416386032843404137471949016250323858841072905073574570550176645300181799454176404132927113395885206514686378507442842818162565727681109102166279964563059763507030619488828891690959093093314747874706381248930918786173990437110457645735411939197140029565949907271231212780417235415316987339409174430106205681028264113360642322277348834002830248723661299285411960142508808849774688140272396899335023936350830337061822470392932212601286928851554021832984606834960979541572884043438042639104899678263860606487679965936358870116997863414533494820903073955211138647017304673562887940411104171693089211305435387868989726382100507751300681394493747955036673195815430252194116621692900391070801916791577737791826886534190380735453412905042623723133751609825003558851298025258437111827744063547920718109838633263444556920876105838982111352601054665115631562142407966611602358428520862944140285037524952926398048089942316083101837107331760969160949512982679243281000630517539434182931516740412048371697434864982631892448088388158517462305665645389867441960427321860747165603190246143650609376615930314515781657077406158879023759063641445677107678536089078998827967947813041920705741985266559371302811783363507942649257236381526520910556492819540705250777852809778198794122601327237682460172561108770138046129312176814255810676355700772805884347959384614738218381289971106390812605360481878268111861691847420966783818933865105517564965714882005115658806906326642726358876510980148181735230395723237055412561609398757410380971513077178480596389534063643553459844574457415521295874809430741920232250378545287478147470736157472499118327882685084293811901281567798249249200003054233979512362493589053858830022214911614551616287472976263410011687336574083449960881915084815052430399372170920932801943336184088781584950206438050857077252471802467566147463240251287693210068920202276525142277154236755537199429295623448221146423274060447280951768945391703517254208134785933981665524256574885987392277720852211517047587004324590922493040777482909705024072769451706115572249870163645711190681463660544790235665598352430425341408212059773273745180040683809475015917870127878686974775124763158371164419183667803767738923132975731623842461554361141896872706791923289588173880572819778395409737105310881193210193312123334881373034228834166855807147384157847380601177528051034231971440003521124759191883514163953070006105299187780455584286726194780065693181650808756533990091043250973401447645926576079307368920717200041762808036377192542306191625701337883953749919888050087703804074515452070480547972118423787691848530283773676956970533167236644291539278992198645758261557199658013899433102512412986499404027527983434851677847390559286315927660089080849796921517364635431599092569995143892109615430688974033322445730170373248428304751432582788750999738837969037954663995355659475925337359484454924293080060296071141646561472505213730247866798477183458155019773888395667431113353368900344394645549648117417138919755715775649424242629748905598764075187755221356639666874225580067175141081922940747647670399050695490551721578788523351432345995262940201685599497588346015691978222177469572930129954729579701346841501514662796761642563618284646077307912469493191599648313527105391031988390938000759229979682334962567681083031227597138434267837883297714191441349611905837149332654651120276239472638980686526590747695594202056202900610446153276923985811347141473409767294532338719435935393219869143526379456534237227595956816183669455928719920192886562255265930260922379888924349525975186869831027848780970283148904710478330803059259928671913161843089148220829410526945951482933393622035233134316953420460262355705756419604417840810772959591783212881607877353157165515658669258517428207183326560845621909208111061776085673358990101181824357970683412407562586948324428467751379151119387914268324894899608883913734665186009441791678225151415445273791020056584106930306718502457607296454079011604682171277767615652191695401398651129604389413315294876833918537131196785916879207349108266129592709541889280000456606403940915096355898048495229506063190099623455958717436456839279344560302907267895538531476623142271904270120047078740224680686294681375132162924651010998063101041161506817912822683496213484410966156545908277584605243418292727993573580806657249758001515809494232748168751290145888401509771076308553065201944793995164335885742220598703171593466468118384144493793929816109139742051961001910605199417461987597868373906288708599917140174416146900392800561840910973648202419660417109330965523824510691130143609546842090908728560521115392620488129386392472174809894527556035550033041091813912901903684040472724175381319519504776986640507519293217880163904729196686325671690197269523157398712922018675346487746156988632325345843690312529133238983215272930880834543477513067238399454649091224295934952955038442386687984388738645261339382699788613255372002100184608582757347651086156569088720866972522846606077129506925526754672167574167799914569452695421970448049063023527478046666858879137809301638434637813168232262105347568911265880859904825734054382883949824585307143362913493129521460555156215059628305460935035873566433360354447873484199915180169932276550724551488765827117962258390794409758101948927862548611571499502397343646132907823117342193948636554090789249664155081652999211214536048948627383939395418963099716381951173760503053327056389141386787990807802924840122711663934909245460138931014245170796083414168779439362166225838824838680291559444110756255922858865251270973509074175499629752205234784721805790197507123479297457207918817199122330342599623497744979637370945487515487612003063484482752862822991797299031787070616840569635457543601499286352100140748493044494226573783932988394449565522381174265097701722335352756811111349518160987407864259532680556926276887781113438609874556981732943464547163107853362496638556885481142291221472102181583798934809391548323845987923367424210620473628648937808381472467794405156316655969055650819604697288252841953960343958922745474807972237251386951583446834962862888408397145936640435775725683716987450120118652501358823007599073726677283780689648588890493115756189432573401012650534685432525421801722090984281730288888327745179700836574496114882165987242314696454556552739342397216014960100218450477327330754615997057677619100831923946427054095705281847851840352395649158983885512707030173339861918774879262331158571051201257559151312652185032530621701205363035879668856946701229241324595381039255039664460354482283514942090645229688574033237029571622925885724472939179051871682813558147517335543222511009876467355420632826518082070190658167029490239098114746172948683531609013953723620574068250113119932325867825757869582434103676372262465973289058053015089558185787311188930642516980181844193393895178961071401552194284387203797182998308578862491325900675587872040159999974226078746515126828650992005312350172190716979324874703937544505097712082092066168883933123581321550530264132532577739590073668727318578935128407397914529605203968274732744440737252515397849919002431089768128880158223634225198066311148226051844323389911979704949282739899383109797166002898747644464708839870761906668262573514624077179174733651755251654903450283319931363476844524979924771949781291576719619834784741643197625345183250727753760445643746778121212000173170356186739995561491811219720959708262255183297792411593116283050054208170704277931214959637582546458130418504038190183679748437334949857744338826452886226698395484874576689726838922996033517253673108637299400105841917461224790498373081813736204358749726066939757986017280234552612620072567863445033840153978230171283391668400847535679440423879629174219903903784153872045461524118951260171102747103485553433768900775539134001230714204159005774553962143026570939024828662102527830501721734669231107968263230145003987178439435049491846696119634168842441193243710324992027475263184639910900052880954823822005255176169189839693097106493678381311605871579112386820199053194501844881151317360837217091208604290041181561579108364966264791508683893722457978839388837713742521235305952925748019511419447575130168776792145424203960339300500286536013386823609886167952216027255324015223751680241445824143388233293191321041744543140143915488497282229889352712255462681979942420421938330164846418143887349457397108302225703421900753816051393733797254833550105082492872814065806343055184492652134538565595690205961007663023685088362237570942921432461649243848300521832057219766657468292962086308130672694373533811429872852315302754163818217253516278580664398723196359150362324320312410326864588233121330144838332429306741265138924338419576002257115271740932033526574227260367540429841324784751944554051914664927491856690305914414692792292481605666670168390084671853595782657035477102846495313650353626815866805680833151677201268937189276665118364227989400864945595386628618249973482236650327002715284887015196043602368520951265601635772868918549150883640911165582307563784882635218063656341213383828275866203386398766379910238358329074817187375989909536647122692374517189803398093974420085439069808387327368763043484586442027084705985904732610633771621295905388399267163001487843248073156220747166319582021140817724954943082676122498596905038668918978922368501570273006489719408102286356373369670435087087910207980741344992376589921969807847921212526681464622210286918168607269966700155510968012514783555225974048567097409305381317386313969401524016695474315327794293657277425750751698471278593820797103992553573482356539495422033769946500484124373091111310150577653113305099203790654591836656585159564920621321613648324424409034146677473661079798247709275859673250932927621169979246421532088505550722955977235339322317569971057158580459701971402489708037804829170432472474401076208952732492061076242672633803215978559080951343964138402996548542640657915910127757268087882470533850662944176695082316440000415105077849877295671329308591267870801142888460580198447288300975772164504600738982650024775417958651631999520457899177876612719325374985460406643490590471794592346694953693124984283642103269794004191898792259521324822953733543803197657769346705825962717040029656714961669264909401895302872858757636750218580506436020157190157479574473295850581273034671033233738823255529186356448198154821657662950495079288500013001153562022448530428346165226690586816098205935328369963639494117694881282706729340971231355326995759148953806019875314344308948020908221532368680349983504840059599958365765403111850820073098638982588930535790618051815310291486119191221475195924040244567038413026679829139401120478277409323447306004334638560646251080811755695037499104372563975533648075152840704308098745739352072068614978384024793693695879809215125523371741653377727210934108121227152244365398773137120936531124470198609484207963618456653636566953596409137238475463807048795984995254409066956813378966803136461838617475434053933552464279779129357009439443956497367574612665350530024645356705205204862933172369785887879931331407686207870091026617008550954857026002623557423935811318401507975501709779714639766887653158358858239973650748095882975902293705483309786669238986303315176991740657893642255793922901292180024525918166344417823640667128055419210231187728273183876408881818403565712620544794044878351314806301312590092391275481366259529464345601531863313337050367027293209170269741645603574254206973768049011001517221245461393088218995200483379382686324767231287405664171005272277457967993687126822083011320789683713440468779791336777951426336135469223594514948879301801823563585130874475059521244274284005671876419799322100839985262995541716062922834500322449644309517167696238262731000830411948048464929791981565376467455812601701237811462398677343446963120551385959640857847051285230966093324433515813638354180546788708228559269114243099816316913664378230252369953850849725700184132000548410654253131156736397405545402891118335714596248587982768784700689341606200695026782775115063021714715901366945862812140194798805734729819268171175397222967479278721967738003751890728330750619772453374594942855250474194032501390004778004104253492782969455856675123952726147015648319124776108056980436717847699553255125191676039316001728570835428082454521413571356802241578306534095409357296916338937995637857915812322790355184297765481817504683737338943102124475389135780434312738537766748666413982540318776545985909397764208463729317185682495702620874364863411079729066970828408421720773698114513885678862786868937346821735728881636220139411520707534635066137041224175237085847116518836590914469503972365340540155618337512549489731511659935439293773230644721059482137723154671471220233787765965050296041407262095625475520038629492611757846388263948146874543191297967188484171096537162912562958887311242014941625084691829436524807244073499096745169833113553351314314548076499796037930622892353650824090468655725749540734327035875560933259486408891228750028514383918474915875976330231842342999585459989966360400922057947921374667410918673701090473611563986659078393399956916668718885377553059625329777775108231473180053715105363727149010889087261486152319976649642779058743151885937042972751564137571541855555210698468534582046724035128485741940494735386784884772015374579352376527865367171326553596990253096601150795207067766227005338730918734035126564519002026120752970820287064197819895565628278832867928553367892173288341659117809090864448911690863547756097246874721027511539806891262225816869106748804168463828114634405063322550086883798899984486809726212184787683143118909539306282015176087550906596323261163823545475682128722889909021861436460101749076389197098036952773462458732289082930811941062937275484174140300969000944594581478341795675020902772055069910243835959509594382232634519628689960977001966626243626555942754700327001781353452116715087173100145191407899331318935252376920276947454112607481461218548171943579155966142123959253005231420247425543570094538867975274747819729167000607125268228542357204684821914574803113619841074692849790537186491518205261797596539122616402397176045899709827788956812800425857200094327080058627738568810239899179472770643883039595963081279410426312300309831045012431602450874885647447683379661292217809258061570902963981030248804068603230651491658054844289707040404657407397679450177539745656006293872203392298774624070925847010271902667312236255845902480388128063145934209111393037631153109568581110014067356008648770190091391417751185681618241843706415798196950297668322887311889746567694406341453074431260192349388434596121218175532228529201965948488796985732307973326862930774455152623648236972986386098095155181197325269063265446021547069841894098121440409001569631383242323241484167224508007252819198189241903185842636418300424061735577999634071079188285821465747723227789134431758687166945999760287867265831356892919978837678378908417346567554069261104919893050747783750413855817339618648729105852263616204763625323046934241948102240528975809593987866198145932971546960749916327397388924192253134792262855274675438563227038987985143282592581243418555410570790098359412618347071691315482715484608952348041842997690118640037317583666254941446103350580580772952268184230051689275140391428580572969837970081557337029813377998584403611312151252548752637220248937565709252540615167686122120914387844181210706802010856908978265087222396907077801636400804305984993927534817947448909436234375351220513573882706257310052713469631973281263934628221779118964045167851668687567676722911204911785749791904019109930847337463385167350821442499422722411967757704441963802880354927673155446587166538555098379149927212202926689796755978874705054783948621063777685515218525530419135324826099550463618088477795564086366015718664291745676170225675256597273344518218561611377867982992880011404778441690694244949516303167491487661722481610140963731488121807735800684597086536934488280831891718479672040157421667222972694630429020191409297894036715607730548586712213031035334664932904347951349611085463450573537559657931281932166999367416482769344725422521021050794639600884939119219306063511089343452531461595012179896509109566471962574048359639600465718561840364190089693214973337100107435250005731505966015126633452439975336427578805194072239398392778745834346758972905732629689081580041138537877954901889498064887219804724561472659584653559576204829401400895607277646593746621812837506126724372557889619478631489299279024989543646345279845807303317224454041977617975912700604294322669329156675027937692150490371827377454915973296209197286419513208452336263018377562053300912567229601192294547049598012256382055975636567683738710880694159147606633641083383575103384146979080935466502493893414038759108016209889316905669563483899478768781746109495545622467370750830360362360979417010861732950397574441583761147902489419691084548041513775453045048461959565962634526104752212329287094581435080298064642002231428025066682478615544598928809693889876894673961439568527534649306924756270312583438446601825553908930270104799867306874145637662027672885230901267840552512892080399321479187949612835883578217460937471426494609464612405935626659669292807280823903443281860127973482810452752755773614456328298196284920009228842740921348250724768853442273298845736489649385263355782399165712343632887306229245038446985103841952848925220925344608383470580926118120328034004183118881537563027645335002676568737862932917557459794140300992742475008383828615161058092239718028944134660611554514711335679415444517657403104320659750088213126385876350563193738824293948479779649132095861499371811758533205321162544532988572732383682344268514348418483819559147473833667971556388292455671413665054728133832826948512676945806342612908499626878592981852243237118987155537341815977455229525048774859302863610343943391075795159156135122689394479694366147509338774157623714008578010932151959100841251432773866528888857549881713853121827898794758400224079627030101341708755051658437301087463557910201993843937540025020613793185765167677795710867622867912495003525471149541357401710826621280920392916183411388598466475770265486990844679118471968548972947968651284463526263088576216044272378618274177172835260453852969911660217046267631008522337043497172415114281415756426864565674493055606033637668873826809305318805403955845217367021422920161960093982267873449434155572709456774209974285035563292967666283771669405082867030717780032920335756782003752928410177819797742886769285263183088538378218544158977536064885802259211242595176907855836058018553470233894349230915156441213940361503658568942950857030446825983637567928210613857937408342951373932084491042007802134611835202074635410554403892293733313771588039020760686806352149866204837312650450495179502503313527149298974585910037408027574759939033635962174532521322687412280512959614940622947968765988597398262173883963174110270273125886355382263735111930650496601718246069550104351067812779608466145959427141801762017738540068738363288505771289351172326346092489093511026162979448584391331250180893879911128038434892706035669672277568671407298768626776812197542616098711960247105766410436679512216639619852320559523177678547776702883610750587538435744503082830493650782402324110950177544471808754481823890651418779638242049535589369895462671483388007441167815778551342898530226049850018105368251076530886146571444573162585062557511074408562874195964077493089457210776670425356848091615521787677050904824988526607518083821705673750001046469165759346773348469565894437865492573992810953787138149675292504404267027022823926895324485998900548770789038295951266280369485804847737431566089803433581573895947461311573816945252365963174931623816067442093438070873309636713653454833882525958846212007663340777381769907027665381435533149465162597705162929345165646754095443613573690645111250790837335061886139275045492093935234501754696664858297535791170381177164738714264092368463585710174772233398006298468388539900228834787011401789123412312153640884521243658748211212306563822128989944169702354181795155926324934402617119073794659899993399541611883265931247940822340647107967044555845414193273659408002286369853707861550943613239879620310704992675905256069357004688496783856074963454787583039856509711276219689227968873467761210289620389265150229382597196114764416906921315961696920384864611229484154026315636430946877411704164692891009202244730360749761006987590283446581225660484552823838480677894948445370674815439708008661481593581612879852948420282198879426849714893320924764704612182068548665646071124577435398954119079118451333095934858907505769287667896166270846511046909599471109578172220595730016979921163388357616512865218977410285606793177054541020679073362744423558947633546725998799926106024603784059261750829173018921446990898837645413104060969473599553165477070251405110568952798255893768792644188772199984199755920598087312243617542999866519424283001540136780078271562286708687490474026670962727869100308049782070198732104071347240640513822648223959022751274292407486212539772716966106776313883023751964954104364569663900996951180218560323813452745905928489798870782866845763394373914359887205227596064909413427569835512794843094463952033529052434158402532266309336305294368225875887210931562098035852902920920835440181560716244261742543317519957908824590642469141454414578707345448706191032925309646318957008778687740851326564260354456528838715020694760018740167665431713286209334982825724653998892096806108294615536449424177988993785127087251767412192420335472713220462769625651600276558530378167625115895980328017883299128505280761963810536054039307688750259941260529216780622086630290998530410165636844131428732849648695268267770719824093520413752300459052355705838792341000260062351209165243028498739653685626770485065807340962130297080971783302182680841299683366702187448109217599880604653227143247155975327445166365932298900412497921646875159186437314427641590427913289602864634642728180564240020736553130054661147924484296046940067837259660268546803421919007999352952122548747184720479975660299736883941313619573016487811716096499075367992197494309641449998403050658844065362333515449782327441027314421184284180683400268470368203135575646545334968834036787931599140451192156856588354280943192344356333513682011091357804032820124809100282823207739764900041521257440958262488748307890886025412844417087838662361870056077343430179852604451288512482212218290450322288263836092747730524809434268584146649660084213808162317679239164608014066095252573011095932253125028554241999339503579628290494597339022243962749615320186704863192238295922579880904925390532592399399394635946028456462824587018907618615143971764508349956032926283048532917734663237694437137010970780204527162366022014065200809338231424002047093674128098486473693080468388333915510544851110567210616154838619342985138380144582219950018343648833730476642580753657603635443872366393259122236473025456687058958242351252855949754822389522819641746718172637318581443757968033297833740808943340534276048122810317132644367021976490847693549154871197540197081841536312901134719132913096777188861915747555595254453675928146250959541174495067711676063169549456494473165100509830888180014966088645685693680606213183260906124797835191367923648151303645819037819241060141552224315968930232427860168155650751842486529561233685860648448043663556912101444785427812981974300402793939238968715107148760495139338968348808766255172867917908464135285720994493467061936014695084938699067955803795535003176211067706112420777449047082752018485242016832039442422232002649861819323832005435214707951714101272470078499127282594289680351239596181288612903298814238083982080165943178327058418788226155612299725769860037791351395852174983361671924700731923328116814402268085207076656009595902103696915171344283888339493674421383352791415516080731920151768336750881414515247625231425286305410438017515750146338885976803220829832857794730368234181810619697989932458431267553184819677069301267049569831656213732744464108513557845593393129913745571259981409716025852820253637602641690103686006340385982318709068336941490603722545446871220221648543802264875219141917415044995615141820956199405084361801826482352992411919604295132042248016596566012859445029973483072920368214969400262249501574856706003297764946952053106396741619093256896179070120048326407150470891074653729528432398226629503851934994052674194134840230065537399375765243862611426389780599681546152563799727493181873683852235828876657243212067927968312944286323835201188470775189458046993012067595606780223892173097092026412049389001063081333247871346743550916142853578798203020989572513277760848225220023272106144788967474823922099417578896156072808892785577367933027269692580167634313379163077282459752382709340677270904291053049844626582459423908191464192124985133314686955405269327601497435920337394677061393052225603151523967101328880498269039127913771564906017202013001685427196430936520865483466451330276086133253905268053383275344298054992843824686282738186156389391276646874559864067180686620358859676501922647016924627243101991449691094319770688994605309994422725245903252285913663022562153473235580965816392459080973324839928456924743527596384895211941073575144131091568499516699729190556579275095336875076524693300845042105717157047353435365722596804931346379288956891403650485139029649619748986411269890834588981830054300787318128873794186688780898821027012949847149219970075070346419282403255541278427848745976083907812444313774688260457789753143010455379501216602593461513698641698505787150977907712019700495447085478874223781816694848029865057412601222315554783674550271478886431370616560374940744609099603266580521663983159052414287635707556565894846336518831009309147961627467973980361815824864055549917329424284716795925572126720232249496833525877688919058162963958817360976865021195067138000116904841739145073193440674153471150063467357582611321977933138692240990267157770410546586780378146299227552947921436602420235162272134770890538220774804268490502102389562814846897878177845532698081663901641707143789088155659728487121948869031371809640109531880041111549003930406000161037381700164572129803709817849798421704048977850997921489081924932267572733662067853379449632135258255010415818316070225843917351556859579120100048474088354846134024862558924095083112288328517604912912555182417958060237802160798683886153635698799083321887836581263548925612929488142423542796012108524901828715801027223941822000982267591957483080658785855030949293305649390088349786417227610464815596417029432606038722679917543271195151722177461336152057984026543990411348710042055823165498358144079166648702147904682340368674960787137205447546585972923200599430355658537954525290923972358980730834073255627702553465418506433389421241009683557482724368582640759824381181013430553997579006392331155962757939474448187349764266361741156357313438549667736586852489242605816497986955673425332363639033807410874142156352267942327951474042236131891041831542947061967099817264246553266196550835074235215752387376806220337572967781860595718349702628814392930679396898068246170696749920132428759596893288426807724567852451824927025739165545994273340911256273305315200881810892581314262908664427821007538865588603775698532984572962262607575434722623441913938380737974954530160068850094543536183395124430274930852648657582150933808359114681677854963748037852005713050589279571646847434753324179591058852742209523519966637189768899880202254725693090078376255625073989512769433624449458979033497870659983728654980930046938798551891141365877988726130547894048424587308531522700454936966533191548632870313986197273185886928833455279261759992788812937101534017162911354039956264681745757716929410222996351531552109495728443405202498221259827582454683154930351320273757660919723359084155272635687319911184333831365910926567000335155904199124530022710395108456998713035508120426610395872064032367338428430507559500254051838284429914875050700744059703677815076410040456249704792154583563942867733555859192920746348760050584448965084072008097981986971129639656175298398966311041030535191652038785584816336937864386913190981994955716331647252897853481297268822863287751624637435266067725925637292835403250171782626571744202427985175216950476620911735921006284395735578660637754770013124135751124661816527342067911204464965011527506704674140635291683700838442747960360980197810149430848691180287000482033287857839941045226924999614854951630323743126365104637467788887034177333915395118714113127748652574454396060098017026936656504424427048718462786289495530494217204745896927029905728571219421395646123681280738331607760200936889695260954647005728286953565107050114484429471415884211083114454166268510000572908973992995148810305253852154638361570618030735332281528820675168317840531512386608127041356352988529238210458846840925909039737054651659931054714540378882799569922963431147286545328550607503528057219377113754403674124973162828112907589564448422034594302872517289832790080385915541813516148934250275578446879423717768685689570674262655254193573248683542369049207385704790256698703896591467948490933147824474171831154489479253715996338279924397462953689828066034703455430007656153253155491061798903150824325955335177758864250556055802966239096552800851083958931904736424798000543099195003412437851630152554712241443140870151509328639528928725128469476969150018471684627886112119625193253671491128103278162612819448828526291998904376190093476978131795254655639336640611518040741863922228196541773137874000213629393269018234185905261165105401521128051698634893640545281073405590166194557282863217610510924968642969641146822395793873418181938399569359363343824870072374005083436513244860361418410205952385669194325626156114491918005630032225611648173116357639765909840148658510795336262883346471371928842786936949971517897381078156869083581882477883858373592028735275371569122313659207730022106364355227595331375689121777640240902411676627025859903529304739254445743264559792219514591047234345825270128575906502113880202323787997165602396254152421852000024649721953219315837221865408364859482086626077762923903841356744777472349841276931370098824701735371087976998020600983042048015406719898443739765210459804118266952969287461027108883285896192243817954102482733226722322198029247921832611032981214270101496163946690044931629278887639713767901622982023516438914225322656018857413717319288804320848430239743400264388078019611353679741289764402954362002465858263731951788472865669038802607542635792917234572569677858006777472993249992746932666698749216773694504079106168967905169003106802115566742209485177979341582221259157310920787808700600053473275916913494303160822526429991608745751237825017765933843800730060328082294654391756863231210005118583279843788810520799487418003167454310761791079964838113172627468493876001402263316163883382320522900199061510855107464905872312201039046732561976145710394196328270688458376428204930241896617604909025141201959483279423255733823861863302679381939441818422541485820925348462844400298053554145788228995089435378619069986127795560025355924187111936230870977341376060240664602245783816427802145029542613750907076745501923151739747167121538035497212902262238637758108912270076513039568826928948346033934546860203635311285157556026317969461011569218543613981437315949987630031123751861126144896532543866871887411587401108776140475179451916871273270721927931095392857982767108267460461691599192642853764255991067170600239244061281650069725108206569575504090997871591289619745842309192792907930513573092881609347408550481735635827961037641896017101624557360230805988581715886713962194502273055116552897940066497659204490418352122575889073646799610531107973248536714871294957939626596287260792031482164399383897923401886151380563557549849366010144209132560520084646413755744594749036688745286341438851633658945289219164971701747379224372092568553186955667066729968083638620941661785529487732287869358629543156433057824856707656753101857825578612105857088005214465081148459610935351912019373776882103472284228463239944584826368605765486990568164356726754082441357439030591437932056693379239951288142327665598979707938915145408101581633201136172382721114643330195179206737416518211812655673672489444840272412169073162642802925758565367839541165543210620502806529268621952734227949452594333290613338061681769833200004235180622084501453352111255663552140956128999787527375276823669224535223120270276612441837435450074891605533016115517399953096404280523236340822517659592508510177274230163540410275511005949858520733453221875545787244871164414603010195517492966248114456152702251738576935145851849620248983161428664878254135003953344080928760719244291730273006170375519669237442757728134232612170275250547893033221681702167494758377890693958964252971574885624286459939027331476438288019460979552772828135885163447298097458013302393015871375572392942015713271552241342245706590339476057110572495663064313635490511949388661808539944173525651063242216482637139301386236757350829487318631071474672997422484368554783181852405154362012608861420312895469003658392512550079680099070049544625154443179433536453159695687692997437356917388856452020415370472260275284264444088921706658563292588209130652247430287465543006206964070838669723852478676635577863267465836276257568315899983573422830127379611286122933358380290314437109744783331673261154503213067163403565601351765094510301429988993816615459337781689612889535537951329315014353815712813389325880079341196103514073879630998646540960232757929234907158156758441406267037971918322641201691939521514972764906760757163188026007316522218950643358452021106144648083882327885042233166455259507499990665867763814869515138785899758235916898291089394864380295973541044389168715996979277692422540077981685748355520658427910076104169992502978206642242880714712646711406121631473079961869652719393556019569055928799253796027502237200067312445913552580701110855612060231526025539578705904234090913087006615885647388993577712613883449431354296093794899466287308700344097789352001781008720841199671860657949694333989324990677794846439596429690210500396977506587386186319307160860699677767378746600298533963262633571675465293117561352622983156177717202325778479651337961678522593257279833517061523819623863208925775918562762723888751690034743479228918149537692401940191612070044108100186351807307670129919854150972417664163159140851169657615014845268432136238459115066164791563216055300258942484887935964759663196457189889459009619396472657589397311140860747456657551240587035896993032071946319607754027571670328710038454104447056080585060450819738719180491280166502148634206455944905628287568324297502999260686205876224776560379200362056245655941121661347535441034643307575063767491081372536770534920432492752130181337700780747687110891571132893628650981943612017923948159286137273748445261303301198365446633296551349580509262613128639111645516292960058434101763691160680855084384071926271689411804477290298677163878226300179631333856534572022552422650692962518662063580611159642549628698361287480567512238864687426950427507567837836011208856174408711003558646158338263203795939652034653234132413694533043380816340876148912139784348617767028143693090910998989702122334124014913398096042351351741383616122824272671270798160902666766618691669250537242776486023429973782085800704806284023790098093475456658112350920798795411259015060896343924054562190511310734772965493000740700241859178536918488289375450842632212417858346301778502855265026413131073303058961253569662782738307794222073368548276866081258814101722943190762895242064797625706125965166165500144618956959065139714227162911186261354839102260297815632418719452794102032258352633385083424492119797666450937821701248345252895940721582203060547374202098876768146217091642579480060630109189495243411171757545403382498317337097767359622017585495941037234151185757536069352901849536089830950381923903900065128153919460712511792867040974921478087968342846353972090817060572175433841867758289823183269162829303170010741637157424230665941039734933783756191915787998804320938952477094512847120972297782266478553559128593228886568926586713474896531315975520539484995906707229842286477179553786094321531365748601711303144540253676938615228316642413213413656013028783253704465781749146542580001904923263713977312118774673221313663554595324451842901372617478114485382293737475894498654010341192941357959776393455699492288182880281263399920874403906131558247715339863410490094495842060667585131178295130324304445989129547568129367226734193398064708279322330253427272840118197704077238862087262572354713181570284303997267691702275261747552834372104259483846406384063362833970264443327818976343233864374344649956889689449286710547600882338166316819908947261119685757115740631342323455077908688211606807252821184447723615828115573281418058914636496376239818909686686896359616633341839643344333465325455238044875920304267006350566989108222033212304522619634765909630309276592616102255103805341279723683916035908464092125376813539842828756599318911399329401272504205474881674550096176517957691938810215837760975319441924836846598202890735972433125991475384559003432857386466635140061769809546706493793694669722806567061958982321914294769193939382070417635645299056361263361262446051609648616557130743210308563575704198683380391329535852855758577377488505632282023369740228499946172870253644035811398072656409849096647564202463458822413110503431584455326824331077894419197995821429812665892267579522152671090923375341215351976807143781178957387890365382103937246671726887336287038514849951357678874942336535301571041086885937086070105908823528447441024939377394253806824032476381402314780332272152331039413236306345053797394553411599057347023613627562045766373259808849657613049406379360635469809718066340349192437663905667313099140993992363619755330054303685684444229282376122370319121157738323954558538897318059791412792340834322693896311954551656270308987240848831792527455905693063625468847776503897709385754015069624826194833527114386532540937081353535513810315278223903368483424352154472516323009060496403746571663532806491705746457098443153663725777208010079630981576737638847031164345320392143260476544830135489999215488825563637860694871286658474890716899657564396601046419512177571958012574545735078727628000162751730209157269400449502078948316275177264165030349006965960657456962671912905178366749677490987084952724238762415499400173767271452784324179610482867704316747514273201360620753003885492264162517003134189691485909807098038714738884829307061461633523142484037640213855124494617703938631191814721782071228147147773721301959289286211624451547100427772210262383034189949259876258184205292665935375914011397731905105228955130556118806116730895949121991126962711756354947994327773333234581375061329167942500583016893304085565875195777893883126389915316726771757945551400630627839300581239297437251532959380077992509957341391378937620537175562886984522522011994729545760963289708716041891620976616166892757835877799404194027602948566894603624261228980332984588851673392920917836164841877244066378425262978009632419501169434205363848129270361667850236099970973618017406677883292203816606497618406792552816927371489638423844812063705097448379388455517026068143386490298644131666314913503932173533829398755470282916483828240409526164742410776741589168710598296349723192645184333676448440905503243523207209038958386366475264773123988836281832214448694173600834811477448408393192395567861299161394452971074669832561727592885050185016824238520542253517526956456770115464546540561331963828265508282926290109661960116494898439411319989295577420493905234131747116865681217180491258245156193021883636166139143503681535680037941786197423618657941950294004566012109145614791658187970777936334433271912294588322713061129676816764263314566472170743328128508666602949295955144674931862620500274205534589965207464691724477149433082373907165339228208638267239727365968596142184014087645890004938994547474166538490811471835950891126380829280874310130841434499580116365231207355040573886224617782860715683709168292912304769665641990126895868921526913868879179191613311047688912185284391471059548450052097285018201036265763723773180948521229208896017580669804728774056638706286152031744808788776658261371571075702570897161640216913510026398354939389129271601754618361045128214836642314785781246100143350211088374691504685031868076169863102696628064537912662897898547015191934415538795946492555644325612085819802154489375421933147950565949518484719165679454384068033636663753593853721066342113655072491051418304324088230158737952305426449568642845450432735408834945050616393146630314823777502274521573492138043448498942269633808347298480159067609066283623555249489165637915073391435869121262383570150309954984678299452223838282261784007798050794435294101209963221073876512589243584048690608311630824964373553780281463739396431821912794477124894824241072242738215428821315296078424432392363395031800341478858829074112892486056962694636590719623938494363549394439829904122463917486947611394921009030086294815437412703390418496343462681322501567624561923244405457316812415987318375883339707795423902555013249329976270261219230946725268818503670573391227769938874322886444647159383519096077254182844293365554585686537155031634630591579307318761539194522110929440867544056640225093899915149479909729090539453235655528141056749243229604557802320426660861007295247154751204329943550866616318189729127380301199745727637382690159009213089424310591527092319024367728197001530429187151824302056517773474746259144604108891412355144839559904532803433093249422645705013172179382571090706542138919334313529850392713604221919999533020667398670409942848258824025699155595691527153683471519713875175002957477364416630599767544835561061464542542602361889838141549476733721777586920432842980883231972349500228755021716832751683765232614038303043741100141202884812862287003821957168903499317686675505219684088877941531542365165768710241241946050906653313545008105956324831259054769434451829650994169740203843069130152620540850790683284853065931279950679935315016872307476975543322811216918434033763587117392173240169064535316835247047041017354957905078513055756830464616412208949065890812504258438636161331008496676433393686598006532440453634396189687573055559303426505191265346695401108676309054885938539100485631352409904329314084302479247773394857390922025466075520016101523686798710570668886701930677191798122062889197024986823984890868588966730559990671414335180869478845896971812937341960569556617317084705506635564040282161546041964876730953056394714835484842555291037124471817254272374736863449168799398561055786741807186944736725080073532605128058062063349347695874047579152304896996745886227209748135555066872031239439283282565347462731061193339098885793049520908582674336830865595545289612326487452337577191076757058899073233306833172270372659542305163711656392778518143294308989099414234809534138588136241002859694838790039172740879523213416359596942015264946236864383274819001293280838143224868404988212696515485044489268451232599765593793059828873002623329061878957761630820715521678991893198351832558280004474468287417534853834785703692140300454267582954146313828090866917932588527199528026886180778657776072710991133964601201612153360079760721040521433786041306144037192445224557852971467160457093588716396883069990530869928507999968144929433888251257428835553902688688149209927447643803724318388202458453927454247836527608957440529635658925695742739150459633615996111509676621548806769902285562620371811911607007492184033348824333819244996222949434336760879900214588391888540342908837367616308935657063207813521594404583303580575842473858053644656032029373375725848407725877520620179238382150973676494880667313058918737494828219130414524003302480508464298184535171943977797524464463547526866385421336104727253638754340226369186162411334573397956336455701565061861075597122143785564253247221005197831174029880450542710241836081288949857679181462926302756905900473526545894884217576568093895544157412026679918620630884163710080980894834303289329924927460589820261182233632653836579132272039385638611084180092097538562623246300207060878203803471778118303072564882020959941079132674101766341426782718640338664812698279155143498274453568491992958581630272210855181369383704830315277143680182453226395291924826956902762102737989166185863129654034686145015412294534401671346709257043008341788726489540355975209304223911173703651551830783932984950152112138373511583856239913691021549303675918209642215325974660199282683682258757811528289143124525589107114269897128952433608059799544080497514776349667626251759847070132296278385161973782357025759385555251559411708719882791889167416861794723167610988350936404014115325080739101697001484707683362252125379534024364113563292007671127313267408081807096465382246097097121931957860507035633455128193427844540444893096939691486738711026746033980554983006572979792111296541857961532307800065316569077216968826289729769364328130918826619206468103306014654777436953357588150545587503128114499160419889508638013407558399719328403948467982350041969997172679875597432253687840142489489029569305234711039442791746977863879979789235586436504856145783470912785814081908263924594903137087671361023840896317903773292241666518938020464763549062410896514748826118549705817139954963620911590846581297884172641206632085517622871777545784920108501728478859764184782628349246452651745451936972744735688033923727109254327148807185007357799398077402472356161792347573471409092436550268135690390779182560270607804745721319055388107322386392046069950699510566765180470105387133316187111345288743809985065975117299062847404681763878289867889499968423532475874931732148059200008160329853953646953024556028854990876861372289281316257851930834875699329617031025127937796747265547252464769902292415794747788624360549587720451278035074439161663587064681324492298773603931603774611322322324601145787612174541384711685662458582533242547667895894726000843730232033522541263203155717064597358906981909415897542903575627685713515507485942299542668214343841593425129568972129016136368552243799022092329321222403090208964114304803857775054140806085813043271923003534487735413918653857783711492295591070257639897691930194129953575136364203384583881004860365078764333561870556219767940304149710436288298379437988256653225036439330932938383499218030514094893922492969618854779111754309544271734508764907403706066900783398511612392248183071424440587600248464348462067741212611691024207841384891673337187827180777723556778634014230273599373354498934282372246905318645663116437706311077540586499932101460599607299397590015353603689050042128972538033997118373060447702243612777188909900520673674325776185002824178268427709187276119473920376177087831129012737304070095817323854479456933328324696890122132767121512703135353118082748779459294213875917304596138815609604726228949142678248141362252329896859140199813466277835529864336131891202355832909807566037977772502178044366238241530728496995658091155786474898336057662889988650524856296774986543386102594049901870465802363321256112501072786283427591473860335737444723938028616733817659844828751887393241666247097487155187273797260633521387815413863057460307022732211827383390493529423564272365711101515416422060046840065106484775896706497284064498740887091127953151794676682595164231586129146879681406673752883546332633477502159705418360540922209374356714969699439304433323904434963044044565145703617623149832783551426783331031013379075518553881159342882459519441504474146925807497548163738295012499971807398557236215976869033803371233954720550237998966691051607275857442483141252630408634015422300832860773838937547917775749342550746138003576602901755741775154728662587574075147719465087669519530159926275896675697134976540232769265219969645893623227723530233649590835133904043348323898435546492716234622455394746115108029926310635911889957108456445706683260369251197384062758075793208460135142063221031812043211484753144407220374778395459568627665030018363912577121931769106254940382286757068745040197046550109717367339105274005811196360140814994250950977404108394573491823981901043097029070733202433710117898262598904337279424654787366603333148594862163741299348781267991310407840845166185255849196867214998166156944396937232584789953070779507387859462393464663725828859298781199938086562870835961934220631368850827904778311933110585138594107756564563413561321246856741202069637891815602567820475159885846095753052521052270355198859688670530442475424110722968015726561369892803832843476238686796545332649335151964634612927132434738618343334375101275009660134863250990079299965813079253240459879502563917499651364634827194467503165194704122247850155301749461647090667608071596487744038280815962311904814353301171257516331322328414702079714258018107806389421475363939156128120089996063694400783764386942487494372361293475374293559687506899961697559192443067832359738314200387741166690675942991713401649816269850615766068651768957107382400760162977802740756387029683240063128428648523359017128520744828417830786207341409785431589921069563193176183034356611704821251048129738237247774237318441277859688811571422721090545406584305213693712352236548538261050796886213374987744399852331121854938443463042410125395433138632831840511993520071575706908697477547213488907265453648139365595206358789854308937831189589328062837863228655517805271495511856443252283021624815767594946755604197608559460905292137751811017720227136716463889464030879071682682632297361698745246107632503022599410759735522675455113259920590975944609387212415196612559706117350979382145247711703008618766890544249246187792534728976510345126434481474344809627383668826717597268234262590760576049224314410953130707554501500001791417865242323937025262566226782995274632073518182272419317073541346519217941996798592105643717664332734669044613858320755842819734438896585957240056614390948394388760474998987773634736329430897201587687987269761482564647485190437896800071567601505465167176256991484791828173932487441922041450096771321701039878896699536081913233999985168215126514398634567588055138379217215611004265023577911282809461621415829070443024128849317804827350188497893324861120405976065558888084563891255160525717341172792540757050176680822605420977862624442948128728342145282359986123301616470478101268658404518907179813908525724045311433254841279185371099775073534951225598190267253039286173285071420383593054457889768232033656282460742891624442720050485936371524878559580099779285067632043944864996719287776251867987252263485529203945167631318084064122762925721423953075022782607412348825931667574910778708160677356152393995872958693787612192326999831652845836732663332079041624225385265493841943286615482502928507708647227555796392835251461947458105565189839793069015749355843319434120310238945155899720149228843740521158451088111182988746782940413441473776834502101810033417068881940196694618008787564299009589494903352098250090662801930817843794535234335997885172409866439728269802522924517777222834773099982986651181093937186921379644591440530493864385490972488545790808509372198822395185156883724782580157308615156100140589882711566177925400334247198724197687592960558441740251315868375164406016360861656674995551891640458034648900368157549157944083133052944221578999511816226326518756355979900255651182403153727191402666238806275572651067253939766768886916787808492094268756623248960061795564376855434069315728953905938110733282974188813365638322551767640153085000155152415417263567729831114991294100159505594333929431816411670432742949584689638107962240329277390318478821199936022219505989625843459781372279926875949538491339551200492418052016818030936996704973850936411226291481736876173197957526362354589054448359671302938302981831251653867493316564681542085574407243797092736553341179205622018507474776276929085224040248022285289321155183992554985212440597073704688920407042178512991587512281262202379703668631232174999722417176934514145626788933493039409220933206750856112949261036556769078710331787325728619848935875226875719839044471012501296158440035137381574549594839092905786904202071012980834905106620495241808750272174666112631587099494087013405200632300559820077529492383487970728389502143957168712553239463643666147957978455030525638814696592031396458562403415733574322945788293400150807479889640146326836164143811278553930427492055068159303096078970340339526797966089260381014179573232428456831135281212524787844111251854110463420315239149237569856344365164812592752413326109067698695258956741007813053062867975038389892026745031505605828267244661039010512310741597812971877791915185174820491379554588833200966711738665994949735501013145573544152045308102482735537653288643791304044476923846832559921790345952149178531048116684762896311104218184589735485406143298254396013530640582266708754229204669153174879804178963224691046789548275600389443440336420788764727164681318320304088776313954510680473914963437850791386687642784244203582493974874849671924179864928700489913829635096364287811649404724280393168663868373779877800086359006431370074258763326826898031884776063694729368792373192675145526958693553571672314497744825953893138168786346050873841243212993728916773935569428120066724252648178106537992962430091888059516336723099154267335877871636768716988402944398868085029244495872170462445057824135005104333609201827329201606307645303830961396743638100468588144945800182894223047561833577707065650800776360417609313009336860668345914918933788713201521226387187169856737272927715292244824642134468883901780456496411175615564683429482613606603449251139348617919373938018226404819738793230855582553541358711873320063699371066333259173837988329022521213116393817587267020334471370253505710114194034567388893863564767842075966369916152171860641792469362334720088182465356382620611722407669869000813566515937290406479846329787644656558427689302133072538259533278622859845726498999616065790419054158734184817806598428040912670092080415759169617386732442106833334546061215139066030306755381479436613619720626690992534982453934152376317046191660111567852476249711469657928536140376490675592475960107337129547642968924153916718616288079903311741087151729792194682969926040892618304945170347326400509485498446381133220509039391487773601807098970362457384004072587149557912608208846596463100747485596515114920779865970623317588973919343247245984594114779480614490907112764620179306044300551357370693547111317164444676411579249264191372811736787309542845870165141424844041795545595361811814009475006698873366474502165106293160108680763106005463178920394290451535048640439685057341535605340147583005804425090201534394303115915982821685749716894700614408507800918351744243956278507745779687779316684201220523240441224643335918881539586466264417677513834263846237000653824300368652060840478590074779311184306711991657724219307087914823411592151933953013174249608224126129518883265109372396465906545316660635528900271023817250163471881049186980477741384799903223126865063942492526873080594302860698673476153553708986523815209982683420954999503221987177596075376967476517995615284598116039007466938501652795672015696487504529875504219034067284771040990907016444030108041779825145819890688740091630869351431935489847958052094359327474329720351849920916118617376720912328137387856117381188265985811968934982274211714082922212119236286469742239840496086814691910516664628139374483293878364715980598129256878574599276100158437025427826471725732906468883520492529518743945975722985726729676282308575569314287872209850245905682872116132489480348239425395775762287385106034952040046340783944811231016959001188512756789859607876963777432050652372434528267353809377823325722294158372577761471847327742471880448135052377603194605900394305183931552947397873057988366351393838572628994948783971141000495641004649986320463080779295247838707563181031976337518940541514380320674670482892460098380095831823191802275340238786045435352016875633175485589117822192557891395664725414671545471936695210408718836877454723517743636338029610297650417124708688664095427385858773242420427993927767129637643396332912273844535937054350387032782780400159466156045724134179304155038888940600265932027881536612684035190885511015915977743475779116142850530591202738357210847443225607451425718597131984098493637482355037483537781218990017076772152734026737921391079205167044906822759322624746275894584407617264860549688659099762246183717742400298144373255848786146463045779210369288974570054887652839789556636589839479753820262374998975721512359266820718234919417626245004411613587857812228541619974804199134438545753363990126116358010222758668804769052090272007055133616655069311889758792635409550509388989319895480210757411934430373687873819756074751952180772657690575537217238859498811548417609874936320895539306540243332612699500932667327757244624854113924210792083328704352632636357912845220114753883374029385672206118305733569706988645631597582055197879721020107122436631591705239180966139808793620119535816269473139849724657432818929231926792786605165182890716296867560336691764475009603475901833574580969483610616067559796334066413773609120580079807774479230629499955040897640425873800846389516666659068737698038647402557561209716339278981639737293286977157208566519854745102951082856214751875364913296927326620095644881572142943374945639509431873018304750702778889481419123209620417519627058519800218537268535724733599962105792197975907962027794877796143028802586091005716776663664590413922322399626930486743649523976262096157402880531362824169846669295514892442592816406893623194850562230506026904514640936815209840413771864720600114866233988041819041909263559717671517452071804618271155084225694779726127814705867654881074971429010851227252890421946200554607841634253426340870147132131069397195038769606717627736925423656889466167069771979405606678922702316318244852814552699936218595366932111125696441370516106548328514770397127034546047811731477411180925186444780673312819961995145362711438156667666165527866787413951528883621921580690700276009196936948079587482272755050443744382751243253051521908272671053394699708072232126635156344108059574126661838702630256938113067980802853913747677755531918724419827199109004750605984626746356831837595065697314220679763804555957164686621992781878814523834008641648563718085467737304109359345262488943002654546410548545073189632886565495509432184669542635427718188277760527265634666841321377327438311187278542275964604080887119822565701847809706496405360773903957818981040897295301190671036559966866133469991895941079215902469937048751638326194212505934166716867700214030805382417984461692085282635657155021255087690697798013525118330902867481616729247203055872532946156218637183713326139675266748068088075964400296329842720180797983081314279958579569937145832019718669983691809899174043551630267624960895964621320205861439315217725297025410708486802477906431398861049088678466378317569531674947425877333146039651730678112231217030232789337339921980667415660763733140516533660494341414757350602196613819839996745495809124176548063560665338733705127316717352622924105418904792918218254210091096064945781669782702145025649999701857094715207425347846721636928077571640176858883455801511008447020147009646329763676512987851958438362375186160250992376733063197251334509491833274401018984612573058048658759669272298856272176240614252098102905013958465458280465646231567293605894505539650277463006638831398992046505617585041968897527022323826436817738320841274687626441459852975071315733975563036001426956535147442575174545539970739996421503559101238592843164130509222440663339287501282142945634965585934870130806247825434130062679970677692763798966666925387154071537735779713396477682744551881108553827218594732159792960558903851080829040247146438116146131084292300666605474440898565380177841215741777449961955925219904050366022114730965642401850534957999627106743050690027178000946456976491601323810348095707432316034819299490574780403412994491711610083950711376698903813373298109095552643104556175553307750067389323155855008908344677854867689070128075180059208747909642489099157896234051109688155020121709143869149619950775069745106409147823874533381164115137093159604205922141056262058716186678653069707510743483277777889329564382664765807730025247967961058530312260758449112710534271998295230601124867307697223777369326812464359512559689461294036245653429775935815596400661747249475275922590404554036336866656049980968755339299817866981475937523439089309265716759901447064788278589797613688944248375915552060308433139374664002352345943794821951787573056296214738573232808358733022478721601240511316009037470238162247971172735553035524594247343316744550631774312132509877018410257441531290097882403507435922280383551411918535570616355930303503481742917034022112680189640440872579054634252259794438733779438293941822792174759726085389002677472769682908077863607167871869291913308556033657022413392721441559060940992888565122434925587688146365115341720089166729027983632665931945160844350522285896400529148410577002839016692343895646511010333933137829351857294936185516911015459106575018870922619624570393405779064379467446546574627983694682727548037764674166934106918669049777661549817916543694930193841810363749978520356761422022469489734795344533156877208186366409414781506309303464386229436054489023802171286985830916768700292264005561682159290874578170860503224111792429050568762578220218093077161807230329393959362457901466045830109560829370518862501847629643015519484985544016559764308703503175928770782808661040765921598908088014664603741004956534619799170269024044004598215774651949516932818038712297232780847559429064652927363263574843141760143956946014819097074294761596716596124654318403720386015349460668236043477624214175399226446458216334758068799686206345962797405293877385418737767797340242202014055753800866753461612283278674475896489768917872569453200055396199201523583641042363934207714592655125750714121532751725775689764110954371632907863471599095426341574170656635671265996959635492307874149735522229047749049020077494163210404683778814374068649264985605202970581785465808704902180494043932860114382926538393346785109322363553583618654986921431324776139840262794881162162060425183626913258072102622890555104016262325055271487090801321562753309673743454649853743793023815891380662357630406196767113205213557848431515760896475959043174700263744429083723413585841233249578290558154576494332786854345204183413448714285943245711171286618595551770737514071611985676266584983158942278826366317897577904769162086687596014321585121526771587330456319085979446775388222239942903550459411545511657470343099511463444570582485528053249055445210842437874632872705176827006433037985704767207523989326384030496018343622971938479561710343645012177242098173522407220189960143018399709107631597744596028947973154807175606338613723913533046770245181973514503848351346051020658830585678456196693277471615783507749028301809250496645311078913848366827361403041731438734082465706569923146569353721454457081459744154145473798962441154690537577226343255074241766534311403768688345264980764748615156892402803927675058636563041171681532841629730328730466274417594648381668976293484447102229673779161127126130889945705667030962938707967546144049577879233049826202947493646604377977962149979982852506181159130403612095954196653402282814222067763154904862766161229508063061613096362410980055634098923319807333934682347742146333877212840919390427055619960278063850142903939266411418304818986157354898094695104454353689641719316502357702430324800993790901786514611484537917106845741382384525574437019227225348924571597677609767030240978335652981097862439725500637868159721699747815993293286888278318990888112580851699376746706590370601016535934283181173283563519573358813635746528625005080915733917518396983939506472554439336874937218925100839015310502002807238162288530297020593494664378845458249843876630023095154333153563651589331521716390432215025230312880247931365876711739506693360566247574617256716986599070270742694183826205678810083108748510651889353441680877353553057873190142582706958647328622606673096449733873028540056039606666016939652254234431876976752632016753573548180958081453496019002653961714840004960306409442359448542772367245876428511674571720173406539404066590258132726374154176557094852312306535009846010541895246003791754725185661671352234382943197933942725931229415815876565434792922885485902783525119924205370937318439581122895993333502984744820213252218007710327493269110168163379267592183076160186982152515046388324615694138247311504442975467529550360558778001632009935470748093807022537739220837663555663526648877429688699806976394319710027064111373125258274363813073208034165911284218422742236488237834325401716736902534954518813828435644696846796023308688854258785390560815445725946896898477154758590378498289358395015679853618816705758129806581914155880219675025376131362573566936257487750859010889298637173313541192322594589411150788016099218603531979451214807866816461453142622375841518920147132408594211560155693122173788885351129735137173297025250074780993211686279885707682932564763059026273042979138343089548246385655828054361379934061505184528623285334992624821807811333314292842932148453621826164750570845524343076441213923018870067114361774776240110039904833753671828781062482754239644459533451685221813418278207824625648289496550062874771619717489508249936250957898760011387910637144854585792865148179798214164448781437474139252905093950027912513417486675844227033812798149226013222157625687474100118801611921864865652336969093945752696885225941380269253650972100906580972368103095774523646188754708329367271704545233348668530308385125327715942432572326463008208485714987436204281623673563626033782357671542577387052267918394973716091012493689922012221225860331588328506489934582454516529057613648608572776068416740654224225268652231502814439943618358504648716896832436606871174256692833138489171087689707093875504530249753599882758757946186507844879020422778378721925770407993922205023892473639724335166291587351760168513410542516982284342757004730628447063969324194383532838817586099373004408905218149021823050811627202168437826254267755083188403385815360154224368940156172366806800867276482566270521012011113514441556135237375300695017613158708012712551845068055236602091813589254357401921982962580903689478235840609557188103645553646887074432574676327918652016113880834129012547086240366142597461457482999540718408139774075432501345152832425755114151222974053958320358120519836797436529837365092772413506007771447472459989767850924901169206211374271024233353206008568295208691528344756926147739665609913522810654228730330408155968269118912509036587760163601732497967643264556978878026942504276631246565808943468776691697452405548725598304800687470159618833833861389556767741025668883698701588571891844254026105505255027250926030536402472100160621570039697415517051020175621932025082214729455013083541263789336676506215889712555357082040823674408999671194771299651544336300828424576249694545901906783065611105243825800670110046373909843332643948132107046261467080152690765651293111233594230204201796126130530306839086826194715171451622863548715145115357106007777312525843875288699989808169738488565604550966446551150602848923085217216596078658947010769047928254286018098885652755100569672789023625116132396420620793795557048774723448121809853931125286428414648093893693154807471322187232406605338700065848945762538595734518222349614739139145716036776342980552572118530683008273959965376140838335708895526240552043025851975601800671190378465425702016165550273914396108147059078760052896202960741918069051017309769760529711504108013531536311600604850061103500452387567360629199400136216609331491679900318952335578125541511544344699417109896361240229586847588380880288391114564349059620009958154561737302509301738311208663132551453112322160161443760928018307872492947697804164991339306803610855374697245635230615327510178509133877938341137758379942190028345149860890877649580630734236922815076969153541541064344325225336692387641834071296892077468080461169338142422828633261723133497973504516200485936518894429297646842271328376207888374616595482381178820466297015481329861320337705281874810437254615251481429130396699367691382071821084936860814865329449039297821319279677257923261547960322586732082274499248044270612768012855983440969094550507653034088916799874175057415090107234211499696634829820688291707782681346073336281732350597244935989837513532977944971670329340134039836648566480140180775739504301082920354810177386450578305661508682397862664732177466446661562149141969949622570386994575273397864794674064833544835417297247971908864189053692025817985623635264770351498395275946961502593919593464125043791021465239997248991148703466862396348149961316441839508309902685694416841766402600037330358807459364901715657540168127233002377827894795207238443642197130423391072481853384007151823291561083490663188381375713932227028037862601750946748117608339561832198195896093793274533484994445850336632390613024002030050591774678525744493728973131864232962149051093126308157505599706108579619548942396232112357539390498968974099553450996656530104325793612019720824393153206118864043083472764511278850773351407776213621993836714652196291167882382205245030736750358381963284846745322947239551514903499426396647814985102180853696703822710779909363748367362707384483205340557978318092479547415168291750589967226288614992144650281504058960850280488422356079896808501606451057790756094958055295452777955600844177962516744792117660117111602912184019616598578939604120817344043027071225413784268603295944523027276021976666375636135845157471486426180029600248331180324045353204920696772805819111678813945536043749722283972932764940361282998974388202048029261239507685734991552163695404249270411920540950053700511681171660144253340436647356604407570355532280406096071959399362406206400404978663362138362651806313213407456910760906370580707736420894473204550826529309467754059032701579143985435944821850446039487002834202569664052031410224278970160415958650598905809302078097929699842720930693354219308672862095681012648523274136692440420508714919237983916223890725897281244124866128256832089902204497384448746590744761907815303445960880487065840786029379198909170180654297347183199956757291296971754264506234285160479085913772266447674584374891760493815928148993532108965029352472545608024960499477147016435437110938150153840810741043840035307623078360501074484353447543186370626831584819860140121604523839736066630275483923000302997699759579865107234446907320135625185238342626418689237085233812890775265754613373260293688891406487191630834059696491676473497168804407060968174277413033916130403222518177548111424427692049134338543958448131155992016244755767315365133591337390815319737289947139745131659931779074846086787944340151728428725056401514648871185421401451686049311385846300258595945379265097364475578364022432813767115308629236582523857832734370543248796140010573294564671224510429198049125197540631264734242082484126288841423859671665482946887089916375197815362313606528079666324608646549778947942489818187974389922960692132639114309801805434610712508186021927343394068407913654487608518535692644523689710190859123201211479113624933182633365980043081208453216620450508051160540153344381033742255313220011495251555238279752414025914509912863870831475949352184417961270769022446222066790022509859642297623034137742700971823271786804206823559394978598806308736368683214850167963782116565225670623586257386507060684581247250264994166822630647174181524041432312539951757737546737047484241922623625782355166299291860102180703441546604245979381458770335229751184861315337425224814373514028633234252945768902801951337155360445626237444621768401030713235530170615501342470346131905833896810249820260661568518895886230714160925685933246657146033865439615690041318765604594458502830446826775138435694671421100158547048848191354079114404977258077045190932852176280646956923122613184228546230503830200706136325569776695153339246350056234322448172852281566730072798603548773866499206700065129690570028097308566150086647806754358394274761342059879163864038532656838779598889827750458002585651374561071151300140241841090577177944869948740925443815702598298502979186770550611873155777834255138190026832810490484814370081508950013379903925638890292328923538382115781379481229085902425583744661602510704667764807447321362533234492102728205115420375141439775693785186148896271896322058720059367501461877049084290102600151692264063050082297225221309309212412968269078036258216579539612389210726634231713306322786919668739592006655286162687453698004211085967928569277265406435101366362467504667930738840903276749530639890927161138227700656183217034271538236302573384161680518154581714203156917041828100979669894204746132592971706839011553566538985589474006355698027086005074566388705302560013488099185221484506957139815151946234947032057878701840459090445164451603159835827555943102704474788338286426143256101298524082481505506924278423163945344785150115392685394580678457418276156531249515061343073211329650846158801511030243558602995604111519924963892093400279420111560730615544384221516282661298926414907331237557597170936420798238620480124395324767989317331743064003606964926879689985339307769123506996860150278774954777768796657663270014978452012286923377202316319011406893591168014971938265733025663218083697305228698346865789868177438349218308628641773032965538430862328586959389528505992781507702435009913049701379424912798736244051273334391619814128964059897792743590758560480979529239911275183394668638966851557109084050918467232170754486628866443467944866534811229231331627050355161883248405579375674250720689339929052954381151651187620194179458575024692433900223112652588339762662626203260410396494648817769876713332856009739403214907268041503084452266120952038790537097775005483730815282786845819928766392974942608610768899548596287126118161387149681736783328516873389504720496665906507742203397492532648553429696743731316859353723042829653219871453446019594481177228965795305664693008494105157198417569483661470995638239024083166152225410239122107829534006413728655115134049712592609188792441545568467822540797974397385909925339981280847792760448925475887787379591020979897582047364850714369707757615133488374345397589736097868317475888305491251636685670893939479220633561746116950752760525099271099873834422903108597863830204134526646930877039379547944731061455977641209679435687820847561998504125179168721293162360386188236290932978671042369444928939403849154064476728931943015794441218780784335392613528322994639844994550210040793987934301082292418307056869432325689186838753051948213709455435344520123774195887032757447306141663317197068429734348602057752546384703497745642370777434274266102529302624697671437641931843802089439651747937339245787376828405449295028923791688679643779410674942214385978772289408337399403653464668904093705912135171913998147351688327883224386693748847333287892892141593177030046773130953738310353797089964448842336091293491865182116135670728705200015453640567476346960090890509356945304062460057137273141630286534103516744666937302067754341740435521802451843265355354694382688046139269611778950097862828577883641816587327568965709958654596698901695877740287592870605869682614238792634455283311949127334530656497024581805876247981481152049085896944150933479204689097690399186781743939275117771664206617821600187655932397666368097581625998262261449013182359896710422014311276807092579610345168480716864389824323924562691907617414577242683004474956930698123057222153734115006082007757996546505501092449670361726428224197081277435339390115311371865507623902645492397634999333727264200087742126286771325159279592139732769186591877858677784343783256585482357244140546934722987266685606871093789389069419527045704368876020433685030188945825131735445944460372904688198726672474306413828558947763458423834837623091167190714311279808231865550170281607453019987093099969180535514017347239171607467975480154561554299368878551666033723711942078790414296529941861477700335568974474953385637286973243925587811259067066533144943167540877253824580882263617195590219296099691778295703576557069674174095331773509440310974424424491882734629958944427755693038721093986319755675290185255788641457645340154739495974807859195608124338497932762610280275881546644411609254087932919157759691682756730113626507384998430150701337815907264113216296123172482018810578741358507218761069120837248053818790848876658238534924848133261247210739810761646970320690203366497654864441038247088123966051668143780564828842634615461726557097924162843205463933269327902985765079769853049481875358226849061008932466489129460665456154678245305735800350322991051743212856425601087802988583244419048937543240690024439737907288311255549646759639477790703033390632416601801591050214784379377843377071006594355390193132150472813198054931443557114542543874931661364219397246498963726220621685264793880330204455944864801623355107559161916828013714444755033378272477819078688159908162077582082436915987531066624118154127917294566543809185408168660131126164059420029062159330292431190244606771733918098304110459649877765089205130905779598778165436879587261316961196398368287525240561690222942935300690959091211283714049760245431425805739131256884913092828922539066920316105472920516953237579771823489265760743294312720750861268023907187031202605559922206971277221943802290438983035090459121131549863744856207738849796141937622218048707039039225771821718520223436727881144750854788206361032909141810583512349556034794519015228609583943856158218715182603057793819387468534521191884284327352899232323581250646902376994754456736976055338073980025517228021553223913926366689479932883095730988937328619745896054704911765578698593116147306110897952107017472557058466122372522212204577080231101534471294547150668279746138214367782519169623076171542221578395333385230277247879945121368476777136363092066424161997964399500063750435225145937890027638554255456952992394690233958964569222258200439579994582914009427599625612715505126202908729849584625685165616731660844295497568597565649350925254873933908566687209557561412701017958605912414488637208677062921477215037847883134520352945996716528130325374474655029002634114019196910184409792014059480268494023282835017161966525827288307488752604102030661379970751986921080810364836988885792516548116196095303475936664067382378023673563986552434703489490376140530172771279022910738588475485161504710093838588882351504446734099198902325128275684315587565261987350354960608401949322914607276513933223397930555443732727665923510453436902658265590750720877181224432095383339990992418863238486237193490011372781388706382415417566971274536332329126966367688295039076603709669386964554366797172016897264137582770223571966646412511473872530963286284755120741369435402732664561679025240636011021932674323590121863623666486206115997008608610270888880558516077751758260459784197244149751096276833771858092069201498813632387765929838735191408775420016776306753225768224974640671835321756677861925959766190806965636136205462704894542783169626411074973850544758645114128194672572324125389512860795388921617679075972590908164889658414211082083931715369732685564417929649648037910083492837809921619853055087710182254984846766408356261555977143856036534252391133190422188126002505357087030301627591800778765656848572346628524393936990698495904279338094927201852856874127321741872144126387269922865781765112886025522985028772156906481409340164916157165819613085692755254279439279366441232517376668568264641763228958125824057648429394871355488107091416785346372880507411627777310837051710019880778177592398066999096338776171127207201922886131641201673482506274858054088502563817694416205598284630466264625797877484978119728599205678591804207820518804994737826656068370959862318516157054339202850866448511282321794683264056766974582730822171667586869993897761550401017933792433677414677719522864116697772401657550837101214348551211962444419882781963324600049684421220004538147423680478143128802738963539342814154411584946699793394318310000168967739073165614180460045183055008786203912377471157145484671175068145160420193132757080487929554336830472889405965461961908894057127840258597271926996905616076806554567659183842572675698403655083035638028268640326553423043887862509015287571922352394794400201690994582684295715856739013008915257969554029858287809544459200764102055580617118833484544099952203372013272678856163056426691305790357255773457783046732636215387100642319751535549250731951564567942477337866937285340574174580347983888184382963111438006041129986952830177031418962947117510403653725234404544302945402458578811445965710780934984848041969152328832676309867377556803353926910635662879433694535999409274184832445829735986434826879595459256343729221343958805840847715688138896613461096475646414937395415076776315767962337021372552446804867937005231179969978164893590818009844685415551410242978220975647229130789051788279950502056811590313011206126168721542107723327609769019874180918195777285474507759992950069022231108340054200437861771199080881047750966352264835057232732617292542958296829589246647650225405195217020249995647951891332986047060201047979484206771834411204012162013882119099892473330120181241283743734829601897785513224271607136344695755412086510033294369894941071901897147972414589912462902507293546519338924880957155777016751732645478942554804270848556519457030246306789847117249568370710174183176090417617359675494156651452217138195582633427754185296096426317389711109552061552009922060172657163327053331947608197816881064918251667529092468188823879467296229929085827460960284883513445825049471373442542724101907793198709418288843514623108087591689788511350893669831676357261054086815726975484963211969586604799863079181347460657288907468879726397336374197558284869713379812741762302295793600249033235642031124632920102909833284740642843104304904961896883610081896189155092198995504083587639664520184310829135505085878619620630609628787615014147688787539600992919416028266814829286249180902435253901882213198070747206124009019073686836964281236362739282640135028645647268002808713121649175778873059640517830817835953077747451613452853471155240862066077784294449903073023400154247650173795147108523009890092969509367007841959567109652316001285089350909365082993133776141798237843145831042076683647906903657926590289920277312978983768356945282542400182971468202720026287850754450324327766185249825118256610999585434164947482382382626908591139244037723162584245421191619255596625758757459740482469367942305475124909321629009070294649026097077072871154976554078274024491898210914615370593649727881736902649559881703801527868222116636352374844152766160279096793605004297827263327793468394380600562822334698207942684330326325912128954649309905909352063360593688536764978721290133013465743589976598527484649593694362339861033638175165845475599531559917985456669923586857229331097687690484057611046468626376661436544064347699263933328167756085486303698186328861099463494277980867171180701481672286502905941873014243887850119474261610112261352637179915136411023471260902100686468675570740813037975852228134199753761111113354648426935095789585379121550093807770109517707581970825568394694721535381053452663824524089039605182873683751918812813287854704385459576078840179114406454908662386190679298505158737557359479602274913854955765444049581186773507940009233690448693920388701346335885658807119350676588161305337915710968429187497853923830949435863858374063634400181030376839005542395573763508387833314200273921334604591965511717136812160908364555037146528934593428289929022458083959450397634808397433719025720953621775168439202137549497389677974786780515623421935338588315172780681024372175747333140396728100290405429438096677119339953172528024272171688506734657628325251781069231408403848087227833157209508025592975704531814554450648538431141189061336273294935154381500853884710306555079796950535595388202830430058709255932374049425525143071101294051566321881961477486209069796528761726571215955502076067073303525928206060844001524847209023145672005493177294912060000753686665514661051546045718336160489053554110230802251749521491124077040046343123249282171646252305292696291421855924017580670162801497844240294005879343310395300336809837512833870951217745019105731321247754347101168311688169450658550703333160633372486897136004566521280126697977469506249749736815153699223672350993677287432479583785374413143552809068256348834623004250714334483790130806960378548334629089763365909273740102773069480578317295624094540917706614508480881179914885330599069600942654461125786411389891356522967023761992133761582530536503782981828394549749761365691190427386058021668660191178498055480316419492090667774927198535949873863180549379496946584632045375237268769601443269317907793482561388800504803960509669663154162614221902659979741331838134099603284892864954667721304293404850712529543347803281085189477821762484176941321519059827642402189949849651740442536654100585158820210401393856302147045459965558490323328193464099803589414020396029595046894056082290169188932844888234095903094186212402031299832455973113181546369719308554214921276007588900348364593272684050880941597011049312325846013157467877238545528777079669932294798520555789776342484323206254525892464930796641273974584451962327340905564089076372799071297109573786866722018361431088815452492300911310278607341540529042573119411871855087962830581928077596584586291127236661784447836603115029311806599356788863386088525912223731282125267375813746417934727326986077947344562648457053505213997206158017996437759504860686081196799806491556379565492254630510738011587142011225947851218112366906544474203600478220427378208400311833612632079655179432730306369512866893887712339297992684343834288792195343701331329157985566718912589637507065687817020895961985896888321028929710216434000757826076413235398680042697215735332985562766844147129944223372049404445021536537724927885792766549252124907434094587554005835181566950051891248400151004447522937279916493809690005677130468773985051206458056953292416179695023072953917990327154763404283684409616178666651257163502747474954113966188281287722247666610611060397724607428668251038775721567097795729791536307226310406177520916408707616236357112811393357868204724115589548489695849405261882373100886199558716928526805076465936864915828941149358866996680922828189596609638864585015843654297256632708432236194182789525935750824936692919087968628105200192899160091236389215602738167431376788002979113390610258610235150376139008726349824920152546362404407862968241875385546835142216904448852643884600927223443197769100673145851482546428162086461389937475179262154967290087725306649834589907771413746184866437219679209480103616602929617115262343174229370618269921628255273042261915670379042424203954736954282332015782654254791620386341900098705907980866155771528618280947004899250988536137759269029856468724540538093406341598864848175229731676646241589735290022363740084785847816873352077870488929885153032923137124360961110475515180985981413120849540547125520400642856503993828730930472220070136011567128309985743682179952118494247049442869439904966431073635542310276358960692344557917948426825695631409873059066397085942107530430039812029400880522185476823908310163719073869069314206639141288604476238683442201801955652325275388357754738691607839823090575982563828339075849750883224756457338326148107093898757502932827227920310723309310947626504937325127224066149516318424666692129265789625986610499466112334093399017148635054567659648397949441174741488742994828390623017014316324267140968567826777375541196994890800227399020809714295950017419997721745702993589215896415025907448425054590743970171788753383249012458554686316266451204152457475756029704819510323726353577705174181261797658374694818996637933895690212837570410651086106762457696476806017537313459148918931763661792315256121086912792689247086289257565487999386399028547433709236705407080587523033424988080551367290297695469481386486409684916773727368177318943755401029403407795072910743159224825260312029428489407474830847367336599134702023319155479675997250038124992474796301221690563417277038211399077098192928965759228103357141998046445893840880759847409375453256050904792519694451018217106724702168548517274789335578481568287837095769384625668469702827395064231549621404470836965042426297388525919648398851404170780789233205650443447717758543319099980599837218332585061759147769705689315609752320752969594144643031505926695635763136741301826766799773153289096994052508258708594191196044551040065922096493049310109753752769468471028562884789130762518128013957934264885702749620120398746362873149000908629583139548713183173275789101368573066193644925289905040917530913208377248666036577915366552734983793243131499598843348423066928775236728713776778390086284327317136756614532299987925085031170350260566661537220869804293663383633950595847743877990129085278118000413367568507762647809337911614401983265697886892521753431119302791103000529276395029689013389758267454490363370383119086140145882646351850984815976936755503321845402222613017730164302479276022447872038058882605263359347185342758124475034690190050351790052306451973621115841045416909264465951387107329271989944111441406916962068943706443454021154409281398299661739780528250679763688165569610605600445745222246226165073805949625649814693635924033099097346520147367519720018986716339209162387663178400228460375898912389466653060242147583965461862498095702266924956164358091721223938310281811864046637609802841347486963825648470528176619691006471971971536584692293881134701186210006120448915744216479498613500985571284353604245708003216254154977849440748655156465837973179278664291706216474480345694677768602086889917781015698869538859151817175645434813517458505776415857260854676343453417265996356053785398919179371753730988117608433315017674408115968158690811665379721914180605060159755615636628698926550644303071186735832694509607240031405781205111269443865732972267121064885995384491548761209545743988216436811754561219520629517595947708375443667322443325001400491333651524523797775835913655938219433548244558699178226472639288553038739087842691559281669747482838150631553082812420573059554527580980513512919816173279527590116145203618381702898406791489320962023087663669290342165397470946778664358699079458029645122750189572895018332179480438805492846806563966940767871286484052796771944356690403505587959231398909167721488641974937277520905142790765711792891265429162160292881594321014027727795508809774306928181635731553598100238259111328010194834892271032187099587902797825053783990527962083227801140203169549495108362202872283761454611312200008075207129389671672350708447400810175822654370268082498200154280397860813663985744389030502429603907456139114920234164359816513741508362285161966243778132227515740917997775114147357730216751865314066945240175305542616583327166517988643866286714818447788531831964984427683155694134696445715377987712891304888126017191445578409711845736555834965687178192826951931649549247352155985946667580319502274527196671652793121519980453695539200886284071889232683507072881118241336560970195307684110417422474465539083851903732640939830667322015681954321441013388758444752056234257602986380459555270234219100596046540984115424201772575972593939365846408327101615659909424397704228650794242157668853334488231137023432781762410184974701540527082264610933473479787497095443850081953607520665980576401046753327637562400687213911170741098326259550059907827108297914509809139397578733055443340046266812749330951063577384337480940754420030161374447365119256372648497579119019398347691055049630865951317515486501191533625850690899549715178985532479309940222764501902848640333953901906780071324406947492812321393194757113676108810410287633623462893359960647060145007695037795025066650497543331089847263917105551986733274459511822734546706293874645275315387265021942225677389330317391052395045507354529985405291251860610892182423829613984496525904279092975811366859254542643189431876638932700471746228298781652704266832281180549458038698000674417812242424267526567510074720034435523021138947140435595186216271052487146542540343269472456349384929851708941627173073893605797332001146688948912025965013361745289924112720278796779216566818446430496407870067669990891490898969065672176189617033951665806772758801036605655715608257372940505806598084414216464842799279408418283953545831256742876741698571421144152268730076292343391947765271538773630178319801378786400854322365015733173911316007727307625728386619841633790993182972142887894302991066110552554497108493494863872178033636586773161413989914172849732771421769151092559408783666065740846320777108207804896489788721280473654594625271294261969833666702133388475761109747962433333615117080582775006669420818548784779623481899543948405580118930946401497947333156205798595643108445451543253939080332367266193614424839157340779181036449801482615856476018210862763511711386906386638522259180710948819485930619426231951689418043929191529418006500190332395921370736292943423541184721349571730904905797726138595695195653863244782541213839383639960538142101890023383079353089126730522168943231193459156723907015520303749149548700275834985535346444667650358949656692247498863076537438532693549680859596995019536679258182194400040086590934324251861131414929087001694086472416640900453768732404328310706526404190035832679718154071772054876464969055157255475682799138457392979110901382841739937209014044281057352701438803646487177841220997331802265767312900971639044995840020507609686936392929850402647628316539842183679682527909564421478150068298440090547952250345033665875047466248744540910120316991074078097678902150230046466203474638428767148901593216989900278003477515937246324869708505186691566359232635464798170799684693291691801446991564439611089548542272084065221788602571731384557079150539687210130876100366819729598365235094180707993319831714960069498612394787433394875792437601679472182486993102222344219313803062459219440646826848214891319363455953521640611889016356885483027237561371243698305650836983073971844952019332295775632259405852683927030442207434771248370869429658741489007542067048994756346743377411957599636319535123658620132260694874869675855681610238866199846471844572492581072964368255593430132598168944212414855474952275657013097819644842479032719440705063942348381582296020658535758384455004024870450081133122399608404917865524679839770649482614533235505392777584697104015015079318967142678162558398965412567716755902984629109064252485913808411462303788193923184460413710921598319221421528604178132697009403969393356324024687539273029295430443174645632557145150555478910342757963933132872856672706849649339433964447636191814100966828209124796278685928222604795615087895713399446517845018051109151423943348324964943772932837925392625093428320932794472491073194828078536406586129047934561573821192490296672158668968850913496440561096152225740891943577203033061547150378682021344736081126609529042035937695985901425799802209163763660962457327656768981506873471348139263443872746728074712200219629050328257164192904972096976851521368765882196811442742682031412522100630221833409372516023441145841166647295998114284948997218229699789336094222932383399650059771166186277886335261168951488624626534262053031721270018681883309453011601754527791688183477479918565889853040484040935902412429286900579263698807900381051231708304013428939094235942518210329189592035415901455014257664127389320205178957028224704548026022983550375557944638337254796445911623215052121574360517489792300542785376041578669491376772047023923082480220445365759114038381358015622107129706482523373671202229352501129586592095827983843157592565658645772744685962159271308011354866785866106060353782741601645465509877609975429761890037104984357849931648662244209440861253528671903990332431024122650576722778357178750838017139053097178549083657529973010893175141164913585311131775291670083131486538224537535904192820087889839760025773506102539648890999014504462353349381046950264519463218666186645069064745924504005483771456561282381261552786908434138461426145324148157714551871330403815597948209814795980964662788441593337092474615958449695649730992322820433167549781453605926388060205027229312115778899813391363345184740667624162559207293171286704091559384098593621354664936482870523680532252093236775079288316738165330698697830432746568030030557218698240286054009294620210149754328855380063938336282387350242356430451121600352682452439975971669807414604635534706447802365408495516446129051783081329864674208911472573457891183388378152394508761870238252709156962478988074038654260856832721869661557967698639718903020274990429400223033015947568599734243286147009047656951263482918882590490323915307581368987232639078466451461665987282427294709720503155506842226450670876051826882867212577283617794711554096214290993641455773166825722854613417267589411106420002334229392479866196034485674110460347604073733233338727306372599025772933345979410361488616936471515348317423767251503396836140496604789027621632683711745054915177400740241786687141529679924719210703371374493887332725747796358533756031140324674568664367649354637916131651224775817793036827593951195772163926849508645261721542125654167083420357428541217753080758874984974875448150012278310345587189746488959099956665797371999344126918723272039108503337534027894813861079264650168573167134781360843734389365860945477043950536780104061273235230997365514805178227950476509834041562596352873383772688902445842008887566297406880003607513114255033454870493962868662500052772302462331650490418101681506857537029843296802548015280547838078809084893519087177644246352426005359628106054429487652907175397178689012385819194727307621014556021005062240848430633307076775059835908016542689482372475110318045731392752903042159346023168218423085457093193672165310060534618815409159881870831899080944861268620814426120736662985731491529671256035401135052181401115584668424807711071843230399795840053677958490861809908879151386355716168912918315403397083060771162381369089386074466286786663465842875209080999598230156689408325881085314430502459782253229719975046818119484431285119905702791510090133484762889115079994852935571125892989940791256066395919108832670587899938753277866700561886713740984534947805900223956639547222155050303787066763184209077764857124785679676908264318567453477364282308956680229785311957263333693005690224786797534702512362677158998883968276762667884437608524895005885804461456001053226895533758020341434514123474876470597296708931049743017469393023606519772148872327892416940557539049104834786888513880457476972043164570465427556580574199918448082590798483003323058467748100253484288535969157554344213462484963537245686664204910094338169373613778713905073894686253363129554637013262731494816673620647857374477083716701132305350306957166945150319614255452246651448273017702356341764537079014536680969999201296417827160919787157446460432406099959623052744071986667893875801896412968349091099935736439362178450496710867207897203517435835559125372801220880574373110948187973508745686702121592743454776290823691282269887725558285682164939700415845919404583302326097879697406437477718865136171918169868910782573565831100947653137724030455323798175774105820918639043091827570978310146747139916349526229683306525932570934629574176708549618978531450586089930380504579769923867558367636021157939729383450270746903866558437533934056867340919013321276603966306610534858838403136643741034293432695799594405442785369400631129271975170361895353587277793839266757063894773950422547513451491206289537334503032018694330619546469253094614079757094313866805220966599205998985656187971808079250700614010233139581646487270301289812196221173047322588108277434912072775034599893787210826454497333037637335631594919974794261791198812301503242907673914697799314998544206815021171376445587798251255012224519825776105693593680245594431232144296038227346829526498398926862643394441111415471629965114442162037010237091152588373940753869106516833901428036382473899381859608705371360361161347098439142536086298940490355162308723546332247293165395322090563686344312351073112283594297981189191868551943292034366377167197796329626624677733385916789743438689194466717030852297108285308321239697203521894566631322867184274953646261321263787394417944572503391442261743784452929841149876700713642843267530928552432280311318770119644903516445661890610532523462250314817178993994932719844896961174402490066273629484267307515405100607324750164379133512505864633696653465219901379585274341298008819807567711192878970915359459064694232211477993276369468954867585178450330907971702939636398786604454437514817369693705236352470192435127915315109347762471792557830743863511932045168443823909938697394585734156154971809546408704578247510235054690922933504811801453342108164974934980794062174195234132823576914769744300476980041508586850692796631317974112294808093021502784917406849256453590640785220686503792811080749794031886191183973457414446966461606810934325080203016887056493248413116021608062778415950526428898560445036648730222276660118211361455456804140296272500778374045188721623374156995511407286432396908811119644677711270987166707944956178556060431563859021295783529257080283247622041691229500537171275474605863292837657645144474034431205450449194706304545752611883757099575569702529764429470431595781564588490726086829177858900086595011157410600317821772876409476559943673171120470046634535794393606863953404365557270333379105835166916905715835216401005986859073148678904429744146151400815337968538014667519789496927035975662801455236775893396392500129320320766519757270461323683161158595693677141454734615320562984578941091753130787192361410035408129794007830602314363422513950584555061822211639984392017257895044226674440261687062884991379225104181071118679586344626555307330697325778130271525058326739353594833899377219070712319498490937780604938603362182954694176807656359125767751511156426025609425260465852622686125887957523156762250565432969038221154116515764192554451517083747845231969672151720230257549516655771474510104047329420543874493982300687022765159147636735680059101354691706549947569655919092942702503327476926777145961523699437563150688265768665644727023958757707992860692919029123596155040299091768266709216468018312915084883704377521578997190589104671726473296323845528560303071212526467224415709769867223572377666690505887982042420645014220620874826436824792909364970779590669667354623995751705747054377246912162699163140286468450652509712890954743687621017538708724734487382335523066989571156947865464806831489752178237837923556925749676317356523585891778926230411921136960452152802463747270492793775141153398778596562384744697034218278203886290543399530672152555070921652153224257277858949188815622510298938581867064762367734338774737199036765565492313841788156233925795124114765257279212918519762522562872038259531812682145565972482452807480637788607080777970005919435844038629402640701449249103766397647533115280073466662877989945896652252703959572242076169357199663398178976538990851487537316299902431419611100136841062425422556852215891569281448060810619906911082377181695255107867216039151715734542601774432864456461177453203385157859956785806569054833272493988594442747540995366608275104752195933074308691866307428332522872940588002996800989832065426611423335437524782815413186720379710010441278648658294238252006892530822335082192285048009656473188081659036855033182091029561547854865777890945104910822146698245651363387363970378892090761626439526513493449091683918751913844363811605655626030592877836675608920944261062192575647163220313282673372634607906037950183025840402473055654343756361824923645361900295571534208027166649043296092924541313382776141817443801140036972074021630681388269783238540743050554158698055570535158756743753489016639339997409888841409570964746824472184724527456910560264227295648034840635674587215555123286184917087767837973435221332653651011847634216026674668552701205760971669105838984677788829294384069376404148115294644083420365947126704289912270967825899355985779938404189760760804437897903693102800059089073161631477881085592941012418766358692292953585958571356562425461580577633368928868625061237469009774144454488364918542913491247103771358993485115455784554579208482482404004338871698509961671736820531875645331773963331722273074681284563584288493739751925920979829190951750756788338867832612315096996312834306163218818925613055815700125416570588049310189885592371127349166597959762362336033594265970600074604488720037271874826394065257475302394899963737809170456711458154880501017234601467438784769114074554491637123254032519000324459720268480017340014894741563873673089989854115947853131128789281531847900949506097553872941697861548557941928235313769580617396308137342797771638786935299159629967196521203568808264810772437473173536574599321844037894448833469390698701060083377354165550873057899281067151096544107276353597422081647745730488775113126884207951057226024520336011851384802199964230088685951919820158170476980056336021890130821150820007813211194193294539864694316820250168723530993091881266711376282809113551216373257864286027711354469498838604691714679776866292228961698422895318147689966419033883228117507586363003343218865074763552255259598126172437111805845269546718491628759186811988132114107562734616534397369564386450953738488381981119388319846470770469158238456281562239111798024277427445905790762779591647628951557331288509483957999185814724806272490751957231866259847055509508665870134021525899649371715456505532117299821880218711732338383895852551988331306056922115030713585006019059698264135113238392767226089640237823101827473430476315723975807637746095776288214273745390938134941407342383257584487614630825602092050997041008250424230499060098908243376398426625712477675599472249983732594415165493613442352847975123783071713325056052816891835999124675861806828999846541182034708077762601627120175825816295224500142019475824638088764775780403968127510844479635641826982038594398493569614053553826151679772977635672482909788000299166624266899741548644278897947478069824783220144237374090466960519822406126188363937060076446345179239012680315651154573552946713767246652620920327749430913422556929227869229533788747782738084169972947969546972452555542335601731384310492970480242926687512323454800878826121673941280559556293644912717354587956326568044438978019901582478825909322778163070294051231894361048004320508450045780115907398710919578854268225713447463919534683225910954409745550747061441795290700996262963014757544623813280730866953070054224296529986059900395807471499572840243567498799750684869483285338099016868122159597998117637329023556207412366654060554721739766986372932761543971748709596869590680306707800337986944181353654819168790593625678931142133733403753129027902409097689480642586722446802769246322869617203677962980253386095801273067669142615537280685778847646633244202140249067141587468754848528716049504640614039512467734324405520613518494945596495008976998842642797488607020388343571926315008786991919949639698041697424806436861074711370337954267971658927767219567082120737135507032584111070138918167700940413148631437455983030911440276526452417295802665724206901568726375658046264621135545405478624665040407649595750311309891314510248543885626526128510142942107562349738458615167593393475096335424928909222379689170348255921603866978026308357660667575359397258978199420889919826117025801405640835936415774524160662430149944851636809920549674891650752248190450363037691902221735613980547994976589860100441252149731759455821489833561403769259147468206783931309942134984124909168858115941614775329310307577733895654350383582311453359226045298799633034687599490313223723429605708750548071792455001160251304676192159490387535320738743255244666781518063805790958095326796840879794650915136822182077009465150556178680995248903724387320389496159263540197926615619788547889816350559461168462207452776548674084371145739194297871925762078693014982820680987418215678151038822908838396019165652339505686724814770523243012152135836080379327553548719121329947436915316650888250911576334440249038532503810910245661313212898655425115228659090826065872322706536713697002456690918647834904001822917495104855079500889695994880601607247617344525059169815126948499679715679426029096109808121127792023698942240123656596621189897322825112918402733039010650545890761720833092349994283217472396059652163301787729826587998350957759895625464292256766619319178046027895851035876423539327203299735876202803065671778387322286656379736436183480248105685747974707447578066134093119626252973895296462856659558512123038657081485039046142276271784488722975712179759760552113342657641536135252308890737383052376774280191119590904781363898468795529799703363972567209217274067881885557445457998084297153344313732236487086782072585375480685575635777457298768726955721010433275175792886704238774895167931326345837082027786641867240533948720901905241474840562471921477382938378533001727877689609827113724355890349678376333900627455099850962993528062999750073432167479948289091082733890769957883493979927722199396668063684493524436374619087233087578096304102231652810256323515098230142606279409705662952413151180371352715300953074401709971357110371435632494653111978955903820491394706145243235908067223373009062557620842579951560990296857522413458612532580024475426498324041844971317068333841605055936614208555707678723764252382753340670055080624375569397662898461366129330590684644404063762858382148377143397000247152907483101057996941817290650245281959550746543997344188004379902335485378878607725864275270188532784637666373138814715556321461457753677399400629290391339694744479700986642499568408311708570151397770703021005612391360507662629490205108811858431682686668983563791489267322181529610813001045111554005550970797689427693806031472463463731803323929032087305043972186556875235712867968327801194328480075215930210644758116425795019010868138115850819005912125844805057035160364767372378032653936906033405073120975478401311473449585045154196386200160932523388131147769131637814964135565408024375385162238743757987831815709761814944474122999082120535742410644702684342585990348014268068116891120427086638335417482051282755612750803526152583865959686192070991776379994347797208007457785339736282806553644435229379519057190497635936150783687169140470167339899688446027305517795807246135823658614672511061278066888531674475157333534838785489204975533073053978026472103422354989972423715222861052858213545197471568307311297994521987784241680840177198032691964610778352120307840365237305896739522175492887216659128500054032207180500086752632394080717376848673572157414206380459774687154754414089574653460828207121230866418643053876550771142704113766638979625389617433250607513925227773518647309012404675747491355407043939095149268372290326383048006546303755190911816627781605872515397094818134277839782773026304535468142301206027976561440945294003094987088974013340678677740803128279559369068113067713598854904221741296635795533052539650580327629732250047524010054182483906187025523115347709859816640861145182817867343836302291509242715844994105797319830997164104625471196231035915146127063738936606017419357767737771080356204381161473399505575761609674967179508839375275733644481240568188562479991056917347466421537541873632660985273893665617193414505421156945498844096279862313564033169453225278377654209232383698747845223195495195769518885473034316839604839668495406032999937454714617553389013229636436217534344846710357445188298025931688393406235010494702665605569927982283786669560318286433818447743435557673315051067363874870290268350098264606506246568321902979989805229189511831800995557508713141011494806129895945891195098879976040661038700759386248587128027663558972475433840860247856858893230762735001197066966643143348914318803753789200185219261326303009729642463400703875035517561005528996461775379150443677344048772423515046096370678393898603226328263662755479349560584938301216573232788529584500737956650828303968204669804666954329712667824000500463797434344292934652110561696585684673469556868906832697417553562742437067595843292911952432031654420338063786676460604737018071773917839139876194580407447366286131993466429851714113253008250517842303381719054638375089292258876708446585364177840741591985132240948703192182836807371035401654241271041163782013050774132407578264230844064048851094460825058310859804409293580391165054716735898033451971705466980138851720004722251461173831804448664088397887810668605952639803407955693830446957698985279642054087312610310262829614677153810743987730338490851024563669276029237755434557500793459664544704364928578420347367622269356613697895505336339729003348398228065784925695329075970227045793252546098278293678333627052123094639703678722520073748759123708141530145236808370616650168774391543739376752269561669468255427702403897960972604997658156416079421288615340655996957840749849294210598145989734273143558851151616966374945192045825270684430292075224869595451975528754581062065911857291819835293924701149666784822891302229106310809487967113697917145490233350020045172464140108778130231831901306453193395670786964293826632106333804718871948051223153758004454620962845703463383660032791265508492938036426349310526803150907792800528414641056250057987030999658402877060082070609653859921131582315688672895265314908433174976243994057074842843511471429094199056460281410579905648870916390279695737922474675662323469770355161038482874983275681497610566092700445484449766185681889263098287122770761621791317924531593602312129151336251892909683209142544361325476136427707373009685907462008962093124298415611800871112613651766311825765911886936421289721254417623060605601406149123053793427976281283022376108690314814033919340441471340837683329792097298229976788664302998668816887977109201490010725189829428396486233235327470836341591770309067404324993432880105837748582874375964678985015601664646841007932807878096368221953642078005652848386149165944149629663146710178476819393443530787804236224081034032700331828504096933399075849430787723603253544396125075172301043699821042324090389799991688776926483262911178056238590553934507316623298445872735535682395236375636211856702517252382763367858131009574745073850031377211713326334588622149931224847141164417352439382678032052575427893899708421475567782589515427786814187952624592981319560827852494971715648286790165062125584868795142552637302121297443476157585160207963162608908678869314976338567285188062178924704139805428213000278647462363453750564635823353505945245048161402400143122483136822521926840627907206499588292142509734984504794700874667240304360061486792313823876781777365498407064857932683571761069560213203426939338640131661816343272571386533801458980824716115801049772128813216260749355354878020610112565807213635362195357248901392924894767516280236801328153111969278274764305659866705324534717484524613456875511147734336007519273371297979804079391671110534659917777292000016144554508488150962520406906035696056347014583610572556322366203764093957695939030823780633137274783555819643481496609229817206483254234573907744730352163068494230629203075850111398121002116658672457187336955898297996517696333656971288783837680957661439499616353914199976749876913053289197620471818909885736648704450309451812512412710745716421027118352689182809098332520330151637028857604842780347324548631574500054201673579977507243000468354838431069201909202300960038742225552711215177829301276950176608343997147398284043491574910953919306565062998843041422376901939846120210609115633750164614068363786458036085126150083002414056418575825618714105895201633426143093492243422282927396946432667706574654794630572880757550224752332448712607247689765486349010584261869029525506267039958800192439636630563156458121675609133265843490564176293550379179594770445801114641293422462261342776835306446347027697021233314065008531800305437977839344189633199944569467111255981914416231633389816025375873940873429556037596016018058256927443568225408575870583907897231896411498823216396865310058771848555360956563272081757284124110725674929596778228888877979892084505883987795835921538095936167106262672020749478171432835169990728705711448655104299940288225097426179710204778396240589187084239197343070996182022531410758391070960747718474168375649374717068017634673151968806999348155858685031462205492083951433672362750151274912043519999429740087072642185087738406304679340951347984627754713138493812158371402943470108565908061044971396831810880324731464287201099167338402342090332461343935176160675551135997870346992443050855823424776932323020477669092783268667258074180286788349752875235525390044695163553653542154607368512951459619987392866388509842535280200731419733093013710268280538707520837970600005487112666304130219432985072130459227032715905269361032655560859177853522779794011887458094619770773097478021733375209948954133380339751369878107017418309319737765771919625120244901300580117223910114813971146935462602611354320966414577846394273005062253556373783459461757472177660021886268213244086860355576963888104504907958768009544715329131772661678499445178106101914382385550911161871663665126105509543672980330219306359469906522781767292184915166550885192438392109277439945527863631743556518241760582401545826429346549400414594529895177977496160067859581087599859468054857639545896747850099041993314118565255493495673638310196449912692348581566918043814987864327963255983378793383347197911162637689967597817807813966805065010880377907998229405715292670085611066865106658174009160243308862405456379314442884287453249087477120221477248444218989916556024188921127760007778031587890517944222472287911074264573014016622542598272763144814876301456147985254307004692420216304904941632241863254027519519721092737412198843510431460606477815059342248487519983276282395084944280189030992838186944765345371781479905011702338058223885433340154851412986814457223011840330192249974158075589419631949781149329623467756802348482814583968669906989191559974988227406860557669601018903398856759574547346830794249996229998602463708662294306142456240297758974375456392743070294038394674588199609647640484903476081848257184548362249475833561198677774850062508220012277618234766315527251930665601809520894380455281489887501480263946523494951702341289583671331001152221215027028339207851367726332696450903249255403128386412462903244069751236752948431895146290460462086916324707599088842598885390699853701626120552959765412539280506789341629376916535094552514408479822719588797075932395433353934839199953294911700066540168658706892653269128847620109358909371579106882747489223109351291158784464095718061679522455948303656038186452497968366950950915202278263433739481678668878452682281734744758225764292268041172305820895820646822457867844428950190120624342316424128117538939847060452326061864546376784934866568947108926067009675887438513860422097746319190708554534955678953222176747033304581307978264378636757937021033404343640239733383923122399055185001482575174278746814759398559976971612708858869771101557875292119903623059224018702880597359425699619107523564563379022457655968886355628778054014077837088964372562337172519545378268620608614614895136406487300562078898408063603086097900458326577500645361540253130996429637335856106203874281737241521615677111367100622860650956022615744263642519419459434984978392065286141809672261577018413837741052970683466578916203211012094392587629206837774810259611262789781829624193900510386736891992148707253506104519175364658961919276228938003462990044108644610210249440525690673655268817724274397717220927261491507847982393594577532901298319820212192741537572370252660950907987361518386652195800427450400207300026823127957718218393753664163565920405073431832043818058373322822265858370924291319167776296635423097467341591928752604715430749711359412086915652004263071948094301591317020316147690631940130450303103431715615950388716699774954867459021826781447051551258575697197223406868181571074526544255924882497499080470099746524247172572154082752667165207032711319222136337280217106379932992147263704055139584325284840213431555109144982124574819469416084942494510123184605253489768564927179606666106771235851594563643634760031495257204565171370467020272508496151913660505753522993024152718589556747782141198233845503665297298941445294471098557389074924792910838124868704662404878828278867801759090793745501246022040310079382969616866295803984905291057045472853215887684889129588031933936627939198820761771552769334924615473364395656462762421075945988912093769772419897589369456478217750877511714182783539875387249118220691563127296489240408431850293412206352715185745293124780493238036172665014716704306683476497919677189528567402803048364903811144639571365118041487370495602237038025341198913810813545594023035514068187041805404447111459450544065364024744071920668028438191298523505780469495036762920236315891403459618071355533119496210771304029105507247758210109279073210543146529148036285716673023720008340908257310898643642462219603939165327784113334541171542430238469911704211547875845172021221377668078155395257521786398933700842811607058336548871489364275913354753005449278953668443809831246856806995436294098431354244937983583989086054335176756894671940108404437255573145363262993584137717418032421332605357543492952955283401975373774458637149028744015104104967541629816101848488921617314626006942213383322323459762551264071179557439434467255835106282697724668990201616038927997958656985491674687159137891581611198421581371480074880848844872407603217803676848653489952498262283446832123733214357811970343390698003933903472457958004695008657073204244412793110029521515980190229280787691323902540694653048262837316195509724354860358734840314507627030101268322196607397781163059803292097983909238262405814633415220084838551237262082351819994508904660194567118751773364361371028891405837733248550401542779191349152640925951895051797653657394089970920942101900947213247130740909288782828652057855901059967751702573714668803195465130024510594438407801554012440462868869566144802758608337351414135992230469557371397158484851575702523890707029113210772098376236248198494736708551517644842309571473887899049962091114652903690954460662906904613194237450031877366794594552807962767590502230591033497456029825518961445384024303930646385246525397397265551083133804319853724982175735955592679596092735386370627394832333703089375052861388521865495917762147664677890473309627715491677722310144152593712798207277992253308615419416448844771935620695556894257991608140977743466431013892907967641884311045990082586932562611683080129744645847601661903477904193830885953489147829089254253744118680994750529405791531559683122794042351832744093006298791236860623486094832510100250129556288953163208791284627262627585755201590256442361646568171427373785670827262395066777108361947669450005778332719557064583241226493403673785682465743073679505039822034202910341913185899427019341024017985350451719301271823987932351662353184101059396504175992374641962425594915621621254557390571756641150295685991109368624038664241854207450788149811267200349586440050510838198993729897781588788497181240601239027383638157376710386919389640430383637118660227297170133840219814803384850062241888969767595423273877234786102664346620311673132476316070918130345265104779288092570634071769323174575326602563817892199140041333864575067739787982767674533452530790209616636744639584769915017415764365875444265541285780628878274506600346979711589785140052494529916879981656899723000044592489489456580851121151248155686866138961393342329837971678811059673338707755149969186412453038556447428915955330742169406187923764610164447803205473191996423233191015550707314382884394636187629051285082267615564966178319543036307446599946765000842661078834586210746057328628813244799845358809967911782218616125153210656294506745886516945597183375973291529091106479513259167934673313807274854526283017281333193932916549345531774072919188679189901193535570045240133028409226557702297943322816662124305930880774858946720273402742539550010006018262264421866228601125283107851376776002922704309903256826795620735639882161346362532755883934539188659736392219874636408614559139901250625199328710586654545141222806687716433536964627680262072572027369273533393331451296893213068106160583040342704253768325666025130235719842155832284883048305238803365193711105068731412101020598116313110161919894707853913322397124740262863047230491241058392299886111607301438737918289043980578325817934226589069215625780447604827736244047178135742154383642645342598688301887221733398748510620062826181594232741672032886911657573535726912857930465095931697576372556114123801656874949657253812425117250775690611017720298721166877634292141999683765999416678274712868859661954001929954098916660727876311345963216007853269648493463440642635155842575140066581988007652836127919247535126633414574244845904639688584384651979412139719268698123470859711730537209492231231432823293639670022072540092250444753731430812300143303625507076107047982765755930927516430496586943517778925515387710957888993433006045108565096243318024732476721162703478626871371633049504508755911304825515140069879826044560180708749556598959517338826793721610987793918890069918158073201180612446291653312785796928967041000269126723351640819458309586326006851353186192454779657015434376074579001853976330152515019363826944894437298775014209717472293766357492159955631310294043584965049396654473598206620342986082911639246638907957899242959993560561943276772904427144385998630017435079465096625572365286992520463958420724142713494910174094218472638976625383809282252888223456928785915896606260502891252560235757351234041256618879752324380455894887430149802171567314269195101421379712861847083794643055643847208362336232276328668436192935385536100254574891541679723269181514965888510322441852095548596678588524373949671338840473329074979180806556800394227010118669029339112452113772172985434336275947999873612391427181944801767157935236232557055125612662028861232064276982003483759365846743615375096598837015601055002040067202293519383936620820966347829689997309254251687925326370188068481874853774424916887310742522048595596140695236879635875484313846636342141661093470333072079665647146813072532239746957807675371527706430977337420977887390305474321485337085963034539109693805072216802600562042142126261689017300462220786986346732007861228213006728116160729184271516621227034558399284082146386021427841773269960220130105161797746711789131176395285879904891867142579588880719945399447578732318264565222728260755824624884548182348793368919090093390029991508873624938833709629109653283112499172753833616129868228681966450277018766176696391928796108241398839444872835069514073428270345569411495300110748723456722237477669311116287406704368405306805545698188809986027032667644067726769914304926128160917461160018932106671267425656669840277162284223704065759707203423380260063829793953367739315025441117760247705843669557719129565263876445337970028717516263351562596091851871213883600696232767503776394402167777216660499859185301192647424051419441346062515480208402540872832020139512373361785037060577158133275899204346114066156944098626546379337819297159900024726772930930697401002791453369519092394788945557019033458088160912951935005519604250272126529841675813388361857563045995490564384770230560146150038161703847628226563074169192417580873600952829620944576219522620549235221567320392203839794426125264691972889289359261512876445483401741076212928762609825014653713471614021934874995117161697724552058625860725396268575452561451601459189712796593143920442671713434085222717424169421256385626802852937205282012419079922597475673668028476699385343687797927873110839287455701914834473856308245389729842048427435983528969064655756040715008372501410339820596951061999352864679749507354723026439964550945098704840020336412321607351637312204248394450239691000212267420234050695123948720418897678340012072451891998086960514580811740229471655477440816459905570333633608625913764649709316627695389898463404631337051284584332984694446968750728685103711849438508221094643828778539672806420448688669528716843328059168473005918335417460561772986987598504619837454669180656089428297212637721241112722495635241252240738168287845370705248065468758098041098591319167891596880029984759268230713685384609270176345280349255497138266724776153984830508362140050943799758209452499840041629870582420741441798339568188065884132564445885371138985527168986382362516408171938778951320520876910335716331153152066376085484603754616981574291158621862391494427993621615214570429961528055442364458169932641654162296481209819247041348522246621141855366466663322019930411083897278373170719546207833610995833145833021769229427244871674514561777087882160502855636647133643317121418383874541162403864879137393775683515138263121856615830780316982070265264355465651770395794737556240915347087751493077589610615216037799121985354751875483610319600426150432014716638585008821132989078480244099551069612488143589340572010551564209355111972618677645329490934083328173735968447543663850226149341946553832768912224272982222855176671611449502004020145091558063119478646752861002716282028502485841200256288991051441899834397935046149943076467045715259199179624197452905780315601300129434412133220423023848373268581544408263753361960841503350963977389778270425703839050561921998832766213815511729244887076631217027918578553515473430299192011860246227001567482572883067003263683445227160392220079245097259862582206358478720450795825173547903296471068919613558602549196840689138095716234527900799318623070943657114561156633812078877753535641242244027313189254235591026816671491411313727537619790540708703167901463674652148356897073088377423040076092431335892072650669015038440213087052270519544374397307451541092663421181474012939279768161156948402278626609349897521070925511315576707775924404307466442710936650536519893175722706985857662562439010494899504509141960244294724709808088499196090757475092956691225548503904806462790111352408323474831061725134321124521685943712868216676327943882359271572942760934795978994352284269075607190156227084083849961617707737767218041539784698131916750433876898838026684145478067703440088346194196287830663929106337070025673012561714780633621274898838956055335070464157708957251306761724967727112155141757626342943013108541067940132101838368979329884945968443068740516907815801314039398331237639402149433352138272118033868885520427320882329960007240641637986353545346194153604472149394219559936435021968275425383334045044500961688558243625888809755041051514596786940617687628220383343661866113882958337349285094017403157617958959056586171394198101201318961496856095059829814189605646516084396244738210601162903572439543316742178205252032441136302403283589485618664844416923766061906242622168894588104744138376131176287104870453596560082101611511058070519073023382549260711389576208096604406743385096791422290467218400811942821307796581620804765199450442747145034467485923406000931411486797801051888425917818345292447796892405122889210312207633371710551252022505622679540585275789206709657988209759621211761756031004078721722891465924517031005051831694116522353083918334602960521335888943718913420557902203398578166694152398689595122512248977611653568761575714190018581460829671758897889855985993847700681429029449665447370790846845576479884105189002838440470886141560296559128066535684622044911586689089471009397930631583185262298214588906509121447892960202970622829676871847962607553160925465157554276167062430176107362880530324840681982277947239722083374747070125412400792712882518980569765878183956993631841141768596395370014970324422918227469082682674524949273659443434187773330014091451524688435859396729722403469569724415718027325550767740671223132276431071452711899115642759455917936938511647693834091786047653102847069933776164178067785203339663435882510900820931973596277870871331890264309607660419874090236888637005733691034599137363480514480383956487096849790206845426938308792802390374517158099857195394589950456177826288925483292453834107643274928813330640622092185165849695197572158248972520378398853465832461993663442627129435763665801730615339816864697705578036868431874073219435496120923525383599127080648188127849604127686427637219115964074774130584750784913773074245087804588595842476970897531280308464777240535675657391310220848192652232423344802032903183517637651168534508294046628903062933417352346717514372008206629640877864395610080355688151286890824315651765667376363934304008310536347047472481546423779637909809425028539265546051450805278028538696503460132870125825766192966514202439544930684567558675965255053335073720309431250515005603918892749767146633415803269415279369954892010131988259665738497153219630683052574014430228673171485400134612581470146965500635581882951568677940010318736124355526100588493620541843591547821415460444206525967323621131890561182854115514483713587869039688012214679162199263041141528457864134457919274246512289547707064690080441722276660996296890677352456351051160921623131937186356177605043838805409722624916858949453998088309205717577128147935800193316771446218765323188405147138668615013398372706459636963063309057152241423319685986039895307173281124944803213270349955212779231039642236773786695539420555678322343780082956118963402334284464877675333437899658443816344218575477599287250578693520319282974716771440046825714903892729975813469899196611156656877923916838970317804556797949022187316991127026428924045020968648282992353087189290971069911630729996638950601180086225571405680763720035871035733425619680284023203602436221143198226775499129251262276026354934226903213955103162108829752757448668349557768972718792702590153776288640824616060246311427378147614422826770405779643104234182929751818009505837559226972543404407165384569803615944187230213709068434725542731221636016971488403918118215302307926577892040400670768497772350747033444944587120031899355106997757092128432739022648728468127011430606811607649876312125392585379889213662057793212355813610968078890419635922976760237271845828670262580602418160783299586953243437651924973273442248101201282542000042471144445173702304876143641217796209071993970016424297405601837429614958767601852998963241322317415269002527125712061457576190383495829393008267819843042085100013100593624483031033056949186682895092554923103612369068524060135596548038391588221649440924591326487347597401915424534064522851148161694426211588016901046956331161825889048060553064882435903791377685011833237975411930116849931223302986122572806019157620954862857755493969339533844541357033627520387630271964929333521122701731053598464300042458074937052513894058505044921017247129635414350477206244087056900962876026317389286221019060426300674895893848632148172161594204265604583941658693533237564626516599385937635116484369477407730624372170074252311431481536662391239253020706135722423239469313396777797493805963094218388064241017372530758274645695720708558369353509407108323633480524438503451371041458086135031165544482626635437686920494787581353651181049683491876493584654823985421885401572844297401411297354847743333094253681840624830067414073042903257829117873874133150787613207805221520973767107540409178885852258939024173683339886307890497572525161627655045478193712320303955418822616138979372657213824709333683894645141494948314926504734860430437289436609471016896017061919895674095949890192190930912920922444150431454760312144970803711700154318076731332847004646576098725458394787862941433778632780268586580836071952338321152528386134035172590576546592184099311542413667139622435509064999361062206358838577923773229926521676300809085957938079099299482842691069678666050391063558617062246794674059373699461482305041602120740092215911108207152774168713732960159250318215426719240437678936880267403288402758335269861234644091294207520461759077748530620301944346888241958548215220387152354008498448926132490989673717947409451615105733079479998252417559793925108889547644682532555983367615247591500676761035443443369021376224800420718853464482089689671248208340844953082505977229091593918234377369985150539043751874869502205200296668924197823337834972441934105627877452473939093939413184117982564483070164899611488686482848341259023219764154523788442894098845016803751943101957152674608659744401104854898416439565611207355557985308226809671561573061463485292040333226665094789278383194321415185780846351219116611424821074435505309326772084592591432166360640795110297687584211709343497945315919627531390964324217951537964682868292640505662920584082899259406855391574392231184640641108499142240198278877791652773715328777823813576812194922062611885646527279498494063739201473991329135482736533192909899479422348726135635455795455524301771502713190200969430060848921494502174969692812044105645804291046823821173164293476262355873166536368985816497583965063699118930106746379353476258091599120870126012015565724400555544947073811162594452945463530621768501640864508221864357392503454941157745076216342890900558322297395300626231732599433413834779373077076949632845877792068443018318785475602767071082004970043558294081721522739259112681188973920721035615715768223214203430945149719287544563369629033874232630210302192380079480220668925614146680019388368829192639246898828848698167045600176163805785963323829392305503197463088320534976583931088099276680656143436665780572909593795793105540291889129173237421890033879680827189587231273560766636149435695727474509965137536903960080861882066802644511657225793211202360728607800661621778282710947431277574176382559266601445218524417798054396792517356852779087108317528575134200500703581005826936570345411864027122719031959559056079936715592995588707038967300625421845930723657985632159953656779826109055288936883871305641546846234154945755716119391118030609967170312129007510198654551852223037376416776076301638732956847213928376595158177667540518708247539345489497461946594321412723731612714719678114144707083087928732244623301563880076930108575140884356971283736911382569295976139510127810686405933841381695181771165424472353000512654549910633477620725747698606861415684302868737844313139777332587044156642342382211164561236056858799202019799788567890277699964865639362814286915651695241138853787717958809884950831754202516496683497920314264658926877129573836106610437366514207751720577117832065117505351350139295503598488060164810421818297016239282066864571755847392027825815435828290465808108716691791547367225135155083355373092815342811344105146193551191555385585042451071557053919639362611435304673265981659862323829095726074405173097493869361089427294280465362031661079121640867296968193523383440784482660300994575179595013693398403691603499754302718214653063916031337838489868439561718509151155123113574968922665746235264430538911519195090484538343819881816204133801504437200812480799093360370549812067838285226183210871828983611254742837548489995986589769763243271252882050522693357197034769628332126770738993040829540897276893574267645279086843041301530816421811594776458665113784009271110269675808185951495869749708384851941794665810635645810443951335016983239588917701374947553891245965357686691641214918121598181812093750845131744286662118275210678977665483535070709850322801516351222784522858184031313920851707203550066682827661544286911873628070794684717120547291915831699796380102946512456956439975081500459836041643335613416964810875748166253442606880793411039815724968883955735775184581176201707694609629251225030587266898540537249648580442710994207812704071094864097609919703411880848563629276025812832368291133773139882590075759459764649950429306938872117763866849519928115921416051603272799433963196944485751747195115380684258672294118158059228254370506347963092868362854659673904715832331645551663397584202841537196426122424313680872303855074512307132692255231803071483341602123827444322748824588774418720192742395091764763581617589132436862188681875490936628836945321447249215576237352073155419654616818120778263636841826800279733471600023209935828358601434368102248367877402864936251338596860924063537064889098729167712245764714837350307382156344421264281636167672183901110111554157127687004811188558906518818820722048056537257744229266475855115463741768755410149310361535990090105010953283657735882415846216489481092053085951565210380264985062187111099825453571895227408888230587346732026369069394759811320765503475801687927379054274120786753126428144219449248751514005703482910328538554866327941204454217793653388028040298069610970078966934123935470857103879610434111594408377977119004622638023403353815828415594011144019863420755398556154499144779771588513514740929511003407152120543339525165571294429636551132268707968925442468410187930052362216869330208708795292333084137437092120651761499480858863065700542110567284183706148851766451628308968736988773913233716884284087770077851180932730767414092570247926656836650336323338826314284970203704562231365841054422187722560457041357391008642393548295008973206467495653098497927651889028227600775364840012098761236258199085312214218321081320756356835697139812365441669456367099308322419420596156880990167472450742730644793576438335860913882900241840871585883205685061153471616323287754156295874260744686105206324111429781480080645302685296904521989229899443805882943448510561842862038225909443844122738898358857883889198050844759467971621715772287111241716252018415629518647200324295778789964602859136890862514045589017776160574638257088807662343011777400215810967312708087477189958923473904882835980233001626545355193106719971471133431849667743108742579660674910783368783272329170088416548754585371382976266024502135266636541456266989192504872154093396286504242583433403911657556590768039495915684695274779693590497649634520772742590582198997902556725259759238603632670362668842386503206471814816922668575803216032808332277103288718291435395851800469071930486231125717560631270800122657195622281424027062775051619567921297967516159174821351588493157816021006733366634555885726281088370119290478942229684093988149887073553225718994045985681756769145038371034889570612037139747607034161665969525296489480398512504027931396333533513779272861532665289074389547905773421936709427072605016747656397212905948959453827413810367252287156715770558598936973852171943480753035881523329237216244247736158628882641876132165494956978434134313374258362802090545534624122891066363215338314986511639407135832983222018453887920394530010574062526108168681608386525789259859023199581363142535373017591126735974868447202817762725526961952035319091339007665430494951709996628976392007197943065211766295706760116757725461376848325821311646281093743152517967860287710546084696730765317157196870443405443686957194362681563238285614243833320161972850762372310907302916297732454174627628346640103056372158564098057591656236840129543468318817419820204893385740035546537377798293997577993851645909102418875758116215030419931908326699250602527213483745620394961506343335489784966960342028873556238524055573310227303111722839846542652031828681367194071709901033505279355920523557524200456404849999463697192683432652881219726637455615079994371629762506663093545650626764752494560433538230408275698012813644035762270648370744365131502807575556178261775652805553347060234389308690644540274510948097126276620066173364012521753233745550185082297813237358069393122901911476820394564086410468640059771986591900569667180407964241864722086871706680874704540831532745687579611561954435373605098669577561767568759396602517190825066326953939176481907123475469463815381203040616498904344837353670666257874482240681132170232589104420657989837736447060333001503576718520463374222313830730768117015369167897707115360278337799657804612629402446348935930450858821165231273893721059702150329672610450466948227591550255153555279863520577914525785548651654227750940523935839137338213020787643690408733148882796883157496904187916781629103961107856476066543982889658347741840926374758327139843863549906280943298448865144889002793364475903005143497258123529224262303961179062357434612752272316559845700456760798558136145364247211671236222495844434306238214224026439327759490212542260382010779308360433222469194477837917985728393507672171682812280951237217037796748080150694347802149913528913828092695126211686404843438237965205847376788759572911903942474330796041273718476540145954076022330177576664445575884857809184799711878784205529382836829534486917188065872856592485456708674434650502923565175599357808401672888843179515294018521090278547569760394172872593408153613208973482113088014861417483192240938728965442016010703097754642678321217622068517571843935411388689029865408111240455241583392964073769370049630656526319338319825986984203921662741468914450387269593818218021486857853184047455488616540456548421359301736649522190604120699780794938857341273285884188312260755835116680108752843696269603547076565942842668317082031996897927149029523337885854038462492786943388021107360364390963499348531450064126165336474158740540499893702341228887114742316690112052135942956302308934680104500067120911123838296400549719208573661027167180829328106645798194614550756944087078882845516310765895629365418628106479659457366585673173946680541003063823695006363536697330869799836914633072074920158813570474185919827219549183531944521078857252240445029894068808463352511596225527901619692133065377818961111704215905700873266516077367988802256595179370041622294921675398147193162372756829693152526260808908539884321249094233348435451609726292836556758391621392013838377966632085493757333396601946157764847344525929955314775331555880820660671811461577058622734483729557281758524481099800628004266857624234029085413626046613681381400324464490961991071264415940011872763550249253024845497235833998789027938664750908895129280679722001394563412944743931244717994502609648766948324408991383245013531257814991036142812951608872264810282925158464025836783174721393635947268598276498001979071744395462189479739500533591830124749569608569785196151283935886495620022983744081649988440644904555159114850127714174838463869017065338331956384992495717371398339090180363358261336887689995203814791878574978225218672753479421345892045207262795787217669205576505073842644312679555499316824072503498967682586845200398414637960186857843720882933662643974477570011090315532414278486008302281979763169767433583392209240297008600283014984900368388461859587797077670856641361378833660748331592867860849397037542171682252468516377703344767074682815011982512881169873499935219602899503468761194535565602512654413311232107012322910622463892316605843303034218984087669213590374928333218096566106419160769384484619628455879860282471217385311126688044740951395447073551277350153160677178539709063967951155980497593698829263760291552647873066096503835090114777246023434625713975777427294773410902533467371402043240268768071496811017870000547084110379513759810643333637146298287899556261921487089427392276431045019012449204712348658491796027086175657722366556751996543501421475438207201461209817418742776575662245910980663390522870426693990393726588736763930348640762156019203107671356200335315046142845150096309369015688709773166561151150380066849750448902961006320811283461442841168079173011981657594448315438130378184450563737396690970360343019011857671942690162120616748857012450815266549310529221966711711136212909835757260057158120331306746627165774161860826227272061361036336099548102218252045768310146810170746145938415785322234225901918402507354165633765407357031016816722290858799376206452341112567670359754758536748103582053403879789877133591297953123646582590579230656534406768191744132081770460224613804060533781579699239923276272326015589346822206406586809106378951789733774009934042979624184346375623664801052061981445479730500272591191836418239693084589360991744874190910106493656932110741750444911048511483093079418796263985176100381159377698084753246063754101667983110085196667302339406266883588644808580437888466928036027197510161983384897076797308776977945490978419955707679034566002508377500889422471629650551928918609566268836684116538928750187281546700170505866769745639589360877691379698378730938485771246615402943349495194856539804673621978937309733162810692593753559244348931190190951901480436213999547465702088023225154267922170188477968457724355141280045735438147968208383747717149950550897180678117720432952028674890380464014804834978026096204392151370530986193342086506564219964555028212870156672120121439210792208575121906016057531407707972488771826831165806434753191016111182022410936880873978911019384055367399655768687794760976664290290405537524246253063118195169262530739455217255992571878117898089559653738761751172144842555808710924656071550819179773815189005241489363398158793107265105912950763515639916533285243126640555822420237976077649072958191422197034755317518305666338155565316213180310382059875634705070856907197959183017717900012150176437128440881377692698688673821015390211516437956505659266150713343179889064773413407485966869967468523575533120112739595773564955096367809713090344397957851252308501607505759142462457976298767522048483432407028659830643031788410034199516059848144575627728548466806855174086866716465291654200489907119637944091339840149090350172349156019933869710804990730269623447395998090937823548311605970462550179676298443027054355756956743149842703507625887257401249781455224688898527105508472529459225170058058601746051005497557587009019424107151537903938718769682416039653955737728997102405799118884628558122046770277968618963951681301647713350776260754945550852042050365486444174939005233246424837494982736961401173280248280280189579643898313304712669668298212534498924215181316939188832161112491016371134520435032288941702228097226266649931516372198408805354234474905733578098664676387831242075345028609428485283793576747153691496655850533162120650815745710553984784656098302216940825617134439707026645000869144638434560805018595776315899675453515753347979120441398481701581474770865028939747097506579313845141322108308755209275984571984600533592433835541161921667822809198354112350878686914431720960854637666804239295827276073246877163487582380168733676552466484925202892661409606532683234675222678677641383655665112452380602784864146215215968558999604429015753943459401142290959905116664066893790240264316168300029940348796505341610403182986087619581663961937129573181751030556078548591247049575322609694475846077042705870798830860867354261384189179343803816936088557209925168878694511370280199202037286992355033318579671703239601405962881898250381134527620232906677234808857377240862540605150131841678830026221088815062441094010707246032545318239513442622936324395217436484278008871835925896885761214377051581083319354201564848341134477406539168679416500622273520825382290998750217985314222036906882159013715992638853562613984618845042506231183994501480933198824744161959899366075067231968569476321640396426329877479814431003147509425787371545060241676778670462603561603102189852023397987633811725999464470992677587875008278180139652040354037472840368468014042738835915287562826209839652056471014562125829243877097402938038794253090589278808816157070499219148139792322077185922920486221839235928280226980897602442811216291124154079323105758917753886870812693493079002565581075501637051938408671667198284666034806285522495162229305773990115631866053835766922494059130560197248466680979969092467432569620600858484703265071064830211872095614785273034162288412542645839032825724148113118260462456042795119511555966010081642691710132983324114977115262149562040198501730847189641840847123388504455469557125667795106252815367721685855025092824775597040308577337703874954868316750851981795033267260375640327058000307027373561133422639736764596039810469906881239946475982622253686136426437455518939477404726849483019379507712791752623252904930291788194875859172943574848493064695241081094050781918711553885020294453699372138262322081172554654483720634694855112247290532295259764798788209200231428583450498909798681885814954940053889155609791343443470490402426871554096586111582295743642531631329463722457688825312640056463165433173732978463545731762650228920024305245107857880101387900063826839961371936292252016851647886857771217660138231139336962436844033355551967331897617978910510248128595995784581611541344039305204322218254062350823657207939097259668905970452577990221023956602724313832108575641857401314341562960708697438333276504084049267267823855748832480991291778226295652081289919302889854355614050565288723932407639171747914714608573219505656828922069223831841372145674487646520094978711853037720529480811389905945451764844332081918978477657046614882154003261844561525801857144801928815979627426864747158544952354449451317268820806970657839857516430949729313497982357132458869512350150217607206480245525814013201406430458730768933289751814842689031345001061700746496814771607888092977187254094012162112191580994321316589926404828232881445299949877080316514112222764399964026737406397319227782064586908092511560659421947205353189675437959003460198485359576982378966309435278051451359934240833713847340531536165093617121193295769196866307536513577680682683917714881908544283216073882446954192343989360706352755236240574317504940286022028827819432312193040336252533833280026461382364107634980888714590881173146614233640489634274442822073667342669012937602667386075900474500234574423289497336222734768361509337900113483223121103475381453131609710222952916026389211539472304674370645360781405050525272532183524838799430007685264520563924642129376999473947534833243812399825563117423686784832417512065680796885581008648633392598658761054870832854308299477209438197222648302291209754996298523432740394948203291672402194641639509667520590746174670330470702801901882600138461802859343757995876873987497784621214954857379355336519611004958109058532820904694667723906740806049320442233982908216633178472200462686986533315904236538047083986760513085998420114962049298918012973419410405338820323416204780223762659019201093885156806367972539844963697406404720682127208647989835471214770076063017068282062589580059683605772118028408356041332976444039314227109154951381520191476470227210403590875326009005235201469181629102607696410819392431777980278617054167297604970518195510140283218092915803243891300053534863390731838533574070616678821950558611754657777281175116645528382231048773790294422379641326516265794217149990295077874265166100515726732059628807017646026135128598003195738418634553897184554234540861260150669840016475017879123914754154653959266141419231359459596110112850990042667560132474790784388884346766239128485405716844652534401349938841456433181088026997558331253929440695648275500310066413128732104703890712684135268426297041853088549438586664405105772578546926506523607302564240767589317509228918136325193283474892028610848944752438119833327430638288658781316040776980761471219250008739846574311443150748972303042835987166208116010810831184236505451080608060774944318094717805168034550513042013190978360461433099600483367828378872544838897859095364794311683443278328685587071319865860701020113526078759766666616925822021026336089299820971247203755830140604498897199179017300096531018750430148281130051563342970483509800208280256974837016499925803902460653148603526415883828084838817966970926112401174803304074578094215739252243322417674675305102529332286374856210484960323899979558429827761033386139100455827027015554756352084496522143720356327133001312506984518139036669428851234544066466086218854176313364950273235107540104045349498618196059797847428097518981516250460220590229039857067465581108334865619054049913462420335694196271772946162719289808465505158455630161995564612305292417260026420395313015798090634783755271529133944421896991631941743916096881754547860544555186569957947647553236513175669224854629816698341277108137554557024621223057081397868181726283689999750616238937025108551934607924239021792962875664912472674431042177016516161641660105656033789076485599445557937893773368524920887563159941418044470447330097817105682591500316877526191664446655248502515860144601909665744281822763166169334277518548791352479022780475638070831964786480647282006301047636325289134753547337190452989895401559335760227883251533555425535864873320900734888978580812417572721874164617122475314298010165731254212546413344729376333188366666056797600919199929374856224455072330993311460390222643167140824192346856201514570041393464380655221291651611219973761317526040359466241256376156517825317773055083006851609160176409344594308683882478344990214782528642374081652081261710972658661385432020856352538992282653314267769382819098688145277328308194523034977358595637527915107003589223366349248871498895735510428758085828889154447734547179880104331413101662835303802990778164579941731575758093596413343252343974787055199464409718109941804556485365937877153105139586351365952829048222309819100301986180686041590861884502600505438973723321988752541930360222109654848173975539023495978232152990799030247688070272773066438131271561121585940828730901660349644316548420523228468486527008517673970056165250583803352621262098865494770288432656016345434566032265477401490182900635218726462430403195289680977157075793166478940269945826604863936267227046820169060177043126817422075211344309407021236854032595759846479096173692631270510700040570825317414524417646800675852565214704899874737728455251164315252720976742121883172320834746393296487261424543863344129321950255318848227411419679547629089080924124281579428337382383412705076908850725305214244728431495996176403834350368771499265995927782811203319039967060756035708039756900096336769558100115720833247177459261554221424165719369258358075581630930061517246595613739238622533417650467731033443433544811150400245285549462274123573222806769615462308862391247183882585503382706757926990904190241491066420325486085938657539977258340646851644611720958044408299216310712784230435178817627590951350046508014585743567879249009140934361489125148532793728388816033711710367836565013830622471443430819120132128849051329380757109136153069103523454422349929909068309682208769758573914119842761981904581952900646539917172727686709701229804618399992301043580496233393596270902600146040613048502004021500624912934470665944265831833947518278311816681411602891621435485616501018327847174773164160500901634134108824428412097555240107509878866306089373548021117284073593373242516124204890102085615132528709300833271006482529385620736871399335611185240719053807376570012482519522712375085771503056663107495571734649840010481776927340667805181646294049135798642351932277034655762459246027790360160516045486653634053052076236115892187719661005018155288828985958326547939988057135551726995777040222384206139481757916034192091130510283780813533356596706137570317114797978772715120982297513643582606954585614366944019189688784241120335456717729130820674636446265258943467066483813742736998407970884975225696121214646251669902817644435679856213100081247176498537263075971205191040028923023161287560530938641774774715942134026083784715093239276286334783805174801093706070854490914099936458733251123522158742917053073061419853978637737757406523639371345680686699706291052112531636215684359965348535401938560377863373203022221149272359479139879525430846538677188419448713192112646833136953621984988891284986452885606563214385109428195908551575331234482672968392867103100548344689768274140988057362591600445085633898855385048034562937351060971764975900151801901300263316378028774941686142349690578089397100177100649756918172494442745502167141280039377705705857577654742837128152990235350131074225936905501663309659287565230604976732771897798993935872423592705293425430244059040690413942142080353113294322391184070969076032518384972055635532611829285656210756065503004110919572304811338683199718826400542189401154397698303218010113322682559949287790384139057681039353422985159282761931011252246536509903696255518619563910833841201691398308729227072257403250143884278889675829443635022162299499546600438407319785624564818833216966238708806559509036328970127827899884799608327624373367163450782091301340296895166345574920304622189239826095794372727887516970375352806712377610394971205608767717510529632867797598039189038434907122583056180859294935770923254655587942917822563862204416318112970785744480319055869582308790351038404534370624117951486739810861799383019014825385139769563038534305071374375791992848664964113467228119921826194861645058371081555064605457385667242579117837121718443959220114482855013459826211432313327045844969526421518497415833841286632157053136528906948092531204368456689701953929621793658881012712760025159833661586028219507808506674138964366586084804857673261297146056772218276136996977703758018558968852835666929438776926175018675315819013622599366752091335224274607493666970367429791034059951169656593322117680455828140217491454336468772572383051227199291977194892524527323134698784622888446563749650831259012556034556741882913558799045244729658925497001799078713015073045745922322342923407226243739931646678762507800312846037839309907168727755407506415601785235285942647902570723419072755305230591818753879256145138622191660454933502945048014844973170739924684438017052255436419962151814886228509054461366079995491596386251780803453970192510872405145250445179872775044893010610044007671706691471837006462081436031677293315130708949126965111421026353083189125910242105513119832950478810745861382921182090208917268028063058360291948648204829069731198626471787468616648680826158488154571636071211153040071520204560831573349138026407896428080565541465262720447537861819865593583104410218885820901135576290916084363929079684344567798715799264257370111848810034936319323741051677955377513362017387551624132295365469308034939910477848510314186716502055652187905240602573182797795557983964746098389598822620383943610734970319743327128542454409519292746601909831285324679248023344629488059038664814171701321747212186303713833693695363907865174034805771951287730958468917254292936129673328864592802479002293152258486346712208818798780687491521495098100035804781528225908823053111429187507550866343029994648836063370014684241373913781437459042466138630145392080749303509254498628919502776386891824992605590274155159399183555599741166805418961702653498993108527266094716574305325032569889144451405118235137175661535112326085601455354724661770005898162300024093680320904089665950516939091978254680425109721948616673346019504325319019952708693317220210677976895394788507625196386882769170914806365755184573761512923163736889942024457269493390109373939042292436306262309684533503173678781781319613870367905774840711037820137204966367152949287841198631692282844578852517635985129683331273489798554851913454321895260590285106526767568737573890144703495792087987581515856868635483622331760115705035136769096785299437463432786534818592032024426887218520264866841799365627678038319794578548534364036260462249325696252440475638042090546020081312190139689279763046786401007437873578708817679548871184784233533848422505372121216258175143112133462649675435394559192015521528179764695566162429644060232289467465715817734022530701428556731870373185533544672736657310194252144911241333114238433387207457163828502598593104865249685995805439767356230524238930680412738402614151883589995706676911266037490367101534226019077480392202673060581133689084682714764858578389671258990087136507364917393224950854022774756768082753682811491554492480762286825968745618077795639814331613796923176412718311572869915445449834450246562258631895778889863868410639698214164206997460153581488587065922781570139189042304052401218853658347444400783053190721374929462104582872850062770139795031305449585894268098988198473381458669459109357286704614895736908350895740977589820621733165173193049826112868982325901951946171143596067842226057787499789789579578351382586943586376139079244640642801921981049486440016292294845519318745772775892820137082424008639117369286118856597908821214418763963014750393639299593221765308915615183761822304946969019899199724986653522355433916259177697385631909541927694506938263022580413297509715075735935201421038799571402812377402763933855205355236746534488938494081250439249201008529262701902642350335781707677492910047270893339194524499875878219582626191790053513101459625900833758355448177385512114402040651308694950064033703843805527353689275352805197847166323897170840330332928355659398831757372461931645515345975357311703039812663828236134079996380361491551650072496428400394997510928669350154875675173406374170822636004818298812766038959364154594634667976817418657554658312452628533954986501784718422356871308779955134501973336478034577744086397708539297183419657641122143293078995342476307354958406080912440691414598026144397595817908254488154816298640860168580300050553192129807522758860355420713787188150231931121344571053332471865719087590776062412339462216575025309880716022482507981480249836482048033427893074097693122830384537523224699005219160385226041035722731938095247884533740334375523814105402096472985070657610961376076664458237821781324934589439086957619972946588628823839041505114331084405230314593123601485878508123417070130865557516677628769514828612522914459475422742944393540367196419990297330235191637381482845585842705426772135077566806580865821654694902978099273276439060350138101881346340221869667572894780337156198017494985824870592275296461408853888668936105537752814549354644242707695391821532681491558492166194993071590423424644536934810508442730514425041720077744972787862357630300984497898195950720566031734600068864582095103678353180382319377088443623395422182359606764342485096642064222308703436817841605473231316037124877783886079347718813269244803854825773232306657358967487914387125123858322506869590145541749757772985298055569993500378998559845504646175610054633183007495132437190729376994201026666798559186405588390441756618873730726312031111163779662245662548718201829470052066811923930549343945285325925974646220730860509929722031442030173931697407931245363053995144214570990306643691254206537902384243249144637161070771515335458506759310964753298623484453532450935151595453306385674154267277584689440755747506944224546748672311803070377272128348417943753831229724462172524339294346518725180765848560667845445517700135165555190989716296356771780228004640888661473844480488540217981151374329419053065778403017637412006175192558283100966144522334485922843344180871806967262307643703932900325434510372480657197683324665975849841846573798740755221879312167614492455745815113556125471758780815177777354517639765781656535173621548658009263522238296120135756735709537896514396954844027296784418313354553042784488097961703113998592201443425027485557732283013480826136431781829659087530037589282907169784537673468500696841017235513090072460261209179628005926873017164481464360011539672864898263589100816035638741719666864666243315747891413380066179124613878423995967337549702937689029147517067318971491605989812731693709528315523608636233196316000516700672630408053842459578215897404677948010551875700142800445023303867008217848479298265850444711813043825988050526728048349357900835915189529261977260306802909021631043218750965423327240622521239989920779089205098528058225501867095482596885040574625231304689754595543615434200235806277972590699085824127845329143298463323046943459696716930388811480114828034636476147707374434297727281660964603583051449041846201721299194462780521650279342167279263586191001618562774496401169148549016119779886287645104903657654568307296139763506971401927723229328960041660093606814869723749167087058576350596385344810404811869368014880900174082813032624409306827412146560868507100273074649434025462294354876730896029479378663176090315781664757067091997012313401000446377645825396519685527800412558749911900306448057617042056475667186967375079403524539276808251788151446003561189402250428502607884684961165627044643274469563803195317425957881550244505361807001911649376231967285722018516986022778811467404652504396643136273189791255991712013195403265813692318397385548476270314744481272526000360212059533738305822850371207566849021192633181862934969989466247799141137586606552390073645011007878324111651558318566324122174388841767250332506721016037806140517495977168178227420309892798477753988317687372764046422732927371565226205490813394839165062254064411214350531239641506039731764836637320881500238030817678470355644929285730901070537829606757532677389835324294500239224928080197721312746326131268507037963966145512716065851655460178771829564600100523205269046509476512481985110249899644066505283170656322889247822905916782455738630575112751384152996565553045393858137708638298461090104466401977662980014767896854731121788278161101263128666974000733302186028887675697383766232955180290126527101895285727794092374958681212962303630308026183770152444675423375139070455786117339903641046626669268177576715103713353787109247958237594083278135630444433913294004305986133997468190136467609962943901423280731149403293372314219346524397936630157134199777733840391316947592913090059864493337702583612090522505827179432210200613625760513434642310867259525256916616177511507664418311082532880251239432273716762023752441021675695539318204437258277065403547505087919791948711001091427148921575043418023720355442954663781360531951035743297554265606303804528017688734827389819493503013730064130599526673677084737141133846510289920367628223013639857429296017531409492138560478629210623406474892006646323857614887768930160512397044159301074181205709720836958434959300980544581747552419010753469253840529413529148490082030797880741635863803943483706157757690785474717376706870158543248239409792284862346886626895529970517380171669507442740461698383898598562008406913845923617181956466587592731159861200551545824267076680103423725253559647786894632912087386946196519634181985659206884435253826052444571130022430755701690652116420312816542391842086746066334099839587197458432616943836425563755266558906938408363065803198130243515122041147176698817759725664858887619166147682900496703504778768610088368418112842463852614570800826263750432326862219538670713673906087920415856203472261123824692599408649530894263712502215469185349258686424640081133814859059383158370395956935065697406935091184987303556728976806618146108668242301913372919230585551411847638141108098879135943354658278933409783722337109454512538821434754604212366853840581091541778994124079083286600115650087535731905322329075132916205367951786405360081623420171719488898224873983181684486964050705512316794633908264534854237861441409746523868439009984212723087144653280927004879758859451302494800053192169121455373798078280841485607985131607500899953772941236880478019571206101255175896047017490763284876505171025191157718099514864620041820532155880454132132709391303518202445531277634928678488960263912684587966326379952935601708865835586880115309005616629609231572849159965672367540409037324371382185749288041177597959693651147194664667591688108520182642085429103823770601202159801393013947279666936522677589206769177130264803219276877249501742825383572036664193389820028689786716305344137440241643433367002723269552632231699080131408856414725171009679247560135576092155984068890359166987546214128596358720362214335054721244266361529695483047888228073524628663671764102975542497639206056834809358542405682966570384372536231513869919965819533036894062073909388591270908685064720415844330277341375622740702941123668789078052168850085506978835234431066613330867398082039787280832334254358782623493930671385294587743172891461748786823689094159633718838087970675216102527693220488941053245646447796103535155037768155342217115661340354485314486784477038977482625559737108635918647484605306133856437299776857842447724304950617511095938638333977565850851383352432303615525152526695224929611943309496890358879543378345813685425998869385084387278144936459844993411489363228035555680042830145646768941385596381064318240318450682739529562669250957408224399953727937760608427337770035259431212247905618284434211265489947556541041773535733733323338411803943680939921424494678069163393719229199927813032685627625596909225598402131052550678785950712580034355534749696523669952130817448319729249318941337862541932963126296775247012964192367129532093089003397984536656403095635335895218508619538139288070194269711655634675857236930365002314101890718754121661468912393635625542554732106718183792358758082525041286855062647217923961829103284814335598307495813010778706858501746312696053839303102791425649752089684805391241414992627439761250679172545426179821375748444435272440296742477606495676601650535306143338000442804206422944706393815912462118697870754404469906484684351855936529243412803816586509391661954094137240744517383299754656272939294188624266835804222899324937553213715788813688484021595284181603598875407821293318027613465424113858696004193122758998532615570406089970771427567254054780391244415655261452390901433640754701838259267236959741920622748658720686475612686320989978948469902298715890345240418176980758900580958818451188759830152549122719567740719701772886435644395989376397661414074884081553954369858423046286294382100959190811190661154529122813830059981252533630755420403756780101864258533309623702181320828892652727135100759261582580862314514830691387815750874840842606525586877483955350959503756119779393012470293206072293365192608538743369706150843635749302545775253047061518214993981662655679902012658718685874986821644570454519440090866566999002698855576002796832774941060731666257856318725925807714228965350514997542194041153244846226871020654662232959046290545772427611572696873331980266411682301537534110633646035911431124822122388247599553091262676273702274438967504361633854351766333173404043418099340427675496683972864430306883406784600036603289126847844184931047064929106721708123725141180880672453157764632495863663998186366552713845411282663984574338645207529430553333347262488166073707289332588433858115361111766003798689227840552743275292261252862760468381502677844918287249717331142461789350076059792639727832217784315900985496774070945698197523934891416683406549572698053435996006566382779456329399580802095667824377453393036880049089652754973808248833919007239904028951642560644005743008147579153093749509921980312486331708691673048861112165707489619399234866626774752237084088154134843867325344908306379271145145021408470380367547687677836297124972068880472213657916346823791299039068939329275944970093231464675872010559661771792514309606430208753649567630771452686807059717034241029078148706416860327555740315625302361391261853736408411062108796149943958818204949286461565640633574888266413873889366204224124777784735069738679277002603822643637811054783952815121559714734597269167169934278139133690441730391237940916672717103222220450347791490418259000137408721064160846474311557895870222456895351502339924164385854532826656218343421701834998138898482864890065831715468645945502005286974883517394767800061192063338324165197039802411476394315172163748726441414981698589325386626889056412553158222106566908195275729238277298980176198681064289193018328976919715562870888895358503290674512732775127331478004233804978855499443747857278073976405884914221316276973030267830068402664337897658991494545969700946178013292939555088669155523872789024799549446465313737498999471718328478266800263153333129266110444076155686687451471386695691309799116986389413714506131329615074158725570642897174930635307399532706782374332958324334469169567582430876249944670364134281065643722466951298696784310185714378889830746456590186860731225098741611815191484443478625430318197260329880694083133763867879032981109653684701432258706918132650307082777413194358880243634168838291368566328234071692906180426309304751423227533636444055405489365764895832818434833710798118285768893170288273761365609097755391619858252010858175757658512138335909348279916918447816543397653356606156694967767906323299351835474135613671883575787617906668278648781421388778681233872417764479950128509514032942977988080016179707690578096769863762334218319084876382233160227864318025415403075397329694864118403604740351267964385373318129488239988555648502723780291309269212677658953443998798535342832939533468935627139636689741034481787557966127898980933888906803154333591766774492563583766512528386183833448943957887844197050250863938283010172498858743159041865829257570350770515957607683202498661056283344405976707165541345403178249352053576951732089727489561817133333427925742996134379677761094732588133718208880825845209949098268601592970771407508860292254167117702819148030802542059150797400689004939590166958775595709861428124294690395703213718508082616297952578109257417172810656274307411041408174601390832229992832244494694239229593874858575638685592967243951407902704572826992782141942273508077191039011698874467828930976848952199774934510298470817347228723541355617191217787037362385781861827136779267993428231385966128361619625498321030351155642596473070751585728245965085076934286654351233285104942980108771404591138824235472391501462574437129580826298130669178839327839288731186572735308573169811466132205580025419783001840487778497771728488605589624317232945258543808704158340460041300678937618539886026032762417626646619961730754368434268564999558325417098123883769911261763328706691355078509069241802545012030238686924338321098662471981308825322030072245557256422757817337861012825067183777354282362757478480755716080795577929459105175232896626769969311848098346972897629717395107605143080184889300917704726427109414073329921837538186324470212375544767950088738308758493625805786185935796381282419325495594641275112496618532352407987522813028504636936098378677096761692959677152688348836557460982129845452887667830506549465436711955619213360297252485168539046236740033275787402090788543179256524343070460652698832405126341430107831403880383410445176411486519776403461798212880797048394307259429811185308140889280948827463716427465343127155539182954566909345415879663285890625846800417457316686930486487408052030522342812353731673201127748089539457267991601218538748682894545050354863019645125385264656401233464605525360353394263222678110346466690384219099540966847782273859019747018847654750938551535327048061345123556297978026218183804117771401760867632727546672133492720719641287261970770100201138703885718866272757973254648005160480494480333236986334189016775545316073473428648932483488649915020481187772785793850183047136583538489242036089265261581343265222826720783278995835871849846207600042015820159769342283973514626331011435440238134620107054437497345954191349685225352665619237870236305179247146882059180836196916151974625121355950363957355761548840457541976488529881607773218364481758826317186326901811772160580451947489262567969926438506894106666159805644711237778701172332523472125227921141791902407843936662479130901829009592644556541455380730620637716128351078032007923783065074167772079146641786524813006018584090010033395450152336440762964614636757970132729049552361364750841772474119705955299144712972842678799140958001393897644320151086887143956889658616599522351441545115073064522915433728870382848031861403802250796127835202101806088276333363560900225346429528705392831238665833694589968292341311101600706490921556272670294452231895121737058858405517085740328198386918211821118514454890384048268576878341944905719906550964478539526289999006535314790038485754562805010481369513425057096539734938436405779119183412244669822810281244022453739400408703760148822414793840091829023644403328825928145584117698909882464104240727541399866672485549872169124722783253496302197212047408105799181284482845321247147470620534458959496179894386438592986658735150792768575200154910095710830355180864886122206242186531271941249506338017136653815279326380048365545904944636141242143039260638744599434317681466681996846863725320173581919226387264011204734385597932394833160056460418312476769323770443702711983274503282631264322151840094497819151833098362638921906562200031607866914727608201994001224375204972253205556676220638803491827772760031550808794556081831951960675236666169510541437792539588509707615373839471076346578254680940582217630965727993651186367779480741175798234123933591252265104216067889843795598425465931204399802480654238216802764484073573761731781517166522329657179710230541336587635179669140743974720925462256600072306046704585529308858217622543417144683758422470040167530146828139352019536980663097054138241894168296390158370863802059398069025496748251175400520473205559121012868735440355110090743296344615773858642501214190182431118816779391561389834901919097525618876907045513030240316081925781860000171094582248858192069106504131877836937738631558917020782264105815951948950592741486445836282178601931660161246779627412288132332575706309834783942823697946938167185202284925675306078791917008182124768115735047294627355668310736362780063077740109534134253345672756671211896464146236091400411900561657339442252045005574889019463757473617857225058319211645806481972683289137946626205942203240612509075356876248814232143393325941288054712394263158714918769090097541329740710338448170931285725538140975833760889959347784489201870233835319537987789578067368379403084976246048307435278067778423150055526103469282491419143861098039886800494523161671087663847155199454061151209340219401890490638691964056959924754925280398948096497745691025005828556705712518544201528848262505856169171435092526507843875694616848147302796141432009207483182040296607907994974374487111503493599169641579429606085081908112628136415961983915331002816869008454909800078190884374529497075802308514641011250490439499242972502507901620047184338841989652462792836109827309770469976748988112527406165591084884090946249343351668186633676450637263498600649566808671918557563737960961708634910122134371161658353067171253846424225838950150148064911632300433145889938519718911225444741145382027915285904008020274179400167190800155087020375534291414760842578704261322034703501313433120724908534568828004192211445380404974114026127835704033048095646037001579021129971460753693502266672153059335644917265346863748088638683777878618407464662245597953622589716166134686840514723714142586804002612629300503979416785862564610373566331397659235204172964658007670017514018562848620084371462722081215968183530534622848693543049356269097470844463962796021493837175432274000350596127435242264663255735364605383153149657065929456699938310815264861596527813713191571362426616110976922126473526453150863731150900002446482571879681370492399997105529274550496207978150458182932096907851332627417691597451341854854038298987898058239422276968145534067396546292952537664850290251104409415011422786578792050833926158535364065979745276411278640975671956016092133591191091651075390476396610596209021544095053038969818037083222017742128897302649732717316635785611166570322948968286995463073771404959060788287485171276481668330523532847922338884663919508618904598566354116683622954388309982854945682762433862690707393680380643473493361929813476057026043360724660946344758691920262920442189388172612176325653605472216445656350788996718336199566075493696294447749759944829284257239131922538457976681816337459505449122342088735297051380880954408479516606935835056936353402882706813943516288236201417436513977469017624935486338610105141937682505955501977349899951885641921525474481508929237927212780826007914386807826013218954527594899457039688909036971238583815496497421727523819501361354944064606740858477037304765961323480233380486500273906200488512991718146850169138209744270364905329210877070090317124411375392937873300212700792992142588157121817633629294750506828140075660822784463712551996445529644762203548050175725188598256481033052994650228645710747774189670713777318834694224016216458828386012213038138792149235265348680306348347127324664773965549351296808818216148292208002167392809721306435139303368568872710472346766157120212870732224029234674988599498414130055503570861196648361681493244184013897800756692573902564328983770622974868081617376478647310286680083532795661702060394364374984438454719618847174936183243230892529157011904036965992771055291250764327557119567671608377114221495313358812299250467162904721044734273739098855536060980712310720568278174302594489114887434113631128110458357791537157220364392104337798761317197811818863522052838553693486336464571354347292294197258715174529824352572784962037385069396350427073835638528481794064604495204438843239423431336453863548576102304531678806773097571706509531719918678220002960625352864023341104620130726996845230477327658142079313346078609105267843708200935660985252763547966444238714520790082513034949265061857518486202397859283670622551664508673132843607647244555594929654234290943358923808773541338925457876048360318425113596678768699564536236189057686552776250913175249720497159575221602419627998444035202218504653929129324450511536201134211811197365356765296965174280953802260619181440859490295044075548102437418265126182655043711069911816318483904777888090592218259003945140113785236884584108237503188710345367798675323564973860208383218819919103080012290006769784645292346751300646706237957842662373180377938451232858618543362926602501268323468517417700361421528145399096918952488834613675278651609231897495930687018404472721400734541813723389298271113503315550758105838158454910251173345074233942759645542534858721623225266443886455766297017240777993078317780294631476087027748727001585484225249702400872724743942118591990641626751653584946793953977267723156212818896397182435824990139196660853972221884432659631267349986210994318633998001363629293003540141669135967834265423389129788514693727091373957118980192413090722054488356171224460637223731560481214829223680830912136713889358225344990415118979405234900793842164848214619159169105892381623024209452709580623098854041885726104252155518974363231830091005551316001553004116592870865587694627238303420200014646698319338923773605774741884989872174719884239636263061539296264185569385518097501818647139572453081520617858929144310969994513353054634537248216704389664334019669554670502127944511658419228212656111721273976680302066263233816116192226633786993692955669144657538257254121768155291697356042447490718276670429591876004886980031120058145653441810054188593839637651705622033358857385108038020953702527351015739092135893390623052079681362761771941137087731797056631688223510938215761995573318825357304705105833003088156485175607991552226889003225851763361463034790305153498773633566884408243068468040540867490558877675265618355868446805936046695777659286401055092657282027455649870116921482289546092876105549560673170348104714053358345972681736567447493696492959987566632997029778356858076818223762939504373100796217841348929387057494867113673870007516059934194117560083417900392407271637591556893095879792386372993057169010855267198367316528773671956531920004166148820866283426156808209302950660983948254541007721658699208455929016862039591175210139239468706663585898646231494825421095917138882485375092368821847323364611635940063135068586705147348877731064352346028325102387150175769724076305923465412273212822525395609565337988261337735046237057228487601629478194497085760918821666884134982787277565151869994748534050073654126761251018519771580663948918801581279993651453477553022912118152714797697530202301249560385255119778734078361850292418155247324906623099807120206010367322220078961760645000224558488204081386748671433708384524790511724348131135496275815539658865528684561822256684279214545667998026151674779854256794972999278815137823705754414438436340015649395466132367119987183217459079376744880158500479359627313896336115231076100540870250662055689353211656310177962838391121518520162558198606470980640596674515574028385559324813573800845968685078353359872700177974741594390992059845358347825037258053630640315739446633914731164149819739202762162534250891239304082107711252712567019041808139469569046199503025668585481471619272929278998353063420660679551577750672820712427295882678409836446400398903323726925819690174097634596328543298467821618379892886959813841450269831397789344809999743950477216786323743005197548614766392105437750975173878730614004791298342994312549620717426030888430176626933886599875488771946799467761152345196330351119409226947597073807060930589977417375654707249485600720186458983020774242206265090345111050238734422561367662096703472014536646667743256058410838772744900982426294469476206632398109879785135121224676324172115877449273190284207025507114748758716815830714275684854889732600250243112308101346545059427691551776513158049339976674427176951446251674475879525820761322571065468757147150274454967959938289184416281523430257185663749910690012377211879361939757633606561943044775507045061160391322886494868317161510764407417183444798188996910788898757233050308948143758923866840661813783944697240012275106986937872526964706420755748489716469975105887824757638147489331070099584736375155708768074422031161238796999844353439776803717365529534857344769916201970988472088728413124205093474125484862561231615981817015945300457874674040870831752613260055562984827005438662403452716374554335210641753227072005688968680911744193721179440600935168083892752846885957491066065227873303034674844902538415385126352560137470999633152882766192552456558326152994965308927447785733428904942248269329053759700970786506969598052344512903938127568156248097285779402487110797714895391672140590529810557226851023066176943270950997865286197856567351231668644511047178107818826814969003818273561869565600371523067571106079410797475832861302505351584781745264027523070367241810533677836634857940150273066608118598856961284051426629781445096853681445776078553989884775184692288125580125187998713092352759666623809204263821062439504421762525734991190147455438800132672320463616746262766583035374222964790050901710313863587745342045965932388297111651964103405570268642506682394652051848953630474278948185703139513824999520219818057302508724620754046603876528068959673729841579317455850903713386840024804452053839125713258739494909172154941398593376357840797744426308670426114189099087335791905046587491067569754698950323188909327142282442466158587460306645921654437723007208852481336108207516155068603565208876171696845405408301696715819332948429766513080829761143772778289325067436478761199362429959532945267627837722082063189099968310298146607496208556828385207122224564510909603452840807918827766333487222265264331006030138055023681209142455190160104467911876277006133119007982366656194432586336161207533581053568520679251472371347480969699510234460893603763636053405643280552358497084268341937400933610291302583953542431017450568774589281187580505027258600019435343139288115246857238467116376564306381431155160367739468265082314961440088017635946521421409274956655356029060901942423668451209514861674291209647766119730731973432746391523424803459597198533691827597428701657919796210588971155536101849353388830222418629383223364746305746768905409381148209337109085472874747968062514545235888606016863497199686252587273376361949637522825881555533182181320919473881419440855649190659384543640273466844607760879571986712482858618294962386380382683796270570708025675918847299786307711481488645439746086436660101302383442219423330959210940024813228944165530182701290955606850969976198426038948453693930065078006387693919449578287471246601849706187413120915565671087871521024985364389427307721795149528181539403443952777705962330949114100551429424385261757179318404414407233286213450262304392890879794870333777016798738379158848841494985609595823307265208976509301629790219236119679774138642721710905125127541563060915626011965548057456415455144806950653574619794258508587958294035990449371931367108638004878425416597680340585125093715901133834681862189880641918669185123543873898768561692292398202204624115447796533165858939814178064187974228002148588931045206097954248033209168327197571965999450780602253537997790968401805977748015969342747182741516190512455603100133026172118904528355674396164399843877184298435581401492395544091162536543244954663905669709638330328127129016571791667633709486894556072456525286388686717151008324676464018135281844658742015078347043839909351961818548177016647945051515515842502163162882810653532190245966121615125597431017398937588615272593191821642991131260799709827294788087355846232682410002846863134834884157313148886009948863841954691996804543662796703852076311723419328406681048235561204283240326189128661561137454438446113911014052747498656347660203400026243676825223937226576079949855544369530439904677123669557269826254326349471170169369513813865127547875263890318696061095929397502172821057038108365397991556530456671377423441296379899383887452718692774322569257142458722163615829257120629221977653589336352297087831797734251850781771806272805077154976700816191095943261545289822612584769963133244351006028433247998741824350581910757681745148982845527288587366211249087479740720852495912729526401591086823514840030544064778063214591443307358146180974917552016733085629813252557656308925291104012172426362189015521141113219038896243217941556597544671243581883003419678298282521993304298415513388866587994409321644300133801299343943420773356456495758740973680800644596487108934224125881615395492221439040210048587334838712086076970946401268126341878683089788094403302956144383042990673051676168947018228466395085708459281285696390351932331008966072628426540636460136422957251668529967780311206447492912525189840085700350310905337930498664428076171679663520347761354780655812410226364120781334374184489662980882358967483887302004660664181006411003773252550944958887874693455144601893720559719660159986768335582553923673668234967304143546238801034329450472884070573372964722093145473766268365772336849825613251956137617549638738804574360375289918066866094834569222862851214887862947412322908144529717790408379064515218890564486160743510406272245007640904341661818228675194886746823942551466733987151555946164159106653089514313923587861844748333494070641664977263687142313899371883044002388793704027091447052653810740168591788873556012133213044133300844798674390408173675104196063698162380134201453942088476886232506838369367708098355459952353909150963678236409533210669780931539938206120561882511043747534192037782471733028080037837410619804672249612614036876004637692129289224018582178978820503388429343952271623321565085789718176692078301470279146742951512671807219418167422617350072243931134734873245240787230126155511060799381112797633544952660215846341701291718512699904936237908344234929646019627255715087765911699245619010324970693872370831349961565522680629748675343442865718525187945336645121333145187477637960582641275387071376670425290916882620716798962772216364192254190800320469389475936590248524754025331353671336322196650733668690353057910480281001667181362456863264975288215585489964700399833384778070922773803580858829748057768177283470197382632526700151529586045443384034010310284345567845034986190595082876645594826922450167308418618772813011370345678763663166243439342668829094825207984763850507520434465481518949531573114934716547678514143254968364741574062639174875103219626512526934112179581729550872289461336082414236248088502938126104150334161990112153022193423483717895764316994401616611883132553882573402968521284113126251899172260586408777783499628720509809094068621757654562003204031976324236287559195133107260815827867058254626930365637930921498661981188319717536207357927909629763316447173201407829458059337044013418099625683248164180538839438685682708463424685535253022381125549057240249181378159575406530609904905685356036779635717471056525192797383621790031898185654910683852348235050157791007989093374695287876574638743355513362630724957066710220116776869715497781556990112950524666288813394460879715121671733288901364941904009797511316219793412609375028027854296523825759533038143536243039359923598223555206351449241486464522528244478527440373763760993719157898919494568891815572181069388730557154842899842645703727218411934018862050191221385771861658019095379051051297135235805136721482410169411216773533899872358514358825766413950831284470955209002267125810219466508896202188346548520463741536382440664302749064612259146752511813636425173390880250869028156921762690425012447614192440148835047112595254687130054708149687445283347482373397639739832982949663149688385783093995508995003795249686309550258283278490899497501229366418890671796807092521308546453701969978839283409682314645945845916724523917890165993922712391367360020242060925417485147479001757409828206482898516441389371323892156926911179638912546572409421723525925600769675193989775928088507050945159334199136039312975948952892049765344413614504826317739145735818985886759412491906384689107864553893516702332753315197723599185465921464560835272441535464474294346565328820372790769796820878632959200223141432020884003259181466060713621725417864286042194730346433446783006691674327039658742919570014274048098255941628032157331946387275686976909048196551351605070801125154597675136060046120046956075227610580780737720479734100099053456606281695779885854091044165719277459858150575224624218479708027286171696035947034846077014193631496965119029922582003156604897039875163773808913308594045604867594213556544944981632620277149212312752315085418623293690320062882612912784946257034709478933507654857945485457407246735023753138606935292191415287209864940120899010160435152995921975621546592707879510393846843460996452805185263067780662985194525765249237235899678548001895264838651213742395709862703063869859846887134687389860808547043864936080009223583561988118415437750987364952144289180821897748424512588220308906716897384926493246637916313133614941360948057013982746914771931865251155865990754572545397004556055272213365804956836730903921507560855144503235502235678122934400178741770549818484422232329990250788391436074364941895265435853189273654948853134879045843048287014710479213915814610436147547945335044574431184797750325665226774795512414239992371801953647229870745575425313070485933937210860204673335491366097974063767404564221295092143689264979555648885858350053082784079861224422485290277803006461944355068869299278048915283939556909359171537859321467501958607863111284929889062737344743651852349497591243902490526548432614812359758231057896771430783770523619020355776776322482428036474128560728274137472055773111933405311675866572004973599698430974930090200368886479565212843376158591613654466408831382534347550562702685282536784824776837606623334259868887935771225956676817859367841432955586039372657786295999260997570594999207559892142414067776215870345153391528811019298915419288528891289186957482734467750556991515222687096481172148964534634340889486781669352286311922454494173355748008061545208606950180748629168680006812099575387042570767386155259473585532603377962119076445696911349026035882480574583313504018616426896494960774423188085441547501788330014895226921494653445968732358292056966004393268106461715617475703903848685447633955951414623262486075657369148902448285581766616084560867871848265566681705332073150590025573325740104688426066024093460934986076756682560873334386977228613509472054199669226218078246423016204600061342104166970762823991361911560008155232427892131072885286469839539867775118077776502609690586625067974981430233906590433014083729232658709296668914773708834454564529629169423454570170785455761145638271703645108754896110641434466398832139877021453244520289306595544963377369774444774022538752717069079908889377396821135547496105939379300946641329697302160372418147912261953460435991265272772068927795724055655689299485526642717788475150298791768735075416887588223688123507959286919730713124059824035890115258047529003482253192123511088148719909473721776954361827231540559162856030697372224851954021969448616061453690057759923578960077076274355177413383586680264554872127133954848728910858080641804266204936403841816962005939507258833607534347927887592962313266959517035160973225449500407588136780064794068840827052750830527173793796776253468939949685857517565756950306111973408941883825995762067801768940126328300083069170961338580802457087254924960700336444670480315523578329186248242268239775285277007498054200632661520694880495263596067392613164533767775569725525463318485915801173654332177526264522182877007349707808166944420744521671086695115326650026077482187456874667305967067454837766499458207730636960001241479265241582994954030602444834361915566101549393970961055686588904149313100137799357149198389954237857951277894337535423503994735095821156893296342338953199570060848057201897491897118058361798165542743899476159193543816778238590723146542770630021151840027472999395332585999773278658137250864307538247056892958380857549705187932914209397588583329200565182338283061368549928527215250532176434410794000586064919534144759013353262143395150662685283121363561708279209276360363597741976050724729267245497049910858053695037370870451238701645914777244967607864728882605431526923311491881113456532606383771044837922712468052937821251537561579422349308624816343678411761043932196643079994249701788672155477008928031921455865138689842530565070564789233442029209981569389531732609103547429869349905284967670707249917250314694625233144964296726589312421001809240224399922307276150378917921964348713495576018025758752440449385475310978876983622349595732362020288586251902582691692907337035502781137993997665369839577001290132047438110807398698080743919884960234971570966276689589121153048725206766208451328452973295581080814425864245016711617905110343728044913478093740612852264142625098223138425594269159429010638501028364561340229793262027167134686474038143007686270732151794374046367339235529766194338782912267562899341957414209506550697392725468423990950634831363597178845106364015910883012000180483497100906425849847733425180835962415499533211882005629993117132628146472321258246093730609191412872023832941860321666638256692669793853797216889185974767588655901929264608091557069695585619850716299978935205484033849135040161914710415608742791723665994172477077557960906237235267548199204351145047843064008791310005356938123711094681893416457474284140566758527621949131794813642564940904329724500338197192798727793846266454153259572301919343813139932256455191606768876119613530163983212411352225549945163860554114941456516134882181641099924907231526282992361317024317654663018261374049044339506310220564413205949338782092206299236683274642415399345744458674717129758250452331630575748749266465918270537185762968709183777534281912424678706723006732189714478275599381458874332071099718983784104733196377127865958712953900524421584574709458125501529039821106817362007888135773015727368281228293946236435265684860300327662937354282796969602362841761098234080182034309435329896716987029168010507606780018675944623043590549627562714191596208010704868062685289398130193874783454833470456967088766680777528974026415085108242950412620555438431080889884569504179621536271096635220761045309339985640396565789560749443752033840502155004289801156805521386158679748773961365122121721107160411167087128294220141028959402969491764865096694091442708405156243031572369964590313529615024899644115222123750566957848502546288923343756034956597416172446860156110078695222491473739919132890639384141739364592724426705585655144788549149773100044685689353787539027746451361893018344368426029861740437232076084065051429748656200185911129314964271070511629533897626485693408808866577726733048620235388476959958398113669758615313953739182893735871261879148374869318807526300258722740941783818489944933009303861501965267285403477839449131314007531208162896783736092039875360837312599504733907746367659299909568165044360621028874746065452053951781023526118203802824118893526107029999087632682524284637689295676838634798131164826202792579441762908443116313583317782626752192042159312290162633925771828091018594897912079418818565001604502765769533724080500579485526786307004558038662331145627285925277152427929150259849269164449508116407888900645584495648458286124805337399917309811075754215410777899497636477868198741695869671759282956428785035252676187183626260487503926435541861377713774248849681462145815477637574002981285758904621615910857043141600257631389267008725522320701264143995343138948553818299389519272976902920525886095775450838943396621558301326069352350353571016011160066414363490948427254773751277518841642052154908044704142148830164481042110884663038923522497472705796723312899533726885969197521276889584950168958072930025426574350270306289923010670692817072066367406999959863118155124555594917019141797261562686700128556678834192053720421890738513967407105379073118353625049273647977812739965178481095279955309702245779308795159224028192763151820041175230498298094077201642270121894800231324894752408651694495030541156956667417471738298732993242804108034775552659368787817606964525552965546275035027256983355785201738877230288416363779622656947937345516165954626755398385556635104019166515931645696117110150807428086997930485846961600121135659577727521164155178729566957697364177392289813358736046513217262859261051910525528695382691023901192012682377822265510553207843629639395948800961689170426545437694282998928305926755954599937867706909482284313129260230148085881169437853948589260047407571135027513233375522993461559995060560028537376963757761300422157296998544292228605592087728724718328839176968422001236225112755655078936448721431205641989426154730964965757564539534169016634225678910991330187312902350298538384784066972184671072436199896137883068795439347421007479743203564163014703555657302754340465073751395348393699448224687844680355198038071739297124027905454884896475245134608382944755086465192619972466686638244558375411136538160869794451488357874954864500014279173239405177702899520975971309854688891021348700981415700288124540433424623399384798098171903930477548850006389887846919601954131695948832889492684167185255357605029877844097955300983827375299711596251152020873053228379468897974652835451692271191436815542651681288869604350957807983762280754317446936792755653685030613687818990271141753375004925985152323781225573577786030168614562226381977419507592623882237667036957970471139994884617833920233756937405182149092358749020253772905563899040200929742148966934467562350939739319364046336797974042965283929647532345171455230314508923633594000437651909570039083217615825010719892225800550806378384103443718374845529370444648502106556610215637964141168546734066130106489653477739504574869003926470168435907381711511531006363628842771373031218068525287294818381087292249389638472328236871609924493035695352265876974926759228553419679137503441909583263630465912012675111532792368860333281525025166504136596326702623845078787997725707316601827653016234785546713207174426610959325272201605846901146616307209398656668364591594181389325734673138070198643712015635386657803871874022314036099309500051170863378802534435568421541948190809783365003959612551894135805212326999687890561547959865981654018492157162178941657486690520961969352657834149973904621092092129513119718893484498554033572562086751238036725411186807826343186256764844084009630399543338308784393107399868031227306846627448764671955568937042940514277159204021475294961105805056725119100212345714981932023299903907134411463767689620532134407894684234668154781504464361185335949409443156583598583788272419507468236627982845414551561324336888201382216135556831503846898476736059771763700235494898268723955685768482363445000508653284064615112503920997109900471865644238750023908907177492492697106973804603383673307808151738456050039370537309184774699374574649800458370360762696702856782006948444851712858094385130455804786633720056186599855248241128601292877712223606495621775488475322081856339430948003004131209967847212954038080379026612823353990111591644353243805763972000422686775345301238287931690416447157463854548252835008630923084434005354454125386031799282085001629675111557574200616370803007395028848077057921196028014327230737596195456943073950924071759751041282291705687820676939978173699241356757000261423191080385404417478314392141941238784412765577701094518653028461980503061107440436300819607970191397200690902506238005973099111336194775817471345738213573588989685695184522553140627605514603812993198701920846677740997594716020757400889849317710850585932481788578449269862543953800664383711109473343417307918052935448792585789919036442150251745798228018565106296023944445040871856286365426783978220129609667395187466162670058167973383318480282193440578838056457133559136113804832676584065817580892889980248025801870885648338280480415423064480603435903035356903569368599032347234503975897227877066730398306801296533939661166621786089370747887269301647527419149119844549215978690504595048363852279256402148710846217025278709948424342366932374830255917752674111203704524066419070018672777871849401289047265284233042099464775183122373310788669555195998601379530355420601108355242893519993478844629782351502894136237294860342283094327399359628491989610696687148881948211432950775698733929433994425729388547739940220121325281835449113818890893226955851337680040122878255103200225344705939020991979844884496930593420443697247256965858628106019887644454435398518002629917704072685291261751180553083397181530007683407244120387881521590905482347118626040654482875070997242237373939530129445557701225285549658247887470456582565878725404133888185533396978925740553838325373487969306839661532122976753688446926828412134655157548138533879279940372939328773693255659001991682026632481670152256842781938511567299382567903013424103418181095413346477490978745551659421657297128942318099378885336020690176400737532344191045556894930081909617168478848666174572419088989606270571005230515108665617518790567973998261535175400655757406357025979122713113233770517320763962906423453884579416969224971853709317571147978667304852024772027868747705819551209752564397447034584181586942564306018428547711444310088016427923571841633088428901546489307994991390249941472615727888321397038521537145055499197250196832318401194517266199661808972361400313524791296955448230145284171166677788932520114620832543475870343831309754213230046914513418924799204493617476411271035747375661113291106836196260453570010686770606271009317200741951433399494574484263502582143189464525137276435584089986532668661544326641778967475132369834036624298794026964875886459735980360924272124125085517799728645572611057516032673042853789857140749972930413193099761105557188357597994257881931236629671917745426975471452725832073176412093439935011736682719041650170788548272696751790942490856994462865239587789487212274204073403417344914003169689349486690776391444092853125977664171275422925028653770766735944179886565251973491251281768646785499021344602332712029078722090994789523525280420221708949864816520626261047796967201172282120517544035904810444405708093554841771549314745498428643766976399535682063353727261888483489471640273680772183745301658711966760554790663380167386280505377017149334828541129138641552794386721510059488425266212863012849031392329919231571663378264073280551442952430870811980530633842651398261148642996906803920742925137225065606751002426202121078204157596823211579689819467784167784525488063348939717885483414841177658393289013702304196540945620932979621795190556309144404976915827742083197082097116029603025943462014783919608351681149640122296981643805662679763159540345573841909247668901683029456693679471219958033372465631828197899292712913972957350349983374035843191077481886165771665814977766791403192982585532279315856067836809867315713367530019144624834375566845024584392371417322424342450752725432157254139639136319459242751965266280657689243094972994234906166215952300377518878328458525789473525608157648521261351174665135858971361726885931359253185143168502808959236534473292320200584652318380381926562688742357292584971781964388071263689145810206391082295563482222260897523886914088767385602123249377071160221594146104098959346081436480294495435163340473914292252340748251806228010393283424683595546876360742409277377737103085818932940838269733375267199166554486543461164938824332547564359220611703289147926028324433389065785604923622504847337743452914287039369289050152418826214910974962488653636184763188128705676876066680465215762789982078489810684393729947393782112208889496686069246636301675033715613002332641256073245468180870091931482004447063517389194456678447679450607187985993608173071310426087525107571088297913565432226511558297786477751989215480500268681380862677244943195086962013221300591176922234140786399997866578298820953798574869427913805962894788875297506729019176593963823896025304766269648926355893803412122031416356750711131408967506168880803283045981680280214920774325550253977011569828323448759760918853273821689068429633283409895660662744950595595940111527176144640635310335230369278603963326711802445863631225995759673225654943008629905535971762532947864487797906181948434950244499253673542318245261824867652144477265719690009292737252476440681177891388767407337003399103056032756425336891874121418993886943489141833414150327951498748448867819097193294030664891682957902334019101405483490229235430569442669683860706860445522474490761075774339369103790864508667709604252331832403348859229520304610620184476677048391132524643748482060196965839418495350430831570836302351464145112600185163288255725947741558440760357074944922823489768541776266700902396788519156684780469612885138341916746590877556032246563367521399012798197200079877434131884674244368821047671882823698295128435872527082987842078718939727025919009375188847352841437441182586273144382011410061366612812267684992688971011478356508031176898490234645152252061469861182444513370385495380471463123578093399660447963621608473375635240631613392140805231255766642640169858110331917113953705935887078565303857728182327123581203260918824032187392209504366876380969752011798914394666054297831846227888533632327910743371178008691388036574167546611299089502855546694292528465806584044372365699397300703177026771254994394105043005278715840567772068725702438969744560977240120624587738523805155173749314778444266151132203127067389656498471640866690844575201310079941048551498392080430837006185527539755575454866639657626867008624133737056388706350451102637630608539110911151978238873947640037230433338790980090656471896589349447202161245576255632301672411302686714163511090307334623090121959132269225650973757478473412759717898460431768930362673724839543975771820081711134068293900953765098691815246778170152381949653433139377558158570417229715326500912229805789527127301783892660113347264322034919373235962928047958537570057991216607096061440316783664930722351756365881984629663668065538633749450729424350990038512000209991481393033094135433109027306357583483976834117677570880536770286270469364761389643883871317342968948230361333960150847181847228395266100016762654244168054219444959144622281295397669112162003312398027696965147242297086647736820383644331169054935392186224987277615885011127603017559118597465881411881199282200090528250065054285405818435238582332841371795215277453646246099958800896176377808866303042508332998895245313459737534474052638252588539814977898501700548211123037567492487774987074318140326156264568191413830350803162847242015380680607438591534967869234858389170497431910536871612910183757164626791993164528046753337543506900289829103874855071717953122921504933164701659731733014307021962202897034238635594034898289680465599738106995983177507208963585195685980670655104344085479971306779451170184557217641699646377385528648073648706967250946701699711181272166771286213907801066121338355739477396510909371348507620993818301243064099634656708478676782534546714698439911620519350605591055965858271616862793480229382587213141988144460156573985470473045551091637526751538104692963979929813138346546351414719145695552033372369075571678009603776537001908751107421088167711609645053638766781024130978343741746846972732647345479191643683333218182250023804047811613330407101970300095884032629955057079216891917164449096088493007287019491718350229136941525789049248048829304216536575129955038362464406293387307014246978879036101655772215027342374394825643834992686411364858341136666712803200393027047225968246572798556509146650455207257675506994152192419957896916659823738907576116883939318040996439492914465360125287393706084903797002819362435432980634809853695958652347288452020030163132161100143880345407035524023770089366700076500393021705759394086025163155847779429142405087766488274279381491798223808191897584508940297619417833306057240297307217936538969730526100155511558434194058844502535548647400112196668442654204273356833001688390158388466532974983956318808356035162208288603887875579394516132954732746316441454807521407118886965221004867768545655493328024099417170467666385771708370638635596898394612841192432894822556560672672413801430267168831928812130117494004065073336856264423651788231374435625315676316250468597210928722317075502995679481726040291186416883554657462549267746836641470918190935061099606175142763110484600138493874799141895627696225594734315697489874292385171591298754747713588975316534290708144903506691380553480119835320131694024240566494163671408757405119664884738967867898418602961247443660974712970370983982670993224624124390038803782767995715502508958334309926343803888402734599933592192272264310204189060885147916351770805472186702712868924722423722557392561606182803096212000697641355392210061240494421113435595103376741021700331341309841961731213348071964419461177407072635165185483753182238628746996773409071471669277073018688036149509611522834622045045316734688060779040741536591943917521878231328569674348553878338357131236076552807017513309768466839086020730738867323232695699054350870307311377152322507962950057524355127994649492994533421748292975781791286411094081887153793879067717777444253036278050211014502591677534632749315277544186829396800735803432803680763450472834129290720705064986467674908255914753329766505114388503767772934996129968303360074118723707360055864368716757807674293350387617779049120574154416172317173410315996342394124065743297736393563225388454324328100540012348822802012654382696929158571314749560331820620063855967241101733350610286533894023686822563014819538765731720346285196033489924472986868479077813463837656293645510112838967160252860220325833182680516966080765728873132780645706119303955049223417189934625301868243208730565638659915739458071854219421854573036019963628594511852253032044466973581111316196187287465547520615887377935782424964822124883798763898741850971845434142064318712877254795897961542630796148306395087044308480627079256512214396738377988804847176517057817587217958533595401521276819746939102801342130836883076697506975579405194404025168873769553033339592261319329106482206790043210528092762182590819414577240512729921668554096428270154871029954682902254853745031768949725828548609948539097134589268086204730608841834662745259092294455280551586448866992925701201028752336165810430483052917999076434378619411019490254170192572363822607702041541553352495981672743226350526099077072015572262280942880615151172183273940010839841197207940180360971095013541765682126551073872652537498280923301661738949242015473886242807038209572081228428702647766152437239324236886576596979900430717791096473430659184650873457729177416739490055291966147452558429429949523290358884900561343730397781853696713514099366680019185242165045805881354324099978105769279353930595462098693582734129182926395661092396533989979638014710081020584611683393811012293211088935917489513323111942584398958537028099514418997615284981431723441605344386381992801577522818413274986559334566836431442386593598571575644165602037192386631587483717617350607429459550131005618829477615461137750092888435523994844939830174099111340856305132829519474640101852081849988274714176253593053053533479644664604762649191789503652483830165378670670263096029665414496714628805394156758455535856633259670343932752403948631109055924388034301655061428252780408541458572010565299035234559570882942611506785342851435318109987855811956035598892218458752521867099929477594013677884285971188065218352867333388885557168970272936191510687164116112625231062058137754458834557783719184820332662223086363249780514995485579611058872149518342576300201564057071988026173496483542271211375937671648395180018804931144722769173628024847082302755301124695294435151078004765060494974119942226062546207541964284911000305038209056054310839393295781995883061216589942096630931926410378779368269422059358260084827994739258448318398196986308489715100809586481258179655999545779324534503526261395299086772034493431069729441611853339754946601753381336555255554706693637289151114517111183303002383442084375786564866269989894011559828511335448573333646642870609266688554771610127387965072365629320892430737803222927703778550310229284525247578519807588088432813071490826824740097022549446280979952499889436301339023804402471053052203455034426328299320659587636769661193243753320772257303212835773293038056614516538810666592614350131712015468780636220536553277797406729091018311712538105967774511319775214363024101206686226043314333267622680570492225953582542249699206638188411592051334327840978038035667357081266408225132583268573525900639803425254916389658998297813767495855376154547739010939789324579296410794222592100409272431934982096742586161748249774575567950881142389937577038415161901491298970565566956529130463197183105030011974177376420085334978081709474580624531001138710613311698545727711188118799050089098602093901743095638213203797548116526779791854421796517073774014373164616954587876444178118281989444703966846263664964222979761112162303848861827031676048478384174496932496819713082453103081881343861976177061884055320725256669426309008630905559889743258393879227290946173112619202747449919613132317109848901240452175228357033506822138143518100423653020958527863355532288301304527554858429551811908598528168338984626007047998397909338109214151148930655108388788490032331175399638342405746526429388735311440074402899178631921859501904772663087991147925378397332181393316770406539213026495086210812268539304921475708551403673293325215879291334899443923177381891343714073336875579006832293617352911229142887184837556599126423388630790366089224568237044831421159641968754554270690337009354669565915708108988073659953518475554134938140249585098987433737890952489692838374081714111864657996563049904930216911833756557775042599214989176507921484372889998776412149773875605648803204516073263745783656776548613225447560180460241803560809597271929731321229330621261086543513150344677104468893282907942917828194464726876474390879620931918811497934087703208291372789970771725859645014043159195743031536767049307573857152701379479192102587233678222625419492412341530203443674548492175840508119353947799968729557637533499162505312790916827694408242235821564574832550592630999499834313694228887529641480975466709023991127419163342491735755664617310663634554575068137347146637626493179414894855425431420167348354354232161721502509919382201523048652059753272692903915487270804676822432517796621993471394273719504316142177129788599250090991444760767880427661387344444272205601694123322080533163788322113001137671927774535730266616158031807999308353620237554011375864323127865079013322865667533526427424800258722305455552657384614976267752213344923771782669073720019080887602185618094807049761684773136438078524062915965182502341913114564889557937957169757137325074977386557884710750226264575333649343566945151287723628754529745343150963510182075349768437152460432643763008422583321900293179260438637910019970379445559684024823585610872265781792798513767768423095317020413255110116357945874485929078616499947171086946754586786374723120028930183367047826228551784046536407863475354790556201271281920431032689057773802596149914881409086166937293884251030557826349292374969611617183275458943225590268224476144695197848645159922614261714613083467556899287854484354167872058394787209860330147872467274602939402510548896209555465158798834220770718460945765289303260673088557676012307084990812582527734615734302428183098704249016235734859960469771219208945506620932094638765268082308557497183457109482866523976837645153013696170361801067393736346454496756491015873913776934931527644417374607694722353604519908784082763669713081659860039925679387250325874121559439956952841802017840795495630622504362062191997284970780143375690046721124097004030962358531385871068921815894132766840798226258655230453546546257300977840051516516728744999536976942282169367250455456607625534738428071110896708471058501438965152379276982779754009748766736672343501319546956392949273781531969912428362547846295075163695801849734296074476524584673069213643330097750810604884796915626560336835208494831850663290950387511723935999323466411846003070355284003001221829177393340636031088208687629106924889363976639876427098664720326954579395765563672934854399886922084542747256063001523475291962897484421268959271913460936126833700087118932723802709973687615860706223169714218138231572671011651785730181703132020194584138731924259200026712873334481289869528362709914941546929132061159497542272975615028216245543348746539886664575723162797631919321472554762553230786157880892293576161862004227209238216124651530379863312582093110198845955087494766682064509525867922194761915417194110587256791266156742184387546003421947608478631702453079637109842529753144543550276939892318896420997188949149007455474532022249540490116664822698820270723820476656658504226629571794258066547652312175572898847849570283454894084591123435000782890403493809057618605373676527037739519768543451713876289947764541322583342373208058635477922132186532744476905309851809792962585130502089322468725270449877569898779684994773618035900239140370895039237098254080626184333478559794631098463994741724963700063058152068201188765304629371767763830214443350617247767135472231263080290792856065520022991031755530515904651424307040008953763756811236788173535418416207499312000216845048034356630095734603793321794755319579924475442863359426442800796610937011829421406327117336844265478934117357250854627264551058820333541829022197782068358807615443815848924638322214168090642720710435642389195151375702069234981034759673434132205297020318552416356106759159040850472931418804801265203926779563518946034940407077961291906554395535379137356387838536780256681024668091094605503118743929830533883719658755088503149792137959155922666417046756360939265611216376072757915503376542393364922168056961566536672557291789318256167679087135496120770980300085556212643810249846894254803569382369807610342207724231070685509067720385602166851172388223512224928349239541533111592070047929934563137413543868281859253166514343235180369725251402658185137201690243710258056116398298356862061953435826624644369545066651173004314992245673391467700532850228835584348658953314342698497195486346955302503003297572630289732108355067440749686314197936789151746935888475148898273760934416915650027378578575169876322079488943963723985483016649624990356649268239212022448360343647034193024133214640898095009852202622615189772790271361475194534807206166554917056927895423304574322296282361074419936167213154294332455914263379370056226741635689481507237209198967807408748342342813425593673941451474519091893354260727144424393481018397649295859551613833258658849559462575139337251752802138738778163648233374009195147070495649647700196477838952365425951159109434781397961270482668217047783056152866418605874698639482549853845628721200612417728456386470134265412637498186506785940929671278604383658711432123666857585049210186593668722214397220006697889058984513533249064713480030713524701168886319984667010952668029356927866530951390318524629755639971174257702503130639637053827116965558812055502432357118665220814363362748542715424059862098599677729602272685115593260288512494575061241232864402984787975113372695093095470943808835726639910412538307975380501446586508953626681666678512758536993454563584294820047382824146184674657454949900778188556217579491286521053959581604725823425219635549514033401866713645216342782638468342843309751734270221105764939622368059580278810712948495831795998784972107010796383859446566853363141618982935126464814980693015426434744206386621735321284572393606720386750859637029445447046975076308882751559263450204700423499073552657522388860044796108629727684669082488140117884926605575211956810256694605319040197966920008701450616727884350384460252393877213420437964890316931137881021441319936939352577610559885659029151261730496138960331012459871586073684948721577738133075759213207099478750678918542776729353416812184000246763500831996584628099353814546543366430818510012582498213793236568416164039701939693278704548586733823292792687030827632585688607110552055388155167973067827910226058627691908514269268934021282052940803480218619583302251254797789616903719717653797442902821329797033587447030490687325594251106734015113703755257962208013785301435615872028441145378387466122264227545958274805644311930606718993898804202845614377730885430356621727447324860529876985102291265457585583036339340534821381215691940326382834978712664363915060694964087921374060128371801688056038316977322716716192761712699984590010317388498567564033046874848378025135149434800700328287541880357817476855365193434190524101135043677075614652149264226367975570344963600634956642914911059543261933462737573803465161261140383488958074742914042796640604644460047011318686730085117974041149016858348748353732811307948216997761398480502347326064898271643588645599503971802191513581561142866580808337476682847469595641761479628604270625599828361896917699722160765720190807203867277886087987751874585231163905781297701857552531883069645664004877924457382244479825225678153027541446712368748519472837307832494133148274093740952811638894958682045975308916518635683950130836219290889658539774830645714706204920905417733013227061590009805718072198666939593781148425592400471817000760598184331267194744273574757976682643900599417157933152171477605360494970307752698793547923443280763241307677951466433376537900874234090885483159275645195401066574003466439181922956281448057364422559317965769118990525367443375971805611482940669496885019012688851788713125459445898812374089443852804656936768770015842154778117729900399027290085251611886493930781290737648660053895582613408808984110618297859223706596421644844534558010851679282557867405675511378486645260820129556146093073338463731926740663685612357892031112874185633894875604629589417515192537911468954744400493357431563210740199542994261474362262213625048034861020563527300597891880796676252033607707422322113375834569415436078904436215648549778563467659305128216565740054954108983224810390083101286746311245852684787062071060837259738638193546988236694806979243736504117918519388436077885722438795470686246955870859861063397805468879604140953261636943989171381770335350390888066359949231506966329106090186093187127459025498485245584704512579443088567012959978725554306571539522840749855841004772505086506922625393331957476277083977713788202809486459688868368676472661307688742488199655769423119864767610597326185282338883057304691894479154672685370392930801006879170021665569908365729739185691238488104286724443840690714956807214382885576561280736669324027746347123469660464006877690323046966287319914703111349268797297331886948237409819447033063812641571454388621766974185388858672571609443522247988953793789463731258392637822732292656329863621719964255406221031188885920227257269099166665191310065111598078473619417804508279899945573425120922189732724584523413331945628203976019920134299032801685113402434603357496849524191769419945284953407631566852291659774471091107207533833304730379921081653488977479430243043548005808134314276573052034899916813690703937394786007356145875128852626972783483217151313749114049745885490153290263723302157936774620015064816056584903284151190850834834876210478718306377783541901761077756338144392447043826849047449368935772549654352586500301703212943371406881590320169679236634711389998404011836717986119308900386982605661113175767071057074716993351454080782681619345305350937797648540376653523992692678218434438465575162506964092018170548339883328416548803169799371424711058189045841587291800693397272386215428049628097248738971623831804711632442250062870040829790052869920895536332028100706138286675233274927995754100463752173166571539488045771797660492637821486967489128109534659586156153644657118460441767742166160344814813502413695362160265146642864425512386423968312783375724185729157289935475829177413793386484381173482957474433776012961758616432267012495749118426134615160551560036732907885433293396163693566360013053178809654884120557921121350051298850689716368573472605891237445699906236812597177470293875042754276893050485050548722579625950958583448837897110849786479421222258774590378350310179776389057930464377700882740096487028370314929584493785455533796277013529693597671073115644610450767386756352991582712934995358354875948215398467182008195821723156748778891045802268492205312201844390982158775171379819979605027242539908243667281897835411369059939262844595052243385165324421139194712827834521153657013837582041245254373490883868854147949032334031386560137347150313522666736911880261845353206171341988490544204176830755558610144751756328926294647683251210810320469032298471450145691241465592782995165813248510806301434604446084371856221652286596121190541128260720501746779796576775703674089901330221039731841880887081429060363282372355613460615519048049388173556863838232314566788113734155276164696260336124383221665475985306251044914817312405444012355317869541094731401010974302726038187311047683168881316658504458824460944965573728686076454451212528333804516432123480286647247081719937287691087864391953441146707112857793137811618267346247486558763976173096941037674509732690216978137829067682299032664644470131555682885142202882858857877436683661641634267014165854879106429242402419168234275805962782401806489026480097576298773639369722193176112597184750885737148824519044503411409540566701472915513490583056561953155529052508853267372477379249869684516854519057493992856310928248717715169855800165889927020225712378952080685001117325825992989722912511963429375216000608041803047401494462664508001482573702198971809352436856233022063065213134536217070067769917772195087270912215171161605196078825554030221196161628607168575348507968512242495446959643474630437394222435547366472522947058507758274226401938186390317301859919789104221681293786117513329019530300303206696873515252779312650478121854169082368752660202753762564065758255981539855107562468685762721679664351626957842119612711686432750274414118099019814518343299562001023975188399863085885185927304632479617488550535485047933060229788837587198637846615063792167729276167344501924675181220582067701955860230657536613622966897248025766518220206806667483193427276356388212503068740421010163739657108049259629456378244462613487337558504941945798493034168589950559886614224455222833751606627504826314543364309842018938276745238982133203441468202662830299525185701869986705944546447686465162484751366549290002717396668148506932778327517668951265056649963829450518922244209042155949773805000954381917845927916519948006858587699455272989728942803024277314540302388383046798307323253957460773096335614524633139742088335697859517451243598714945809998051350377421299280173679440304097359317566771033047044103517919223796343818845729707621887250008221923406625278041210460379439167669508102961154546848965658363026209726992747162906544536177415477514425822888396929588732803927734236204226024661617128816946258620519085645663287481874855650361782507444651822380181042454792091757085496566592462196335947920967925980112313809077161359156997789715818898822178571146572776518155736180861135104001427694804874379216361462659559060322767441939469055623242272815523137282686995381875276814007397891196904451490770062832552771097924462564717046016182401805486348110029053133709375879214003794401561399449260574242754251412272869465282447757175665808292153783568611931019847517250384324245578847694707427351879262890696045950483079484260247116498344150963080823793554036607348345252592077608967855220863845808611646628222406373632001170779895417791701557519986857398932096030572803394198674509770337698740095160625985459295926153075585253307170400471862126939636171530148700885704311983836315722464782017623570708351697588238083720453453179536116232364634672841068442959494338878431638683013669257709358515726153058176723649645708031669958172779212119678904300944151307480746148232574457131748746470408257717595515102225031021223006222272584787770057837836195010316620649061155062451773384151550241745343305418074194826406440327317207093709313839151405954448870672301240829041336763630395072989500313346794891177005667836294768991007830861360457748289981049253538544494653893043507447288503977679423422769705469527156701593019583154218235991725601055586596594154472746483429173721468785368899894158155440444470476937132062014246934162840232023786041926602245427723083488021053352034812227188271158527568720066574218230957658338158670642673861984105250288591048046650320630163474212436111697413740700589580678988973119070752147066474398288733904078791591361298792106793993974788138701813437273891175696638899119405359604072379165111071645308505137189679052814885243693506967649331732748802238555647963868847024270752827668493848946870603362093912485934083577643096093632771834127074455871194514278643361680747414842649280831440364409008178472211791959263758420032421401649767274515183123241001628793405272510022900155500768580973665785779063412030342691819954659394264630972183947298107363707185447713289034777439312726067595992781258551584454193446740906994865298118861828288038981398250704327277523225479849961765337920077116308439048911733897881093760276001870322888235930782870933221905437561245773680640725484446640587575615933301693734593090596662911035568346215666119340508641266631677984929921184269280296029543382914819353457756411404199856060867740722132801054747964192751490694970381343918325662501487370333510649939133530570262448448519763423407530154378451440886461098436116043252351985769668534724561891925541924672808015788529788737641314777535370249984143613539491321066879670360422297884173181565492205136870723599787094223331513649946222569904688465926637407697370476420256261616108095898152707153702074165891340794248233866412193282328997610928517726182515404975274593341904336389594681449703655482877582698782881112354313420881485498132392454461108139654432985490390312874740608806908791512945634101214067378706912758193822988305715796200835125980281318013979598040223277720626200740042636904066291492455343459545716231936766079836646018045453528560369894031855916803433743737491918890253054729529900586420763575199191630904358361991724860029224932350069348130100899002770081958701059723528380708479780594464040130930988642475436440436470220780942346216978925921377481297695108734590991728872227365239293112926461780186524297686492110350793080151848629648903707934194684850256691377038300741097527338858610067897329897342703879423590899151441300885183484751406155147855783158664549983766237786707393456929793006742368372522540069524111025057290607793094023838975421587666225713313589455985458439903964308735889046402184565178097514962392970953838569158861549477790006371855909227731320285933564477680931154471648550770695467128237186225947234887203508543470584475965742390679295834211286162485042173348065330626407007966905700235403698502458546670938276136763898493524647286445414401990653864986645270526397250856219546752522173473389777553747399882624580393036211788544498566406150371466924920028253397906098634789363030913895894140524217211397891475610126902454048374145297708290413160086987455844779697048474779293436117984493572797266534968305864392415406038514592191802896053119361576307400240607959211522365962865756709032521003369340833303238232653747915817955210001740198030448889465154464592454383449339189400092583468532213031082093688538631489096986624296634110679074600367738213767441882357873450717417197384709407151313108208271309209827776936413144513422824061415952225238892599932496694437103996156447355621717674473536573929964996942808031935823244548617118872200204679472647240861097027131748071905224320655178146392247853091996100784907247774736293502254490952704718478607150181836471730551318341060684261990681665811656190862237659052707986885274009456910913788837341133372669845081178696589153303117227024509961058624969673856946033991752647804295581023700233692997521407877071566739256030981569004698539939130778972293771183121983315279070386187088053435946778543860618452071453148929535524546184521326262514410664339552563389039269673208097453893612506628859620196612994464664694006060268429012168905368172017976995056139526821026999133096472950142885759031772617628322138076599575334829977853952761774061212854767377459019814481933310137049720875188106771412773658776880562206377057260862057224623446294332262655546960441783725403176893909842505536987124416264977030354487760331929526385775672049514916454639828335736231230097007590555895671681778704037008331768290622257119994462258226408479436675158119105379298164500695384555143891925129058793848977500222907800630657841807371967040034075387278642758265691931288288571974345550143608576374724525038347369375722655786664690788906158923309185770448564539471598446206587150525766821390799941565303243745071478517396896033171507260285240496460498534999548590088922887227979902992875819327631690569137740829728770056335449640346900368467071391621845187918098799443400359878281828189889122588626378955241611815473861954704300550450381978591792629085640305624255121950680307089466285705411817839253258348116332316223470988928342661200719019570726287652147568993446167202363234077459674545111064387762927102752675394581763086708572160174424449273798244177081621924290335656098119326450019307587963742631363758990887400711906236182957969638965943789193363914578075531859858726800735366748023712442179710688489735200417360778069987496046816648940083676079563588674967275110899061452564778431474270834350369494857447077209928457047633340248773537726043110091547335478683015433959161244192833111912318427476392789146751247326977933412332398122478008824172570492420338310814242653851591968572861128394132870011114733046444884883077422255187590380509903585478536040791099133894114624224232392487853611026327566004488664419003771676444213586932392810083578935531862612240682733063023409446436938058541379383295015766964904820582912810810911597101542812911480205342233186273022659873378350085915026961860374293124607582841883721100874578960398194519213629585090746147582043845822176906962664694080767263933197461582610068751789100106976831644859414271420818644540561388105372694879812577820770341248076647702182917295585294900786346298105364213172261397904965478457126892020457674926413805901909607632290559276131769206532185049948493708025520521927270711282245672793818363134136517114222454302865981371605285453138144403146162450714046861272851640475288849443215580067178369603352638191616320226628298454811525734362423216441410188605319977293758379896826350750748698714756046958908660130263141051095658658451990757160271459090879949772378139820115272083394254342665423142090081481230276948356504772843733844292173859971381537042464507865131256853296199375509118301303800555259786049189340035560273710653612177917064969888189670558228914395568105383043966012675318523758577578371305845891812436712412360996678067193955754005366487057959288491423017681408801318258162412567482396659835626402760165795729395621907220206389501078204234733775434617491551551653488199860946610156189823982025617454924319256685418197044009463690818938116746326136917561178919629360649533889674913011168103663566649140451869043815293351983814095067419876721461288493321938477627695521715233932502650761132692792233447821388994499105219472564612431190675554905740996620864814468695543731577671060281588249403850451465946680821585546565419911644011950043628227705681520258199992303240392257319870588727347770120802841483885232161956972930800951639204690206853761093298413529323125047078322497541150039296891885481407979243241486765868455076489679396985980000569470110004426091130501876221250071487691987061345935405059168195540460692981798065156884446692883049142222533355316315159441413087163013550131298703671574049965277955130797267942754947384400934668809107302356214210299990994684353362763504637840115474279182543507550970660599262280330446499979236198543985158356896188538689337660927394207399560852919664420739535476333917086856792023816876176628076789139653832865312841438399270777326170153767937869878215937660657252789218340418939810945283204946582576781197291979694912089453173638996943760879085565239492201156565754738503426107668915230292920138191809271092104375422415078449072452651114944412079107494295901456898529706705213373660595662934427574941012272308629416375365207451127111607601818520756094476634808181607279956813470156776243480760759218862689603865798729184250078698438722953544417584149502928111234296199455224413043406505583253163720768106201534238896339258324951942572062280054804989699913637857579407202551820918844586836694465834741901447771789077659587210701321848296418851051080061878498729774545175324472712148829502509847980756714505517152717907694402372573153542861747330762309923233436295480358961096683438614588917821094248705709806233977325429371226515914586778487527513665003104235776599477117971270906629989352070945060952092864683870768709996575435589038527628432463728386921997332265982556799553280352482811424951158411806128884531905035670288114003818277528186562002452329694933680140329812701099041682283458220037911340653677047689046899606003382567429365685373353525609987000640893110129814029000885725585653134344335886937335978210651587226210402961928408299860004285009982930547220404925514337394116732311362262528931793021245552488901121206793480010243059888127907160622214299262746253106675524366855276708680863349133993398626866391428692770330430304166034263468658630865067564257445074890007670290215022446820220470047677682505531399685019611887609427737918176710883625398336724845766397004863692244477896953526251942725438077404897133060764420729996827500163276204176472431561330289037348715354309728306160371194985649234648738091634831019692370398275827414666706443742354422065656908856607265977162465642800613257517135776731679433501738457484707886966482282035926920527206796955144188761004799987590182587294538347280134197137788697468578061186889884544571948394687155514906033579910810510136944537262691191164326229146780974013494753974385465872573659938148493611120683438172027756559349925638435792624398591791133455046040047361848291765617662576697573186549048537173594707314029764862233305660224236352459726701254543213085751081384143663029132929643845686361096732206218423373641714404543872733981826695007620857599805200373899830697355090542826400324683691172336388635265175246170381101957383063892422538974168868878485549576523514014005332057720759233299854827494557648966470873009417139762795370049168864433715737963387875920221185021685139351768751570125740915662178186457833852677502855165430285660869395641717479148152658145840122062952675730752207486728407184389971651457692392262782739182487981048937778118279710594840360066812336479359171724007035546456092177442847969205814859121046037508755641428473980382388906858191178651289044203226817219788068994491725707155216007147084218007845118442166382237402358728795433153917013041991914582613033856256360288902938032742097985495718890073243977594598420550921360752487326057199195520208891232123040967668689990495474584450032873663709233004071391947448146631090684305049727810794715462989769733892388480074936612964420194856662619560226578363618885444279835061434039243302969154654476243208796605727095320141820087517096602957028388835852480646001222341829666083918831592809767487285470495861509765284476808183367104165939466477070422210271800882690771878055507175281500081030208584892613666880531314065494375619470800732860274244676957822654903739786021371799476532161777452974942307985600425693801697000352499648509311369711101361359836569295841070807550257098074440889569747373158270425028608052782138789219441097019838678654423257439201175408734650412793612447324340512310338467949970800975527996550112403129035125051065538220452168689982026563738242879925016013221721382813917234872839160137042310122675559732369976601528557537580708996236465200029504928957090265380100774782281701327853048767622409538293455919064719681681921443282002700863037153483710989136492528324497985966853362433642777959525612872436596404167627556682895681151300948454874206248299719385988641971942525073128870454942253230621965174103805118447517021072324114618746151201443481680696215083644820596713331010057643351470379494146987522438555725997470128682867350218240193612235545214258787092211899907154837877787376685219780271519488168487698588817180840978272687039105817645783130106990949893560984492822732273711020269062762217563660792185967555845602668583215527774948192239635036204394629883918011284314156596872262198876064451015568324361312558573229281613702621224368822780845096108952732298408783799165968876682639679299391259066262145409403860069414701811243534192759096131662608574296557412233626233100114860584267740681656035443191116833322609226480648602788987816958424791504929108268152893016174149259832660033328323597138275345155387425743383580368470929287057492225967955878631497531828380650452273052667804701500376612384526918453084306045374120094505311673605827155382227856449194048713073093591179718531385760324824016687691374603093915987972174823915093758593725893718029694913988228645370921590412925360470377163420588773900532794273979236466522574721356147532958433489612145984642265356682451620433817622086654920801859872402618083422291784138954595545722015296097637381583862475576700290995179903616663302092794840066733471638182182548447408797678162873359300940043845051322902318856453190559484859792199581809873827131233334927302643549249264893331331944863206231454566675854312760937898842982901884595900881617974306054643115064097275519073659218537155670403319930390216943233041836580722951346201061127633907352362263654071509506443457662740408168746580809268337864134240582572320266985583656306281682332990570373012653846888909419482224661383427240957216924375164472738711913333132067123462339395020592342964487880502805029068409406829984426449185652986365155584586396305512915502807377619607088444278270086907960428581156351449528300972182531332386203990281845265049445979475834408853250082071245240392182580782437821774102806451609381949221685455365674900621661864738681419809635610858042142648859528820084619194618197499170545342266684619343989348935691286527303398115678607418096711155721908132140595467805718192240586105782835038978620393745568269527330475921411397638524697377483831367589025726176936720379382936149469861040377910607702246994079805559640658443955803247245135495476743348770169236318313112208567883351062132948146452898300795772902069939603693577885565792725063248629908591709569274673991128950023075182569038990303299564751666701354933285726611636173125708765854536558980793050900888617329476778412493737901691163362858350851356656543698496045436650751000735909848371237855358010611028062800966596422269626304379148396777250303606446249458025131059684337641074691701598667901481258383861579089337586680899213072853763841346746783169950104071500491508253068240731160692361483623242113543228946538829732788221303625460735808087099045117202474019226637870801500881341024825660980953009757933574927483528281758216371089599591702121487542292348504443734546557106185221232977328710665427217731411325532587523761264896002832173281770708113172768541710492483503982592845186288589298761883848061532248426718318918045238276731560015668710013200914895402117801190919776859507800203014618931850251857089309230823789758128388178950038664401073923391996564474198623784604935123966596801612846561687479131585051884052163501861989842670491195060054492113017982530249169300730997020839832914392426866621807477036043972357001263317657436030848629082723232138145992576101758985582218436731206835196824102208565431262074731094805418837834424285118700075495484733016492232154996493299640512575224169450793280405001812396674229309568443304583250145793656634613540670057573560193122087728038515320055915614448658695059741566840278834779216625511522989458272329818983849071920821716271250417900360258518493834170441932940134926282185411493706192543688456800848519168486504285886269863515517309842503068582049839782360691722696776147179704140908347175943958716219475946761587054889277192692528377002387001083949602514234325121965760968918152909175112942247520857542896381074394047804498161189490445144940183055314034085292835419385929571669119111554646516068053780349250682950709312587013746871627276235091546701425743735514804238958651242891265193355179297340997495286899200254985021410535689995379126091800665882564217220921257730590585236246969845230118911521247365772077323874571582989642702013227076912326107046554425104845097807149170695681244235143686929680313968583318215679559920807290028955024188391383508318941778887195892379116024565671304751944749241773153070961280457957021724726844449245315964184068332700701560415425499439837618336445057975146375857658652657828391340826263749498910521096799941810026906919362190016682156975477117672575263271019639967931033417240398663337139558358216988286249529268060024705748983088115631919529986299611844214551459594572819940026428885291709595803111911676897248455685735813541808602848204104987396228910060792923034119987504522948725793103919335739148951281185730518356645088857820962293408841474310227753554523173795920223495905536488474857070293013620661518262369828957050058886889503128481603298091158067223303616850878189866716336181409787171778892050704343101644332404862648787831445226429472278026825496711864673743746187529922577544362248464904056387384572509921712188795132678535960176767380981461213618451111268327035172017319358066729601881684890823183588611858117348411518661030161866699942305218339962980861981596200646164694963117789485800025857651909969921815307867926187108588256795780439329745195355460299884975633360439669403066612899346966201552975838041683850051189828949921466581326092799643497886347048486782598000113924752810174500021389014732918042840821002748718843379506858951860256894108768534624238587129804769352192102567764337364289281779271013198345867307007913783726104771197125213861184052665296551630115242770225703388581702769919658856941058986405623032756904381986233910344321190363337349331279574321502160485362658992823429989450213955418190614682162029213374538180431885506386036679195977908459973031688213445153672071993163903643132775109760121767995634956130038160269387492810137053664171602205601774699347064087283036467084816809461838844511617391143395379456857026599106565911748194027494010236759585755450038380166513837305297259780945093231248156568494468762551569916486588366391874463389242593259233935976642980078316672550872715050447054697484313520195110795455711312235793296127352369307552031442321748553019978223476782458984032696471302894187455383613094690696781320705198893082615002281207808137408820636335120517268975640137604449520627561046028866849362363537078290726674371718687742454659132390956500626719646368756230573958401636093105273427691910106706213377884024262056133891018972696964551967408516947169099077815451364424441854249351139618954979772311302946173757714857305123007379579808728040581377589497645033413250093016012803907149415256553001109151581839351109516468056333033451199691489220139560840441604480920424793397733492696418197920252604680728797254005016665875023341397036646966766873547835326153857510454145227160591769216763083753960316306812407465245781115400170920178189286173431722899870901274647662026913735715250113562299928497289066122872900765057201964504161512757712478053527101983125999554054583902975579004187055542563526049297677290972238143430293388506483592266518178819483753804496750963500051221995678665374412445107245129609387983169380654049123989093972186722027824598969259799120019315073367308885490637585040678899346238175015436281547486875381111236913039864206192375272764949750234455528949911553786250893806381013032489186726929085240717310176211188874367353796724296932313567950307773806779941622995437330675714904637649009651097061761857344108704826853041614500332653560501826175539592401880082526697288854120245872007840730591051502874942055726248210319375837028006967206360443323307211932284866320632665213768066570499011834107521165313899693306691601161162121008799572369552549020350871044135311202505214860790861405301743693874156064038689249834447100985860850922270608473890870332220390931837569845255390785233786471019665753698367643222457586494603680323936008623743616572922326762001845172035404004979360168973398182826680447875431104879315468645436342884853887802284274514138670983592853013614062801288620567092686981730951963128790415953990836651366336077292173473459807927936545196204209013280077621869471461479388134952740146764233007631930012469643667428018482728470509449271184945659021251321858275720630930310628564330403407970468480730475456144677994749849794503427257044941331967142749604503134169550675391749416726566465460144603336962877262671800073246183515158059741470264017929951989124752562212151790049345186203573207246490250706967065342029423043901869333124432286602924612448582719526531986284948326823725436353286474261485625624782604597638752462176033702527402657530944127158916354352345692584485058832245207880158015377660150806883013593192055405578821724667463256547195422631354729046708582623979540824949292393608510794513599062431920992314032001577881992077616420800221894666095081550361258792526065261338678633944130415621246122931043560995188190220932237904733347180204757772135636234754340562163036312646360913420031436366122192749528862673840702975518962186999774451560614055982009305969782821697700315384137791097100698860013414895228414412079097865669263768542866577072568174535043639173095792850831584517759011747166817524993122454981809716390316381281871605131580276875470110156420714479781069196933642831169821726220554559038701512714899635116224471695265568676688819611164090753740575625289238846822567525408893782256936845987888939162136282117706763720197684684975613064189328371011209536925283392144253853296973965824432815965860317149674108318538364424656859954329452213350792805409436451295983876104547542579265829913229205101676004924951267199221466353595590458081560071947761768610841137550001904445478732149251101843797249061193937236507627718692633969447001301297575735123323062169947043103780107536908791763947210984746263843878136026454523428769655574497047147650902095015313533046504152370736721614106079581329967466613391465890187744891337256745926303484081391061696759262009545885529950948374401561147818862095537858547128958296849385797129348062594979644277954359591481701536778568343446953588850414574164453545313609322103889521240504997755338045376340698260061014645152583047796261914644601008146382879513858157280011431528042956529191442256428173913747861756143025295864543597824149014665879152900039829614055851132815538047664761595787744445135152735783200621921415231656242887989263689127648429137064724645692841548549465766127433810344142723207645246558412979118816762442081613646992094469839325756688436819075393136257756695587641600155738167408954524030813105246844488845318757125863883822588965137816045113582683866133659228399828938988243065822914633857435812668830931779184898762651957823081838025849890207400840388198264093286061333930261407569235723952674517642536192882551012089454771194767753961987031359082789373385937417285952932233687672231105909085410166062179508481228592928325666504201842684937372122799380238690851019640396902807367811631182646583345642752148340974794338094482921960060009183193780938946994208320910073459083240986955604757622192482223788691183825409879022861174680069609448406766224332612784189036165394778369998965896645545895025591658518144218279991557236943794740209017938110139533570921320775123822421995470475423004988435815301457390079541697169557466995772811522289324527270225016756233620585861599544098850555071180653883702683517040378292378356698062707386390893727996176223702991554681805551625626828960403719718682062394908007541321750490984124702091928283436004697670917851969279601238948604347242630716096833611735225421580015686539814846838755495571872292194701910314162381230349103630343713429753420067791878945644419277568378634358310298292145496047245623550389344569930337906096033987300669451219912105769523184539952333898043376829602501743907506411014553611109153800593547110398856602653709358943112693014095291507828522234789895402580231373228113269334081444726064186128810643434666779080550792546630312863416370224686138343032657685057028487091514697288793372957216348572053643027417315653734888425730867306828243718675219537560130059567219198091336970528386947647288585879892729902863346659344847015783306701545484596910032627685052398644425102478294578670873632660069618961125601159691573207425495755465632581424167456993662503307963914278552824167086411913820630830477056429915565852803356260551241121252756153929732160729611218649238426728971427233335507766979186707395957505488776313429902644258363210148896499888189025665091357591663518001625458020718278126649620614906946425819728977190483454492759496376111128960563825496226624368352768771357588163765030509484577931754602851273074301284519586981882261983122493937441330649916907036443476344440978825990117493891374905407712352817539582155423995525809919830189279848683547065205858599977660602592514916551499244186647224258867080978705921703516171753588983213154103895839531198420363372827772174467499980524974874967756893310523992255836033149649787953403050076500854536646504247290181622040088110051049574057143477637431418829691034047361997810869538207646681309955056438856048170285873623133911687045892636933941734470280104149833637153197261073401544787933379303331816723227676128626386680227974999101812153912839006150770493701920617046405922740976447648478359025610500655137871863703577480267257724679853020462952045005500276614515161504160715828192993816810493791050795341519186194275275591219155464685565476112753702442643931799727763887715169239849456994220522099000502496451028362929531329924269960438214943988899180298345947301579363549432717821475942820227185786943290871799156072964501470850230587766650963346287820575736811282965463881777661968836853142028062213837284059843767500953243488783557871943334129315373725166596522404541329098324763492781452055719074108481466845093476262989035074173705612845308884509570523327429139948100061993812474809142052634761738631687147338762783173941933756690989367452657274417125705322710265189150814866601519462633504241775265470494458680388600183041800383620178773842671384946171814059745378366996006490138558175536476951104415085434140273909066612147956999393861610674646463021307506246636168731219798057801978017673464882128513460870697185174856216449259113507440776021930565379859583368026610031608561547437496392033689041653053054664451555574486244061930152739502314952381321839612123204213889474555513210544146473701723010318007377070416506155387674125990704917323738436860870784546505731484661029650225939406554459785285316197624340027852921321875068846737438009573669488260487708967029445111971208997525357549395580732671220996632739585681998887537433761419511415872653896466048923288084614406371835154334722429720121515416145574780389738250233241282084799570163801824436293564836028592270781435879048832799521446426345052297683281618850310981491422754951254231942004938315655042197320630393395498773971272108387998300157739385617667598557472910850611585272118169307679561828364964286390077221102870585506802551921469982147713947596203771246300658762507968373650035795760991473099640623688064687743506992892183332535452608903748567534540431041692658590229436306121165535008379702513548038132559276120861173480441640281420075820204132119638784615942864711365636247205939800793179033001375490768165933096491904457281319411547908224121996151655963236033319399346667571412918331032918610777124180272275576490569741582578932522291901916922293940771264439343042854842028273807516587175288943862131717414142750864209844438985598471973575976548296143306557199141703236041813078278935533527152263082859453282971376455129696085645231270862588453993751151859590047271508069968573331961492565346503299823655642534140053183101864032568439929906369364601810617434937998067565734411838188889854732452019573491984864825848640933766512094157421935426690750694805022210140569521749509147823751864603585789472027782869851006514241989536753240670444856226225407202953625186027565985616987151716751771625056477319715651348732568030780073519876924320286407475667039624972382558002731689571192835042465237594243624799579802721995205389368573584111890584879040984058905563480398821411336372469456277283110066294818159726617031522544289033734625312850052876669821094696741099066354911214800380398826237169560187748089642899101742117306590093677389780029979967561777713162032713538992266177498540749045186496862729945412441992894011916923439651744906051293860929170265096787462719511937867409569212255117708390561677684014481686287082796812671786019250734424913412000875497824888252144881867724585951641554291780528500112387339820343699746545067945620075044705188566608127061868398688882526716161746060141064576606025514198373536753276931873319905654962858795922504564316130580876283084016576784730628068111648326089991430584124062047665704244989838542942126675205163094476796636997630679504393959318054921186860530120193785268264571107543112666618742408579431692794474525845035622549051378974220239190368069591374893160961147768361054702581473270498649945827995318335952683935621465845892145798590696603059205040075685692219308971417898853012137397543852179105105345717180272975746288835136900741292266092716072401487706708665423051950508524944569597721746112404954760556485931813219531365874257332648349085020805223243428208974913505585324319803008938853077869395704734348494674394211992968854740933814172368006410224536021381422240038783815679711253015065739110640041570602863885527317402303996874108026121037919892285734231560295667470712833615332229333989358321515538019230921313504656143569937000317102232941744749168086683399823412123615457229670252302503049456135057683375466106068391183913105039568680433633738163783508719363209517409471303465916572026473606010993652486261178908585291139857430797544949889344475341895714782859898764944411218921069382368201923033238850897447538831337629689499129608232929318257921819038927732252843488826953662235008044481078984382540269595315117339570201022719900611756960048356423242588178222427432579910068321514935209333784408255395281761866611725609530059176821771631550491387952079490907068291803709799383198159391515715802236984118498936368522634954233590547455798151482750282550957643444453410155325637544828795589281449422473580446123716090873745336400327597265436415729463782473382659272988180279492143080678079588961067019684325587365592829442387528825547118520960047758608141882119039934988208137060587309904850814445909825959635442343203941889995213565435016534482824524220155731314546097159814272501928067826161725987705629934733279424661180239085603323783727305300473612974936686150926995713193880015151031998428995952777979838157338477362487044694994871435181123952392430658014141815721549636302425164933220494052317523658529693127214031117180351060256749292147836215248906077422944788194791201525560297429172889074991809555600219761234218735007346534265143525269915800986048484745737733410001419344060504651507029758791990420730178394361739908086179409379512871944895311077223135139836125023478183569492164149237561273710454173301341580502396385517515460360873497156056770953339921190538067034742517656781021472555922991238979066610334039531744783116029936908072168085786884624138741268325077071307202297936186338245593326507232022794030385524886018304619349592319578996153046799358357726480049410368549483777226504877865043865138823341608027456572493150914225375511978983231850760374857772799034291459798619310326108517634872247777048176262252632092851672612190581898498419684205050160862196082393472358548987291461212984622329351885626719304948372041183217143336597569371845008008388883262939774598704047905926116131657030336436091147758191965939736656898884371327100304780541033595404912688563503333535278076322545193438136477532339448117485229375733394151823714222406191091445326417387769502331835373670212921480037402814338797376138851952147570929832131004249988132895970057788221822025212103858231505055255595178413591685097604214975808445790945941103207753305207472715905633816005070291589686314524846401653559013759053299872444772513085939304288633019319562850466656108097669823509964594738892877942871391813921327022334389208033478006216410083304333732348674140872317324383834107768139614405033375572393408202368777726308017578835290807229699895041540996362251436234791335000824562398385751723921354307568548103421606152716175593581428525116071231634684350412803716419605869362826351812492517319119991587325129878948832689328409940003505941435357419338438610663690803536265025288747012529562802420153930010070297396359959653640053794846781750369227189235424545109119951202827402422461460321368596930048390533245801691315982589632630606236228111434667316011776404221040331538312588359759734812317752018762494991281594478806048914320376872803614666345602132216379224268313748123989977041345798908558993669923172818595921768028031241529449577342208422970079686888052406746954741823695705145349776820274510432976249877644630118616065121791954503989823712704139731860707050339071755136079526175595809716204443761867520298802983761965970838510902219486749052511178844519284640288029527787035238931798705786561489281651629584548352418286701363054049812741470664020010272083640994895345708827894557612435925394658290572739809866294141130484956776919182093008678316085874987953551164444438133206721306478839186564194337694211184081804758317533343655682866059496301261587278459512836706900411484320381370342118378799308263917276372524932505260402673973679614861364059936459689801540456451941060833440415769363451787070914609390468543895276086938460452739394719808667116456060855654200920144399341309814012129465850536364135228914674631667356678346628474255608099701704532693323141777930439493214787012353986106770388889076339214821481475551534218006702250635522084344828361993144801564425955216701424611168854244171703923385935380494446955773032993986540432244301154720761567745492109191880628773372477825194245236963229759261965505359447257828180618753868184967726158376173877102938697560434746506812576125401710926367638281969247479693609110096833352853464469513817289177228091977218467006235153839723923762359632540149720757963089047299400935083194661657611008513835461806972006617183164422182818638081360469559782944591562204239963781091567711427317295040329963195596001719689997931527958663102046480716953412721839801444286565722564529932827571664233107651765658440021005751567414772892430261729936649873418192308189481864269073807348964423539229825742625074908414421329112136157811739157478739234918733688991487214154129095223908072081077618139091840965319622285561614571362763523823112462177212347647579729562083643041603575153912941324311243804512655016421055905173595436692503229056337939547603539368457363334719939960475685462773624541276763204248390545621548679955662128348556317625572347278378889247482560995995905777531040177859660720403453434836172176797884799150427430208506550526912400582236794338666007212295476544837177694809176626175288256196357049527280309502551878552980761372193833304936025758767491991717947944676332048332165122008637769646374294780961371448338147498835817545784540337261068859663243440505836202955129436492097614948798033271905982845986526627005185211637565739328700045275903418138092091758034907178822244890684483265874093475324261571317514117216377906106460615583811700821975553351935767233648544442244732914250082584428739790731217602723687725588601329880209679509139075729589111419947384076961378388762444994825545765557794824778750300831783369208277995314358991557824767339720865234874732083529734289459122841977936043409717511241492445879198623999586486755496620499958676087273093058378120842243923808991784879302163492439750224203646535334577016799910188653480957606028394939008030399000131763949221828839058578223819285264506640493706521156874213560073145287750476202569298925105858731034605614687040165323243561340525146469814631778081748227898133964018285589510132916752136350878264570188977259885280577736799156013208508703431818408332469342175371433364422741720318828833257107337258486033247796337974396986729001242691340880681786170657116164086445719680845851082001124611513311629632025348349795610643903444847700725787759550312451679076916582485346239658823714647937052263896034547431869254745486760357848171788940224199001973122103760650436775936224067652581916761830053578582194328768898927445064148964902712871524759462006315774663122123154849429739522714833704481617753370660899383832263175854996329539542142573148355113089908259957087004387527078665122848441772077449050128053514902902636710235762322896008345873277120972801218297960479831370059254420295451557254437224993765238861873552906405260343691706716355846102759433646096981532100306223119211459766700859469637413124799703395525087833900222617990524555715702104660555475865797115307765584348796619352531391732908383267577779216065980467590780781897386342738903186514457579674841864997119474052802975735721202852227093083976363812084364805423962734883644494762493458403481591998469488990111415033985150714605835602701510840616590286722041863147926711696044313918537549696406227657923773583703591739325511440992097054853296023616378306757891009870847283768171649635113181457289722576309894222891120666058030993687792268546190332957803572338237995264043322870485773682783092963392448138081598995232492486596207258761438673861200554823076239848371405524693192448999022103625436605131926726357784408780682308227499695104962627686189101383471097857534112422716835209740168136711908920190482602122098430951981322697670348685037842032104589220120774323301095608625480267801647810159744272541980776405517207722060726048416938628621363348364020754267241366524864667820141849141957499363126024371232387207169075459752222659438101103497933938431196331853214255431366867678673657102979595024392482116941631947149938204120452693779344687177122969788051190134102452453083745310165645390235483178384870527946684351192687122905847569945857560611858611988219313462594101906866535961234402266522353468634565331318352603197672037920209108298093179393153491945492212963236367116879213611162842918849046553571820982001985640886351100924776736110288598766888452470288467165749442242013636992967882274878997791725505599893705373655263605773613698225170953494431350896314531646318834869208494072775653171697848102619774659125424639316726758349507154775644617168135741167270252226670987438708503207821777435870222396425332724022424803496212746879005580453145065492508590893977402735972374440269697211881140595172325646104500991809769646207159056364252012864091085153545576833298635843341079254409489620682411310874043904477347891260478609150004049041074171696551591266633114243472599006796931098886889308216272687041454371388438482011531243854482645060644117532473172353625811289582932568428473947196396830339415288973108971331832071190241068247220626422874957995446690695179245501114870722165539703559244732632478192926390036742479710854710435578068331590907811243718722253631996417032270255170686590856163546301123645358232712487205306094201306189691292347670963220444090496466840295940892387812950651061127477833887301674678933800592515274396537374590748973404862406532204743488128431431090666233896327007176375430670439388515565679377171310232820278874342357260849884891788587166341164599204468645850934947848388433056324297138954598738392828951982526181727582229895136619765344248230190690583028622294695620566710885929168003155291620708737766142442752222306451624763869339907834049680000448655857796865815687799614320882908002641155235508013790910867970505911788030715068861567659033601123573610891763454097676039681140033256710049221005389857655066344633787264405545156432984086018923930055169602144063166773421627781378035265042312819615273292486916830583699250986329482876043301031405622574864082215148080108454164651339695662505378190064855277570438549168070479312698222147455994516753390111537436422216840401923012874300476380386493954736932477525779678732310868896630362188744473194481122706370886195153598738408521502000588193698408137168309866053496315206066157114705789667197738208049649217482914449871123003398597823394566350583789193006136054364596389523191717820200744640646444886620115728321073810734881738413496791585333295099548192454283452323694964888730868854589171269277800560192541310771262322339444043610460281595451768037801775405993921861957496724640232673605727687072909476955820684935923145845081473557470819040670895712301001991248725339431597446127071776600908302581145837680649788719286381578702134838303139727132564853030464985056638363891913450771819522054139307049456909618703799164872599468740777044645950037446873064492507848925020234093205020254400294720929357412564964180467966307538169280138371616240332984553498579259980761529344112838959143678585632536655499189923822781358585341140561352520398781956379557657133883670189040572915979136811404156738251623232634838239799366552445626904304065725523133023357380927647546974344456900930629667141569262000143038477093199443671951535938202546306738644442972055614467444702197655472542898643770155902444657347834084716333188952979000772748400899923371265516410822250864982267286917425312532499494514460270363690504598014667146859929060459783715522468844671203616080254205259641522788147225429766379149905694767574627893751545907233431368873543781859050736071607945265781726907619220347861894497323429457797972587915987679169820388378829228690555735064121531194469366674821664959032578813898650267483244818127951768177862338352500285866900258825573630167063996674750358743601193143684100093157853669063308385208423031587803431623815529566055708176342872608606471750295044605006215965127999574956025819208219590965922084558145819208214584376232974548951619988777908157461994298937871889813610188091561904801853094872260333209566976391155851210395717953446332276531468478165963491364190933398915729232928093244449856816819984837809478329077836046510471879581992080005783065816172068120083831946793149337517531809115334610271187632424816935204644067729311664969063406177159816748981340387204377252343042621523581082988195484808974197483416141897179636821065052356401194083902586046971778230300578703936427699524163899989151199491492297097117789619100599864209481712331277424904967675255469117608686171948468844388255076278220607931038154999536783296923767728567633476675579288005629465431215146790166979998337014753835518058693951281176393037577983801762535688130499991414394100618901090331130107086302901898394011818253887061607361178976080565370888409696381226895460298518110711272887550819733948815337218731225089559797728234998428270059322575002760124993248105094051413556134646117686348362492336656741990128758366461844695559360252598921224184647557277173088387155355880497090153130384381194164790969671844735030223634655351741574914797400740685708436952106774974021003027137480150996431250507218516185402431828288869387593195165867406751391369410343665517785368867228539759812030032323466042727012670177770951122077362480590424780950285582363732743500298557744449254957776069238101064626460431359831767958905462347943812183870954676347884065023113548254218950714340281643836000225553716275965677066137319135816914663970525005718587349527690172810352039608823686313091576762494926339457878628500593301589892207286539672399369157454202505301963746020750956117488003417781427790414276197056110495952756066911291555555710316895298742987138186206152157455996568565009005317999752609169527633721468454261180788910342673454576820215526334579979036174493999082568887198872598106513050750579051025522684881965070088406093842778747124211082004188329425534730416395916459633421089612410177078238209720742731647161065477093041848362499337137043659301571009750793056464300133372275957716419067870069558220045449884824090147003128441642929866870954785197725248685560744140495156122761702879026148111128137503817104684409623142802247176195687248267324112163493415090881664425737787028241996482343156876930240530475271294143180330800156479901160382993652328529668164997420624409398189318246368251989864768569343307788477455126444619879145937920804255643082697393425911725575244913194137493489691004660367963556176785368309594906666622371115293124727180279736337742924172585821898869025485027115978267278388234059094293449235030749133921298936885306159092250085594772159527497631735743498982302860105810046770550768370702478355242166794362377790333519305672311834560668447640860200571762679972699124846838662102550700416875773775913722054495209374347608075198955897002494870187805111211574466276968603100343238195766789174737777290171341770094270186360238573214051644206234503210168069838035338887430691303359491323628325789340582880821278328264020126424267204684149084040273559578656418075146121398844639774942321361869088989516665668366207415292696551797195552055719551240279691323103779181294570553238206463338534149788411961058306728316976831778960320579980518422138390529833513802202031823708196793076846200083862877560273846361200284794234071785196478910550565565844618963756608022769087095011505881957293140964787413598836263340131362227564455232323784231012724213061327103170679609668528044887407559570057361874864795757009836193126746199580177782537470975973925631380841827793948350795964384229360105172833321438466277200227534032636323207357695228367142823506161145301350407841127517741011600005886554429801667907634024410585564246379671495903758033946056061367232980499499680267763482396045947402692127366720992444717128373798544706760539209750001570934582806363746423151375440830252029178587005937388215495461638946492389228894704461360519234133265612962325985554713186070772207423198839041526060122319068517753483860606808086170887122787494502705188762155836117627432040400049277476332817567085205605986092465516073684415974830389828355151850414431101612429668969739545254025426477254492244971811587467464757301586530948791880043459263823329051343385889753947573678035672897810648157560825166241147187307676208826809686626963014313793677920590190128130524445645216169062156213612277622841428018565163203474713274273530282124509537267302675509885520982786005575838253606792640910189274687806669974853870731692994160821937552525460108891323793041029708567036855582730491093600447916067047962695289685191884358137911537969273872801315340970043855023380221830288702043787270184908673242309864655370736842008087806960439327366375563360053342571803242582015590141986199352309672653395310158078224582216485304450762022896640548271925189264994864790090941191009246452963143333831418006174416943130684801853792774606742450180582582537156229169146272719458794208694045991691224117053177256798214583390946077475234042372053495321718628661563085400732206293759106489170584598807431102704444543467479651114647120016804962472266576442720423895437782644577115203509968524660796043421650179466293757524408886465637323064130048698577092752972911021299641233253235827631370880844588177410185272433452604508387953698818299726634217481022890520416446452220227533901152059804394237308539652046730099268292252968308868721931723634335481849107401530372791548810206140081106913015367838672027932546752247130191623725446789729839438760390765722540284563141700743212592167398149586972420601657386304934414140420054493624833965667160119484196052031524770303512503571344173366296556502920321812017631853163285118519109049878382359381393760144619263288258559201120527670259460798859989351350010549003070397662772478958092321348535434376874685320501220422225928935714867659190502491917056015910857114386052861715344156307004840974865063834474759453951553021469410386478598582533088790526112581016584273126286570334432654591039316093690456014527923189586918895466108984346759327542328848172333240312829426022732284265351663215176111407237453219649280758828455632499968870504008503131406242716547217571223883995160096094222953125562938629789491743097574239496811771549894492325223630253604266488646885382422498326629931349304418951893639078090485939897387047919663044394065215627415639233318456526195492416374355228540754966000989313412277896462119529742115857383173272886877209305384138731381637980573143552156744374905055441627516472671115444553566589216164342967850908515953634520957038085556922124764605281441018685647350159378491487030429805272839005966478618175903453447453817243431138866200118068840807189585464251118128988750250852900686334744598404844564530190295928925016159815027811996043737019654229063904416982997664636152220405224572549927846120962535981309545716462090713226663692015248065495012521458344565715831899092676647518410335355251541767329925497424196642891143556759427395407320687494255518898047099109118248653001263014361416318837087518854247348517092091821430691047135855484668402986221471422917877008463104397044988868266977568447955543042703407066070333372273044058190035076601549181885375127206191849683146085035654247535346466001537299050369944494832990154719771775270761718906476518994727253868993118461954604739080631753088486032544913847770046832070078972334644622598260197086088382702021434829115595161147109273682424219764481925807478646983076826001187269667936302891969284157374566849578601076265234277600794385591601528478417687719692132661857553384964430238748802489147826635207161219896246717130753243791715283663596239879121874086781346250420400933728922093977474390227622311344514372542347013713385368092471770849070523508600893290261882904461192483321410326160565456120569436556152438558125599109246630567959844418922482137408388208128708761946183654307918277624812225634171169718251039331195179024398371450537273031191423591012234661075189885771798779744551906890980534360652278960703366109634656487568511508847454652239084633131758799361954193570645705396986255959003494442907196904925043611434497969649288550267307983854933207642695534779219742603258914736969316470005393192320400713889229791938874379255495519355731957733724085962735822643861832081647456799216559288707846473010211220273022599440771013652050053135813308426164528263791248792714677137399286644773538911532170237691438900001122831698978913120360115957643171622159427500174581686822007848331535405656682408324071769754012178896978962930660962286328635313743047591343327732431374370329830703336404708027732383844980431908343156785866177241336043089159584895569418322727197146293893574768828043865175593376461106317420296347973605363537532017625456213749599724541997457175670150089241594785515474519329734808674024428386552078317562895304473498861097594131540241467860734143846963954333463217818646693057913302930914160810352226344121598515209321584630854454636426743203657214715357420790689578257846575044962848436202282638507464164844492535192118276196066852942354052266221160084706674067726257701228399276513300293678204436852903730618427900655204874762790741249271430438557203610955386801209424548902182985054558477953433179839082081136148462403492092541776404910698229510217212535045067193072127128519968431234987989899909415268303733488974509949688982728012304365391103906809225690050930651068688891898152491264006038030562145742503566943241521336994528915212620822929026477476089258695337036769894406911382979076362760656071803472696558631530219813742518820041064774755771417493918669082508286857145084062554217631063611868090387959690633690272185411917617275294885852292605829272161749485691590495680921235450228455314354611938168566396749255500500275494631937651536919676338954572039678746771803012745582229192724332024106532289584491128334053392021537166152424564043768944963817690157572213244623726978975825935669817475737085454708062846131310957586238590328975228420733051595092485574643365571947755348508340525063987451411398467469188410345468487702137307068587087550617893825511596261517509965663828557200306879660588071934394870621920159141059452259875135805598923398265283830007512256080926517299059740473835134370499303828951026925222052285522265652470475151744922160098048382373487742926871307172565901192319319364028379870947350479653424990930983149553932689839466471444684065329550084016506289471370151425776998258995958910360814861840590345665721344408870835182079676212337999345120371067274176205027553613751784875484412689123368253707372815054907160994794773614374535858630273290086340504982417976766246028714301446896102738440906561949457997407489548404551440570915170675140703809517662313489563435098341868701209565215635389005759738196924611334243134670409237565398639513692110908106117794776347088933318151766144095926594847830690026418213690800486968132671489070862744323806493671884341734470991819299608077470155412325210324932897605824477353896357464170887566923544590975897499269109206028158554777228544043102333499129290506211945434313360468041967697152542810833138824234299374111882366078324799092893946217097365299148813276786822159836805056374671469078493114032437451483438466223552608249885111602955293343151955954534800276273952443448021149716008817839029666507985843799226889553747714675713699212460914543715316448922555885732765495491022950397697964992567094496762756689401293191442696700531864328836102720352875998950300748857269363883500497076113202869719916951774477838622845981207577025704071630416937181745973999037455523637659842964028142067743425067492414442909053308639517586874499019285998372936484941927188601568360697810334009586369486971599630960521796771927343425466334908124655863434086146041771921493562559876596220511520032641861250421092958749067740330641603124535771248296892860905440659065553701990581616919223874021914201091539739404293463590876176621635679146873795635669698816635932177421269792573372138998686974064564733829146688254018395019916468997859427838866116843425816646676872129816067768418500978015831646580766146936031472660162981538135621952535335855649730578755714609538909795532322020708891813262807955911664895311946093770551580271509547896094247198233972150629873013041401252940931319202884841686946065177740725725395940269604174080107106591830003041241569569823789274269289950583777583492427228909062998649573862437866717665001433472084211408840402659960666306331089327459997945167483752367407709034651925238018970799399305697626616144283774623578158335330759418580217487845026594424448205330342674199376499560946814648422048181526487487666320636975712208259901209163980187956472055887920130324453823425628147582226888282326660916892710733812412566233974086360209523790603540905269619639457956006365991525657671629951120137401411874070602241195199725336765011424428134176154613719119598561419091670931037152901075515192449703044553036724220982295403197704099756181751230051742514928815098125873444437279003636565778948778313824279744954648442759531977423609958579659343360021332081537278444089220920480893307657341296941049338040106362669042112151103756039649511833152483167853451769353856515670666064310490307526902701766925898079524600646684263280791418225822894493575329585906971880603680012368434017531547523694586742366928615663977815819114563687548990901580789045395026019526491571067202163119059135229787501962682986709036813434868740400140429600427077428196499612844924599460407190607555934738800811545031675305241043571576202623023444103692753524231551881387625721332642481423210856887287802538845147284080305666985882369385502445883126252755275084131699299100003410829102444688105988445446512787786207647504120391251712157793188821342737513015172193462879035662888186064575149965912865952124664634739271758713766463164452934239590363619607134953241932549108609283872964162639776937105530055998800372491518391747102452697121634660676289977484386441823369024633837471042276041479290323997429238425972825045656768186271202492480944147095303572148924658771906896448503032307964432191780083800484293559739391062440452748813078147280545998753123569991097272588886635516424319241184746867073835535151841866252074177148670721061728182427496995653842959906456802302684159686843762952682228950900819425799986891375447520183403142473737393063212979973337145112309916361490521208200024036366324062623255103505377315205672785350086711964368781531163959115839673989566191214406632876828618719658829244981707038904752022195255141965617668994850417098055210731778480744522651647203559024383959115642778201642117210709231288758936300730025439823063805527402840474408728517859452852085819212900435697763007721275718992937089524474993227238644600390241587544533360452862728464857352276857937925705731303988943837602344966719298285858840956809574167108552031952379932269081461864446192777758853529179194918263388545424073311046637869395043126889361247267173459372106132314137143968761908391588670066426678992772348064095510147652086475502278854502569561105715879955363633364055937311498516604525333174364274041533117795394845208831244725733700686950451332417858182049893156131119890544523857763992819812367585855079614742176733704767400566142104444562287865933304320114135838278554041669706840981764203542286245401131196709563772571519564932191612256856370602028428159448514253183232698155506774375184309574390268581998664065103914837081585651143485208015679839586343090514415205490356970430474377831072588631049631195701954989576381259398055811784405752283950367942245930259378205971540195225376497361619767723769435793335574713641086984584963169515788929580402332884997829302986709019522872154738200433056047551586291078071173322214652903971673718004866583503839359031445082464239000537264262993292214568542511534528231979590623257062985218851092767049005020190389104796465536610896259553507048577846183106085827212197124817685175500589941833926178858927740405607007142620918758792888600222846501250703968235331260223265927636503874382250831535277003138301832675854644283175562031514503646682643241248769110077073992786963044463740795003991244568022812849093199635903213939018823880061186166778864511945089361208893697577073258944406641508583206594532983555625983456373988804176012930458519777180266618980238791985593310289315120561900341952620549789898100063002017495481934031074218153032662673973558077336665052574402180371655037349616578653067849563782723599993127639380122042546474438846338944217171583984585167431279081039459585601030016877116363921479457919984038530313825692007155026160640273008491860344476390659655104980646383661076581455824271451850151040656327187145407444549767961492413234076297405420021645756839870426040540333283912934087282338908180257889208579337406222819620581580961789868245091008013372227542390596083037170650611220193283841590384902308396054868375901446985080648117858571860576932492094108605068293011684128146844216215235657628594303560468732407872227972145806436845126814889685418792368827654835358175292836130642366161542927945016640223376894152032210410154594691760688091149868994331564455988207894385796940418314173628223729199077360693545802999493187251628975824873879264177171901502763681275230408849444788992210543464652946935227113247431378735682851266135351476738139832419812480048974586197065859825532559382095621366822776645781040406809411632473513242952319180035771680446929612271483031062736115290955356995377024912091318960841560989044504401027628974473088638308691337157017975075260007054733929036055255508166456085870896809022723899304893499907595610152338556858550231120511919192520361960045918355084958735397522877888262599284482705794654579285197838722152615777067174021626416895438421269762425777487817581792151701937163863258672600241134255278562901543194548074735962417602437357349111815723700336731584913606922824526827614926770946209829898882614162217553387695937922168340731358444201340108689183759314438010561792534951733906571344504026702003569480974932851468307308781922736636085227869376271404978878024474883780161754302758677575763078775720106651002779059684982767988448534394705247782072703472614822716587995591157682406419462070045066973465064229069699923341397136042187593840909803667887723327796582774258288234420463270086887326593395891293304952278009836044013026977164013197463105432532679565529551551931847183158253063246671716512072655117214827179015962278033035862165734849519826179606182150240938557705382013880015897526916918267622294205944984176911635308943508942355617189586938869295571188177450251719101215898619712266822076955753356220054642492032615127618823364082333118074940057097678566591519587477804474399809158846140250578065519954981691049320150813024029430585496060906322194523094401017782360286339378603193578859197758970963827514061829068863313684844441060098103965494394721075970560742080731499314528782367058240014866015338459660907254506326193869691038712938981903451573582596095481746957371409629188530164072662767511856808642006448700316940534453721215489086849894059707152977491734608833276044000285119678801726408857824092644486549116825481001308675618954848726476341617635350105925882985704931943612815320154001533720316847920164119017174471418623635058363666791199659405444477323153773782421886464122526983636149696676810963259422051816477017330706863617152647926437418074763645232789275448961132664784353259968345054240263147525292608669472425563361575195590053827920547460141344527163604231931910332329403402478568347829645068973089241304896186510260573720688349386388661697976478731921725524856900848326778587001997466060396444291828901347887484280143443467189931500183181500157379990148408726132065942779262625144256907483707380128622168766144267229897388420400427537749242614882737915937440108973862263367431234880492618827206666861366935981994487236316054516014335144770775716909142491558140124952484688451239685079363709820850905119356456505395042312078351958786607534547232830337576230517206618481561406145616702075744711936274050131441911467521643315127408001632691202045939145670162309986222287512892444377127608758572341969603074258304028165379533921370710439114116643357380721443765567216603066516269907814253097200069644858318869249140183146734542823572555789596354759047814982486493371389747424407577885739966523662161207944777681020549053742402662199035961953131148274196065788737191225632846289014957692056331126237644967359205770052779508082051890763915406440712480079202294889113319225441673472786103092949926084279619440038641088017793814100534626791091761050778183137884819768799005242586100697735543800339212283637676767221991940154967255371460559160493021511290645591489331133823145536534934835965120528126857847066038808007397167697573619152152114471517058561590767531837048843575131218246979383652862251759971476045717932107297949887572450619524490199679968176786337382043143555219880971953734785219654982210780110338533365794826246826438975525236674573427693288786366503702139346335858630560395148874877958175755478515720880361355164294706858986687760745873970434308312904801837935243934468147774517966691587834428493330068875939130250831711717345595867883644566555958086509269512117958280860740282434586029701608426448089453034372975412080093902922570087437105763595149401399139180504124419096443524726578761638437932465673640950368973958722398589752344765505480246150110861707654552190997743597335318093073295803563659532629043201803075513094371429623119714259237655483368285880116185756351995478961655256696728886710210646775811390587524913050076768971667429835529227694092055203737370340417378480039882539703467266214789396473926940090432238590288491766715316492341282952954926228349542357472253222298517865089573710849003594555893147059787185081834175091828935364988973597097370007012457361731117470302995338241356738392951584184192706725881724628914879819713352685723109322143626066804467057622574274798816490446329300522895388621574756242135656499435941886558000782918389116320292923577708880824043899285848521857547897394113316713450492347617476715917882540558429291386040269289198760675523270848191448532738849760017618606335784591784863369598842484697404884963899096529857489395104311888021963657874601814460911923678743379106517836625576606921417560103382135060735917009619811467110220310704818266506480924405520263627860518119611725579167550161871163872468530312507631796619225806002957954674554990209016830624703832500300576739802062817374116242844270613547134018970984898398707586604639486841018866163319114856456818236733791349517811420038221214159318403608403693952223443033885176318994976780339661264724502054228702855216058519062532767306241332243652606292915086541959850904185784117379713864865584898804018256380094541539534195990131254239826637412497420125375902550030988446048641013424169344790373362301610961747902123740723664562837696885458356604529969201323974484844041832262420280610981957742751181693005890404517213518160203088870903301531913327600382189148545721831321796195242313927460783938048301153013547587024729483593132213109707315513618642821988151306685411188863357588417551211356979512511567247769538130787617322494101691352022332966540773730605087442945476988732433782333571730549775992533790291166690566770457705109077041476099081865478376316445018496750564048161689134181308068727434674596869138112775173582961167882063492493617533181428923046179321859400437884317673797097996013307229263853607120597039768506307930143424788309339956427809034268640703874113347461804116411208499680407353853827625698042207608620696730171501454606458116385167942096458353985595635262413170453866102565378326056973865485391884824801365184465280467299289555135625230339023030643441978130485522621181030635388863453087666894604533093009478547496875998107003263280551874853370456963911820196963371236797455444928625938535576669354729300144162570150898063162302027321742224459250510377669226134280925327963382452180530987250533676995800681797373046683751452088380094254312610226165434390788092984610832943901515443414828856990142342883041674777368058680147726029868654764593427592742705695165870663019478114648717458306769687189491007712911913724132848533701581629961026571801628896318164591584213376039331825584516238014246108593566727299959921524254441206438559863200511515873484690769722919112785585432354218753582392347244064202451790674009713970663238125114436610617580617643667457452431863011758257873878999224381391346558638948721489700501967192029273304501918367161402458005422646626470587280916988663781463180189204473464626292101349807106958417138890601380285534958269254223491081732713101556961580030492967863199879821053735836049619891747996397848284643580206212521089611104782898379093898215202299384876074443388577253218767271571911058928765545199341554419747770441766950557419018806512652173776151815841457755649602583933221893734054441563781582727701472893717985324126246439697543882303496612900723305720351477954637821005104604164962238007614864585602627471306146857168634347052648885154064088942113802320093628039658378204604484288190607904835817713522484332138432905825453382198075584478900872292360662885245670912909373210815372712919350500427970189389196772747745557344855472385928407031084436221853175865429962880397852658542144864267588121360692019160503495809306162662408251491091602290323482671842351581119912479566481121038719385862354148166781946975192858188854403163462911467342939515041622322972449119161296842657448493010433261082503411357884332176122630253449904064640490370284387398227645767044868193729704485146845462109733991026155358203334203468247745792545106088346688098485067652176119014913415657274564403868533194784058673973661211315813851020877512450367452267769394048392320861290350382153211547797982283100801004588383693782771077994300559062713506086503197940499734662965326457598194408655631781211373044524850437564169676863763395050334436798781667114079017067211296398362406108856160815199309001642930049790878897461667063914777718624156855081477773743519964323364725546874495442814932540910659545455658494984611839265839053016596847683249839099473778181799660908719550229123882437384268196354497392507519057969701645749373628266626095189315080552076535484816494253464321900055802734211287254774318512507223516133365335655238138781745123088692978566025969744430232123433102411226462402117595408553142933752150318782886412604723875842948029044619210727419709379957194841303025618916034535052876749190066597179982444063188284375421633285677499395995319006760622647685799606539183045689912013126898591162764409399223862739554828091626137671516496541493334981311765662556783388143240575934738631084707942581992659108636962501985450027599283419628884527272289496516657410495085642357975118194487713158762422461793713802052820455301796202266108655321692675887061367674610206307187685942894922298176452275281577762177249445247921414202112723315504481670835690400970687446919862175372385967018152742489708899438123010823740697592952733132606879357746833929336753772185356283588138423833984530965965186398407818496813984073723635426986890095907819250798363173752032760817726965641868712064010121869142044950640424902615142581121013920934355286022111089932361502249619910425218041361780463232186472816172755490274753816071981937960026754996125308970476773675105738966145315439704943115760466159727563934146615615625789425898309208037362095513597225452782741312714387399297283339019359157176746672419477554186105158342935490093007054247873323438278228516883920694044561282199559586057518332949466652630177492770445402843375575329275674463980429515202029269002052066761523472271201739900062964403212460230907086886504146557885806235968631195695796923653051941709043134777632373776734889421212282147211926542012576067585776158719021549654246713209148883670075107544442070852117417265031654622217579523431440123361834098248451939604126288462672824773874930786776162908505655668404705952827635853814749621243441501044702468983590060072956440781975746424303713177938049643458299334587836797182968831343810744819809728627854809181209730149372541666011719601509595672556658541656084151985816349719625243963658931280211177997534273776538531937925475196530940593782547990910106797839334344696984365925982612511930731535148244137324278731075323964363587978989665426597682205168666436495553094797016827865254169365599087489907182457987907742678640276034439022460052389290013331728623852931825202754396570857070251876789213749232283312230893637590512419450529851134181285498785090791353660455011391814779779084505876196120826571038318470158479361917216192571946391830498390333714278603068523386142927748473518980010126537095032184150252962109206143884512846667748574634408247022712209032962498583084528950189037553979490352607499257752205732128501427837324076511140822733111737096993504220025774717125129582524314542703752045479049339365741113593921228564744783950175002222593965888396542825766502495217935933598034517138288200744156623320772859876212927097966276446836421457577009562697341053405025068537640016661685605729514079104355912669650410985971768320872479884919615639713520425609515161279683704383666680951811860157045705812486667977503678271024126662230898136112392680055097505866447430815523890845193931680643687974321265783841891986084553600420970716490785546018092002368509631903089553527151425570850844638560067096283191067394028652412606586456393979510422059003793645856981313017362027599718069493544510007418973311616913039241549506536574786742205768426059929540374603877116040980705988903668324501437205217525073029700672426563600932234593452954720336095104567086591417003042912080084596901745860177055657652961270295802986534802962078937263120108168710120491752761363656418655638308663592236674447357617799515464674635729493197098428374568806771790554008972358594754313698281681238196516403041538455243313830433163148775945842588842046504350833754101758667495145050519733636326755482628295889289909485049837175175370526707378381417817483544338047432827105990561006214984667965079818052565272484965951166772910228963409300726873031970264180312325378819687341983265167860468265173073450840355985503915571600315420656858674782207934522616808817214594730175991269176501031332022144373818372134226865206086916506291622480542615383864064732676496087613221780701140365558138572906145106287064552409253412791956235755193392014939162807262030155656357312433943245567326153873474680425831213689556250908592133907719059152337543045392521719278072778217516743625361846272085430781188893305458396291263614602750394127304541719226282074651899647838416875733727689814026398892258378729082046756706619169401754776317470565570469787316549060535636733637105335958376921928147427334980062842980364724222148349661089046000781495523373189146915567425300549427529731805988082478459942471721035247970429192319559828307956182804236588308683340019962831293542669814334072769414286791023513116422595066624011992618768170989928611697934440644905798121849006755871121115895398794222662776895599266539516407246753206288874464298542314121411252289285702316322621492270467353717170032704118866272233936960172708795580566671232470892472124230033522974912498789767593036437456327784712023889180973559293219258862709433641990238258167464793742796293040304600018338903921369178688486990771841148541270380048495624271831417291577612380017444691003821624832456336762230886032999371064073959099490244645374091654462437388695532816262876313274152546404771483928785984020632985139801191076660389814245025218394260352201058923857145773105334799258982097529086681739942633976211267580747381081127794605242503758092205245097418399222700675631677919330226302775568040563627477146419941020455823292349623804027632046756123858781534316925087620422677831576141582519572058899801852017318419565564110299209420725576203424178860051084360240057041885256995072727490825569635831536407561682223927254759365619418845606383288619165400138960012415441178004124244146346348857929766989990159193446323866765066041690127738111996069189068946237115400771267912108836522260401007642508645478761172474970059935699813188808763227978690515198974201548362770070750154086433533897482493535271950446403700358694590605022223987809105776826886093376473959346059694882962334244120904457065520168082560236157519757450470468548299198068113902150293776118231172646390405370928997847028725642829625824780824434701467412461782677667060445519628656839456630998424229971302923307633257813781599247884684478139193796262320186667599858788861830332390736047045719791773066288754845295855803934436613315604853022740761539140139401802670437499537812561744799674083160193983190231228375345036432808761475632794385470929115008306242915587274447979724791523975970468228612699243465441411914882178782516997335980573554594491999842193424603344328793921698397978798736672495060969449258813258953273763875803245642687695089962134853763506443489167209293604262066924242834229138583629019354942905854017071615011282579300657525123081026946025192737958290549269259595092420983918464092389712031704031153296586608603169503218401327904151938279005710044202883115312189708448858719798634335707697503037110319925097829974122293310680158128502875231197339423712952413396742649053075393497564073157090065915843030065576248623210678026251043361314827458610492909208406291395231272035076790063986807161056402542385871981776066121368631734299219927330239834873493898426958282664960099545284517516073708885335108638744781455426586018296923789702091938004585358177192618853182358596012065131073885513367794089056888005456641420757344758386588400080933746956837197584430078908886570589118492661263002922265042148627600659778749341613178821315586006823536432525625394586219561345341962513198220697547471729998229364544318703292955240877751465408322380835114010327803362741927369129713674515187496369365686458884008299894041703530260202899298441195848199628027999506984062521067982482770193633056078369733900189095466257630170632532467850439766793772781211778339538746170083520096104469559234172006383622609417886596424373173364177235061458379648927327981962910868933440327777959394512952267178550993642488605910829007790467418862233691121613809840553883120085565764691754433809152324679034093019649032135275029858707996868313645491247627509392270599126025499306671471650986759428441134621545719923974709086528472524510616158866594386560121179375112847778708651367273665861287321675731385893845158256652397643585375640466433019391983061005965142530231276289607022074187477811893476882184025701351321368731975199560593979809013760567268647915592190349071521617026347097780270528551342305255680720105223543509912332630642899269258575863557537581841422253977270919380015936665746704713944037067334454038143167963985920271434992609761137971523084992247824833396399927422132937289843656170466885947720774480465345548007150262841699807378402745305412295564912773382403454929694664861951904688932888331209651470095377580643982671909700958581601262895239853437047445302230130422727705740165573780508078053801905102494927899477035388137688097623406628535814763596981980455893440643804536899137447886051843018883597184072342382769065040678804263765149276252745574393927324202892864298343147936304817023167004953928550278105138923898098815400914861126621291668842396474783435614510940435829213878902417894305981892281385488176693567621669778508910402503218442301583077234494689368155756596483421874987806795057217714891027379779536848005634727989268085901146648547619791639968822051788386557508585324415092451490706578407101476151690755764711226755061559487369772738569612450872644591253083467424254917956622934222059314679274963831636035953334615699622954776621821042175575379968431634084626032138394886509171941859875640248613778740491759485543490577846463684503074108114127772443148745051306924937755064357997696452039224513245207326416933827688454168304530256194524285275538855377194711256035535476691688677460928363648200840577520732548523504936371160975541567194279069948586790353424623086784415355727181796637819070685045027463380626309972531781261031110573983163317875844797382511997523238066961402138134229794919699994019610065862526324888458825937053782225470197456842560348363276067737841204638841777840560849682744698428359850120974209308374372095455059650398547821152203701356588162287956988657334013159644702820314834303039570104132665531793531768938085270927466188028388049266478101579293140598703616995351726767022146623785996141486990650399367611543538464244621591347034650821683153783582634796352041427550413397915646620965950678854073037048464835595644153421382996676767444619107173484519365164223885809632081444395822775140167066536318040010437146191961215302075923145897973598088389826762009745381407608532974445292476611116278666968975433663391866160221184569347082795030577726532713874242422152742251026175914022687479908266926589222998977969191170648064650776442568533462403887994365159838323325560708195935535458795021197456161730154699843961937404981503261583327852692871141126583230736849251330881094308457059647630688809796146170059863684592347492004702832986412545899690169490965631524367635875756135223477091045007139432944084191575320221478139964530343138912068317415053162325491747904214641481962998646175204940430547381666330011528870300334821223081411978784787959605421318584787089893767098387669935206119397984163430037924785609254367534168995853934151971752616525187443900960628313211385168570318240549340898436283993409890072461956991817740781359702397201724499914618824683315628473720438816104317483476597834378916083933141333114730123529379492546894362140251122318739156357111940588756484844714384603398670373187054106381489288548104938200200061128865499948758506728352341505627617173973939694746791152738989707264417503067068074201705226084642005733476752201849135193488631925066898056734324990343031541676674547251905508836922426539795645207028942557078739866396944972652507277451775349124879440994711380573234281150613229880368135383614250697343432286755074921524257328637105374782832182286159820661362967384240761266041379259249117161508932436066979863578241979170963312713777248048117892169138113131583595891558257061089632233691252754567369441169612525442865535321454882987518176340861750197456236339352585198434048590860445793051229161369570342501256296306718591609511131874169431334717467909424505149892636152831220460442925857168604807591216951299725386489008055989990838033551361997730172360098932745449665128001680244981538433809698691537849384765459999390787340409907306079199236017561805200163876730897309849216916020440369045203205308704110277778191950579990950550524081952321968408025336305766894900999326847419883369634879971297351990231566385776187864896334420950729458424884832710377637642766864893640313399158155243186557703134342143258508893468541443502249775696247878662302058620302366667617875715311736475408422690361847213987172298366882791463610530266924658451115558396677620828270386402342045039625850621299606367620930678600583370131152076676641329332538269338340004138175377261966227204150485809062557600651894282777710865995575117843155959871547835469421955399404031331011009874479659487404915675548041989722679105426330744397106049799788473111892086627816780397578966811480113891153859790760444299780372398046879496617054548456080628759707255052774263409054085544900088197571477401649793068162181281284386740664599617205687951798136965150113650488786751229167141448829921074268501465708151427625582706028972419195975647256326317448902624684441541000389087533903475038767246517840857871906753877594216510779944519923995201561272800706131735602560175839052701586859229515745435088062696349109669585901504524000802641551443292979750910228800577736946679798071049651573688425726053371303161285672206621228675430007465633139039763637899429759182535041771445295425931491336124087944745228566422157755837964252504569514431117002086901403674265884168389177890050174431910655889776773189436654741717763680717240800355013790427604180501329188552285946339065475628594035826124809177469830707472533170811355534226796592918531874059293912835704047917771361410151048588389537677560265210650004582759976627670000928571258552897198060814207776277299665935488670174987122285389389649085531637531191618481427003962839320506676622006104847710713352968304746771956711770337836066809820442545672221623286043796110747703820318198638606047777164214272807404581587608558054869853756252107366737840455331279379139526962828985900411917767269064303363603819431389766716744230720175336968151354143464970467865607895788892258728896012876939883632164206963329764903849359010719888878883818502788175689640172293282732889034508521850469861076245184215977403695782027370099523666069758708991585005228469427315660041037474222844572616378363157432780138544450158813488621031409680838663141128945438341934632380866344534074236328686647856589406829463038462944603951131657728547205296145132604198986576081774402038505592946118719191846065387688553058333824517243950702964407468086402325115626972426516259190036388192726619188135090224196958235893644838068108787991787848371823278522688563372973891876110952185525299292429308216883278661858119163297433135996379247168315014306714296624744061248594413239733968251532512204302449568451209219023834389936896756789396569148950052033202408320107277376420060711276153678841950247059679789787608114192818529967837540570253864113778491196214176620497896094431988917491818273184740409584419332049905375775416319437693395789900126085377852662314663873147299637946884164897122471864765677019621612779304098863529718347474808928770026939228675224766241486272504449983005525622316442400567597260089881015291333578903351971973774513897504094767113739682374710573080994541743226472504024661977830531737096780921840770863576498949556780834945171724786990251242046244716651150669301566463166452682102609734947852247476874923709978911710059486023083428608961683529123587075608152227614116055707045046355858914482766009691907488264202044064818217430299290366543866017596423730360892926685140842812703528030048562564089127080117529992080595172814997506734593977504122855586751505327935796128434503505952715542065898143263584871588151505842352048642337895441140682996765590730612723500157850145568039054318846696097789571522645455133458955961758864984706406426586330013248573662655543765916114424290850659948754433907035926143298450477220435099452825811091263423687780518466931963375534237439261911620811546281245236218567231477230531132030785271451418356263497842291558103507264453761784414896720487264317400753838162619858930987673817486389145898778368111176995000375686526309647655543791688147883422463637218138834327910566806947984369930211402106886703905127108387433866052438065205464855425142008490375215329029956073104596370319993494033625539831728465241110243690229926337136935976229429740766049758649597819074385095345156936812725677443414973673939339753605184500380470478676249383982387216216212425023091919199321732853904360211773542165498489668283504141595717480193963963456897562009615927594642735298063344169279990563982369878214568334836627002276002810523736457850185414694359700500747840875806336022377748318232229991630188499452213804193171422928647557185834246022911931567369717409031122997047542184203654271704851262768337961431985095585502244741531068021228721915124029262926335329170397805875508077442168542348672663658783838578357647147946503388293169526311870947967538017119386277679475219554427517384685325008105026428632636044791880399725231832685378753089207484230961121405527764944401376607171775551335448963498565650413581933152757805985266042043444030298968795250335899702096691305882222992303898385245192780372230829555570959833447293593345059970093802012124842394327931911601679045829678312770929325579611506374579829842888271812807199890361369584074942542932854848446920254302447809088606571408913602791147305288908998227407668655953998572846859944388326393158720155526162210726911775724754204409629167095504550593638762708570756608834413271459317567234243754082863390950017350676356279713493938604004560640544999717600651242131356362409912531670841323995701537458369920215141684642601315720446399760254284976552798447587230970125476979679574182044708558951638217480738702225045146707700700892248891730115683110663897360270114131540366324903748262991549832449752548863100862449033507702257120578304762073265920780033968460715637832568996444851927553829509243306422742292599858342977658958220374983717361407967725041732134314994033008224497234196934180669334361932463281496983106323079067464670906458852428798683918044765107097327376926970907339298611330930201296328642761916704469569221147907534973556654216822779137198174289240431962731375759436853313012529588455901296979026821786524743159992220504243187838528990980537502244637156759939145784053112769988686049370928676370371627114366266048416675486351287431940881535014120671959836437199640052936577786941987582702382257808986241397322130683295567374974941688222046735438266695034341488433748899602015431067411696741521846225344487395632331078562800567473462084991140825679303145551330229592466853523927773442705408600373904881237752151192761393804482365949404843755797433215662756980134761949710517640581041476843614659559301187744037843073739276589755197300579841889075330199386308791572419206828440445182027454068058824459840773792267663254153612012632978981113648833908141438428850095072488808516305516207956657398397364033265955602598934901824450434480788681911900244955190545939099790054905505020710235684107038574872051260291906580394410406304778620983422043523618090887345030579791753589042738851185856878465878907080109167005083809463594753173397615614655487054461158018071084929882452771111374694674826929236407408942020843675013622270858159922168158734389171053333462326051355741866015585348339891620797990856605806870826900501162357702807186037477540982025246530887076735272739863993167434429730731287723602784161737782344376234465134615864357960056816046767676380904528551452217943431049735462066884879188597494912430930912880027176371440746429324458833509043964807966830377937024664559950897015279071018232931774335430249341251469024235067537489604736966710370692733037924643126918319394748041367017980303077690380756395406579228639350706962152778943307012197018395746356217640334627012074670511990392826460196814266845391566179909925551148759504537280634996305226223720901957924993243396103404791422017386591035894496725733285041434276071910665926378022026684186272778690988574925520093252244194253413222159016175900839213502472450538902380973650348309886916361050983827564148231398365589212608872515881940912898453941867287805347195237607217837793070464181896091847892290831062418282668791123848851952140488816834810267506927918817229826148518505194688131789212968551283550490005887829952341345252400049183301812425362611901319881131238408571105949122307605001394864737308127455538617499167341763466038589233816057837008825210008507501167727567789141010579931065772119205056578497367077819417663183609596960322418194523066018077627104397973586668517038070165983304015348317182109334070980134401339808659777807480284959054060461586514726809600002314098784893734843351663062723878689213699621425079007675323705165736764949150843253955408479361498149452372442648581592516909181416624442343348498609962033595757512625427632372197810839408679812183160431675884213174186460433109373521102624201502554472659750032703461376369312385675532151563024853639758772261436846822295332116566532932675574419496164413723998458434614531439906264539887914285966429282468389745555839916485552062845269925130297689085544820095087535685578105487679549957676343001170712722803717803902006309795110251055293233885000545628331047616215902053864939759509496565649388982002763731172905497054678587311138008476136178711699164985706481449194241524047908797685062831761706429055846610513222368634816400211442845221452646295171593718053708791564882727435445602766989255220748427674680096801558575389104342209932527692922901598322255312964280262865120349395762880884393584997150043032099224758505748177486025513342560425707285559034286399146752801626598964831842485366903216301509614274873075287105143351553572850066443580097104712861081683216991822049725908563463288427158780187934621403823919868594597951589396079814391686410901953467953130275684860174371593391846587405672968491889429849897682541016989965108582053775789475381682197210264763208309282178020618004033693839639765893722490973026739972931205974070394157635616678420063920188198497236406548138468951061531101176256229086234194103157926200088709155931661629448301856088710893246290725454574718403097220196537122284850833057380295250647646711794148247990247152128945487231660286020809580598975485040272345187887358625900751836746738159335039270010082242246747811260181464475547286052033878498917655329373929909934306943174425974335667287851902182202585231470739489916739500084875659364533173634299684878912008123139296005486882957976480945761998626242072533186133036022130215541516485740231172521151962503840496389758439477103229851412366987615401530458646878443149059740169812701228185813505090833674092800472456492800802747449367301444438054084743404291747248546494977911832916281665975906305439489635348061774958153209636384651820611540300213967334281391071155239963434840617435985098687170806139768114352227237720416520974571694675758499052943579333457428541398559554417261739513057464288810322313289920059029416697922849709232709110281971007397232666445401804619694460821047788836092107314203396342306270500100954516591961760812254305440987485222087631069745140675671794742070474657667642691049032445684662609406258346196885210717864120049034009665864559588490364596345892665309751938943687428581423279140920525786172728530430050961504019358981348783073956840294662483954498508835074722663874952602809692075638916669134283624783587739590582719036876923663986127721263640318371856318822631488386722428792605020197179202898627077506874897601154193325157139803668899673292747583444122641689733608596311195660422257499182230591343517992329085768958280682013153996037055526343042228863416182689600068604828849117321026814984214284697677992101733126203729356101083958467268756148218883093054644738605538954903267968111288100406119386794350703024750718585242713953656611790920865000538027248292918477036488231779686878500546504109302550046142758335982905368740082612960959968357285814252393185709754572336825770251174694535831058266750373893442023073181786797843621343588774004165165704606085398837107640670286669432875799246832929034173850906471516597584083241287132619296047884283473385495008421375943181598998471312254911640262942596688714286653524964282995389051806768021306140093206501656689351738876203869731462630359566726943346556494105495488472112015874574661393007462457815564665313187762943876641324130720330658326776968382910982434121496097074436576979322158013489454101174469056837189811884361073274181690677148902458397608582101148099561062408752301207022348536131542261520717351280090853965070508078644404250871272748027163502004239920662948776481108288041062814003895818397712066819955380098648360744280823734247373793860411340401506444087898334829901285548674185911733153422497198103284289203533214768501242227531826500273404395974818331803400878282461262153934041206508003487017588805142594994491704500525562044737399534799657818868501741159456429776944010194295838814118014499599966591024886354848360193590580187424541752352097209018204476882918166141862743116510977596316790455577931939176197345817955098669067673107037647438268597146280793168802660081163330601649552454627652923723510800577770967246658605197190900321428960939030726982658300826952883590044771483964492009700034753593375929646560924757787073948747491571552926434233906960755619414127670168677035446700702965445115912699048222119670492791663795911025685879419900250730445616057734574891804062195410292599914603555004010627658960435161261667641899596578934504219194952138543451998594903556449245253674390666303430306596103973021987786162428588129382111655298231215888795632857584701115982460756156014877518748008841132849817777387392412363464666625331075073285021985639106918189281704943766274234503698036482546602900491879673766221257208259675773383308206209397934809270391747388092758604887688167714177084416236003715142451294875652053694226235742620126892020205261370654925832411780697919468664416747150479188073193367099395155836839383908981906494637270355935831511239563946074960712422925962141840922625145564158442069996984284957486353188992363257103045684425370931232460824012272913448485860912505001554702495318221048947436245672969746312305323990970442109313786348523066865924637598401789345815332063903209535001638010903299579840276718921863568407057007046489946176201455591581250224476950285703319009740360476623343686197390634889993377775079550533641735543107034766908826604841389763328645491631542409787409789304782445914475684021636585067078165362759416587819598969763356258916282134552405552839700418475107017088204717253530506551465797053767533307864616364846148490828441593893257226890561308571201223274231980652903406152885568908250278217745163410696882302070579119657593940381993009207693713935594302231183295484773536270134494595468391928202668839370749677944213165317086701899682562022240023130833031124554923980085090502453387089268820274040683424784058144011293414259413359266350465662366860745717054468796349204505248922164552510061864059442554526898603281502907259690017015777389587353072015749335486563411113304712649568566083423734581893274057231194080841739746783612695914961858413685150717468774272427209729961451013906331779408281182701793527801311195661662669139006486982354076786542093605758311369585285458260855082597892573400840514730685502104496165745780981321591839544416714031069594152315966883435279610665993814498748625520579126214583303485441574415668621195131317584458746927427093765895253791595071976064630411723018186389747263933995957069931449699650329164280204749355425456147380179873334317535902810953580165676325238837178038637506781137665392834766359788455390732116517562508951826394439476636136036022225051928778678975243055048448421405519495607675159911941391841380122642026771666272170811273582212636142229098543926826557385527526480398842883744825290577273757797862774089391409180965869080332368895359159141739972231747391335358314907203066944859461167805188519092458590992123898550034109275794634785045283770557823080665118587186411081469742922892601391820652153186585612316720214749652778610375865064689771264854502218765661180475078794867840981886060888879895345329206754050540858560010849650592140339027947744320998938687760283692990879484637702954251072518601541343502677188053416555799645863862688052092519638628695256768627302196739109632541320975081428287981039907550540451222447007503619494718250161168926958407428510123918354847626896343381001527607007071951176358961590018601070946639455784605198868568193817992566230937678649060562035986057717800476427961464073934820649859306420303598711209632990131936949454198830844420801255903706660909832094513354470019851092421963821137478920862837548707886353878574918831203103016820688666152742780543666236903868060591847720919660946473109771087370124522747292202662172219787159286937028116863077674330951186384179579691500366474386937320385108731008408374271724382602450093231606265902010822473271465152797192937794282236279754096813925756455815909953891890136616945602330299614156831529462885882128370563033312123058095260684191751010140435060204840395540142508059940548788005821003842302508064414980777465525007475598798538592389368421990528711047641907954501222583665909030550846037886815821865758898923231577484415675251292090698456900617083289391669481501971884707211740845167758637640908234291953525338158752913868743009353857890077088712166993222606327999055364872690400112955357240439342587017840575747304546369912760620554658929792704225750019996096014642118838032017994557043732822044355424171793909495849919122328328701102177481135673228814357711399502410163015736182855802362301368437024669401811152458158939051073754064861997635364282759947072602910033661174150128400665233286337509874786476838066333763999159444062713875052679473004539053620474180284666995164807547872452238676611133599025493567845534416155821110506019393240917794787069843436916505469429695659888106837477879363957503170236085099636801918426660879657030830115582123068768641486714517662324775399672759615893143011704843395926897062482855756794593507539297002796287946894832871757321458680305294631827022575499721624755398533531059269904362989417265814394861538718537921553039281945366989019055534560297362005065291200707263057087685391610595228262632152254618855965437949240955628809792638412021204575255634040887897483164211930073595923826138465661391066245631005490619485727139144051905836996083595034790318966673106136872836005844479161897831109197260071327073304661728797746263038720758790156659110561009908244913328427184300114994417559943757195258123977384195108658562416155084481972046709216268934228358855102308276263866493364758803207444825972355436926716801443945933421106092954013026944486242560831526089839444941946839786015645257764526377184370620703165808302385119547017050920827223299523544961580691797181852807468825180734789063917560154187211109012863308745291627317995654383942081476794828325424481367805609224789863886816148826668742202721088073157968222634812327682060952444160412656388756599212893384880481714727355324854368559827901883547902009598228408426082243261811956979029564154047432862525133159532337156944791519891431997605745198922671396914788146494511361169950339790589220498565553577116433764828295557137558004801012808488143118901901213074811346862643923559788975537165494018090847570448112064127192393371426942291735271617000654715050663225197862431707905061129306689358549624188005439256280750383820486328141614274396172529639100078106605430328539268694520377626677361119947075431568235662253628741820881257954457554138030103728437919731034831841342074706650718519559612146923349435418133698347879958842868115897875491417121593507758569936010111469961454090593028258072151026605455622918565079623111355044460520143754190193971746554816546153536966694341112655425516887040791887923707417605261212740251361655702675135232372170955160932640967313858173934807334769686085649723463741064842783095177697398878502677185191310936971517350675418797337150160509440255335158669004435932391030349770076865446332568374734105355451651651016411088824715191531724334299855915349493456894742910021810758356827530501783047282651973259656167975378899347304174251370948210502149325000060221259486786025989390027972547629944316726655087909754238023106361264541468045430598941480831808325311047038042734186704940895337522185745426905287025692855846009011184387405423337494062617576783997901566933249544165205913016640217767401155925644885498423514685407800246313191039800403736449404783136566915315387331661971798721531018293158348133162240465656152547301518983097962017906140256927573395801872433949562379271600778250548186076297458119192307615130166813258433848023751049199166658720557476410944494716323416086605970392721337843334825889419250793935208963941538144821657500941051275160655997890221336409188468162607823363023045696249933659390315860445389425485478733887786745416635171500188542365724816760203402812547228804176369170078153914033295858627357292072253934706752950307206348058169364195778962985935664756533500517958143199172889149663033439988424941609155955954605582557212303384583136333419556663215599619485396944567343231990061761504053146202813912240867285302022176169599196914581492291688819533637654428671748722764496374948650796641881300528496849513723572244922299505446064064484459248078625037611060155429835404290806038541471942686291451283355592145076058840644952058579754464950600519388185943568371114390035687088615682144838981678984893605356241267498040186445195126960164147020448466620104627335723131546365079895120640390021855593876425348476329064404558466886617366601343138352804210144351753984911805127648702569392579478405606166277804757299963768014699560361047786130947460679765211183558398965466376612305629264257421078278903787790201647486515650204075959167472488477095748729032610335894622042395694724602110796333337333225181146260656109436509408243195064091806311001851446894567546357284713949379478668369211106987259778250485988998578493893465101979931265311117669552555570431254899723965524618382321319610656219982486120246712367816965178690804129140120770094704245525190692178913922061448147858934353416285872636090374722854327545237375670570407314252195239590870183616306273925217306937105577738059305628433585652951627699076932853327698063123745141647124139135179683809285972279259148270626071538267179283737597578497431848565764540198637954703226408825269335526677417878753021724351230913166067445580877780649179077738182588348432017182796674680727722155719152655815465751488059092229680014620489032313214187058412607629071068641414522137270082121571448075177120823102832148707906259444706855266154167626435794793138808370347697294227742157692098364244805458228659833098880532019811482344959149972784646679870121566646636169839086261857161406759793263910860500904501374739202396879697190873890269526490570588293890169601108441015024305452076022185881031472662664443400920152680509275398873010983049753015048736718429414006320042986356263837083815268340576356604174424595793500777359953162492776932024810294197053347361442646924539801500911905786615995143354637799444029836369600704215469164657768695816395120620786607854490701870510888650481897495831185791094109508903352719514572897358377649650803453927187286661378412926557157611801125185957661153505663025300102535848171571642917656230246050711023249912702446206709452121257969818948977887346162534661997687365573785098903809578483358568937677977511268141774159633702147417330482200420757295806140956072345602815536987120739908069636405216543163609213380897143652357661919950447098745198623303045138045314513974651343755569512025582099795873861748603486229581708473527046234015711621148836884584611697737573174707107462468237731819222440752898295766883380033982615919297099257356309559576471400429488613905839853147449824479227280613937198923185411400155685846708650354862848554867737060328845431723132284993109348243101186600333345342863792361569354537341547420275487741269470276433308827553719022584134479971842442825135606947618243904006757144485738658159688768732062384713777594297145049602962760001009587910894790523428700548858065483437522336939338008206686357429573874245862789863491897049968109986289433203666957157711612387319175175396686542470054612358861103640740965982200844011856737479633977297394643955578647555945025334965518800648503440985579715840388476928888946045390732343122738437452332175827071745206041550122766076403058647718945770522746625096371325921019759334774518764956251914552898543244668163777296577469572982817282378998220140907546526599060926869697149522617362834553053727834730300246397640117509992021804416336130181785971983621697508722393940454731793429541014853586446495134976060615873197100616360920666718816988901250633677683358527919030447340657908203453190483535307328345323667206198956894670109222114864054840817499266977318007382065276502499710114761142784748042411742698510849280839701966895790923841424976975140790646197957264256142187640426301255349356015480758213141191074737354045982711995563010129999654818400925949209741851306425493766599676253642255937896455782877155308862758427881035261691619220748206320642931607457816049271361595963473686926255446899408735302562513525239069660481024351548839285661728665877166647852776476871138729791024655461247156577128174306990789151111829806342835211558077607299796579820950376908380348962243606472824865821908350161585961808381151011452389234395898926251990195539206850996556731959043846150445417851264069382976835967343290285521131679559508314536205197531870894476732170619669352179061578241677258962259167526591496445030536843420528959980459676779503276934973079138324704538528838286626460015136346752890362354043975999788209443840410196691999450890327855100128856566547345629427948893306249430230911090634674987178168016018612951183981975540559256131010594108239215747389166451523152699240967505821986923755272744252465607599474897057300710771376099475353383593870344711777277543114404976841349491776798520391478965562283972323274563916060575895438631484186243334651687011500321747268904593274678349687059867473557117297617398046163276916055311237196052382299684318042380103168186712545405094994166536121863687515246523454183507374391519475397220676102919221923519605117936439219241138143842134320873607114293967017509256790800635070280152158544434009599391078298713048509830741949253257434636734230167148114594443433723983639987992087024551025672185134518931941302205189286976337991227654849995798454825102539987712311209299416349938981794476235787885499396228541470859794158269779092149154857120056361300471772727613998840203223776462706614772063459915826633665667614650079534358842638940065868844719343886619982057013406115608508617681198046614606826290613770461601811186383084761824607567135400432489778334650282679514723661736063750115183171858190627317291661851725969695934966036360969293749508668941412312509202718408910270334498198801770099310582258409183978529776689798382060431385429963469426810234933579958533996220520784952860327723874456641091485165234076620547565805831185843927815818962936311951552871171572191944732959458629006105190473643972649138211482170268345943189931708261346225397993420267787251434289626182105948000116779302610335660373521120231577762825793781546552080658552264560619500727721468828700264952530269962075353662042725725881222480681098757988177831864167830876130291968284433679771988679779503058967177050000745959889961853885701913149082223873967167884090979976813701245241734344602284136070466565052190984207015068807854828015290120934631299677707987944933286369293134584132926804609702397646811526130241353418308367520778159395381825812118738990815610623581346034248349945961930141839041100912678339251719413817550675574807052735594674832343814607989410228973493490992867970512202435018301237103027441718053180334135176710872200228932569606100117294122825191463839336330648329827186829249069600331707740659797446698985194199413056287442186517841457377077016552890135678887370090716509877855253379326605223132188359100366087625746532588457313147721826969649609355614830483571749220726229487677433095146867625468280744035370181455512202642570965891049205056449447871592091084324124454738508356088352944454526537043135292921248281690064100770890930134608099016696111906770239748372809792137774916339353457614570100741610333645875745092369168074930263130379512064408994757193046765423999197904989900421333180998448670526281854380877607738831093815015858187247257483635350555382782364978400231694369606728340051742295663083600383621680988742657706928344228500403193529533840316740948724113431851396689561805817593788087876530321299907402556260536009831874446757005217876933069167594145068877374410265006708957093285400071039875899794508900222863081005567481553676000214066987541039261333859541769757193312646141994504105968517050108959510004378609625740446857246746041968241566828206679858662522961247286523370679927948715509894499708843784649655069570519596950221324253855077129904185103420485436444287000586745361141724339729987267143004366906345637349552139943987738173087390863285343618740446570894096154649649048963125479541466399703687086497068892303954808831099371937126416324840783923005771511290280753227959666859919872617254971004226202307256735715059081953812969400739601143880523245228619724848189331591774577517471425182765856101769300189189279048606344416800014772755902082826922959285005325365805814538372654548618476354201267402463758983500345019590230176339743100259524478895930308840679037952109046296507484190520052123979874656724945958333457089651344549787729724349102055342351204625899027100373061228891117486135790815680879274170091182280130650962921660249876319331617113998671100161642810386982203935757042050996377703027600471503893114986660100645030147436184127164098491652968857457716066848873257568371005794084144928837251714034172010423038264033875839461233059080558353620667864172103822058512239305913324347999212146335451579259161243531485344044235455421471784906651025377055966581846509801294308695792247691189007520550065791363860592774466619525873511718826870189187316605586873421324678168384102569124873125579927184992806633367954145846367158947204086412396434559569392949951350726856191633134868562075438963733670396601701892381039528755150017636914446145637583809703495159249850246753758198169961517382476997542954001525873104949941778704999000452175885701811647523088698022950116864451959012734770753549078228307099368507076976689341997410787273734632163027719617035386283128148264257795953812604284918152320263289255849905185619596846955123439709838094294001437047229261717926195533519851745454899835547190248066683530974357064679267724132347753405076766942824462694086031022280329016585322378524834543837159305861200700749132080189258481985961074956870667558599437246248187824600666334127335480134342922276534926480401915201599661481462195962787381728640457152763482081115831166917046203024735061225229386223862930311790750619460914683846055946317477269747752304812226235589860024802275565708992777716098938722471329005946111367784717968341046529679486223813128443932384390135430944818865057029608714577576449749751424580196998962074417608644738283855757535142008026233313796114998133291127517859041740884964489474039402635329700721786965735884792655079510648150821701546616241821966282973041228194303013222557734957787590583171519247178878361899666359705919972153792247347815685467328084772315595524626848410272873277728558044902736276972075565393952282251331433743697116157979041095032648300879397259126539317895315551378709142891453395171243904104653534043545675302611047732087657019375388192161562675535991232656897812248475170012172786779684542687555584960105863723417618956609688040012952723808328069358613329043174048865574784777492114316791011598801149502874853437253529278882277473418263286905564032225544094440919011475870577515921461352939368659607312068630891221533337824537785926480078640109712321990254934182042943157967633381952910396818688483651017784066101915794827288586422425157649765586696891462758670165463059037001347113290783242258803800858072730587746053080257086539525204129822011150925409844475287906700021953157971238653385504296853566285374717150379277324326902678718443889044239952860504327708066532133993981204476026636092485258440979363810884119349263478178865966806451023795804458470392577619433126299544762209960975779507784025687884117813923992940487429926705537858785095258936901946939400223048235602708046531744371951671770553339515863236808103109880316346034162674288213792309960140318710634652587585894750742209122063379956393836832093098845806383819092908879566361742915646707733409465225843279353218735823173563869230014650467829722878342397357299790119301013887844768708360248792569883764287889909274306216211770651391080682929794322236627064272757123618566713345153988283059352539745074995899329848966103035125627789146296746835140236486209417392335019916909569919260198422737848231572505931955378022122198497852331740745940814703762760721541626498518410770421258420445121593719429187419200201361037325936808609205324943426580648354487717616894637907961873837071115446107367192116794238154665361831384171555265508767339229079464793144144458336676204223237765418559544228279075818761565988601169922790559339591122873010391104438494223033476881132052119042548947297662138804982141717870209133096110225274397871025101960336476374210221485210519832039832791591702701479221016124384640446225883457783179477907222839923763769752596728492681706059731019131603532123636260984514661624969384593515823586229497019265633602356495836987558301615425327871606468205907975826907855226936564259775927962999564521567597989838000645853053958952007182384701170960385547883999885658486405142734780391904466284113278910285151202723556620705437283724809284295233352840445153297880564468823205902339762010083878483312488453108450202242411471968118718980204195322550730624028031530731676830943772696385719340967916072910213165928805152092938176826938171116011586698750121340812308558741725453453880791346077729885030120511473125038411202272985743374220824165040697063546624835742587367229427253613214387100719507607060405798297649075338295408485244436004691083659804080991736759842696656344768499515126760809513610987904320411651571330982491226978356356382907699132320674907665618082362983143867695339777295859207783688263309134745793482656285632400151684692153644040722522390256738743880135684905685829577173664142338849875171690664431591744615665787743779692879445803754609366672836537382414425803825731858246565696548901524490418872835275952768211979749848091655855076072670121110201651341328353529820833031369221395719484130048951880862179591366835381417713451388094127529287230414238190605359542753006963863096986345644873017476258928314604364705972637821547216094190797384976800943887219177963063867396242510000334632079754150349052985068318374603011908058856945357065399060916726202775145643473231426091093181733647294719084916059903741993745616318462779137300297693833678681385810998932407585865843148328276795914842839339517487683620023562080249100974778941832045773748506571373407126503436055564750480127907619089817265782992765064636342359224771962238211308023818637448620696454199688762614648236405748913762811496009579587579726868298072378034101155987598436998193898020183613770437591518712236937551117976472338165698500961570185608240525473979480468234792188354575576556091626707457484914279114373777763550462506054575721914839766056961974184324816554302221773684735564711881192730398525681536765067291036725707148619138231011159183197944809031073821160408693231617143765932328676746587773566340452988646773605122577893701380273633374932038539159090189851952282678911045789737017633484297576056601429030006324743266763982490346553690844983075408028469774211850233324589189209348791843797239957153873751899564503665105701380828617320135750170482067073211743524461021090832702048215453181648174419923336292027566463242524220022276191115062625394352578502111267599541899083523140830027368036807080243713326611246832319574494746202238139262714748817816514035818550887339916739214052474666241864229718520793591719531802625769770978061262846886765709247274664660324364723689221031666906843887994105308312480428565858355866149763432047152873724206387618062321631774442975096280941702272803286132911463191990841294019608630944827485846556726321585980532445434664441150696096627482914719409588034917766309199825673118816017095088371570563560117751530108637061212331045883535017113177167102864478643964172863652407941840726858283623370451789771995866895763705573900288665237975335159977740800745063387601617570638401328171967784921794864247317500269757184432539350524802840358926581292546333489857980957841115739126457165802324996605589576027928383347197120503119120464869428784565416441848906542544509120578562200476870456242923935809217979304302918008071143057816153547400866069908687250405246793283729374118734711217618598384711127580396343896315949999191220597847037620267033396324898281520638982254815810836760305462322168559354910237704602315832161711077240219324859010074407241388965320543581738317218997237516132065383772366515387019509220862203716436893813649433512436653078374529339594180189670749876855790097633003429817988991982413473701710406749249144010561250427623331945797692260634223788729148675700097436330716904452133660185166322588413278860112744923083492085712266752534284228204850720995874901992602289381313207327840245638764071553694859891646461127139234110845464721788730177000282547035124448530949822937110820412517758843949941334165871053387241096734219968751939673224764537798901256103762717327095260854462197153500504240343087521540612904566875627172762042826890481815811473591033517303776864934055007392097246008529984975472787472134509585451868961496534559063959077107207311362820094110611825375554746864654016350647641215722787862390764902132408873839810414105997827371673830607383149095500203208263793370151551231504617988011060466220071116196826931234537263093303967043699826877597302785565568670109722421004979527604788364683604901787197712417230239158408923527299553816212985042068386695644362988974109950133938105618077721409197415698301682744394006521721939900375670036253315422656271805769661515803196623540170571620389039047450941878219949749884532206938556133783177187810657741316404214027943011959596924195523771073862025850213548958751383547704700467974632993646817968222138324893979445607467440724739927577900751278913586552495540778976707864659968283324547300665975207014347936655346792605909731534827627928797445549453707249204758804017302659837011566034802791360406769477278423094922540799339888621505141376971480372016905011371687272640098887510483244932403694947417703545273157752805504090869899660044171081779501123663340313456832276525546088155754631032683907380047878195754131975404410719642247260088338956183197259036634586028056708085890457078742034960919195004328532819035920676332498161516880268709418890631332692647304027129158140781145289633623769201455934089894240669843586978586487810040222901122489987778267808465364592563963623010368472742742560847013714270915676967557669066920609282833982223591150459246895717440457721701717075690022285889017005893555953934656749564351080324627908681990226458368326864709247499525527607772556126065770514941928295612546526822345914170784207071444583079324436250347444528912929154241977961070612461859029435912601938692366416712261455653352183127829525777672985471421443702087513109314102669728480322536165466281569620662687524602792385547728876973366298590162180384908002550232755994983624397293084104191314381684747671403267716970269582096231136832360089628144090057038953918533562736486490597114015041425031007376589282407699700426106978710780457696645845551870695260866187656976768316922215174246211196199236025961643663388516427279722010026065983928888980431881547099390172319217348638067193633258625299604348864262261844228729554880012830320065509687531052766925262469721870050207723806039138179028977358401548679508360982931906989781179066707754166413210889302831816664725909899941229363869317805132509388535978166641418262476762224113129134480136382775085699854283256389389707217746325253245160902228628050926262679771981082676873827128278911929567754749162078821694904230417563119603754735386961389029108535469663003482475307461555547154130751261228349728938808439363034846134772310412180631545533633170425583570311505977545567786962858093954303469238881820840496765424978576609379338858694712640329453735285503483568451085799039312247484188531953524474333028516121337670920587158461693324990174250455829741181294603124717591454421901704764999989431073737947425521128273588881341793552945189598633374528041581169351414242549656980281066633531333097107893027626293030986332817441024022013926753112744243747485371533692687431491211541005393269640858421588266717296078256103597103375540999929175360554862282731612528048600469102232607143599044700032158555169283956481157135269798356989336932449023322426662404340842622923637662221785162751176509270178297644665817317438797446990817285404108633132823621271070012893608892951237792947804779052163596886825718863731055469971231941458352221632962332193569023067452899504586891718784319991871865572766129728603739841746647560449860473020996707815753468258484095346183229753860020107438942200807223882718502370206302779620012327225322953697173821841801669944894799945635230504031169333134204661806327433663048439246992261956910747449205490973142684916956052612888490965679581470612217463728235285382074004678645487001901734839267892610088383783400217423476448721674009404237910254110970817608858861934184034340486926084781641452547107011358155364561259538091412685354314643687631752284749872251044428381687275403532979255677452657035285139211197354907013357559403874475622803620654242664178393620866068107218156632130139468312822286569202499351639325507209204875112312720590247163178393914320807112383708604909336466060400001607777590788689005032803900892672822434031609000148824215894479670542514791897259711470335529729879888522986106739234300592496271618283234919761321576183814908024766738667078492145107566921644063784416395908022555034582232810388118495129858808135679066480421731989407899041862756515873462392219923674753843720722935346565727534763829369866829553241427869394964235317445647737971200087375401861894677744269432736784827776521549723068879796007691851924217449521283515789080425847992744134109474478046937079511542763520805721008088821211729392534834012104239034535950435220191981929798086019655866410628090667643303446661076947740516282982315049722623850597762018716270094919028396379930865163569751312469340956067569666115174688294602728862598267627109119485396992645744442313403804886556997498107375266900045575335020740973481083649443585090781797249363423848560040294468458388409113603654460296433988004496491569423911198117481363696635134663257920571063588504264397109504264727466537085479301060541116326113185271306876994795430860999335798224081378487057661288995341355460554071246429339206735855840921418872849665151844650257323719781871852211255295158238880258603674045798979367492459999927183157612724609502915586729193029574975042078377141006388481502169305736275573493023936000742589667410061327504707360113358000615012338471315586002519058723205231316790321008932384787647243831376412531610078762707233562887536002680994531295992537915629533421102369470864032090478274711721619288664676146703448533590854445244241668957768211807851730781724498792774899273568694318001754454403287891174498436468996237916601388926324271676610152885655871147933996052009117461934516808569908512672165279528678934465178560155621625203214069340647744680792103354370698533505993217938493022315843381698080182620068560105526631890284439032114154203748218562424576694677714966736597069588402133815882421023926244073195175993889938541563996209238963646789711175020423355171447593206319998381189677766099587305395559407213812937337218262629179035632917145296477754977907513306180349946582774530609664375014218805392829495979705089422240548126675229572474893436639356464094630219092667951009299388510619490017570097471757108524184734507008455345078685034929960011265884587574559617019604865333293566380607316538986024119981276672257377347283526339026345669949909757030751208736608166179923646833236969002127510362088425633802760520781877923822326712219624173059758891272448631684749719874511962324988010753425260470058495399698968064941443570539848057383283492738357888106005871779230549996638329465042101358387705924419012024096100589348162148865510044381994020230774375808405733459029946178882533264026454148617392225183445190464979072949461205532662404515946819536098215498638856621690905768526511199533243712008614301777698045805396600058275367924185648983442383772290457590371385724670971469634905181136569694023465787783599494643272124465002513442796016471948885352938228842365056652524785234469918975648370307905090692687464377518881965929616587664377650787480810804785466237758524376981287467013983869198604674734372520268583451327232988837040973613444450274058099703560226117068679791170680051385591378725385580831315454115166566663130538522330866461745385278012907579727558703812351633305139528525638595115125513566741492507788709099695746347876873204238569179257064523798434979782945052933794079870160387460331375925148166904234599143010553073093233412901831979452123302822115462298302686902776365891816549412508793740371947860972897924581144381260792448526445443289870296074146952763729198820759940055559462716781590597751921339875400030115395368575223097200354956851868942470081365030631947661567798441325613442493404937623033426131397105585929589015245820890650830310685066863827732478399897428942808669516336677889819698401709069982333219435719395070346028586029742232510362467449759951138407647240878074790381065981855564835988338709915138809334232752683048153929550150033112076772092465546990849650599567949258454709932390858845468519631576448709781724017564696950214851029846755055613247842549191770701229731663468194118649067517610530567105958553760790178828492804658901083048270594355975441531938822272862476967919001880483849618367469156243444070707466171323419435885610195528753522796303976798815881297349374295162230161516407605129706234231325456410407238476918348727968064988329231464876525139338422627679921839447058695114529139838569153352398339372162898554582369343538319181595030227394267601676959357498529160670003656828132399717667950791945119892407227503351618953095904337462238127882533849554984995898800270957402256778184083976821933591763343887860531005099214833074309853663850178289130480950120803363083325269821649181090576037725914960411309717298063054560703286761673018501540223364893812154035033101827424571962971313690600893331926774467316381755813183292120572354448001873522652294684012639620770791925402829081945297134134312837625563727518742518993798179991426394996403231458772736977090575447413845430686062322782409089990033042894782357982641258936492629700824203409601471697589751277135154187624314812029140305449377910087482592233834838291693252855009108357474021719499009036575894712399438314485386731548694490178707898021247092840699182719217961903307583918683752781123031122919803601661674566909412545026117771057221043262514471126940104293500226197696093981581362081845951919091724363287932436609736365586207821744477158781719411686189486292180646120489079676773144668408430827984358667038074241316501481612727681941319205902818318701212411703069824099829969263308931559604448537570339157890432849050917151076307617677277686333051732694318912054649631732613054079706634420966306606957732710414190716733147843972946844807333466815911422128726554907770707743911914395008136177655896740929591682284779392771444829293498432060732651263256054772878536797717378224940979310029126230253145664004086340937461486608273664336121230441367931445492173093860967344654531558342867461429895202435531886073379805655590700452983538969926619992896642022543109363817599320194612185048984046440921544102500558379873036401809108251267802909073876152785595026984404010461698070087888510585934718831058599830829298879156557197946855785789200705763683228727163389054188336985306926547413551480145045129767176223881633372007519176832390115745242545718752654980900953848687760531133859454830111894320358995115351778808035959934874818900138606830163550164445686911924512583140404258617276326447686289913087493674909113942086543289147533326223308409553775555328940190418990004777366693994786184023076825069460529110023633907414275348163682155298831517617838180386151117501243911156622107723909054620828233225370265784131394767958244491482104706167895531469167163380480295436667575352452390077868660014847701967372292389514064451569146998300291295958477941456575033892593106561702781179255958815609893456184159324554919775791749310900128317641437157798659615307746736685833614957258189211476061267451970444793957781362135239959237274955364397134589980099545268590906236092240890733195334409622349940069753413685500375165626870126773165893924176831008856439134625010132335024252797630832426016280671848370646727780854960930348800877710339111209222432712709901234537086833012883732462286770850793672879516501709624447581115671201126331005244241671959053371328598413401243617870645370343014452808251879040364413062571096350167547292234382185776527233757825050967786163435588456393292788786317248796451396607787111439262800777622961676028030337251283760080702662644485531491713506876663911982877143157313753195530913086362979547114514278050801184134165607905600616160258335080822743319071095380631969240842762830124863135341172211689670853402661591571412883160463946116903055334108663356243827360904107184735223434720485627353752494698420095719857145742286176413581363456971714589514636865264862929872466496209601591688940123718468548752595338269396271887045454781513170272411548808025258964859491181269197136948631813278327529320773196954449840535277508464026157016760494436438487971025208377642151432613832732666531073780178911278411108960062061023059136880381536385079496949208056005070377910360374728790124431019435891359748907524210908518802399515613704381917698038006161681666440668709483463065069304319956816114031864408540755856740989726336080633958556353015233610366778455469558149654772005738546675646372282380458333474157066266365927426755290289012497637659675468334638213188049559294899314580188028532386057619162165789839023461281633607516130083641726444081194771613986056482513155945732161824363194268281412767792231562336434504618502795472407304172209772037392992098846521894122585820734696617256133812914842689451678208290239037506086080197706085325011614501004257557547806465856699214575943041058350168851163330119304794718638656530207258023736026789383130616777822534122121011220409102152030161547268268556090756592278270848260010460599254060495056907381611378260925138491370446719942085122046461096727318595191469224196514517129628632699516528128475578147453301848862772740111074463092225137699791558614032498519036551719895290626962650418402357352005862509060325564142720911999394957501514373091830314669289033106936116155057148890649270656353934991303308976597788887038357968713020118647237777248778677294699604360513039287399632519306079373799075507154696866047648449701380921069075546810655568792258949435797146788221319787985020652040042010815662988970286414096815284865898874482137381759216464061431891738111450974293392055509873016052117247342621232678901883405181401840703292900520043785450816191801693603872086965114079648938586182545373955886703878579175768750161211162882172155340667878329000609499891701283224059972086879056497818491469589574853320992727756515374166676959963062622397220466689609255495860022014951782894153508632251409399991638475366972952967646810282695019870337470474744456030829359823859432368100797465594578196466166642984137016685731743250571362349285595448401224186575854361321207343243016514662711575571431425968634170143640815731379274052473886179899775256415930261889803976860848386066006625024898386279733867401529367208602144091649614126211252971530043371394549306469039944929714219952946707438904552530759287247626194778558046381860971146282455116466162480894932437852663704483227603926432559058476342045719299022205831160694823726631147670196931096375710795873177130251569789534094348839203886422908988504838234214076678878040947896284149586706218454586425947085059241618609973521011240251308545682583859928655584270956942068265202446700911142324362072298438439429863283819722457347895324382098521395714341145646791046972927533002384822202869147718691807134173778115233453754194280743723546552563633242742354443577397740476680253825121466618594813279142668371281292506305002636644596727378998112677006692214645513646549982624239510748935508055403087274057211074030355281918830302561235924314686538894633243279449459783669291849990473249992265566023176151972571344597889793792414343198325595369222320855479004663547328443433087639978466796258532446395395429461498826562391235550569766355370154915589957294091713058555624048901816604396588541189881539138774098710082159560387876033864006380090674943295168381572871620876264016001148067944476546660382045040749367247362760344547093980223302696689960156613574970952990146056843754013411995665511550833775287590948211896457090401562889094250999677240658856461328987008067708124693974654379118764199404749404436298210654514829501564672426563775119557578905374532145259657751290639063452918440200453015734431971258117114957186341125666438331873104039941850000743895221357790705633823886536756491129926607602248752641343949636329995920751722739785410910115921857802298185234515407009795791618455747764265467118449592239148102038917991934315749090924398985795746875415811243256335083684798340909367600684001456854461184199493747111031715862846623915199347955066879477771879657345351543079918780607156829622341067708147473519904929971936296385674845954912651738343563504089185145614977479302749554747376439126925041810557160191164885373173187446328166560084679207091036924155598661742732930771944483265065701964071865348456210507580077283880826999717311937006034090314731980662305108930243642015284032482105926468800028531552536964491966712364929945286373568155503859593427981973634169966416413793019088066252817798023696046971782480345550293736797403230391990838394731805786157846031962274722856512616791915586062751527982867694244631706753300028502235238878294793014769531027647981665970368305468402600839178774982337860031746290737348724456486390379788440271915924028026381956098374194862210917392681234182376458107534085601205332188678699549577266146996806988095348443194348556795342655261701558066714521126647490261784315695954242154102433788059816419048514365936322130189913065266659084626546831019972669329858815577212752700586170975032566591671776374381199806255798669779878731256313911197782993610245874086881522050087076557651214238407375244841543649240496303725354423949146521244604696767517848195425740573039619052895479048086203190404400685142323762801392133286198027368271599403246704564268653028700347558768901646572333352600414731247938923747945547588310060636360295485888911750678071756127066053515118230324557019979621291536248809538914137687817357470419789217662457881266344590479398594418850893758571967844337256326186222247980398952154384165254037646492431206911900526663333385714403543868809467343364984383737820544672239861699730077720106668707244044070137349475495256026932246035956832820260065511232844364794444662473373153881722556983945070770122344725648315672895858757884410287455103139895571282371244658094490908305312738150529317486954129772874811664856461031318050068429963139504312167833354164403614594339236901802339569981864035584127065158131041546047727275423141564570092120811758169422379769581720939492912993981755981538933882237988333067572520184766576844954435121146507127794229195908524531652363568762851274244807685147210220184040683957760080390510641176336569611792530180046259488648801432567953691108905344516165038217673164429399435927883806919137484369965297578180280533320924503814273499942088339191598182958058183154695524554408344714099123100730613658481981235029244635517274929090250876085070832518331615271876682794643331531160327140704586543966253435236090175895352939354084184696955347768918657809047221016714626690226044228592426869062209929025561843383487818173532114433071474117843147011313738909026904998330479332515884045743766424141920099154265024321104674399646963446338301861773141299269386957737182490530037854543018597773570257540239353233350195237197760838763841211866807062500114976394034039326621102583598728997686528256840259567343498349555734668561216948583989560800029813710486133173974187646302656072239401139274037248101119170521094164479691537240840595456409033964034876130323597522682801832104629154368974622463565508653278893758936610586272373088019095071879794869425909055306028419287719746548158802351957140062278549189196679580927945447242572693652852013798842747602705120928936989287367190878150600402679002021555715986735476440082031379505416436977430566838189849420927673455187300035412951607119234502876994448827471248384777483577596714761512048232674600656253880120307237753461392889383494907123272428423319499409813936982346920995792591714875872027433921416340179986386438153039280564347913418896800181733775587305007035678384557185684579096894159185627250501572670290155329660395812900739235779229671527994684408627159984803176536038126734368939850524773910508958127547687445012167243098553325530911370514358765588373711962872969832129363157717595501335522775561943488465988737417397508401525232676290459587613451228244404778359054414615500289709646266332712096307542174600289884427972819361373622677208803668472278490058901010860908893694647237744514491549332278397813004583982241894235837733536120959488136349186886920596435439211984199443310543329063192508881422106656742321712004066013378613311286907335615805829859070688166845015976232662388823823836626352053896857234181480796352270196910798373710380764032476697574260122138343051118444157754648652301142246193357874614959800768633254592461350520982479012427323201012780031882063446920762916867916243932814676220675116626026833273284366242324271497137419746765580019806124440873605353402741795797499262854274486855345682281130870912831994208363859209035331782485314992510605841567059843825267155361908300021553379899394649777326748153594694184854049622573563187177023126512817905278555982570172673668276609685416501017031618259555747884568845771422699765870577378140265365895094692189226982548908156162725293746597716045361133594934385302498689223918108863224892011296957343897481845976492085288972536467539052520226066304676484568081502428617827665025954269640445977419208736788479170213237768736046219167566881916081362161532372602349973354555748971682962696406018755995465671016189704037597583549399633095164146076598804660344707679774828471550049260218936451553451134637195879582477423624655751716593690836166287844347389343766467038474484606874526959271573519923507272715983268041206806907210520988088531844752505966624041840562067356935998232650761425991700000848693606893052683038658562717780179948399265114742865543875026260015218148074787275091690718908073439299506641745478768858824776824825959086602343621070326815011175453637635260798707651250867538073611859478124251661141124755428976593938072087443555095223421673065892867837202363242274312522232331503866331868172198136894371483209897751624257637905062855105265671450645504123742163627499200984161036445797632657496164869496997573268881850764037683099126460038865731721185944677680448078747751210120044295885817178872803686286649119706070971678483134818930233905104928614293831634775644189930065839662310957377501914479037244325308790034483978391351892355486794991187068355205379746856225501371616809667614608207215215931601111985332897923514702054217601406014378994691962147292416517773692670848501331486089143251243031563389343863171205046011747797282027784067796517259654554140703536603149224513319882828580368769177624106372942088992354845218036706030000684932912471703550360363593890087499840086555705125928554147528083386207160339947399126044780477891462510374871831742108143334865453117640249266413034071879549241749181803449340789566744013682932502050004428705422323063174321727822803453836989762982818211512374336422344514253957735843621697848238329988298728529868492329478513629234935051908759576133678498640482845782318671534071240463228571670565003432822952041673746470906459404090328890362363526359733560209862262641642130672579134708356307034787142258811635571770528463971076165518623346210789921441692515549416026255196268597430218161381405489804061854299060461569361324145912045791395711681862741389906330968174255362577491599864005219496162533345490768198261470032311923817904756734122185849382522798271235705760868019102655367979758708798654290277808071881852499279114154341285125103791882256154301380796069835130822624471222788381727722733754217209185658554335788467380698010508651568374860501312217622214444113470687008268270373036591952456016311164824056154492462542130187577255401060643121670589969469084544109119168453395490534455031294445496246599162502542362071842709011607220209877214539974136118466154988769595419896392569073733163382517356603211891888826012649587330616716929139298005967210877064879713157010790590936336802534845935391162192301253113986899563122035587653899930428970093907823731815297903095437913866481957350355298731931654385038274360278365010044995623477160324469695795768698302615673108853891951572654155899591935525096516436153403359735692343774409394201207030676073075760084864195314002311137349362441589028085729345844231519422155421505786992881685058832778520221485342911134973394959707328586682724529958062454650926775123612359769083914957759591489514081780200645176690202379165235546903209430886633913846969829984458301528648333509131461863586103009773978554513602112913602508648002468350247350684654943637078984560407907897801106931358799900021942765134658909833044830184215418372263958131338131428521329107848551467855338881687746492981737053414752933997227965172623497328391598407534398524227044359987913871917022663611923092542046656826927872289261132771230673948796966142003380537546080021907016773658561197714714874665888782905002766860795936885909551113646565455372396659146441531832933332739916395016552907895074421608040822592949679861651728338121230493489652028081916970219623249915970730073354399135411183418125743489092731229974236705458910762641707020645076929024755010071398771881496329328433221982329796569443234411241406966031943709880484219115633072678790530497375793602771028990020467148809851331451224032088668436123602751167914432662489775568456172246112448915178513900320340969194601202785747043510900187435841905092443542113225189702871448196995796846416091030528395894644423224757342935685153725796813466464894636018253350361833694305905846923270379268632878450662527659172765872412457831681146241580601506689991592628342810836450351993304971358650821556562511978959872458912818943750578676286855430482703730078330354141276743999661372628273225195939557727127402051238275726477050376770634109499264304977927300593790761894434859667303038477576292099298745072355427989647324905411708728030107748861150771453945528977361193905997566356240212976746387378743973038661849517374493148140571374401370592151721280332176509907892794797798379142047216313371689838794893624486740307503692658270435964523285988588145439526830323653144513291315485260648429134365930632698056671793633054468364499427456771475822924267744539239965829648460726338833751012382947451211639653904241893884161313345669107302598607224915433016589898525651389171847516884583805064491801164415663994496676626495796058906611586626106790044930797327128064650631157170627461133917567831445141994976428822128374570504690589472275046815523298290829417606876059409487570017478680732743651901730742016631974759400239571391941384500624076736856879370664767094764251550155273726066814647196554351056628090148581834634736588765702109438741691147657988175630672873121035324089996912536261747416683854419018602759691572336882845467716420025697316170807671089870911291172545168432895859793726451799597307687386436526258761860592290248198284779699417823957808626481052777128898297592022454174418193435502782123404423102785893588261627760369136167354820442635962920264734299948906741597723651954564724535217658200028022559350907904537376066808431811723389488732171606490096646979120552557831578909094366002401004752992080868423953134891831052628933409480642527112617541299459582022149943747690568160754571185296332856701667671946822714120317743840507585514481851427875284898041120891063879914185299560692976799499814099139238926737277916453488045852506860524807446603562055863676159258381509487763531643676294983602946245377524957826589797441133292657135743222645851020958799538435008106240502081920186937163552229642373484143874672593659648031933860522417751801042402270793079321583834251833515927222661658533985818678308751748804756510120102446825711467899705999105530068768952143488692856673436075000523313103088873627203755783251635583682908830063517384158338800783769111687862689429283974028824201171200467878964759402365270703166728624242834140416223926018276028890685740364692612497622932661504919224413633506600551967508610052424573719242391373286098482767526194505911000875359145102795407075218985192871148027603065563686705588328044363514733220918607541132460958080653498040579118412826211974077485911915536358063283029334888746282682950891298979765435172848484876339282687620110909318258482785946250308343936340868219298394423825408399478038185291814376593000193381747562405139246335896170885870198538259650754028151241765870976233261466649134612317656184590277569568777794349665491828221379706052760913518450331437211178297990379796994190737675092668789718267476209341534866837994661219679054736753957426461784105644058276296979656500812709254606435715457460691629411751871251700524779736453326646032619406914414621338842568828305433681304049503391542842208958395829854683688075996447623040806486832685062655179661666026103401787083132106498213766694024342825754655708876991703850495492668964203341720903782536987393766993887771130397399603272896111374978976716573864402861602996114102643338987889049828677028143572769730687450123517534229810393706618050497729492705599854761851234599980903484806436546953994958739704143111936237010032740902546746311339346058569767520904213877775792710170144452994252108826088948501788123776627656267547564078456508208918113949914868968552287939477433927987803786700344748993889282001266965977343310140300550043753531777280907041032047894037522595868204257632293223652142518056037168406368460642227802909803238482547979256336361733241476970097010361769407844056414056803204392852637551674023311763307099266465389546853062068649947946945384160092719773457532199220155730086221571053536174856944193054374637955269758300238420708469267112010713425697137022966767488163011710271818698903487339754241192006666757264382762492470755111222008153348105142560696210510816194743186371347666643752830994739686146614662859628232358251362064357228409274383130859458278075429853696187594863976588431532166541912234231390103481833717606654438238063532478413659801471692702929654050485175160851453200348563315464694444976952724644572399959147584857095488913675056003427225352112209857374398994703701295718272930551938082059535966110450264115037954491964916842287062794996068973994576465842317601761582967740053948298056965614189565909182323889485619158253794591087584900452236598306375882672560294403923128127488899699480339023667092294853284298749695698334907907540290359555427757612108138008498202639053714668883853108379178344479356273466654421432329488611244976923592840910069619269251222570079585491129776702141190512285837654861068054778981281829609358566799315419105623280970678613298166199779313653817951769158227710234630465479624005812459823350301201486606532154694550231138398560659949412099121824631583397844362074642095591624005138935718424338624622644029043823941882009093618529720789540255857381106690727668414854084225519259235642003348736010982077004573554899079500333170415234905383143347948826217785267893423783811949142130820630543526540633913808205617713995796201762519089416088762924405573977312932765191832061197831835342559087169356958825185928249550545123646025715895531562836295690873562436915773253263674273222073517398103600141585568044540965783060560836735498074150280153454894241226584231355453864970885264814532726925163567184659803090643583692994921919844599042678661900973731676964573519897183722325258457746545268238576293722210963607210206825848961453657556814632914828540250360568862613614780404359941570607293070843419092650190928566885485029079490798602341385913367148393700132069757101141389059361005516234467346778259993688615294859356590876965685850031742042985026352716442219771366137611723436006910334320489415512698804510039497584695022424267826172659676773919847777477427524040335698571884593688928684682823129051567173327154328364005349129493337125397532574471879464992734819616252337136280677449990204830583617804008247223897200019555044596029909941693228408401677790850171231372071150209035173501687050832324188798882639974298285190906422584323175553446552186800250560253343894256442082379950435078511608358694510193115171940717810834275610812655652245381825611984819357132312518677868454468420262906163015025336122616687226804641599295069336123503534092631691304167885136396937312878876292447506690822075856837168789146497338875935177924840849579658848911719708424910030385153094160870780887952664981979280436537512307419122681993788129680069539657795847522434426007143314073212438977723742916513406455257139344645845685518690739776026707299224861678432392777597662436139001417184750268039406240722607115220851197096731820385839407066944004861449313725271400721953511411361183259965168137027303600640523458342349715122515209909404099928816986564284107782719144326701880658155463392392229363779471736793828734494020235402940660500602970099823538535341330299982936883391335797807071432330243537855627279628744353464455102803704912308195365903221140614745339186475477386546150315088343928730264177881674652772881380336743719128611930496455191268283659564086332432150459552186784661820348741212620357525078068007651732815739795244198512605410252909619733934560443243748751501454748101684422347619300461898443435550553597852709792603700130739794365086098705066103845770712279802120696875238764115310601487455516032348538877943093915136820560627266441528017264952286553194289901977024166207006733916805507447196326506501138009011108397372888073156120364014649050971820141025299403182177761850163179020967604498403987561943660015779814715299925057126786155746174844226933361542150167304582880185253238105921817630154405344670969273425912484372423739020585025394528570927660448308338291401498631435581093801331784127717394269061325957442199575936198341149553387285324621188563785775351170365548439666712998175257486557401069060812001296243835153663140258193023095349871343577810108378846322654498877313728175308835049160235045116376022394539076657164896322535943879564414269286279602536962928148921191830701846988499489883747104673207860563894822196300004463273850746315709567224167890017166812384652778558897397951962597808110664154217057696217351702425510273010294897449937044246017735873740876202381020321562959516294033028415026139558194616772577160012793737536311431052082627285516724926292706077402206657212458655866264773479244068311437902072331850380527145052357840971558386057598622575295753222419634127241096595447048734052391677730174110519991400898250011809407197344054802421300340148196600519190745265036177911619707656699754411725230304302451710347760902701002443035981840158867242327731811459091343691886577392395199788349505880914807636804503513612758743453846469708045232652641751944623252068432827162158897779219295519509858698477244311913014062999771982078171705770320555827751576315543781510831292647947352848219339119527781750550960168418766857710540072235200628739653011897329050398621401974497159673988704461200922763996396675626639296661443149903941754394494332475922898692493846269675233481366376602404843316235259334514529358564201499125715944279291578657986060738727749442820363346199980755277055547062494064041959478124607716860579461725646435087995803676991168148297463088035730414130042244939393563310843767227181594153755136300765291221455260395363571807058115740187905937216267375830510741491915897059117306737692155621228458439087811362837473222294699929833572181798806412267525584680312141533089605160322320136080256849120452671203731741114587728114513065760441218830974453259100997211908693107842163153940842787613723001683135592060278335703600293720428952786859809679738207251283814149143380102814394854036602675545048674052254397175778338145109538402459506691945225700633551201102398744395251772365735557546015146160035329315444544632530105710336841215340146647306367286101147180995967030461615430392633781068608542602116211338088375473734174802163141339577555116686058471994642176981567346358495241086565934111568085736539313548581727361608904906195183910935534826004012564836211414672771368669559795741123405155083007286336683845575312321525037353330091664843956697102726219575517694371061845787054708977204396646538647628707804888472773728708849300755848985680791471050067227911615419661079285561543821684618359393224431602279872783912020368477625498355510787002405265184276607753763877842054781210771861265527416403834381474663064781437631451087781374134859170344505118891351407873002483758290995259075465482997460387405451662044175418119187961309176088841307850644988911891148038602622752502003757829497276025296689394210178566258995040186250079330633775689439115944256468764624046671866946348712873285094712231231703005308247942167834561219176262713392407152832330820343349241169591869362703528745543394801193696622412718314838363820913879538963056148078531648557761901347980606473954926387911614198111719750173830269712797558555913258690598474822591486574406359140461581977813610119285643620788576667494556824090398018124221216689218554310577281630657342818690030616445122203766920492967945237350490589502209434236196005154175624516032401135310659212358786512755421015174306159709428849910563114127057688237124380560276099003425795593810518025018299524814698108716276831029909689407551975385477776363454504264532500562434575110198785379375916256240098295986660555919482685411958718756505597745859383837367243991355220886904681247630543438065010405548425840951548249806658335986933164512563111658974377841023803996556373731159227740631140822503198069497811132580406155497124906962022482716834114619452620206118854452104345275355959865315599894235871030126190236380551841242232107797862800943308305138592943129159293421905989448052074355881035757142300322231637519845518274735992539569026200597625829852413607288285619590321711026752873427541920490388490368621317858282603930917801574124387737366321327665879356904487690911561991556512506151174846546201595225230620616662904772483866843366626311434825393965593110241798842499561788454753771149499226198240016483111196445375353315365941896483968103742785462392872148773878304801240258073307071360864002648026620584039447206217628131169947406675823746596000934758742467591835203176021813881115061768151554886876366604541217007554132811756589868659886160296810728787096404143578652398365408403526683761199934958619023656104391517720686684692987308493107674446216730826767181229190656892975943023326585376814845065830888858234188800140373877730487842390338770540199579128896329582902643703066383442097077175529077262257370807224157814958972961346847512077303700722043223103287711855568582549970939151883349902977112068869008275431692594243988787525806268402770311104330035432758398964374266621937145491796938951056925153495049209541615185658250467238126252841523773027543280963075463170923303140533600264740721929254374165825640649229145363136127973896624855824775818441155933732376711774090616750053630846944289284789370606868786193212148511372336476532356887251052176630964868607180794495216282660249209345492465969491437576666373858361851873233078373618777525348487494691006173335837565841991080236334608161862586001404786217125729879116433290859209780017139740276359564108023711598031709945426263214103779888742685981816536023691065273022522395751625504094333685017877085045723878412489802817460529848942726989723192708198254484614887678620185427541598910857920426847987016859644410109875038825335440814705783932378881834450912893531030993693700803041751051729587847838391869460240484186968497266397544433917877859389106270390956319782614378101374840997819629597394471890432128944455305025711597237798585291930538836599666021213702401604866235168256618177872144971931688242612431343444217813198508672342799088884317267386260989615193409090493099727182253687258897563832647461403049308665426990053325876883308075650123230554394573830990805542054126856088446829195913880087172937712493481930562873605730458815070400310671729297781136159708604605035850752487335071714840305338568695503658560837884344706702152546400552884373485421956874824783941489972127194322243699093169936248394981815124163397899656583666167257972938858935995004089412231181674596944210372724817002910237822431575323890620709067809791051928702986193929858763545767100606544130239800552966479297935860628705498538748504858709493804022567176093249729952721617607553880166496027970293797285987782202639792112888662682922855234869499345496035174877370450701100518192600978426345582433084322058522006045319903621385171742795943401513243092646344391156870010947883230277393585584554254262591957549936707882407273749217506852940818380039773186967313673390351390839680832981608591691994338810002313194383444077335472991233495423189306969381242615325458664600206601417964911982622506511163626291573175919368756878153759176079261012269058870595665170937033779691891465121843791211985165682369575343185922670398746669304668734275509703128700054168542033359945259209785257876488949645812643587185202785255806900007536031530013299386723513190466272844716734671749983207644193923274133348005679035595734688255175266289093112493097331201847440601001552168715673225093696335966531452422737263089796781680899842870611330122211953123938706082496102535335879354838165650149412335190610502732338560199848689233806927289889908066303917092007695689363729921984798144108338330938827291743074960837698389372999760301816921694548823414062136634767883811953373677015904875864631270027683001715289462198593664125872810645997490933741786530724024552769115287317990055471961073041599620321167143900353433878973170186465456546523231046369255665488608251101647644297084963755629156313742883980975734426409215850247809734126613117619189951035814673315744395587137103846653796689273365289236719110956005114796714043295137673643292183213574328878144360370272533735447360963801927670878180620375553293090607792022617833532592845378721387879716901048476523474963929167350836838621528206291469198666977657651738144944243884171387970442230062097125204978363475001921839743825108158431881336581888159641979571517431106636572822011105498689721592133969612234578388505131369231879363094376760010615655455899955471838174137433691729101049105801981624034280726024348886786393950469061526936027780085075213340925134103714430739449870039798321155390066215566667428678077622415925689349111496521770508230699055625580688625568258068127344797290513508583636121632527360672025248608604101444997118964342339058059801390021839435972059911676204179576959119212588786364996492585977915695098192021861093627453155828910523432112557375707390833725476703508714566994077093927281698481437683539438781481706054063226497437684576637125295567990996393351117346674509376130351446045340845798740237820134558402684716321001685981041625036230312398614907897773380612300196774668061618571940829848115745330261154694886122937691865833712459542215132525662505060852074356779527963526812042002134711866898401849568634069498669864961806738510555547737610407129461725852188990360739540698561772885049525649838180424061872477877547824397859385529741668627749582925609111739728093540538528661491659486586998242958264647726394800401333212678084779357879482580535903014091068264247281967790356001466804861253992706441454710757461686410645796669879267550418750147955224573021172701765025645060968151082034299929504871088175175966945017594922337130573212920074343986886080086391893024781275396690384616257458599082446233681482350515934886250527397551280950929037576180362323633895751916227276944428835467010579444009466770717505652730765749184215965700681155057260445845918567978702583480836990488368944549109185326847605265166777854708635219553115031713657289513765490954331960826148805694592933245474228199463106954358000406744220696103819899668040529439072619311755357949465569505463667264025658930600535175730673171446685043219844059873005557963122893209091264772605942987484244363119790125551664255944708558532068166624359122039905769604536248361268284083064962350348795997521256117511105464451989184235882904764511378718605929501550069778034008965075935657061739917194662735666293160290450846784390423578564233321772667669117172583037593401265259437668476782562256793051834939915944583192746407527962172180773853460287895910844238724973969582940207620153554057053650469774476540748397404352449257635902544148591813974744006180936030664329128785172259040149169930842006305860253355311237741462731662841145711118443366864983010065623378201977164132374423572523911420352761222472741185627018233539866145597061439892663717460765292132764739582395405491410200952155389255075036921878365283158798171101738430845562220248288039053533494221139263320622908929031272133638724316335629380921516658188528707706039071460204234255595842357404488635329091170917800682012285303106489250530096614771309074628262588684728764702834431354820089711697511099002043324040838313832956578778122213336694377269003350330419143358756087142626558179499465811032379043545000257858997595604117688912663515244307492539367920980536994423234221466697449817007699045664597452768890464227439499221204154770258183328256198635824018254009337455671507839946244892575795649209308908709592182303733340149592111519388398149894365127990329408270284981415010981517680403417569891943974497731863999810790935708971676813025226831173935213340885481037295159276132992944199943095405964236624404895482051246020294665013143162390451013045691287959491648833257290016570812894908057034933178336284633933591598446105151821520130181600227593485062334568222231683016044854367232373778891703046151418344004304278149075604482587811057506167122417698441890241716420626815793062951617727499590947370202090217021081613653267970474721698917996960135203586452594889522238050521432752675341548694010405396232666990909741255433896711832104136419481241799934000015001540409202239218114900498555535928044246294354868903667087333626915327273255302182469020362788738148244490716332858996108845595384988185859200840829181617980088244891605119693380860931933533130653994883972461477787623117162283853541065863227910060376606465791086215496558466944929700024243174275428784036425618068996274880673452806914058095407507927059296107327434286960263167437471826791955939340039482508665400233348937129597296466815118904576683361885339453427398642120459260414972797119764276210939994626728697515745990676629075777833462287193843799992477094669958705547198937174943803227622105673753849998600484410519764051207005160183663788658258822995871883190539320459166119566227368828366336616239864197264087945818725537323266434459960660922556796147609782254553019763659243368558229995068787117859913312132538536537312018951175016005916530335798739439562332112236676604173577684338805466933785330924564972768780272724335285819491558300545220839386824681482558387659884095669375994330850590141289225383950247865858105637937124744868221614797686246784297970882288890436925987493940291244956469575864821739428315888191033118272184897279416981145737786895916086701704977463071510571997667436301452860968223219936284552420349631476989260118214616325129468650402526687153559340382416432120920545665562305793073623447261472045757114338975690184261884800331385357631397367457115789100585615072268665122458647790364571378608481879785734923032413726293876212014844219609296209796084174504034627095715458939452006542172471990241705227278082759893496388195978042744872181562762326817867792010334290041698555939873041036135492532460045175851454368159040560549942928412903235519162309614226030964094722646001388442373062125118902887661264981829286319737092040174973873123494803238057164112440595499332090534082952125947267166074987336250592194336519932441034675731970026938020919415108015520433895920481870334893432452701901869274937713535808652779936110852547328802548867882110694192004817932569662076207329505424849346101223532127704865619078485600175161904157936185904379301738381775744476015057694955854266964655388815156540738309446019065447981843838269722362259384739905772844441989829722770993525605312171665607013421438139068096521439851043260846109767783822575968957116662826619141244149760323273002449160421054797492467560140492893129661525827212251973519129756462410088700562689040138687132132237001157103638847809646378906856960182802602831199424677847919992444094249401496920630910496219133418891458251939270640082610676013678612547970577994132786040226940791952362288215163547005675082443120184177260122773877182240847030429936610728163008679927066257934285843874972915997951059049425840620828411579970849273402403709325489539983487384977744948065828253974504451756925584393938795477338915545908561595629315652561925049181449111511788941432760767908239550036212283352330561848264940932144511262864974087878963447192685477951950564496207519353085752556178656723788645262521342790788718471652876951246904025141889019910507222942283750418221148988399172801446105740622785767364237736538813007180375072835406082734767252099367168224168211763100445750209303564755823897557532206231387105936655565706921709551754071238041991398838459259404836458383282931482871996700656972969143406105918736140761567180849515647690170911972645737132231908672693489560703820901221351800856946850328997292888233555732091763768575328133632112730617055502060203033777994801390153608865206143118857908772383759889969393527982102559009911213138250846398664722972273175798547351842975547790568093814010596227072277649210782478786087050108646742250032953728581626993631278548713775692110970723014166291671902466977076535052632232395846388831925655375776936943059288983411784622328925176371854994434868214112334040072048759221074009202186783795668124384388971310606597786500398632798704335095061003589652616100500586816643790427473589602474375125841850030909514857990610454418646130320458872127935431312044800268211751526682525177147087266575225346548872990809589853098910487303964267530937577576842611241279209152385089621034658314274718584132859663170426677616420876429537751323707311634309039164283622320790144551195200361575617380396347559660988843356668270992561585533376078699369867315553738032759724547635024304308789988133600388281162133679619580067062549577904150489580650067851352359357486969247627385919051145838066557831246159182979332269739077472262831739515095134658696451758752333073384866427505073738115873259588533035514785291503636842940182988976963561945383125042292654090037410771286319639616666851556561697948883111538497752849447680417120337323142156625811778755775119184996802162123183484634166810005594897951022613767155638805998072058553519982740180073760087093940499672794406528065318081914296783637833892395314604407235466840377100218487875280350118337349116880033545644680632433822362145057611824584250023329657281276198744973175515494300627252881495116558523292165498018004172544046744874314069304960171959663190370058200182987007848503447616497990435631875590166557292773674282467101968788427914956120716250112555784646894973726932241161921100233221004274213702524149394809635509134093439819647862227234210593587025384336366389433773605154031978050700520563300471414928611044950509606954793840947177144896190226290582378273877277127274766879333640916458101157650133465512504837030742002580896477535395566390560689592198021787689924418561554153511859693122093571262248596251748165660818251974012878199701585545526805146735310833217076615636815017678451860447822508079444852650215611048340655148216051746266097367218359335297425225594332839417379099835280275043509890285073372865464043163017629533979441069413542576047119407527158493475539764092093061873197279869271315812235062878201777192388754421752985938545161206654582737796654893555582272261442336770240701087129004259949505043889695222700828221000149430366912784218385176088275566439018605625039520171335149621128346635582650102763452033701804637747925056643231410917072351368825990498367048491534905610374829935607741259764028134912258691660315321921130872674715480777358613152340991814068912987849635032356313205736677550541964237656525948972117372853354862330512773268032578678130712083019117682582847381202118690362448276259480567493399434853982847319142955463976216556960614033750839564825297247681755759876574979600371314345605476778955247937260393049664182376015931181185842746935582184307327012796756832571834057718345723941700308163827054009474662355973733070774874736730622711622729194024799574876889438996413433239551989189732421497504169833260648609957354639351881603912943391583826281757116009633921310351809905046859605433746436083558362109974275593703587786169459532657248550853301145572925264153120159259819291044801672055691197298405414690238835016571654256966353992870966707636376346884804064477561207716583036549093822391863758851571259313726006962711098065201169759090147120358873506786676071536354810722176728599163633395220851679420459437515377045860756165065171713007652175472771809264330386329479060932467291220891822727089522838657777681311147660571971971835257652558369921874921662696610250367131187407658474249637116582772297901501217514609027401423451845930257609249145608563764435036219467654567194699940678773432789516061380968658051450095781968146956194097141965838250328688693541006209979670642924874967521309309527318290203119701821705229417664426589901467279194432482775974669688681654417862739121436680266919379613456058257539373157122788289878134835185923821298268400316418809986923042071233523518710997718008049900725305235470316790432586126017832537649143067646119784890380667129924175672406403383617003107995129806368090293845786055416012335513276795606053394074944633921160507252606425492743415927293359756915136602095358015316302835155523114917278627917802700362635996488622409282066024084085189983149077661280696455181032415672031325160008959331718483320106979175289602116861506814180817729357417561789246525259790034224446667471430164869768584548309071854275230034420885183104066718537249135065801213688175111328396714120573756268516641426678673025264196743934841597761297209589570871884494733917839132965738464397438413153658803505547717038541166411335120758729570400447604711408361786332523618372821057250738174103725806494908381826869131523179282246955094612483457608226100427205273184614383091032772848853602840328149130665743840866981140465410218555432920597339641374546611330586092933168908851968043575810899590738605084553250821142254303189627597908598757807192673153794631178099441845294539844878772753868567619456947341801347799850951715944165454267218154620435878951562227023142783394224890628845917831465807302439825172827398027970361353106242898445808391933816167038074333129342119881248277354918426962052978214131567492694457123131709125991035653186438181992893928232727959566978156051705280148175684038156246714924715055118246034075568208541765795090134934218515288515824051497845229984624154066214891310331404888716986793567659302787100304716133826503844186227082576614525906725275276303168731405255464723870474206379759494411617343289905227300169285237574414267019786836279865875767545930445013834161198847680156088618388119537446836880365232837644794033252610526545536140437874844264365527749998899959965087937044053051339625820315889006599834115799571210534510680330439649488995093840815955515346426208642587435159614184918606979946122933449451908887045742444852097313199157535497897787489763542052212711702138534670751804316326802341896196055047516724908783884997401367236332397827672727314411087971176464117948597896684878433018643780224935559317009035927791518900328962593193542118019998653254251057242427281893810061071334296902314850544635257702007242181061142555894991083164745746100967395625522838272397063183592505937930772672994301292114857589843633289665602422953722430635499516122909664051306033856186957203340650485536084775497104558664686074750103265795453857862226661799631843102721113386026473695884918553982095980192620221837133976375952264543808304102609514935290915463039051137503313033185481488432245272458880634281589687920704807603861439780051584660490945104398018610671910924032168127353480475821294785280379905951136581801817159127483514206079843520759677059072026209407010073115990938255415631225671493773075633789520158869025665533911605562817680135239430419284472692785402241875067681685233721703235503674737184151651119272095738781310724560814818870200997376704341062616361878507335948411022499599084677832111035517875559201133048396657297607936185872467049533182218625580326879052749066223997718308690811951740362977946983250161674577749774315281093111066940144338598818889222635642318308152759357829747051576814095589950222305500095927578102132655105095876006805194248635992564223333453523576265267491348824356818306677526033532596067483309014414524801304231394027490597740510731578836017880216819964478929034999119391455016545146944214818950389438666479624825663553068410041823842363892763113624251400890583450571066690126671472152342173063517471982827340699268127082712163922809064971775704300765617841216278108726538782406053744381681802192684951318632561648454145493305593874587502567463183523151319378557545114664336455532843801284386099772280948324255373260549811824983779982260321189562189599237799802232795457458423226272462361643634132923672797746304225630805706538578303625647723263577448634797149422253033087490795480927682315004417538365196504809780512440404464627442208381101351616347655831591685277694041722042678803115070189035524964223429699907401814028938014941651427715173899499798080637367839638336607253339434385951840732316492137005336197701617076221836383022119332272530255870107588942665798867149906598410459546268773344852219229484562494233677860505715593248949432205666584630590723750094641463012991714947799217848923812513728682881621436558076681052413307734539182665612627308617606458010105756880821070148508109226561528729551455574023356325133002950998448964838459608902179074957231182481211074797959362795214524756413024895133930071255900324873232372602406513974614469629710734299705890456344039739966793774775261999062621157584585423511735035636499237908526178054937797085211841503626235357453721256696389608513775789877079673555315772554142375482911356910971826876794420139027710664540829736733830381091813509098158582885432848004239401254678233845806363111614422154260877525560288383778946276354365745223149506902639190979497740068685857440599112341088302967512843971544436501067590352823060838983108255138169370907890961219494487137272652646472850201383107855399321826390735348025089651710767554996783543799669426182577132773728491224632149360549143774157710000044950439389125952839832628313664598617069566467797421458334167984723384657604531059726947335485955059520146811847700554400041729734326517196159086891272316011393965935184238208436368777134949140300590868959762446086345958789602328385998366377860513942726488682202402336799143158576395009032062923957153132035651872029562990195861362616431454016418948882551178805560712648112134493655734442173014879143899504923018387779117119085185334446893045774739436875434965751889145557556388888096035403990777901373407778973352585833356446671636597215320513760249186113844426394920868084979397062693563603903869853538243438112683157788841374460216761893758344816327434955567393103064132837899251086061857126357773512592423012383705374063571381055535739514788349554323304428132572205688240162182584843505660640604562665010856913062507353180563455199513106408517974384280846284215388598295961886579029050687913668151404093232459518411279992693577965816656275664121090297449021058805930128434749408045767395363063335760365642543682687641213439450478140708549658403665237755008012889509271410790634609010955094494971732247658040392611343951353463573479600810586429750438551228655225121042235357857305304291107614288030953145400934976723185316956261682080194205471199218097815815705330780490911232905327769869468267786950727828318356691040155331182078604802918742928328402943925850049904098721093542411753238331649813937427657875595535021855872670787189685987351468041736713064239229896312153616125952609602162488880819651867256545497374926938333803570659738253287987951985373123493479346865141224278988776215739395582916864507042649660013165566146440776927232871432749709953427778460655136689502531910126288563737455370702769735072166117060614681457327209940045803194630381410645816418092715396823479278587285678485397008744829317744324546769711643115785011768745474994536867264592086545886858961872186727845650467813253068249166643017331501560038047516283912757594900542769928496238078173213502159257390515946159810946169091427851512764439935545494432180179160570010183800306410262787073094008881630640335731611279910948458445380150061476247402106306129060933096138928514873325640504432467657903011873333060254000734516644546317337772299888412712198331245111801381422689600775836777036452212990970350397964636716489100481552977224962863523739162707652491121299725508948869990150815343682549424867986894171693172905759664312381609109771348205574543353160244492715553192771540414381637771571751118110141781768851142157192774566312110665290027921451233676462419438554270372760725006002854818419505970970703037856292087226829834819125981395859746759924274279454742290019753045602654228400437129645519175865500304199927924685731789982641429398335032714677441024672617639805216461093727636487297902632585170740534360736277594296952240889363220903614056964627566354256310552513639612614035501060302226858417616367760331299576550685604170775443040487941479972328704622563557030686696055395275248383124603881889320503265372496327494475027938154211684588840899273293465065303621704946741483712529354016570792085797413421724349771737040370250171807691122707172664626391767722957266094880729329720428873190623309598762095563995916270257332842893282142408275620262005852841179912103558786753420045774707692170898428509476177489007573824127912569105813130384172744744933825075024807366799237512697768849742183632737423062651892266412167576896321618495672688346934016706644077501233623602998644527835723754522582277773411037439289237284084290347910213561795022168570504353514771033099423745880353556835449163356418087852712451244977597665497341705277860711653281785027869653204561256869363591258782110408563093130651206405335715090983580843495126973530988617887068268932458904075927563725096658485412891056642850177926311874426596753383448642781417806126104279958907344426033123171202076187096349723093250129990180043264631887126142377733499507785310095656351710872703933407524251452202384078570313578433337307213763066945485675627719932356124580747688906941493675980686570031258150105325365315557044392379769833441848770476804612433851960615100827005930003614671861256798017421442531269242310888416819041413356372084297416110698047674702227752009365362842788987702475784232389262662824709027019551959790122575627227021488991559552051265171780893620320966932382161135461445773284879171439329418263505695109638531340164607424368639975428810641392352772253991012199312235065726273292912316906552163518117431894011663967347547420833308419584278890802973808095157008318806721766333088778625837708389802872168974371342173916860515327063767919349442192558379685145897588672669686145482649109611160873383680202118486151903812890271983917590797892875909330703379191821881498027160843223912298262841340361210707196966221923178675476610599645107599379310037797882253406839382660323800345376074542803672870203404960896493668838955343055699129262921853056080767137168284786509049824401161391019668496857174889222259205236315862440025567177932016628131379726236035370564202426082518212663955580424004930797124120696734502191611222396036875112138411085167160851379921748530301975271078982261826433171522803715159701409529412136965747584728800891443372433538026803066074525279209597997084608820150549233614529381894833612803098695083613621510208476896890757879735684164937905243084633868972401206212093833331006509385437679836345222788281937166982688605441041975221679035731313713116926016214732185259731346490519402140034299266632320345510939460679127550063478522232910697122012496777149553827804224602361141590317908265391996280409620894229729894976141577817286117202726254124049270574105081630760314580288497046004417658919948044829070895271982692294362502554721013643685123595682774711592381698502987562714868258572404842870110736104257234224154629685446908398395084160576835376893853624006973677884503684254071893420463930499002836004248991089180824977401761748345961241878447677553476499039550562503343268762482557255162706384883553122287374661004837550828074260224717022927738888898726067845469912106753821257439545859034580891099418773510429374986392608026643699393301014993525496864921001949546167988826242490142679032912756125392107561786620388515498407982207314595943189731544352966629515455175708955679342254237547705585459140105810930938042881412695033659202051540716410027987599710638541011450998668021061048214745527249406017038102008256947267889393603984069498801632667371626500097340542265179245282976132940424987948567091697130979760687578403182301701323158458813507863357375644283609332116595614795266654978903199638747792891210459061865545790145874824983465203966599253088284057685918638664656805360628017271422510496053415005345845936070343350051157608764783001530914280076087163008354253755489191185501956280296467784635715232791559592231841058894238401278940929599103447340933576127129242468356468681845965574750032718838009746034754620384921795600381229646171717596100672912612120209159724730711185715981472704162711946274548791016966311341801060219427673432202391068878081272971383827975353171535513936101485248952309928295644059505563908247323877038974066070395708866127661118681791249672225172790788699835148212663668664064992458976337419541516826461989500866292047405549995634358260126331145055323203448213526997970805126599267689235318711735283433883813917265078054363375276015691800738716504009484731143256744958854754018984664820762642636521986893050420542454206725637943274887191381908238564976976250008400762003911188870075707243111098198426293679624526817481533745122655358968541611690289653771034825072602808269211592684640734448233075914829138409076938137839327984405609339410108725899011905422852724451732414448029913290080379204414978787308056338372625178447332175430074630549357692000391658585199242006183515857707608845285761480620001354272234869812119710065805868792629686533169175364637555624036447566765250976654353597845403967404930779592837367397073477776095016956139528116606440292650516753922353124807858356344871249352186989645148767665696889040905181216563067165855606141072622504250521214702546019706706366117799581040748449149065235517236698771219645480017109881091564424552861490205103900325453995135538510461613159778527753771817042568039839113417085182672142174776417910106512131273846739264336570446383165074150881206325188358600731122878016101503287769808543570793282106568129619879260486724098640892275396378672559120181294147118291682012823883250873894115292717096689644578879183911794027086124426786748959429169047101273648989782732129314334653426914996148760588534889036248195850385543729943910930550816120558832267669030746376100558415802669670976186453759964989491645588988842191112251906827405240489570500326065111195416556141702899628832572832508076073630626505265944370772818076951524776781463090710464085723269385533168386149650165530466591560734372914147501125437365860642379540204550980973019745224877510683893397950722509412729262893858955802615118204953961416953149354878744856489533488813053756877908823697866283837031806825685979281779114578187278962591338386130354653484926688164756263050094781964691253343604438734630370313920953515255370105102308086480790221237521699641091334003134741509158765941531655165085987392722755675059573895649311118634177742585494958491665757048750802100198796726015731675021008985690884764038063861942100310706352147402179846454158312744767276901046077467253542695605134524049623480858637631810597213208312264012607301701046380086143220530814969056985654665428286287846982298692259905733357927046356658946913052044190065346040267841506917506936796393912261758608313154376273824515772794856796053802726879699430868141101208005988552337815541340704093266642361599401661005128701319426793797673946277162107228237009519523309955396332214939492650435453193975373159605580918549502527572692916619812234400165302944792993559393777971080270931724450322184723111160297943339462607195433503211757786778264151085139947986604563039763641935105841167842459482947019752212990465047000339732608758175628076264538450643592120111541106719101713226598681494666050123098611000809720072827680924467878685052601097944183955149761622868846646743688745613037202203617343008761146513816199786597718094508936484433310177158647339456004624705373538187197699641038008141330110799881696593566152423515524334260734305985191693963420604323348545995097566149872956006127150763429952738507245213026222453151280887387201599034945339195782708034406667865356820540488661085885530996333654855093162529587367279225558915541148356467353793579892322935385842871122754231632509479548176426640615205586794996382729463058901668269356944835522147217014842071173382131297615150677777884265054644173726971471298104325194735420569397760555489006817470373341123141929504593658350007684641440060589983393562739482011991458352954511946063716805538747080669807738285330124644137743227578880410814930634722967962420060179876442379048038769588876658220710596022277289596521396564898645902003491248677248543316020747188369100896348164345373954124028496520046404289266006516300376786527235261072545955795180046272958818641365329070122775694855659551075456858006534829346107113829335243629747612052170442194538097004407337699185877686182895364139386138054977546130842051892248955176963457311151625852661367405275251516378493252019598231862526274522416567842484039130197391143334741118983161097784567661543212871638821239281888841921868653683121457363386635858550105441726177446724148046582055424639808893578717530303467050987801270468171472089725078119258276372790239866169062718131648344182826199644071846024365781720534786000932796381875028085271820663810985414563592354345212614769348952543067669169832116162822818531994342556970514069085821719959276238514123109386690148691263262941022293298796021315968586308379026922430716110236319106765529734851868238486434334037405316955276960674887882667614240160294688877571626444537414617019496723502288946794846834288279070466699700846758850119112933607865685135820093571671078913672887893886857106747376610938889501827598762189731448612512445863114279455416889308781640657829764703877086008522017963916467548225627825862719558166926937272438249442308622919786466913747300998358276950532734916608738101765623970097517863633584615745400296034788938872447237558280183058411620638045288836881481478055863665010082726281593992470360839595900504729564430730826450833437159363283990210445475557078143054563838396183341723451542478428419249139645963214747916375314881232540671399226784867033604935636887550176795806421092586121806698801887620254157515448850709938344031298494576819833891972871375330707979483460177367637504178976997756808629846515226442110463988795783220436780395768031009350676851048680036193963480194132601613858441896767287538875589028945767912606840430256505577286099435605714710143482683362508294764470118067338555045070677765994613985683664221509474937545078393993231258567210325019249695587561569774108571104025508566720074893548356608976792108481964280263818654030148636078902297355792954459523748713039109288472329501444326887283345847705231682718128421695067208139707456031931083637641979956782197815136667247833791253635216033731242926457657578936057797287442645671659419766522065481264170311595734099961189289058738853414741001548056966156821676588166150244825346389511686296118133429594942353743228178387777672390273728493206533574221685928699294692403541258414356456357691116834712457539533255208942600036083849879016958966625978120138606110838825141590577930738562210628827513268307960836664943106511487878735363711247280920202735512479843196501300320672790229991845455755597851050335641129579165399291064147160687326424486513282627407006008413141661505562392195186516427778475608432268542593440412609163150126964443613844357407534766830190318595997030711683178614630235430242682633998087226936698874062623363388172601794138810713027717752305706051564638699156064711831198882838983527115251030969944537162365870796655007877337782557048172549211468758351409860619166056377091221904722460193450017657340531723520612781580700182817598456426010633275583994161188309281611917089790620557389404730585753735222742986178373331961572511231570528151460968496704771634916751689090263159508939958880616721873779873486139104385132382494527964680178031328455993785509625260207369352506695971354154466789863000902595480327433868805604174147719114305105354045149765253682210772045553311839379293423852797168196943900897623401792823378251517674020523848697674349121029460999311908394361522003325923079488707502589330847047839600278275936167685113174548901961843528905671316030457696864867019716468280506359089772826516511883530261551147453389743929724090882110521241152223362537910866854569572001974391051349394623914995160638179346922403507955778029338457688690069434440852205213254374731788748489235255242290503924530241365035132490269792395596136838208735548148690990110337098312461668862262149625113953395132866759313006724075406793194735235406916612135005273406901642015705033983778223613818009394036630224449573374940082660913429325286496345459845837808556169824027613632040477793902678702514215280409207487090921908939451115953966512335076243672296490005624323428085468765702622415446755439772846473679101995276273344562401419797968301456075552759963796261586023666067190497354940389499995977628251838249435764144426841268971482675787459836280103030960455269646072812878781428183592243074874277019719934211607077984196239242271993173709293096918631301090648267912388023284497810410634468689457378549578122517944058197079812175990292937492904168039239303133228703873511105625736197723235593789741115335355914140376687587981835628768636327929201389066840505087185113017736040410770024703675942401863069779688522513666145028982250947233065237080749160269129920203624273458569951032240277672197334098934364741917811391104227278015898972840253155305740721688657564387960009532564721319594370590517062233117732682875579091483158440499766490470617130676588126258511234325521213383435425471834301664545679225251853713952371704891774011574535609006683639984544498825612987672167546102033496608814023401658892440881444923652239290468457215742273579077196502843982464933237386087936306567535593221894106258081048443293718315660221614496682961551371099359987669068824492378742935210587530433109772848141712333182838886817118841624430862008990484770981457706134674689041893525216747149077465792782929755869449504702058477785306255289702076660154188022623632896773451239029998767368110658013511430038903754265867286884842668100620947572481340234413190206819892945062249989619030626182033194913734671234640181322726209201913993725313475542891706718620783617944825811456316107854134864512686127246961711583609402800659760422987026390314451491204297866173691341415214976935281089751925319160874057955335482199215148568631627211445747006894477706395858083189272901757765748002793053512538880201767004478727110822136156220695893685884979598292647058169446896923202595584374855165604361049941050265888425782083740595970304403980362128560251500422175411699242333196898704149018143930223156259163544238196276165529181756270576378403103385757589424609677204015328707329778511768477612832845800133338078383339816841137500278870640566386417801866786271360690942380681933509574872492253151029267279218722675779377397918801222885298661368448284474115028843163442343336326712664220316248800577410569004169852263120827705539670424025512343098037009650256372854113841577904785986051080383794102520535679044769201242763601684290178257767195714206460890559127242018824301159940148417137882484468722260148393549611756166971880355889768438774160835911713152779131445218546434618084653868435641014604920280200804710523030440378844133165332183081765701226472604366252753010551918672658844613041851072075066255265926868622337790682785085358253575288339590275073301022709765078117390304728300270178707814847749454563625779279507697211464822144891121957160400545640353966152430353413012185641684601953771928085071400506597133388746784776299112329129737643377628498451946359737046709549477839996746722009909027945491269115633391581119899064358899841432447230249908413749278700221906439829721665970166832317976598464850979453769759414145202936132567455817780362158998506674319517580829228052635372060011245739723730682254311501877397410919986494904437723592429367901559248277304621642592940532007920528508039405355631274958324748682853441119648801950554803814047710282153831799790989356405061825908029624528816307530703344830721462293983499595963304457995127144469435819276539055121495964047536941834669617936332662256122824609667503238864306303221061380062767552873615133444178211657853839658316209923476575751513228501466427400558031177300145645879650401333273190692881207544761941552639738850412595661274857503168642398386094999298918365399372359225832977049049937810334124342689500146694167061602979842439302455105667319797062630665358501477915757678000104910231024125813168831909586955479146860587979384039809858064111419564363401245995227070867497983372066785218102449684036026205021519669289928310038656464698984712680915640412678894135771221265358872474142875926618974127665342978106374775335047147778858609892573811528510635814706177074631262695612015006838834621824727743906306786367745403880406365259164317758029787404772071966627339924446178695958944523649532744951901771926672856567237403468473564550049296273771871796039992431854868994998689967664741936259747436942702537593749981530443293524485745597045524435804120078926019287133381635657021696430775876009045683602498749720367631640785776460543536945274807870606827710473290640198983191425607389293937542714572557193335043177043764888584019939024572428644367279006705521222388882649577902753352372237965681948134449997338939371721026568009635862650919371719980918416586075914364628421044544182526590927462837025858736237412598070010210171430203489380800385226754730697834152238274546379622259768892384123153224260000606861312355317854647264981737504944574774917770027559928997077772065655726135178191115041571392917165369193135624361323267454690111881916325167444694429442435603859306037467152043892525445203584848454888239955243769568996336528713634908212902517590394876565976645625213107793352834972917393719729161419732826945948491112584824115646040561987778246698988066637605570889716643803693725500782463800257749253716679436788200230055823742207881233056105978200299709903360690647134963404188216565804718202711301090502858987992673365912596486025540570634917950168112598950419531521155802753600460253241421479445896727270494431482607039244522470821072859442151252971500462730301541517425756063047742770450721308502052913642409033701648941090853390133421331798435029259309361044599519609867527348200686919223969168830463606160649345073040782934043880297553039670347508909099178064948830992172747473008222658255873465337720594118079702109226813381954560337892317886368011302370275009766365032075644261967164799936640000173638216320644516781397738644330300734973996257727207098934741904378283870163033315409965503938143926126502252606964936338239701741515388143821011185438028870917197881584975916557963459972144320119266241338843644140479090791690263524590360540999062729033250000922877204533348311098521788706016707340666984337871651344086485329736144706469540250733294707869474767202101393673629239113741248120565323242371884232852873995306066447689317938890423441008534748439786252529950370550349445733516037487136601030060350145461802026782386272740472808123035165996434950226300953988537822174106983216717551626420843119923828127565723631070813213312209028630870916496875899582196277456503856620783502655741718179509741069243448534838666174004280762863830700647293579843842426556812413292672862738525729500863045311790006975655559664499603928521808176051633172467855780157195562625286823038417328778206920090961990005708497810665780391067052212630510913667458790977508017743823170498616515281943448071148641959980260151336500258794115562982568858224595926170909822687543111902884942740419091103393767665529969553745417009630315649581301089951179080383367035475446116088039534929839367377370182047116803884427992621407643663513515267084371613688955081088707658111192353286577802467211429178823523893289702034021525548417755034060740271050717165789462468282324410702837479368405847654356545143965600470844162142953659728547976082240945192047334988641760983876427304508618799830364022811111282523917322460671383763174561262147443426354876631046541991636416974456940970362602927642218488417146619598594591888508500886814098329672118370626522484353483107509357791386641774650312275768822977409976127154246400143159974494701334063910658475477376067416833898166312717457709911199019447843793237650845982301918524501165387661091741596152468224125878857220971232266440933612305867633817493095021622183499878715733346497689805370085303539739390818154807241513303467445462518136692387240253203033654883036809736458167098234810989060788456478911826978080664305339403953842277433171706484661265181110536713033343630309782451741014841072171256539650889381963480853955010955448071402570783620457897822750194859489014930325421844913832198330774984192167641347433566262283291695972744284799020733495721612805935830387520064324400940891624380084093176556372395102616054881881154585057080543313343076400035483313487690108116987097229781502295957634846012367347442273695806860085826586911318734320438393704149631171240196047253306289822954056885224275179933786768739658925707472596403603067187025528144808617964269614853513448557273135148353884349983336426320932246369854632983852766649336393845349383046053858897236286039511804905972706663150226615747275680184791767993286055009353806442095211641381340638570573698583034820458347988084477297007691730400156942917274091347136800424732423209071465951150288161852405605603217105438566383819500175411488767078757121015936085157180293345557503080955612068504015933628935744950929808330351691691439853124835428924282749492371090297337969735621550655805677153444546098403100117283936594958474146611257557860825994444606876698737119065438013175637290251080378600655378438285088833307230047717810788112015409717084064680738037682964325629821208282692815313084349846028047023363471719164550883347856792213231086859324470856415643588453559118577572954805130788976389418690429975825159970572608818140914894544576086628629477053431510322257694142415185241709436144171014141710986171474862667065260104861416571664590187163191373969458099603829037080131875907671496115772278834145836634584108250395676218247905437448251622453280215299642480270627732243959082540460158692163822512171949186367793161240141410718988209870484507451380278646067669828829314526644762537838231174012492250458259391360727723206562384258255254231748437748668243197112025972876661189062682577277075381100336920705149404756423265750131055387489879821923536866043199688950440545629037039855327545534660065345572150349297696660000597029070521739526922697523518661779760743452296638768841762804912233226571737896390915545454378109049229673600939903962808496398427619877414231788617678435279980202822689017517464506981022943878156983260492261596215013308935690431352875656513003876314273301022345838599563279513523017580804079712470380739097667414081353627575684990775930636828509610762081872809691861801607359770366187226052830205195112180077614222765858103797950091175208549646543354568481568837425555564543436402737011240987462082702635452908300012121915491039866342303771141065980780637381763562762468261681159700552485487951839995330315376937115551579119276817483902719774280287538732049338139136878157300249487127928606817399556635001542222010751003430223269487080641851535146227917206218131513451271985123067183011739627570540446790007671033136129127638917229169095014757040436528893882092455479792155912034570381948944249372828143143964187374100388804903271847676632160211887378534745492585071886415244538016501357393784099445765686882078540633196174923486404270173822683104429458891093460261058596019699224256104861972996249041740451560195720710610821846766560231303498579647763197928394150476641833389382504239275043197970943603511166647680654618817958487174505532751492060931667350643536821294048201193115460667916292182725844636305340342849067668948131508374718162138589704827727812167627047224608732758797467276144695497104553592256206406448464680592029809185798621410478572717029416468067864525815442896874333455161201413726431113380612162006846048741123655776863202631051053297546306463981413375661573575625026748176457258929419921088494459906737418039412072092814117592857978711764000051261673088235225755945392493436392623374675035979045412302483960581314085011092131296640899206186304875544194167760127884726668041068722143800239628572740429675881202434154523851515553131642668084715045495626466406016089169255170563767761239329184140300409880687635851259011171701235791656800468769401632437211614625018373251380023112772452306043396941377390828044646775704205931010856192207796313015358060797581620367286745412322592948819524925508273898178858955303141884148479455065067034137249681860820766197748155193345964452842869310387633043138047473777788760217707445279089830649941468257250792403342672924751557828932374172387437046766362068235322432147388961915053896406771899909722883803461272460630989442614883641512641705023593537881602250559796543825528891414972598739392486971034393306836816238291185821479096641174705682096547506207322249792835938465998346132899175632289611473078285575732866159261648705957953381380501034810715748211252540315225356096128862443914819984481106271224865774533083810871885746957002688507853855630337316403101568921491643143052945613946872485403570333862328454153298254338664455747400759299038537407024181582584543603668781241635619128865648932788357297918565388330898406450890961105434243645093987951317578067396829834898130445081809826458303256790238212696402784636749307296836139560647381602876633676712979128307496281289478087357562069503724288204717233147656833095703983214742233068763020192476297347411669368227042293575134571627459615594373127035893032799320279769015347977786813654772841598473787174784306028553232959709391056710959693996034635504471435320233569686738194136456165682435067745088094100079971891283097545072373505007230343820361109157823546008836291030069059186587363898520165730842669944629168109167859903085484838301814292749073533063869446111432882032779114571094102799772967328445267385580868372946252902442260392943796021852839775674701687677996365517701614820130827859116251418654556486369906182491618815359094815113409204906990300051727174993698302317528370943176778003392733403569360227245799966956769477704154674801449450842214357316644285772722256999191294324236637327097449685777269579811637406199863917928981288151942564929279909320512480551308249275870055358507399801199111757079660948781997268875298971710161212029374746251061584545819492926114272930780941875097925232008601697584296443255723796346041549012276025247989832067926195452436847343536892160591582472842366632759936187184585119345843642694026431049620448890091745124441393603534849342053823260533854132745344204538062188456497503353684535914252821323800910097429697348131282607883691258830879874654319239777268549822569340247787161461819919206583836376260399802020719335485811708911939614595968312097897760121652198011731765602780865293187537340919776264817483501913499909185815444258093309420730172864988939034180662035844753662893910291389494669898694191448332357403853671137510259359070675068198710007434001056817329848372658981654761695796395466881861819670284978961981669433939791510792619118737691974721337712995532312061776258947350134255748436121929911089418297743389024886657735426594683761867608483281780876512815572863478280861210278347648603086103142212626130070910127994962502950854469429880943994525782210658181884349110191649890203155870822895221226809500094382487058502272379135216215467067509692391296530204391765012477723746161634573639257394050751887766572677736729427048272959373635741568092507214759439398174816064926142140253045898555561269246128776141428066414038831749182180231953170571559618387500266543007120778152996120295157396103512635815596172108319376937996044982564605301511253313528018897280158993582876659175375830368684774877646432272373159573889387431069716371258805568590066854745892002421113329356578563396287017069809815891813994219468676699985019704016911135018061281474710238155038956210673995609405191055075195112379518834702758577899324324079715677878869714140375376847021090303369557688058133986422781397385987232832575619224655587784916929960829314562064842576638924062954617715299330018364590138001495847796513734139270285813195356756882435026680045891334262770353560060778367940253924518606207827177661418057901801725546862109849901896197327611305891280427500729657223632560678979015062060473388757196334067514596262365024009936534946829015175239343534384447610780557396363887881965557330043421905784554285640823691245479720060154556846189396411041262015711825098822882070939518612011863863272100264068694080227817241833524263498182704979800812036976635388655264697484611129615772649194591589405150568744556156000334684556560801775377009883851595826459612141704495499293494229370413916515163232217622415396664121556680482025272392674420496126534262892372062465015368729671433826394306732039244531325527384158596075662735816490554937638371161005893701894893107928717806671413288915261123574983650957874825926857176743253543067251856499555101040724621386506912807167622046214450539979117301766320376674908811429953879769141222302419266731051382869635712632377842237676702273777751949855001319915100373216049107412664042858655993469455381708365170270770185107273956731816755284925282616466929064377752009278121788108550618110194261675242641615939327521788999024814988157869872972644954250942868719770636797563579789466131738961837150426501138154876731095398716199564562387524724201009358910063863697895060680828889181467522926810082076739796153461154795022575836089794278950838549913152799283376116407790939438532973522527761793659827620409339164533283936689846594868084033598559004760995859660265180751360393492394357937230324584061624376427440936901013720259129451660069818640933931904142329904144579266748966238752153220593483212890545259567963420652510530576846346458853670921219131656801994493005494625306451852757946289177661526406208213469373951494535363310699647102868473399789138983210369745903204327164057668245885740423441369365563694735214625453521079782813961874366345405030359232188213920221732726926495393593791601200352582200143872648515463534147353747686560027528357045178245522734465828586202627559795416219257481080398179355251671362723636332892097837974529671050290562547149842313502823143800841686797725687847692321554810513540393276316399429347958617633746644416443507533629086027546475135089384204846519714913499225768563550869655381814504067848599484303775150835030836304163150951126282903362618459729825416739258779014170427901895675607630939797002656000994279216603385144126507487840122037453477109188650656723286585120132338709724579845039582243727836598747222730002107476779684732217655768009035660902549194154978085229891614242085162514903672617071651092127038827108220784220630626088392069382202610133482161921325143170600655662591477701444702864544845194891109118146097086697771794807845622699147459352319533987355063266103128146619640482467830316955589761278396102166265742977663218106315008988430368155394448603812059037169487420303668045805026326742745141762816698271788710046508338995626344264436001153614965670339964165584022695592102096861205103083471215194360087375333189493383440924637240566813734232036187960328323353589640338129809319945886382593706519294216118889050509616148872217076164926906351106988899954153280801022013667953312051696072542787309962615808645278330984957514910875912977771642430891696840324767617023226304536072357333792646381470994878390288764979020456856456774294962725456063970745296739756185672080158886161273946054357303440029043160481630360168318901331733391406375642927264675806851230799291680057176256904601504692171640216588420049073188575234171801163972811132749096426608450844356935217659203842214266185326446382827976492022109334620958227852146198776104221310168869827508687112757686112204996287515761445193271640036553035641548341641647709593716728103396909176003987439831320420491163292227705059112847962773071442024185667676583086135433382015213598241071111423131005310258042989103639713496134398666272466830539531629831370121627475177236744126959033453472560749848034954440638569649333046162664568345337413244755628437120790519519176984925543236605461002332257344783621086906048332038170399455810874424844331394169554253573922193910651138723920018464761349903245648197242636296350813854712393172172169693179754400169672518970976345474423330905005536543580556353871513422523908297081783233995768182210497018657487276621219314235902666264070852166841734826334240688095832337295109783738829483620199136578147439399558878219402033821542862540258758042463719213990835108776072082151476636267569716580935742473858670397205566798459185157526370065826742218958516341205526465724049172279981471903485778335326329870871950479359244238759659254543323470397585209946910346819558821256513748717197765194016380925699844093088035434817941077219259174809972476180779601366707372711155481423011209805349393716237894764294693100172238360465281057283450488369868312196775541910088780084999488564417078173486009055691589899381808028120504998607031358661133306819227901130309132302971296241506807396742230916798655047825802872759185911929222606781144566921495380847910719621916442019274090726273395725034974809147845270359628273484041233331821592293912858772161891623378365024460353584310012350999945193827063624411226697708496214765107784887623011590452875413838291232079301582360484159101321427966886511644129081445020335708084310602716724296181800121214624692184795573764288775825409566778831230638163781119106421584957960424066572070848784131373458800371366358198545100961152913843993361325538928032176269612766432737644242853033526778742817991813606755463443190579833559944424586567893109795782626132106955848532038275844181241301976323128909539350108704285021690844961382813173284234004301603040828778278762854588757279641996102732169285687494497062305391590132832768634615734388653425272255335005653700714007085352149413317180547994798872618230152174519144701496240422720593670134794087395208312171310462750047787868877721006809065612012605310172727185792492113965642726306491994686467930927333344672757758596679328015101946499859301315561294637107650880694686159824318616678512800369172267159516956841347656493199570777196635881112938227576269569434155452360109375293800866988691475553630553408934812507037042125704159891334802056867072340482826546372070920835143981153043347882247946074896550645373550925619290270658715711208407160718392443977939537927259882468209296100495844415836631467040510634167814380101787840906856096470003447381031286272997762773815859022633614177956315770187350432451358756571621518420886120991654093303565981432846909485307337248653655569637777291784049402269422186995826957382764491059795230926759839986240455609029545066636402669008825304783163406823867546648796449320774104821268927189053979859341719111419062507331553683099987675934132733355390736313320599172130884608889902372526186287256938261566364070045281758886218640689685122879075018161388071244733568798726055757660614674752250683601486223121573575468061978102525854423983681915096456621713172970473027269479296253732658663502623440469477139570302890556686958956876225283575962279618386295784128792414613193098929546986859169601460513503029821458294107048179305230791769772633718180938310679213196240272826542710863665869607862718702548534325660602330361643928855509251378103610995546195445937153027649864027960696941703528532279680202484817811377807300375859304777255006389202408135022595284445136406753783924510700323407785047534856874911727029418085901909897165248893719182386233958034282242291510381310432120667029923715142798585825510965865618463366642641685754340147579198294136525622813166718775368845419596638251171028615359716070360956904580645806745204420410033445931664739190398099498483139096837634436276584089885147025730187307478571062620255285419537665664111997524325091913178292832557566284252031934970760990206743132754429922413658362925864132595278837856506936170878262702621004733664733307532702849709782628804294257674399516850585543072282978719553240248509614430442585617080415851643304991642504905194167486511077723835262717424147886134675150786088824905556775681760507451231832395641427487218652339092504491019727233231137557652715950633104966743155966099205397086849339468694687757693017093699671901284749395185975195438480130779042943557321254452222917310331524400324830381086614297465273533958531588704424895707480271864329300305216724585277526134197798007260199640009931353501543286861735859545572004759030179255869958567559382245024976245235318353979647444846042042457215747267311955378612523257340329608251488220213765022578267648903738430168196186685210511308308248527736238319942330296409908597090877269830526254808473916076935340114745009586719241676374440978076661661918863289673345061817894767121973860160180859410376565729806154652458346475115389456263997252768722129724376507117459140679054956872178443417135431588458184726583562852618015952796452449378577002538872518346786832346717121548487702352401264409818849741742509459057661183495596226689448343867801829526023565366469721795839802954795194275756619938493433028333024257272594559930986222652507157642327778972579508921912613032487200428377386848117456432788612013762133809818253310681009634712085494927574364373162538992096152241983662873499089225341608240288592636896115242392550373414678826658296068742839426647945884175047475029763334025646895751866412313553643336354606645122992181694784038863622947176960642624212281908884916761462703831448889278558816859903524004640971895465274132948965315098976521194784316778534652232381509910054400937601927317675685688119807233703435943565447384906637899574247012834043872505593552314879759620661834178532860459588923610371436594369144390442244913940985640908836745936658803341382474092845625927877134198596791822762341832000120359929021838659393377411147241288876218379652093621571920013018649051863427658354932667446771998697365728254301921209091253907858819727314391167247245804436286491572338263567621363418392437772772959189205260812388151946148503897144862595263533493696774785568431774905786196770260348892311616556380448783792946468468996051989779811627593764445968054881140188882412107607429640836185156838960101612375662482476156595137431279991445046013186592780233878142517681217306678405088214601331075916931715261303752368627702606697996079391778281493608605427402398326746802560434810821996750042124815468669496292654713172493359216475784313455893380764276630485724450631554443221857417377426309354108703813196345881485558844979624543213967204380392220751202512191323308228226370446205996652246372429294169374364512267933569567882345363248760628899527593220243591949971552317701869901719226518115321332320135689562616474833122803221795220656844492346961466861322247105167365224701013649025201462339231406578386466062433217636629477950275376036322313153594075013591644996780108530874669615074462073840103581810567244145605809771615430881133101572355528546653396661722965852108266566150161266437409710132954150084524937132345652540959955181910731828139612208146524476820198651213501557160635109483909838200676898642162530802911894391530576002626249622287629252625555671352589689799172001106235885774114546970842968517401932375550895989666075376438848710185395666440513505298692614539646468973531180179797983593772692009322034910429126545676659801232609743090285112115318039068868603680824961819389494616877277793146881543603933744313357621180290465808341479044460167067076844688753814735654702820010024257032038616021663184627609588831682291576784585609387629905962583046130601202969889942364276049986691658959240885718755563168630614687593358593384113640103415273615917984320256914642369890257893062197702605730067472011424223024449312320125687807197840595834655994400985842887429065363688331083961339434369118197148832828376983012112125147241115940985472472075216802714535657501208057245722229355779705072524434956237330749637462089428122213589681544421748653930289893847689301648398713528973622182691797577332903627491439196877788449289034549579778871163691293381023424492035053910473309377366624448843212819978663129171073939433185792343171358113781372192605073610584587238939420312804178827027700543899644634357107341852784420554982010572206023341721439231266953342596437589643514437973109295656202477664487070461838905951147624802165381371884628266322912359676231186469069504655747155316320851406856294703356350251667037073118257888591380269722081482515081903262381547030232859866141909745173676007452525290022578816087350593461399079519827319741772306905983637762016685676726641800728772490689439720911817410950498066308170695345183510768705827913874999648812522580246590381965419033938565284576004117037959343506970190747939664222447669928242221989379268322377605844579902944492651456937954859584907631700163820772326904291659113701499863004030866709029041434095880287835059777217007442740638276819200656088332544685805404061640438785573105887528238961035141049696646458333784739930227647705738807668870821931297469780469207471259140547838693144683551430199680854493696419758435720855457045585102477672095210947069665251432705019629850651665011776464440127953113625032829522447410525221246970259674890691421616020271026193480441503520552948070573673227092185075213063057168131829139490928583436985932698367175613913036565994778220926117415455567776617116903744878136543794534136017494521344429410156541574979995450753132654433477225861656433863723149077976783198624394235446261321654317434691785216485219586062147656554301937375277515985448071993006777239957639624692413286404302625386523884838422837321987782489218637066296881577315475973018242980741558183363459894704865200686584537005414519205547985621239361349452567859631552222770737191186529483221047983546473846272305349663451782174919519611617837113114588147171956593842772277488817973325717780678090016989490525648940638744910185864339222486515684616802413583496515392766967791731161693949137389863925137241219017982020343097758060935977659993728614261912368538509616289157249688164668639252895824492481389687570869290239122181743649211650630652333008108691257758356129997072166569450318641888321213220680555793916605368754210989508837562929749148367519347672390174330337763695302114929545147722283184540471081152377082511395634141804854566824803959273691524959808006323949017750333691255861204206094439356152829203115350761347827699215317404388375028623769324198310176065176498267879185973153087114431343188953776906488762070092978891339844684031995021457757218345644518213553350549861293719929552080273982098830093780668403739077180907742354530333526270566444972672383994599001593803627083196984143369448653972973263772549188907397341442449843612609186903008809702980016745973263853572322908988684753415504696011046129346608977852440469346714523276593013863280305154305547789381420275715850573768399686774224177399398146665191325507184426311462929342707094270993917725122252992836301947867256413131567157121029177926585752484682300458513515128393817102864523799068188892497416687219194940876458064165873811168795326331015313783585196938039172316670431502216952493937234646136546154802066755494198551163488237590398486069420930038590775289056000214103005422189556455251488630053101187931808579935531929822853344823557828193044506858492863242163890174391335304569355052910789501927600489785895625440817035322764217716054856454293927156434955091109262598897751309368265659372038243823696211381676617470304053183991543735266224601743850014735451810851880991793660226527127422688999441580299736111516214106920182469143915552616209749159993465245188652703302044794699801055314027246428248037534431803418818050414084899475026428198862870576678881249810186901929000191956869361847811103656353354864012081042469783895350532367726021586316091501015381613292752445023420896824143311459664998464229352175100251683922841203111442212862325575708336207358805241791087891166014632293711651957951027410952699139110869951138256147238520027148699246820974804667690867697001091479333664940308911896622297262056319851623582042545769453431555843898331373444538438565417526748205690714111031530363593845707093729993712245262266499938099821439967461226068482754823621315350777543635740332248226413968218541803638054068719900298911970060978979757492108685485788802632097690531278273301534504919011754946015035494040421891104030251685954294631420093617409251000671999176101586825035322759795041558761312764553352111158497203786351015929329424761761028490290566815276923448651387629286270893400230297640836000870621302491542561037148740644713090847900305591752303112563447341802992019501132498633861336517579225448762591001895862136504891253643575807318743100307926525600043959831225659997717960994355241239291720131087551306795027524072284707262630041729378099276688272817305196380089737456972832237232613422032807041712514544764987736052876764504805138023005500615173404873557261132246325221684388659081010809947847708463466602097341152137593245187530008798426103445321715759799784145081794269986534204061642406800540329949589571594164350535435622627106379198024244560831855200215715517447834713184307274443227674275810634810272958249111239531844901761824162194327816994111935869197061623539024647810929903902091901595964742295628032575261118748690879550717429037941724888055667385477022016901043100071398337200422754380061283638544890946415631334144883052007932475743375267672904574873944846634235145160032169035384868747323727357152493380477129901047423760527183359282684206235244680728014296661700479577561038320384988445052770282049092865471336921025944348735985633680305851228375296602475137029184300847620929072011705811035649555394278639177897457557343627171069973086517012643134062018117536186445901069496280495527850915096189257156832368417744168367508794960685625284092644079024892883459104301181825388707413628224022357892404983125600978106375426663076131909039675885270928922711832328722881801441013458759104686142271698028028184986149395698806536006203043849217947775713969087310466603406552220217620724079408448419011186708991623880984772259400011466594683508399797008074486966464306733570753014510950580139983939451921886486065508390260078393310741585472393167470303261245090675518811195385710143858936360491685175424880943464379965612933245942315894947940608181116792281395673491045408359390892704033535132401003019134970505141658902655719814521879849600241227901729925862658371052319812533598074855470098758924008400924151769173627217745572996418945190403520742663978055897434456563269025097936481858313523262312538188823624110444228137753922491908889260602544398622500346470444062714324700623063204233038327977761362157798279277876819493602190918552711303943866412746058675520654844262704043080610947254988195937457693024790489906848324046984178034527592861066199522768344484182172435310975489293973635649943928376048461421872019583156067702328127772043945073412078203920667914729341588989021423462220664930259038105107207412921771345896201806880621137708638316264648992717281170111699128840713870947659365778786467761199465026587314900178726752851596084500849647181522249177956598855373110092007330942241222998223746925711552064796097891967406622218808503367151839373166133779180018329637492210611827056279377942456141692928354555892989535674457581104727556245031988648332834102974744641004477903932160669299346890897086322941758869429379960451332505389399453490335844921177702571231460162912377656939429443680014540127715983299346740867793381081370928131230424088481423808598932437946119410594157059958147863991552683810754749402201072993730525980384342073918197619557216372044477897899793076523343600063775907319167384175977208073656231527179596944722660383749154729132289029379974525835568573890174025680310505638595176146184928703910722940417016111930122514635491023754158796375302438014183366711978606975522682418969648796965552619372569609152116580608569631137788691963397953646012675387556089268945440072809807012659520753452371194202701252162833967393153215598360019562697623958470749028336012412064065288941271302851111131283660709120718210228033372101477412405964431659646067448955754237065943542288269472432431495411320441863498515350383634888247290873927155782397598566870628869089308742806262875616000982629771172170706853619548186755525256373199805839522469859337384188557496314949747983134469650477586609978849621110256858459438181667167931284297639342098828206715578847263957798720290576799485336106392509583660228005333377351973617194519738367688405601027504426093903825018646620917895695467374587434355547838460809426677038614957121010076322334793487832766998751485511572092667978537050948699030088090818371235529247392417769900190565766747131737379143609164133030626322516721223918417539729113350193394204524520506280764588474639025273290900753838815054638961272689702607490237968029684907888201740500149056933114472370609535845440040520422096013327484107929824750913683012905765979155015859107027368333822899086837797599374605377725033503126578040444440690342077708801498279643839929420135717365099115538124588695670316600011306899141959975785148935373015023346006103684443993203656825129479200839499643133356216898542966164703335343628141122114732917219243513588361277655081089825778255781150458691828248498955606981788455280153586512495609590865136977315008936859479403569716313796054311478003586776946429127677069990175488884701050666209073740181981544256462705567976510844206420769036865306602527983446197860378703599366629080399443459174325309490669114967074018115854231658913855722528539513543717802528625397242626926055837571726873252604049954202217086574107422817065134181374619565715513447943202547438754143332867683288261143346484199747126108958009317216716074534616654428347076192679407726292313220981473174620725498820485988180901470536860515209534143008121268089593544625159754003538788090849343040431303860064521012953679983366551101806703959746652587930993595692817834317199569825413210425530820736607816434520255561115009019585197532595434601119010740258012894743983698899591511779581229152337446855239949564839096375865443132529881272345953082131598852410796100957627946480007874728703640217026667131997170169305037066486135743908599378659501007334531273442375906501821166859148135472849060299943510078271971802808568305930041304818885689136012539751895097918514747498033218700375214650196898207663333519611925589817097502518492514513548072857085502561263099769008898471233528497438834118256599753790364623065869889773096106505513724989316946457882154318183368793767937526033044645649940131168419322399578333961943735230163883693414580204281854686934309324784248503304140663725876288585424987163285710553153293477835723719701199422102718947599332762661672372211661954413579868202740919172405671203852862837911964264838770527319830097948671392496667632041431616935506815928536883709737874334927083641950426634597989722276639590145238550512327461416688529749469972468304850269697807104814946490921685634451031731063715064568555774244886682005172616785528409574839304600673197110980733811658788557564184947455515094396485374322188045171835314040992045787243234551421574020783169786985472439281652414760881672302134203163723070873993479475382499609391976850899395677476054760380413721178833052707192203328515477179146930549397938445518267272986835968854756118718794761583856797062517035436903501253418684158519579503208902938063552105381633384883352049228896312735193136434626028885680917250440995606871858662282977605039193713736047346642972655947809415879572648034272172802739219337825376473239109403735972755778626039745154824310423387693394578900831478988919574885858948554346898669484338751666300524805011188259246869441925311396291656749429886229054886247366869018861052641314029271252407875247549499647596195334384173324745312423352762168957193819204117230911305134087808915383461537447266834125643481893721720900133274514477134262654309162717220902899808704913711008156848456652546796424735596433553050741664868073995730892624551080158531722675646947528315693938499888461810438651131305040138940169733102033501953235790917841116311619944571085661483323131168323992339796408575386385712186800082043497923204382856347520338616272019858680519886176883719587998825924916586031647607026345458927352284118271562592565331765507560968527670403966046310513467304006626815449653833930612847495607455685802433092736817668767837419404424637561198094518602776167897105955062624038706798318084825914593925232489614452082972778411644112902659483791598603556178804917708502871371974597845811573874491125280830399122450129348727551058835761560889186053677687715454702104129924152164014210944692832613082022177288526861308266844072504512077408390809989673825821869494563334674713762369931597143091490122982153875323038443234002289374615910043627791743130250218241367316479936980078882148805483240764442442189849656496949180215783425074247445827744606771895814053843733341573490947911780692820652210351987666996217649748061412711550133239769510869858732683168021491808472603574604821115645307561168248693291163601808021631104289389486842843532857568319479381739528442851618954086273404113451967010484524939871364059120543352747065074833251558184713280353104358212567984661446517679988238523576871392270330505702446446957141871770734979727739758664080648716899665729939932204781038763900437262999314976565068938398910110175481441460378481905236818147820813624630133467529976482506606063202381534587934475430969447927646612466082917794866237507921679696554317635356074523193952262928131088981090972700978211922482230268398870475823345813139344346901973197515420084669269510057144701795494131291194032276710141868895049514989024439635732384487187027315558465271491096254628602776684501968417523248711116863859440441073107081546391656779351029127823445848176750594673831074787442084532786450772115450966285721914540688527578334502496885935706476685040772906793372825997117463753172159577162737921841244400834872066860848539870063907639060900488702287407794200752318140793000925738930948186361278816582625947973810070036876497011008327631710908464041355820533725440781381166584945467321215426816886227507572357809150693513274144979277337480540771275152947101259414107230809245019815134954038956446305964481712766801403927270919034973686511804633179374680975594533727200520038933364804211341052719309153082293958600456983472798131331227559383851215123711053704049256310941694713880942481174341334190431439563978195256968277265920413619278491610509753256572169836641278613752216029858098135206400303210326738213632143611283309656301475765119837128861153395038747028588757889938041116193780759533020573620878203762371907102569737032397949811616798682469154441955363023726540171273177195953834902648332326503800416978859973565510885181583521148694165350573698474094766156745152074711732209281035420490595448269385190391836153943588592104361317410651874805575802927307170815735527345489250726342798453227500240974106733921423920444878649713773181381192756339428902613265843167200024500357763839995617492479621568520869589655182484906369722112091636576178958365581448332434495155880435422379631913278304042339483553800523358402895478850634711438629776157719002892207060231825145345544849738239510300123137233082080357803190116501355813574493765109199876438369064933125625070608924879988216281418869060640768916610268243210058832593279340772880006242087590541233594872281723497638381958666456810965153750661542145183718249811002972823380125055822094790884831248073209752747790803826592659666649786978769494414394720120739633657088538135312998421976816194831686179835407445289587101816101197929152357588994122967713718827083539633540148308987104145177268699776537229647208730572813303652238239308815630605768952183328027982333067663732766388307035735501491957469369740059067181071642319518450276139859376903049970654823683925116773449689808857179370170693103458843076275666377013233875716954764001264939548242499585111479350850434087172520979764716975513266385183893945483250117531107666317692870246571548499196014787261050833114526285110457292929697491458749145392310063074523675728255005761303417614118545567493382650699746848593311747238649482867405230155742428296551007397149252644050541946206070529636189722406907078620486061476291480949461877414739500942884772817883765214132992843856588888843353393149939133028405795408719123409129104724462833723546369899437734070908428321125643172610948825927826748407433476193656432262967933563956069964618177973951270885710308604523324407726736324278579043372211884500231788712769948710807563002802650666327753874215327658973995252730856208977912745523196891546620252534217214009690477953941316726131190578508688348415587479551717577763310228668459240750490699461289662348996228761186480189264677204696432953217850080499656933912893735331808255076827826638967281097965815382018373516796578048471113868882689203893776781987497126499344382433349621440067954847726797514516315952537143072939351640940033046125968894342610310650540477027967897291380432831666399335280402555709191333675037948879432719675553898344169963421363741299964712711094846256537738873920339324228773721760267168415538608277173201405753093056769102664336486239385393210155703369337605524398340575707914349206057764984887281330546914598994667199650093270711492241338669779770847950751055615355765498125377172447896639691212883962000442981969075532213248555274871811894577675188818042753092365856551591729825609467624501622548290354062603901754316918000448591484636268294923887220892930041740642101691015558241786360175253461017768779403126340509169519606282647671893729486965884365531280761192406763193391463593356477396897609142854526326415316667178035840065679614794320838491024125577603386598395041770886363348151406526229523503162124787512012207372627276039462633112287536993258119068396791874760712575327592370333536343734329999209087202888771115199729845647506737007135948223448797842939365498002089138320218502388744720224655805705418029386741168950529598198991698228251364914204355427770864276835346653361031123321488174740305579869298323481218923343005830427671345025812529492237083699627035125927976385257392630122606591335278056899742034280973026137037621747132751596865945208892509377009527524795712823526854015397123949164754600272806369160330318523378398975405412842128340354533651224934689021701972093388391209271220741635438199659206630862890348473894976927378137928646133521836561182951418251381116313919187348716191593688462877893718809432637021341922512414958985002077892762137441593107636942306700021059088364243673290703429036780389736968018573462355826359170062086909542443642571517993718830900998137897251723418232337195124044555326905952951534893142482240399425856162883975115754241243788409194590348494623605361827494787629610443090628301480944376811926601870663503871122033898783117273722358052362495396756678396829215262471098360170185850475797048891569411480437740505338686325956426465367644966825261484696467883311964082162148596162515417479112326206491823099341191979965881928765706257689765105150391325335978501034031340469863665665101997430068552478239868314415351048663917062555023662607788819038511482786686557407989943572880040462211244395987921404559895172567607485461495675414352293450237908785810744593167013125169784034552203859635441419421706393554830882047877131889557414308086584025529175431456209730758086005541644842808662470335702730236962260707102443085637588169349403136590062953015906898006104544803280193746190820454089652916557854579663951131798252544367427741743577917478077799513409319385150850761697016326273824651525946594533428889670271192810621937705690873260645505483109111768302562968737042229704954441280621540850211327935262843716007785595644503412560155361794066333559543720515992888244417621587245138593799487563518331335143550726220957091092806482419975262433187576127562585297616503378165824170889200727975832888533857983299833813820655015738123504302644777333019478650390010949727286594200599564906896764975608085682251780628980059945814612840239129039297039707788199092195990251842455021144241854745761427278156493781323319864583127369311065380249076284619579719665508341480119417689026209269361498499520632734156429961033091366217684766252551012694855941688622538485444568086728940702040215856871161590911995471014142121991149400321237940945778532413334702813388484294621416531186025012237308217941768638199486007488465678508778905137920546095791018199326199430125023244479911720735770431062787422567694703527239436128772371272285943266837900025862827860490957713187110380503309707227137504657894474235359979759353172951872973810869989879257058415720535878159903378309092390613106819204582837088429431424597987594602231072689442993194696774459347740529013264243021351122530712726242994003282387608822915316278947349216393425431101408709072809453477501432155924064060851985782094768812210360212507879506451787236208589255450068359730069855372557197964215433714356749799196455822083993277598575523581152687248029071020057499278913205040749687655466419698074358209941647205191333172590903179835946136996178158027777669956790421619476978939823683593101524365440161454041135384182475306710870702704553021442013034399895813185203298981215627708649557966667893972671797213706137903047264307716738979314626912963608527193309681093052738811978758808491742184592857604718603788206684023901242490432491037898053055438607873119648381187179297436229973574946796820451474450848933273069662963243583306157723346441875751929682335664802019583014543673380966665996413883801436504908192282884515584884980373676627452751453869581950213038510185985460825343489975202142112566403582040488783550728245599682465323807740734168886665464641603224829684310616027700475098244967243623837045258724542992648874549053001067924379450561766589267645517315788413776710419096678201983665206260055494355400302763674768511209556314466237855416974417687497487413780894467556441053513795473140853268617528720808655087688660214172278088663756162286363509060963569589235684868919346130524770795122551084796358585844588186655226119144571556186699523133679232099391254894752287309632593664756837576636452102243364996195139579695082224670541158557030016612188139795219500760115561060061010001825283250153804328154335986986556783565033321439480793073796550591037983975701440905080300971439234910903776591049599391600980088154235925859159615810719045991989456762383948878540239408842067477377025415572424770960877350082279164246045207891466513585137900417797637036154624851225481705914354782109127182706854103779302386098010534633726851123830476954525426927097474228250167456512167652273005969483545672509596486303337032216623180570085809114761984523933541336199615940080023397299425953404407678601055521962284027456471372562437459941558275654673881878962670162969656481234496817022259703134936161378797690228181629585150829334390614986457729520189742111917265290430777608252358743387643759057954599231515572508574380541204895925575742865742962298636261756963506631168921218360657348817827932153573225602344597967471984111961640713136782185028810244706323362738271767611646151714943962820365168305652199368133400792197475898486908602829924817247744766129244458387356855304755541297877875156699699904860840589237186788038639304226766039075368845794471932170445392165438490457957608716368727349021737288160807750771571087768128544002702393224302870275170190661340420922809276302766834579056400482364507228337855040431869871211262375555483769961333848584786221282868497049389104946941075233147751125396857465393598905215840989991573968659764106679948303855188682322893752359924758528984491236240482001689059340820022612650184725209406994114831745562165184563615068082978410698957504181627888678915806354602470130153574601837800386399549393624543016590095365746983238618543008541575897397049418506642725868135222552357197553915355926570045133294820569316059532813235084403928074158169926759704683055379300399371553085196556954221749841950232629922887247762420080727316605283072377980724616262148937231793105340622882476472780561466305623360203061528524079679415164175961892821147129863329080103538764060306562308748057846532189155782120549004887114153728387072569674753331660329034116978514854498132326886769304253013241817051484360962025632538453186231670778224342284253895549993482935722261959995268035369248595154370831443351369410587391219566595054436914795221641643681877622516529705856713733750749740245517887706878854817477361612607491466121069171490372368965611075435847975503502233476890608463486780794230638539909594538187897606209895241097061945800565767864619829223822576077272470587132675656230733759024594787393134043286511049926899724227788671272516282081331954688727831427049984862900832323325477256527447844279973406086937009316468169994291364050638072154474170054800238328569849773094305808001422447892028471128348475404248145575338502374595450338025877229972549872284616470311018638876565630437244165367216307538582669306200060817628747751457491730447074655866834772269877661610372641440439586192967522880558704778575363354946889095939384365488357959489435513180012946056118762790021926949152317923954219438021905957870868501812232386824535800405534619281296322933182629664065220623247634208491514624473062303128402831561784225107932614585257804566858057605265194315962691090376141445400915701934661732620513583308035540710504959504476977607409425095117972362533132287224208381559690046457027894489847549130222173664019983286555602294305870311033624698583338553399442067962058981874040816285620281219898201136156910331557811121696011693144395515324332995360064334826681700066855106998170047267935890284694677599282404071207298650232704937210105973964198767313616725037322658163886959132201004445006778498797164860031780218905056931883612286760147212375149402759732195701818800337808429249602822617992002514823925140744325902146657573417995909544477550597119634750083018744616403343394243156394281085834230814656833681675921933056514597513299412043466775345517474368328602407364160948192990774005243467338392188721290320547031909549809367291371505530132530542208617500255308568008501289296990063527059181199511458673887274249277486580439330541489930617680627222854226068698787844327083933640569276429002677146802166608219838225484922979813418717284170258656038583370470080240576822686392519218503774865699008546531787069274321460847418055477673791494323097537742346940557274079602427366712651355968606774955057804780443035140304207662474746031965932219121578245011798891398270067029857363117811549569199715211804013745180117496290696966609337718640295844746264728426385013444835497454327600066782924717194858635090216154743055164764934619490009794172060201233824269358807659279649734420032866465340968441104876723662574255866428318121740823521799330157727755247726543016211743835051444975639298998989746422516305712528868217065493067509633176902934448417150614425975788990595348563889906611990463970396982742254241714516867300698278431812148359258799910147072706599121099353478246472704026328541857775905047267500344563462195034268557858863280740148691232974513726776293810809825188917516732910294157509666726627832917816640243259232488365643765983104948257727810354452947633555619658332802380365798542530271484231100383255230892223876961871639831522571267895675122052888950618674248259314198139648949161231274764293926325888385326054382502226345746553236525899971663388027251872118953670528611912549139488702762124649999863522192855264153020377977819083262037629329828088678310133477501073797694112993548563297962552464931411584445683513756644356289822284991946481334307018020849633511625344029491811903477837961744289444593278697454535796666483930036310278459403948355222530681011373020851188061620070689609015087602432582912581848315448594039285725265872322932094374308874183301948045683076307917319210670917885021241017988450047368037730080056182335017647365394453355330153482424909925765872065788994361253275795986621370878260992079713399078223206141773018317928453508281150368553874781864966309018974093604334622214292571957760583368041205961968409466997667268629495596944547120631225923149801907565086693796421764070377843111054392648492288783457976477883350747331846107870130815268650295219772088613377598627896639811354343155754029909164726204915182131365268021132508747045444413994549387213727640927331797969134579123151333067945430377659021260870532287111575154546001150124297258030418663001361878003404682152567845274947709697263651414636914792804417074095517905904465810505901481546072620098059071337660628447857519615454356327092531427677395014397119373939138295559764826447176473135051510868380686374984333709742482434963440514437633336130873470122354464714230747564583614043218565873678437468787576878687842761161470434373920601267750420536285768802329277419502677244286145346963825025788431854296392462362612532636863361743182034550536236387854746827410815538220899250273433804743991379338622541185403204653371223050257656533213481646820385203381015149681936022102383217338665794947730788229890646098642451977655502931357752721000463364136361844212216949550376534253878975896146179167138784376344241360249688925856919368922831160158373904294981634214487959396080287193155808816410466967807656306711150207070843312111754834301591620965946820853871024116293356422315108493068443066375933950277921245967420864162087069888826889985624799312003325273785056552152090944313617927415344617765341387517056380902311279473758306065320233446741451605185742358189302715804104058439322679819571377918506928657094975976677332211634793900551623720246012804703178829728844623936417885187076994321963685037595610046991102142997187784000600227143686524895955907418223742865411111171040989042930942892669525099067155037314077292278534310373229396282347927560776691844451604293784797407507818124244837999497367827829238107010035709246932516297633079890864059992822349437282635777094334767224711985318164594888430180094936563934316387987053752733015437077537963841508262954606127498279340446961288193200959665306435395469967921936703238554155513805306129765177106006166257538091447251984607397710943803524461356461527613761246764024406043098769373729500032052575807859252291624249809610160005644505527915311743836230136496801580613934889830811409682969562731442122516096179658668019383425112885322566578781839016898369202338536394951304844103558043289515114260547781998530447639407389268164172148241732963750842616826210576768233346745844143636989033083053477562625457488190699855345096148629026602785672305097338303105352483648253571834888616563381157169771507703526543559457759535810044251970467173322097724835666581853858521562188587153383835757780144049172370455188659692112433788268687322893749868301426422994404823691642251557765525540750776965079583302852249841694053411570194739283506044206038351265913737020483032255718585810325800908532171687094740718580405246352344285033051215301914984180863705414221793982977098385741337822125367769542363050802578895373873383217494690692554429883296691997820527890533339819204560311253466049352582299452411319868507828778667648505762656452817581458674771338237914096678493526830776334514641386941988929258358890932474991803098562260408235756563844799312511387671512737423264046110627965939769215323013819639606632954924090119415091164187307992684939851550086159797226752777213810951407891646622998217009944411689275948268367266957420395514073011071701750048882111412240328956254646465544498340931125935947075920067823036886647284238553042829021212827759906444289021329041005862364323278121323926604476218920832076450685399093546104284093554631418190263809312210641015928265148631546788248044924282436311297746374693043251478847870130566047623558775808674509978098486528224944931854837507513693351749964630251379248396097011011478462296455471280139297632945668475828599472851185166100691382679604856830456538880940349818948288224229496616730944118983214785926488303371387593641189965813057413193702560977162293079769935215996349281300152456080053282438801878804394549383134590672553849008143558070737277366619154388346060069110611914344666677361983664212709086291711179733232847825146569798598614080095324735280946176972681327480875081596166752672304667767882672310075339362991013096406031683773328199602003005168898951042848993461754811303294620511859907369177595019165404896787059362845381932605633588127684468048769282715862728072835289412283150691438424644590960295222374924884563416217598821750548360020174862818461157587504647936908763932003489224248584231928481458161211044271407476813434555776933760859157056213257224449939881884700387440339192499047418171494477542287052994381768117830244378336034955447624455694707649078638189450479193464944743184322310960530615221578908204494411988025421638416459115524465100427273328700000128420456397370028637924023769508558349591103420291734102498858959847054387519917818085627364707829275418730051168521013791498274295022140932885160901456156908789108438878216072215762948153063970362365449174468119582171422147299752139745530918902836383756467736570828570815418446317637733314641293871974717987850716868069553080443613090057629313851885279508848084546921608394749656291573494365843400809956529152103364919383251707266791529525725083535971694770021215970859695558749443716975760063767241783163170923765700997747745381182230959659059112110529224831850290109269683728928226189327079050174561565049837751702413668367921850571495708082258550741574413190257339245939857281498756790070907693607904798595136319599862971769964408958097938146275343781703940693656321187197852611964102710822153711716626909559368860881514655672146834996386806545273981929688665977433443609376318221284852643879333552576343436611223233544534936176694590936273712855291769185764878151380082066565588898363423402658667120374943227689866050246808218461980930169888918702633344595016459018389101344475376880579078625293639028047031298881081805211251007180256151581275013943150135551415463985841947234062713127183076395539840789144934934994449919259381833537902867455618032725570841125753746669142607049088467396121544015019914465490011616776086785006732730912733172735573791170090297977849562587090107749481084244266226672233961439665377011082736799644411145749182650183128013844803883919351490591785007704041120962124758262204629675947622332356240054870359602297601298498210685047481419532989904873628007382161695028522675911964760399136436957463463116671791306238628254002325840804683945380378619039984643734228972642687604535321347135448920409663019416569214356742584116967302157443502128640171655559462168808189117737170028387488345793484786719658124454391015537058490741570430870720295658359397697041709076424199815634577099426984340908390189343540985927344400720748641941874388159246738484576856870937731134018295404631066162162913466337727407978990310516554184030717706715693023558107131292520833009676020324959034028451790319820207776723499569422770609817528310731202538600705711240412247219604954826868612164843692657303008995071329994757577688469952747874321856036495427039344100425905804642806492250431730116294433433087777221710795145603544550460301679857881035374082305148465218978046176321030613067814639008235850436948757699370525138165460950777790414592839345704337405310783421153575488705453701020966330857143973759851067016782584479490882141117968815609312360274230120097275321257549932561619845691418078820501207174438918468514160646826135556777284213381375302542523670459150680996430378090791046035968790132353861724157863809181707087381940105059427009086415733964806863920918932422174164042116889594717630735007168184311700213448391557880090370910688233917361688517678262501585280126582982307161863227777505629900428544421649618287782421324813981149549141665030182462213379448092766523423503568127440429946266565160497409450116745475973506098637350366024449491941299608244413267158853738692367130283121751905371175616800098069226677688570686508595360785244718728171044095146178991175733429539909734625760546907184168368746884960993756638610466762455776737969450290923721975724298762578111102786957451623036522876267054927685992872991836477136543564447490490239914853974139709713427944103963946290853453047857735855050168059200012540965888499741799620964005361607344250456987167209766771673732713604386911136409577141941752264997880263906525543858249243795777503802327921696818712829286135343124092420723602470714170145553514849336874021093156044449758825306989027422710265869519181918306698780096639070118012960724041290385130459174538703560107295491145249224305785437704658689769186519910725168071173854058920098102239457640451688414946323417618110939797428396629607404771696024386134939187134010398545848002770334234074047506194561120531035252376826569631564323887349137321798927368999566329041084248597177705297032925993976463710304260406171871792959979262619706455298741439725778592339842314654992165232282912111978677410973326930259181385044189932861697820983591275628666087242614374705747382332104129184976205041005059715629755486896085390671573176216244272364176789237938375331559146049178286343257128428376972862712493947725143738657304880077311961258807544305761594508237659761515473321078414809150416305976683075118775769132042522680121201141795006833296146846410061088220950884594643441963522116615205656036574598559672970061120339107984895592669036443132701227980248326200402940211130091234505965669558117390464620036714345692092130892366453167065119983284660574587519446588974000042670598175390575278488770601667223898184763420215746163413281450904421183613748283642983331384154536216561354743518000913373138504328183541832993779757250463861667899135447323754453458681419152279442734191402153044377550418051021855640024864154312876794263614478055430236382564888901268727635165173143579068518167387397073924044830984285285326834130174537099414240690338337481385190730276006659459873187010064933516438267773574463271758218182429104996418097624845366432747385619152050637892462021125325895206185200865607435416714748372662770793454084743218463055095612378978815138301039425461510231029114159662651376791704169943053916777914173219790201743547367494425666350440162759395378607241964652605741280284315966857931395333890249233755639927936518572579982872324849466875317258551191561554442009864912815677616631791521309999612023573106617592510686671974237752810824684936284968565014950404442952626844844810489429631293547611228722857050451505775128034646508771157403311124215867717167857319777693773559916123081348012181614263311956065331722495089532415167314088890368749396768359091048279557626593486191726756990833791291455352403624590807003454867994081008663602323936414848380866997713749555466525940904349637429216762841982098829948389079406051175836863516882065074696024185250957554653466903113306998652748448682993978871023906253015592126612548282682567863271396795868016365696063473213212041378968495032922099340280570695970067950253252559353746764982977491437762676956202993175009013681696751955908340210315858173331194321248140193463682669460436397399610853646016491787683347687597931992182526664809124337787815586567382792144271336121473438443644898867112508500795180774563086187683699227224605815380666685510257601508740512615709536380080390187327898510507911511094257928266705626427343874644992524451493562220268012886118263819528736197772089184640089431851149832458451539619374850499278062840812068717644014080623442489381732957503396765965416215143394381852974226292173378442176143885782879576058843213157773839807526044900714478568589920933784462741165826070927964969921755488911285414635620124023516995061066363690543408269723866136178675271518806051588511012406683771004661439928356171409748338185232002480999458765168443706200699579436844586956093749242318014517594699988207928033922373779252678261827175237611753455339725561070631024137132179934484909332651147647451783986692171616763792757065055734483053470486393626511710005626286138808451302366393512083565468772343621172515899827970414568319589502133466640608948050261172323271452850483263828361187086550770317056527656449381108155432673095950152411609809570154202301315260304374894771172934454647490379749470186383953864411037127671612692541307677165313338056772374978403177060704091167810064296430691745221221903125348705723011195267561123919807421917115431498480267608035239157249155001336547067355721065395726956504829839548945756527044920577977550636413635601257057477225783568531133248334401845799188452016738745622893617010541859763547292720824400737449998479473723642181964906304237574289889393276235166804080278998673894549483383259571514338235623747379838275871120249811889307687500152037560960067882841993841266966367484657741813781979905653785168105277588289013440500958298755681333403188792667976704714484195386290946535052207126829263762064442852187652079026895632467070926706355287339434187267273186704763367721589714873147246641998151862437508506449256647773779979932759033420952272823778907092088568662922665775508524814385466920015499585851395787795128976733017911411438432952498236689710970878632606189156671299108286492615352266354243653991921495359557843825594357759734349060780383818959508832652979726769334363109568421664553662767432957017949465271293791376844918558796209501081525957067782137493966972042844936903495666828168442670569435542996414215596282319643596257766904803527418667788025734967261439322242586752012089389112403755033134961352148284641484611393497191663589879759408432162962713448277947911344320116289190844518653082886996956454721629391128553019413816985008074199436682353639943545347437494251660232632254562959192955820516559499655239239891148962303663896727776130400459651294417478930612520199010704550398930212002644779771616989432595762677720316466544057483462953584541810153346446569437074184344237102635803432978931946071814573492084061633801804417788324849575072402681535817789936418320175382269433961188203299768505837482342427785341840816103094321475843310083366420222184494360377154144158353335956557612019596977932315884159588078074738247778124758961386036813215926049465988913874432970739560671450739602040366970873861343447225455786568448347386481705002889062395443696187216383547530292914733784933695859386032980216595403909916105440370874578011852546514551492862444226789459629700819685162768748882502311754832088681816967035895085547867784657566159408200992231578129836050944556429630611309685628694203489445987475363918769826716091765837798266020960103106344013811182515931960027560362708591844338090584106454459240727889596680464969119683243522370277429779452340980477427977509522198355429566569810084908111106570080890546638758550994857709723375604218969720168787873311221344957402021907754430219441622693379364549013806383355967294294165003201075847261435098572500401426052766354464022809006477615677144583949581681375558027680141143078252954678232402197785171067296701661466352693450704222431143267410404897295911218897874435242636231879336770562838552637938934681360636107126723107445869627508796673253763117696710897594890194262775028001872576017067219824717564331487417496952722280302142600168175240487450157679811550503974690854517028078037051115266316371534767853303950696773331199273957782299950452838008391660595711321376960661077622222252713076338577959655632044911739604534106616285382767338930198382662640429436501792987642996817913902244397670112220114700867899356070846841180055611981913620564384070145003694369242372605941054813794908917237284736743327002247954086777049188877523419514201212253691098535027730879269288058707535691297858751820820850882628237329074933844551778018464433634884313039290352599651867534485814071628018410077339623455182724512419011066678979580580095605244173217452727143272315998049553693481814357421901707431218718399571418179208442419814391088094792602863216594687533347201995028764470223108827291396615956738794302735695644431509457383166441543763981298139501976884396308392602098018382750557098094091991162837674380147816768654523149820064372505756169189880112866961672076125425809618594867227774171719090868026564207800049476330399567885654113605586724040648701479860367502009498795235347203285696091990524254928720962762854855009316423555620595826682991551325950904301158950537567154111333965014157950133620748607068888123490935678155358524236712345094002697556856974498163255476944921740178837514674430549005084488411120680753265535038322006881780905826635808818868208091607424273626781303473470224748018085975087642963297543986220122936665338972534482876813267385165112908178119930981114474752854379574256766962732801940456662928610249650427735942054805178572795616311936209532913379391059607477262077505911946234916330897434124435913293873062205370124246830201485464817672351069274238700994479290271699205485599505444274192488838368523714190110597761135204875678415430048059963277298986866114490474770511803448039268670583856761759635108023357085824698719794117568013907623898079198606095364372474433441909438208763850654480899116679884567550257941451768865647424959511745787855368518004226198592970246828112706699964612786664956704113295974638935739166580048417591005102017716666084329083865023691721779684682173494499547487571154394802855152220111743540168407095351458025653006339064798293489465796535492582780372409908887046150450332175347330037331348041228792257816407476654448917868342395327666149550929928140864057018817644124471437124388683964815352970418820915338304480757015850631583682947714081388358388685324623801281246745671112065463426101715213026337002118062127576083175881453403401925869763769910389795286464451177393935631956885665188268827711424835650631401527167763847407964499754992678526111305264743033585175420649365141211006160550300051905748716764115312704229813680214384387812701136346437056818707177229475937442049429394335373103027195108462803206094244065232762156779235407526698576048487057871528118575897145746578703280300187172061302745975921802695978519716140999290949292206087514265886446802973650228856968758852065248299986118145511857426091023696072400707281931783804543757254468759712514782453980512473951634853448772492175426430465448989827911280831711694009478858016165442337822213722550438052756265222276894545594113587913607428174972400154914388390699958052548657768611079669200686053890203892944744880302808185143283148053405257056442467714019305111178744781953652541858707891795078345070788232319814866621175436654335563616949748172059795144404698136919088531670741996930447604401236041572919700706561731873962261060023412893857347882925813729042038592139566949361636353558130027367473967823069020032700557953721472297631529486030785387115748372094007742897302888083244533952315268887826256174325091412579484487396898246693302771145484162703321724777594216890550873288812131931492712874887774020977328833676954856120590223274681569111935521346089461925653597777560703396264090828025379541166649317632640768574764373223480646875125215567833322304179240435966065796441455820474463667997371480502036745235084519327985867401753754953048883881735695611032077847469328396978805093389851752589423945268129718276196699079486933357242404903417817279215279427193684223023220796925738786873273323920868457220373317257181254869972748241456263979227946851720317086253590437050738577184018119938707846174698563778087161129379556407848146059236238992564238678745133437957219539513695056823792639937977067013544936021915610986007579044722886243788642455184781180419468812055828889511662810433872045614252269160504298944563902711179715882531235669449438984240021572705472121336026286741289663663701825422954670144840640193851593740734721765459788674225324630413092934960468504313501571318572414813069360944120875304277803364242147340828681685142009757670213140533900784064775046945650342784181356086310132728003010784923288641029540687025952102547395485465574938692109493666792503354383910601390919766896788167895917263011281696218573159456883566537791142671914050646582142979263435538391959421523291598548453771997466549060422774888786382845203669262558011244174130805454380672039091940855982924662066806036852691082633217367308703223582073899570475039998137711606826152917587708055602674750071444787035609431578093126734191290366525840264186429226331785493478981170519848230587899076198151759959440048113580435591159988081145406709877805030112987773761587714568085238305232008965289889750685786546250167056669734829214486907451235589894024582080991780698295375702698978268906457051444226391657590621786411546428792868976247360268663280284286855324973351359500233856115357872353964608335230860059346783225156226350492591755652242150989990362454055112760170254069664517945752076875730682683318127968201862973330755050347382664495256154942294174398744862715093280779309288316637789591647940090902209339798282159407945004866179414851987324777695856732579393647185455961693243221099816931053766210492584142769023954349308699895806484786193974635737588756612500461480448140000223324980500037171627802341787547734579400865222300837901639176777246753722369295779087632227572887744936784045236428528560477920347085802697993534380000764480989858497062644444037268565192496606640568351846972130010703426153595239681083615005741946924451784961572005046020643607409116198731583934767029846322253334499642018195142041312858856905801527851757592825583645455640038489900736342222763758668173304473111750822774248365952758583229049961755939999203850011982299814424610316545667146624356773661723787627535777938374044178743528376044210737124267520605469873292075513903228774495680601459824775925008976652415091284872350811099339617520410971296402800281172087822383300763779113369004620048019397867121719860228048220698687445492681721781129368482788137407574451641701502467174823693505378368727438710257240149772655496375261480093818580101574496939270284181928198734332612438502571286886202100568623384750647548171625176414529750236214081200880107854199596096477170493966738764325116936971953873753822757554343193210065608279248973429947789736741892209024686228687372696409718627590824847771480111844683163086105842389134490879843510840175853896581106121133143170046394695449765278943111247634896563447991605256414010637529851468980156091880675115704509731163193227022527246954657107542580479774715000140230535043353949987483701667593375126394731261190560058343335170536883291533744875381706371248639855136946571696304508331565895148087878913813593533422230455403757526276911957515864953908479487991825041514255236795595725010556849198578589436352268624748846885640126020900545340310479565847984314425724750926663238599696204764360270411410394787893707109730900338071469561764185411638778026797962219471937021107304271550220519511665327927337845534900845810189763299924845774726644908530547198994694916722197745925079569123257476189091408765901808433750538131424523110369451857752355525440702695681856686701291789904998041157397005396354160904820329914243189037163992765944986164399285937697773867566423307177307720365628063714121552178760905394920342670118415794240192092559881940323428798640805702902063245659700147853590321752749141581342419428716409351439453316434054617622708992855172646702358055665022164865407503067653890143430790925650795525443631483443481609912282198530715852596625108265604843143571599867079804653131237422333042454600165694191650143343338258663223097534814634769037883149970149080142390111525951677372280285405382480998444904702010692454824105265780275951664904726713165236819485750366715295157732440938154605823012984548265417252295892219458274453611840031863141615925115288678176424931864401761955313500942743411346734115850329083191428393141081470300264507540166754198955659346790078194747414756932983097314815578734195342213766378960391974750859331698800300312853767044211165353201204961785545535496468144964914279804969853041213609382946413195143986113233337103425101646580100350485962499109263254079329570237754726666758449812807351989122209925109304902673449355214427028371668797458502797516925936389720808829991591842409286305419752718294668669233976983698559265153995886025540971788728528400930007285268595547091100953206516551998535377172211608462169596511699332950009514783301296059583664025182710547465149443528205005241496947328643867856732422331790266061868332603160686684744860096326325942042216939441276462001125398285198125049782679190047513031755323846745510909826186383420760209717975863442296034960005691405769920991568820450766822024781872178531624425845118065377206265513605995851675819875831371515645002558071719201506098731221064669621047674155391860527872715357333990832487521623567928031914764430358792684162815936993371290055325184935978645464226106426655700589393033796696466896988568961714788425140377802911630027052921394867405045036512036142327260778842196457004721384286039949628934833706852619604391868968034498975012487805635153387693548915720125666392353317049579448458636995759601768551983908760225439084515623233326056268658542703804219574141659890957225479572305583846947939752631465965734065095425334418284409236484731878270014394833529667055309791172369016219327587357899379859915551453511280280439392901884923585155596018890724590521073678071899970930153111855211483842872237129288214145024650420984794956616246474188063611515093718475182884950625538736063163001807876423195825335926826996878209142824240820154464464912890260426344637485849639498278303293067478894032558366507442122547585310588889828307914850842201140415796047289559687081929721575765506433865504840652725187815584429336522633884906329690102240712107584668755293324216200236137483825183438397078782919602918956865913464024649708487721885635012103901554042039818854148653680792233735699486188201295228564194734810858222327553836187186362877874014651841495087326936643318497066888584145910070071850430278641337710134167876593180576148742609458975078499150096429263235580370750618119256512259976365939525920598652645024429200067310006835409917880472090701262900686027884381430451192618007805959943403205484833123289908697516336330634514439291553596975445483422279735413913515790981478434938152318738982148590639215750265706559215328091976521565200053569781924080793447326921114275205234962843661704295106103935832364346513758473538793609082108117767310436851350566223974011261396458979867572125944649782957325403836689852352378100153148765574985701033155551929030668840908990284847696852802418756478039098820513792117335008996166635768386432224999232487110520554047798516383021500220344284306487905970498512553137068087400101807959977935875695762965648905088076227118248725633479936621559645189646850349973242617510947080056258642108003456255756361178044740698777013656455009652329507462632391898110651776241019487993175092456770005263303550624437042233947294894389863987301489612369250093731444074545759603343151237737191238879626034283533556972937520447098362339162330022435033112671052233188819688402299708110850630686585356901489727391975205769931596100534574586243824019675409150249644639247209864467270749581114703433767559126428669706304567085798799521446875449162318767199426740740490667175778030875031562022395337597271813171978823512201794615927612800930578911161281387487129513010759880677213934193445658108752189742361244443046395406107009937886443700581774852136815617745274887003479291522454940355326336074350454678103401891727541444580009751462871861464553920722314791102334515460048792231222664573833523097116409424193925182775990008034758203809798565386758468848141612728468318791590112501471650688137606743643105464084229858110782113089935584293854133728878743037652421662169339832570339446849835577516820043287129669368324589204128914108589234038389700634402910386924475240890939824847072548524172673431383722810304954111971164534771920826166853797859204413937398371465342393992236657300500459784921054150033313407997517365486956252979280148037117582610789731943519705652381638442688611760084988177469163234650292280907026268465999374641294377471978162124323649691198304397717034096675310230270688436426037378040216296937997020617452326758194236194169720696464719270077658028557462709201893670136464954305079671457927183214783357741103900494620406862381993344769439590009679867890563704662910673018049595661637439283998432065932103319412028590913794401141928542871594952577373153419997493355180716324023845357359504693295567042382972122604281265696585537330915938488134164421611847220134723407552459938731586961438014089140377752534331061037134654702557596852085636547761231423077235867008497086508233456741602181928202687682013102262685446601917947281498392562274171826141657726610717080098602493404348478593142449741431102836002429956037024259614617679466383463065700344709825676399371302420243727872483157523692349174056895645843588521577803466232741130374783414731169425721246556162848943758644964322246865427432380535251908046613051492939945323546925294475246800236214146590765347718813588601764216863103229789054392635344359111375937192444897680596564645665949936125442602849972897072843092975550740246418697587622787884645145974429611000864841919054372929100995908694149479078034484925013367482662498661395403584264404245965709773903650607143345457333517722856694656857080982499537076735498294024864399857747685971228999979015501754785552055429359913613313154375973106527676206108749026708063206047321395319088987184772926999882281402975064213156193565739411859600886774526965503744582647545158154773522580427379147828964196365800270074952748422522889413290677795882548416291328864532720948422280663242941025843168491846730346103522500805277191513771678068136818680186260606955775892641192096960668967274991440232303670174135582280886645359985232034357101073868269021512168654265506817382182744961516150665270712400901433920856420404012130880627110896623147530485948903747771662175288397133267940938811822434037440840153066077394385077525550412214136971156584666927794484337164251543804949275568299178690390073129140228310324660167022321677523178416708301889456230378194108341948283840738031774886608358351606707342143482595600840400544695521395911012350983688736977842354886756504921150740334884612131591802358327243719495943149569540298103398517146205516441236834156994612156035082290207100029667012633547352288363644763669345734865595913484972930441384806366613683213403384259114636684629378604213891790394529923395265154375899363850243896640841998520814443428022785955445421573619804315497888810725702638472402669003754070878544103681219697359473906108294295905671466355548433903728830305476192442413722967773877229990664746639283881735561438729034729048795473134767672478042145734267956498341466657464466602050690084626870009068567724768192562162820484466815292695867195854992949826338971612804410700363126316231409267337701007133252148319987302459089949580990699515725459288444496295279161469957824769292687386629058693794394119207173428466747252978639880669326554315050899991031957144268798190083102319560334660386848280979340746761021237791922797435275249028383063191396786637890614342789491401656037549376142441914085189950818311942049334791968085725316844746236631959048868401328546201626355539467948621044025930563735153617748552672869741817339261247986035432620085524441831183466869712564242040983777755319363290571375091010040578753059283904327731288640941762715173574876613871908702389814681220471100320506594045377507616873662442877394223715886212661110060979084265240258490170750309280521965993310748065449184907480565030520950389417896168579300927628382064626342556493377914146607576195195897517840802433175239265529655016877740319307735642807246566057815998107544754487390688983647393158838757215549485115838634117971453730405923594905676312190270974599939443891660532975224834611303036150060929229453921897401799255045701958703257576502957665925266049941851555509712934037668028279800561001495361782296261724787715055632740841199627839864606365236721136510478502154810645939684683313224524889011897188126493401154968832105532600865830943412579593870659731311454207496956197262098224934059982018496328810746766625442307393205465608057304192496110112112816076637448889875599528258212942551452285644131986924991494937002726849264278508166014011666499557125175490263316972711861382439763417321521109654348564481490768895571076816899512308108735505431453249459569065660091608983503013344364752917651056654046220057235998072459693000216225886164156701701285352577175466831062435027838956662078580046300596823045928606404070224758133614109185483816347655689042053012995317381873306327636699912797607080170566062642637867911964055710744991095544945171953863722679495447550600529228466178165689976719574899857204640605787318399348820155181970972506375489831542319326199816884972993893363810737857629366837291166280981096740825026875682903415673019596734673710162927263573166222405523739883615276946962560185561288558998816880314039707756713256432500072547177632053934537954693786251956273952935729486765683472168117627173788561529567348871266683453986488555397896933808415781013783798237983737319784255787759761838984193982943434539179120939428272256520742284902033369976311488002502418002492494085182557212638067009867494840472649854076949626303618797528356158542517453417729335359001998839144425150971854656937735848245099334376412025199565261973023145246752695166817371033816393927839020309303473918702028839550442603754799849539497947906558917482146223250636334870676725207694837365504236934671789197806573131827631896045527841177001074481330114537620886641592050495766922037394380129321112409956562654166559707804641817986286895153749923981828534446302922161253365859346881771371691871427779413184968557037079669861780682362697677170545508581693929973809558845162191093034511524502900448177532426870848948500827125341632414893765582046698337570494734289745397591938418086237808165398603765239655629866819377480126194737910591001732258995500134686497435826826515137378711729569448483450127349421378873443811219826553728253466507170036515317968656165053261619162673709862327898801925453502447365901985936888863180324278306945435614858027713316669328922915284043958602435204785275399191879758859888350054368958480382893208244862032823294626548520332249311357592837665860172111507062406668149373016198965146604243467400330026579534230607702308596594398252025419146609826802317573159035574688793137429474402567178332924341559680970246295114034858341174597865369151572426479807744964865243535332804651152301052028111249260558192924187684075166412270106718006725642384030161001046529414255168314327847871829471732507048388832965188210262644645607281836406109469770476291381298615490196905232669978653552602033384440509123749807052873700563654160845867232808397636946855333004681446964064691038985814456555173332345288602657365190014477596550437100923133278953344744187311547061219899948055360592423109993965393002812952419849347485935748873686446992916267700777972227636654028378339409018118036841729182027349713084287411658601671548310787240687633503646873950239391757738005057147365044223589939949201122248938978239923044315205636795206182925085504224392266738798293204889316326551141393851299637571377293678125504058484889549671495975588732660929068647101081078262170976564658687006810765595179213663993649100929409021960617100812689079735211582850891823942111468231468420243743708559391918669725774153781237532676069866009428786749721035088473538424346711588472710956207286314541175670036917353274981884933143976946262581268499145462737939441603891448454417727848073870526074827908400812125448962271099290308806419076060419595971696397148134809817978108558644852356544600596953666291041785199250924873432767269040670629652966971602507235288161065546022675144979439980112260583025281224460443349015122334327373790582173228936520643098033577163482979105268989489730933535828785845065672333724077320683179976596400024766934225287230146101723161684040502925564008168184456565261638668260577068779908041841466863006762608271074404553565023107815837962844129952887745855701479693467063139310964516912288521587806327162956793966813169379043093870127225644817300579471705578041831531838572636100939071940954294958874193544301581359905734297968606027601433126363552419418252833104010996770147346459665652719610799793351469918505155528942957301022946961678393521639267021522656694434839612290816787878302784974194015466665539566485490856435789260021958641845743395768890240000235823426609238870038126483158374700007348865181404652101200946185912192476111812003599059028917425153982344051368524990022092888193655855159529310024485982045465448129704512153693867876395413983961379216598791227239726948737860580261396875948860683008701445973075266051235557051146033671261245816499450495379576832810437433562348206725460576731413443310147817840847463955567746401532203755075043531181204328215300208550552002588600550268859031793630734291283821982501370016960096776487122704772659088072402930892332245526322971510170023991102641576025599871150625771136723090121404171680380855161629452615131683346799964670495241543308099442707796435027040368599730794419995011426894023016781672799639889437621133715194976358251071495234644218026034813621825516246183363701828769173958161594021531301088989133450052299698278593352715155536427140449575870210159623163794299313688035437640354802510221010136047452576338839321861452659419578463695388881748293117873784225072697170729361814395596887674025192637845464532704584408100388323992903351578409362880847888739524885880946968771821973327031109156750849830693465561368039623935397826864237524266691486327300008077773488659910542131352279592473873871344450619001888375875753701259618728049033207268718091814179577000955392622580698785663450565936060800392179324332569276192729823677189800548562481839595588184759344283428494874137717375667694432242751324721886293177490898849300448168708709977042352617757135464108436563000131725460229948494238070931881085345213772745113541938884044654453540179881347788441626866281793848547262995018367702996967625894455425124947455837411239796587356572715987261938747499284616657578252801801909642450080923138466510227740759269644594514839163487664318140487268850076688749107755069370307499054603064947068567702414120836637952732060930356257803221601419030764541445759678079126137327353913537187668917908611688076859969745343549842509605903100188335509684953945806768248241658437393110073904148097330900777861772724795912329130278925505692495046031528891243378797955233961818916376365826605591005432741865457489290671857380092455254876721190262920951578080943759249672619265405075958041026542580217696054743276743338867854636805879151277480908754641601963576231627273692838730391840414838015777805606750935417080573694075996633718892385908895713732970338821814742957826360452677369049283511662427452404426727364294964031823004992475697298561246832974046476060407409608063055088078088118688308689454426306182566317949319186599837210544568056070096378297717480071240850965606548140259277634232685805926676926920257229164761194964647574073998050070132687677441937830539032032562558703069908984773537121880408814054695520015598283467570420376639316128983554190384287137451145230021584859358759553060528586161342408544777046957806446318449982293627363807832288887990981530883832622726723967256309185983768256071725559076015102636244370807894436071489106000780841663428812836278810264507722953909760188894304421813747442634060133807608959546524733232645637293853066729738100588330337706619416434959779112114757068964435262102527640011717310240192372172191764975490033766142656118760045574753868029044197889636621027858700865443966971717917988145681148556862315921762226044867461467834907631203818750038104976193103803992155540233532876427107117685633745472469662715249996013120048140475364254121739045189214230238075185874513735667496012283914600292645574345437543181328778322176256107609905085435545264510170889203365239119747982502509954697870209451360249648115584568118918213560576519429311659268878601867328412604447616508949873056560159121609324593813408572498106400106406707745561970124603781384381085084483793471505822615087635428041081769253193662032940962168849555293148335563660308562865076702110003126419723027380215227671602604135754211035178968907304171092159630973361200508914859014048844269017718831734020916067899311016050253682818265500559660078018956834302088028448752116549754384201590645201633215088008262478014919069488826029801544323852078924231937020251818104165926911915684424141456611437483134402675290540151119312055226480323060113785857120907657927936012907247270146722431218459074122866460740294349913089056117936718414886071512344420767573344278495337589199104854532238105687696404349773280303603798093263688673334396855152929445058859237188205427828164278193887692506844821223815539132750244408131612480035135950409817722155765615581851429535917899597256127873804500666811930813047925936741145630074638039803063156735299793642347892540124284507586600456034792730804164092514635947337797056888049323050795844686868396215552367086622324904947693356105300948905881660499347376179096958526862540354234303235405211285354481873595767159649375437126951714494098789473449199859558097988243742159280487420252247193703390308661551875039093473454314661506310565178414368896907982589911961010801415471719071435437502578948421596164896434013850075586760037441593186838204369140146244846097501687897029822836814404643916507061809944669765529738048861916974023917576317097473145328208451640496183885318839521942164491774148056922810888128429334349724036635902419211663576794784445815325599961590727048694264107591409378371246492242365106013781860160264894469835937768530606767818010490230828331704372554405762889771528059605804571650575351990158694566735799801228286583760780341743436985665881123505872664769942357029390997710192857034963570655711696320464656464161104427393776931050007225664453939211028806846959767910931164347485303160508947643028856128681330222070571504462447437363382476773626825981050966059936710546002127776731445521059806299259935590089875374684607243131105466086310460279559940068941379182561059346659693895966791476278678503346588458921572004690575527138455058009617212534715923627947587141363613342202115134394325678527535131442525284076794884608334985628646345928559440829232994467601592403252301179529005089520693478650602021566437210638878829587834303108691593859422277616074691761734414699934832022480223132476797708486857681793524153414010548384714141857499069487971006571405387063269070976011288640590670739176668583753495566244582727825109941843942702894737786182400350399322266890905296719796980979164902395012238267553554103943430444088029207234771948307047358322334678745528714980410076373596162197458037094217919704962544698503400842098826244592959970714952993938205213368657217628314359323762080963677474088895253939128668249062429550407299640793935347416721246404467705068269378388254422938459336001768619056981178472192243170662300520247299864922797429321582928684204008993471783631137888928807382701325421606260200896948682722888871305561455495330970936799962493331214504974131666239531829606712910558342400293926691557314908494120134017709489258549200614950030434467294701873895227588407285032232729685339281056592631532170674362542455083472179002103309876131915263846096595824505672648780165623066519652846140361309588373376570468958827634441122555235220878115260236902749521361186318848261051427234959888133283555980912824664567718583253870930584875157216039744202082972845598080488942510844132354105509732234291826441971664882540232938369426712520203729292889929410362724519790560485794613553119375160882505611656855430930284773908151398666585164510832474460222535650188207700889086176621215984807435084452476960243260459038047923100325077138712304244687242048559101637675852845774487070125053109257464584284299594118575118391488009313370534502930816850631228286930925476254022666900774216626630132253711159823362133466071204885867119570754978650696063836451972134149972884249272378553888836748797420733530226561397511007868871920258133301582397510093766737852982406348218932053312819807830947562231631429187335017573076008454761388668827549957460230018834836732527306861522178617423299134985566975921180280599036911437054374847920080461150866107619997547389524134802102408161717593555393010511809772755371732777965881577275420497537208311256146662742625912746255408660165401233869895516445415674189183603414398096023623537892900266679275801462043763851336253879586755831921501395291432494207424467158090442578263537718512972554012263966553169111782089042685372720144517646495172097309075065875175113628753283655143165363119380257004641980524508540953769166558374766638999607694098268118612413236460871560790320526040391428272930302308299700308947235488624930238060822715470380479508019531470223584961589467695837606052792365386262349849233362291870139201067783506147833633154876056742168912967186038917552569420351014023092308901218033198036435442100755049787863971655522341565847446236646871453022370491817513680372243071276023378317511961498524301146200986725886803486799516001935793683638552516457192728667296591020108754253518096821044289846923922291853420907311278269699390768194118903560779339691305948511440181520825645754944634447673294782718508823585766042757527966786243825170154759592148188135284562169720969137425079954002245329526058975241919170233887984288271468625523594468033651062291389583747359372936275023993354287486115915304282432371423809425829092373167717791447856346515643496782835548033578984872031100128241930606599445647123785047037746624689981916572094227867455190485291478510928399431440328466254352600466943066151899663880867458477176672755199456131479609481434754382023952508639510614753106562180602811742397612403605011562931210187039495500075647188398287030427616638274171549826403443242980834168214493003442882717178264164687941192869459884316723157427057381204604893827105512229188451901065602682896537148451523948599467000462498899543667275744448145363803911802380500538845043861300775116013091125675320416692740668306741031563632637756437274289458108654245972165542939651097700906877644362293196658056401394682895209624376307031485887939421213759613441372335552998289908923462007027275904025744677372541450976331707852402164328077281462371697352076732286196279531397555557786351213778775861247913143719702923683110896130820897773911343288576974213185102327916692702712908439167501058494639017338191214267659088693003243723185000469508522525613691296969865994401016665564642253237526424551214737283838927670007306406737384364339781969268935364938835054086549087932003737600546586118916195021363018212089966699560882559660779689774335762410500100760328145959931204250311765862148297251278923843026436901934591906966924657860144840905627312345792436592798996962654473514426342468368085802505635514458631436339339332872771266085072029936660208665386736263807496713967892082360291350644999109835532328784530235819364450395430324943387517541226250084973966954677686024894013287451005601814400540766866553410364771429369674960727980271563362699750062003124580115253043533320918873866979498914248578691264796638276316842690857587642858122476551681606355599009319510928559960560743942226972687185873741070075261265876259014764611385367160426445870537037780649741427318404347763506607218263187389066482976595937094045730409713530620221961706794190421908151744236073689505491210744813774600948909282462316621686153609616181353702499883390517575492922340133898789261101335528955010837629051377934662761344480853459421489624876186156144932345628877156678470358071185783507279554366977697862335690119548364836565556947037949436909953794778011661084670387949925108248903751754141935919389589881858412827463032507238098229446477261534675864220208830015879246226747033482399230373906570277674595892031245370261192328374724739468701057659445378393856912552990954221530999454190497614983331196282253567545602378110554976990408148969558706318440849569364444166491196224716010307315509873506252802626641966107004698928156129205469661579575047299371975099200115079880645304634256731327399799395102212698266387042199943231863946557299870598154210566687027184429684995604610261091124448873543623475688622144769889368098145328892584445315519815716220869320175625490651668935225350031070343602273462793475109812992303169672923358493401316758970099626431154364072957840103675466492947677564702349854186254028290373319793598528958845701123168469629297736276257052890045207373912348360162935722406040787122393838891344869594200754122631039906101544989885390259187243012766365779927980983065904519115022819116241595718413016902328580648444690359028033237512931225587773818583843915511316602123055777675877872352467971604816463235490934196228181868669379196330191665678293860314775599247906067394605121938930516266889931743451455871205234994279713386974471023638066099442412996236826077168513404743044721107747019107553523291163266298766714669121698068357430095980721825084459116020847017586286374638089231357211570257718574856955216362848858564639317214004572806484722004177740478550290145555105132187216584419800207435958283963172137052111016243088417686280648736039025295581022487968650297339348762775927730653810216447045333596247736830859423065522301039638465067846670422122092381615641151737398694979447326478175601618475846859707290885637458038308036357295146559779351053367244523418110741270967670328891553520355144681507991091527414215074139551373315083759712760947581380865656905611856736434340006666428391770945482504546493018613707419390886444281323610217559392435684115721625176312968232051308345230688824883336749793022189294214294883375201720279332176689448155464926393430355847889272752758356216254973501228156746980594041601462943112587340515274625429009350489893870780921072044154601637874054582388771587953493313382692458784836500339901236428192830667845143052000700577749454309638567179278098155548189753542243752202150318842406992490547491578593957787269802803964823202738586755450336670006442152727692267289435203811007587147112991652303352812109548728406915224713796247786203872074671416008773871314164338853074873761887903652077727970307588899530755071302880755650738832024909116481692266612585390631717938624034782469697210871436014118968025355385306466676468728863334478089271072013146436521091978763100906477506125524551119944577168654951616948514827454725560074883242345057735391214461964677631273863015440485720877823652910425493886516708044786566425698595794851842457039515967991190991208861439795941629543834692816366718808726776508272367782258653553734893114421551215567936570533685834876557688178641074228273126363393923967993671131403468770549939055771459784277701727247457468169255035195668647884455438935187537896551778803538654864330531652110420752965428086126883615741225790293330812359179177336551731813899296847905494927749531078550925079373782354753699619931530522165857259399489432291744803287146620830855305283241211468933258820791726758982547617842874042728832770898659824028260699295026392979802059973922450101862022371451879235659371288301539954042403617075658898862044852672955340278901773365146784925238423625685407047170209332932733096061596862811831650765151159128141785272214892012780671007375370063787525946924066038070292293263510627390002929356153427292061755765133663715782202971101746374212999153267139918031903708293621262229893882047797361064318535450860750128126200659450279082396508654257848518746160184866872762426750333121717526715634050179276760529112429741032015009638433254230604707317447619504227370713018808412987087768446931260255161934177616914904709097021864745625949307325750322750342269481256644829496007936261159866618568333659230476006504396868801618927837410721028788947407817694837755565788158743339767402060029791514565381029247172514393473095680920117269589201901353943845384185526129896530220494738456304609654127536780883311742518335539171616788466591487471792098659564331432546592012193538426918219110824268409244276304112131357549034258193602671301682266578957417983401810441563689525175316425680369752729161112176719799168286660233703377965920091044357442715385042227906048230798151818271020341415266507540355941749065581724629025339234256223973111315001258078695623863121316254002925706507111414657127543439343236688719835474052300003786385861551907325238697518771827692924757597775669272708089325167246893594647716055305429667231630152469260851248279194239411323503137368759849349178699515782297742471335031660246808596962949828008769848698507886779620184766251852444591796714408160165578292642083364479448628469112703061268806920378089591607644344801601246881777463448910654531852102283167610945681675348122309381192258684683064599841402115216235092220044603736924319341910221005420997995017157388320245028604222562889616221132912979424738135153721876060318108100914853092287995307026093593120411896297627922971072258875641153225400736639695281942369439563442528692642157140608746885775772348696870757525816357740229579805949365476590182887125478467034919776894563224688769513619391059827192207587238708204516109797190702382079594609790766774955854439896249427601994178454091201725494345279788690717549734857478746060391677419442164437719846453640329312383118462841109271032636606620279139397992828756760160117564002635227764440190834601383808018234264032665170232358675503249445396028764375963572152799375235183893428280982242345766307304089519396131377344390461387675971255498174680925364427507706724854802516071888382334193700964145694869142971701723464237711470607112486135748856528141797427648451248832656140526462518760827695878366855002299155127687638959894314322387228639910437410119648890596293706987830763589646328093373050627506317230627101168412028874160469789815315480071267638518929316562383570912571551514379675503254703292539495737436206473186210341992295172609662340093069500755514902469559323755865352095049749928351872901739337302611993424052454696347184503026094257140437977121891849261590324644807881699618559409970157925510223553057743738037851990271935024295748700555761182913564257764608719471718069909941930497140678660271121418603511863198734927048477860829286985819736730569979727809019282657440606422261506624485498882236215058061953222845792497532418461345347752145286400420297107644457672161381248606627138363507515775102133295242568456513101463607250085199595900609304528230730515031290792617135075985265645626440395580501929661912529556435634625265751082906531665287409181474267264967754509438636535965842242179831390510021572145587172840088131528020259295740703499360648390869158778537228739975826788611901683271682755722402088389715246087183205617662660675953950627590471113375685607826222406555694218188512277156076083553958056357744268011311810630077997980801672330613845261871538519570630775644367656073926536498465313721679127922894853201990633496753918759395710067773764372985830897799781378926329873892009961736459271239681123978150471180522507457585144238231484015882244505609094139642920994780132784720787738008204711462960258644344408161834216330678356995321190560768508660301040646559435951423045184573025754507283111772319167394205397383119340173614198866145773543856008400449935108158665255221695332467203244939155806626420742613449994707703206521150817903338672643291229753114232960344219299499171113021290270982288876495789167160618531002795065302102387123000967550654811834175930379700519368269969630161905014544972346979641380433288523645551310308470726423616686554515498009526843746685761887549819439136271514980470260921083561495608527339546253831496751017926693438828189861162467441332846524305067386772183202531019396802579657149243045916295242181237973611919032595498042046162283046165425847262865031123298669904054978235611746224533790295438786608726223356169565296649740734516360657724405631773679261980899422059832973733174183637967317856547276200701414308761502059041124946484857135777889719629694490476769117637135664773066307570867088919585708146403275703211274049508491905591751064220709189804531701793602972421891053787120982611034779270335849023831711347308911249009824977012259191552330790144939613988018792190225395261580685374945353550119274916981596351178525025450312744259557985283878806249643561845699424960892385828586933502847254249242916584749728988341153414324815179267698798372666718339802103789267688316599890853416132807034145812967644259460135768275298275717792757868900037430894942910443778597106767150756449385174344223354997389994698561605208436499875100423521991140764039025705194571807513459612640413883003898360391339226935085497823112842206523881471622338012992378473792437471515086633716913710187162372373544742801950635910001971194999278474776402120757879414473328130663164520937692181760407903171121703580665027504797521767337459972277535477976160392725099177550999949141104662380041252917718803207419779193372011138792163045837118473863970474164015514803649459727018529424273312554499865111802222366976871746296693871582519854196033280501654357964898555643167367935490701618975868356826150193641864115110452815696963149337684811412858547070830995468915098722152363346385265229103147571060849567993221032238636990418453157359268775591985516185430301522133264765077551434964731292892968076294595471127192539432976496761289163769005069906818686166305770146770159984737030179685813269331574037122578994378349053623833265821193193978507274612390916634903094192976417687315170426630913625562115247858496601412657045802828811764532190946782186627651761659070179298333321880070277485730631149831969401323363415020277350386204746562929784927213916820999814380470129947319276948747731729524985378009552181050581399083311178931466618838823964286137664903572648540658844892471726570262072687869454166406619012137749038450101794170337373947314339803762079103040381151547324622926995100581784582136310149258617872712914089302813032933892515571506575756113309505695259516070894881427433148137101907252157645160483440409742112109713614439054194873523000290023439460542659856700776885565935848127629865796360943379117755252198976791030928721416362950170030879178479608809642061779910231464142818116781311498515441559500622544711891510012085450719795842864132740519264271473806585113344774477977111885666255274211374513202664538906221791478199874605936812078989581253921274295100356631977448315555434389816534103659229082942585740121184746769108278192538176428639677502594316376202792891459737156935402983732525543547104461935329795210511979628326675804650809233151765460859978751570897083570941123652656905758396880043940046263057735766880925908965759738503012364952170734231262740071673165937057638246995749351515849041290118854450789426282408330801942208275097815560398348766602142880620758811533232384429118227524680906628422466855428949043539084882419255588927148519793717788072447500044633341013238196313797893966068914373112306717982982622946556620910993497259071977335647654325528251968985880187987863268879395509973304480638792250001897883218099103329808698910780381328934443348597953562092098847485401208935705845229185629958474007461885227176818962326208187207734407275242805799100439202685386434300866807769476565277190767746511394193009945869991335194185904886331525917248333410446497443790619034354961933079625307362232442386244017378659372507061411343281293414573921490960571639240854184779100125546981837447105801133624633644412176057696474081460453962373303503376812911241349136414774378518029208145884984413117901832703150031876577123250513673339302229042019972720835397888794598298959368252646981110257522998381926274656026546117794126379975118329677678709453277344512139562830445808977943987652549824221067518477789655771511192161418100788238260294866448433428154926539912864207175180104617444532843216145233249927372143358121825992556932815102787090628142863080885861697438909839946073841645874155584483722569689127771401050076647378754266107129352193479123672380446691924063713722411930711806450593921232279491881720330477423481047246046303509542501725757774956407912105674376446922823161229953710580848719983698307524892329229674833529040660948763923490601379161548282296169111722220275243479548160771335092702175396434988213036922111550361157888472008347091795048988221440054615458072963611733533136151769851913016062086215201728858614584828749241812324180310346233375606301625771143510135582749807141437257561900176922065478164737787729541072617278932316217079563501419649452362681119787656765312248161420369841847991701180034517550565191243025000560688073064643644932957941373107092477655303007923887215902961110485539006920727857467389222712307992123499641168328885905486007018776573063691814325305786506385423067655193897924606689460717133229326978309142059971679831235956560985338544792025507486396667985096002410911687636144033724727815297034662007183648868179343992151252241040331021896899760228489577721660541314148235663284843579632171331542042133822012149890019736069758421361465913428790883344955569153422979958944114285326423713047610301671815798828373153838029969828328367504180473614458650716240722757967200527362143142629238611104421472227278722687032943712041318305078422029170915090009449899950628546047501669055136815069600303889629414180998999607350426298149445768150190702841472060750322162962125723659163208205512632990496621281028872294675978742948297883176537400139438838670054612980250250115785869270358437818993847002793245812979569213398694752481956977675861285007603611475072202414468063263063233535918778657057736752163358383893946976088358539231233721604540811454605962994426342498657340469946065624533601721119185346340865839601432863555009149498514846478881730181129570000849387182129717058920181107412954560496466469445552356631926196247753285847234476587746175639258394559819160827922264104108983976640130252681010204934410536774370464678275500275534991965529900406731790948375150553450563300001686294518763537586484538911299694534853280019273940480553021543962896794737242125959699078169880292608166379251862721315414889067305086977565233986309880558390467250584105291010625875405187855260396545558434978087985660740805135915368419718003611634051190271294158149050353038343824775215869811158518669684487601369002900376347282764651469127363815791580026280732548245125500807620978487502575824578065568769282033452610409932570418403050905568243088422625866295380964172187673673148982567578711812167654722457844253333881619237350890691404896124136323213061040526031699942923901124804369867553885396862264894890395166373022433773105907249651427158316589333537979526093846385129133230521424929531734089455366020658412858303211805858901892211946213990787861954318144132851882657871826012501084361593985852449814806767498519514194546265714035967417115180081064700333388845824114426141890207547170606114136620845915255094295787254229792991000430434441707212705285336199445850849759181467463203957996061564421373509942014934388677456609731715456988834099555083808337577354723571352242396316528422867961923978194613330676932487087798736162844643358257134487996201619075361500310407839555208227205119487214795977227910533080170048694314321300481979222486561641076212812643624386892559563855576146306190359634418677144038633685737184344666209541685820086471381487798894475020766900570286452095885338519134563184283051136578876489677465375052989794073284108510465388907634857595347378967479814273064419316109539572825127271843708352082566387232303722167511882101402453473176919888016766112759243577149496367644704633543346338663873377219588862851094564571495408970490240258886197221385091661582375277565095156105172397429245600667591501348139549092377593230011572068628881093515576670457487541860263330282668839880195936013164759068221826448307333166479129070064019235340641080083063919284714632278274716968933933696008766612950029718441282065882468828467060860293547879594622083610814118775493917531919663236264708635859327016185043151971046251690710201152986749942353277639549009107778181610837221050280868939024531841786102031485265501320537419563210125380088338129133737460014276811128033984969917720012937546320672815526386396296495141759573128718819044159404368630413572351708580641717907623088476814548820430540030181686940971551849423968593712772755104008832122906713946090592396337364520887248115544199168145095938845211307045335562300379400583749188078856910055406486320974353195305839972761823521965421629754889891877189140245264462214437666961867728341857007800902091299726638426771784133408607649324949409018364623530257386543436466754911019229236834977379231925280331198333484063820083821885489969345519441770824880089360525722434788375186520304996995492941105767807967206320261335418789837765516329169750589720324407004885533977651450420991607664868332133026575742978891784272783577704877476162251362386664938460027911804959333281627243282519927796943450404551998992294594632739211872188950025482175989721886997841510760718650479465622521118720438794638592627531499581425722056067835424169404755062462179135658243982741218440413502221935417719545250220902086476496459459545851301095278559079953513113090861505695925580660237359336275415369392671558180323498013780168474944040507735067690383275374950745411656231210427831944939682146448896156286775440056996927952967747073968120155402892938628855947178494320636074089598898932970709684856206101496199945274017467532046010046458928793006554431495491512933351478724181505336824947821042971323249360504408168674427908437913185695286625276757130499796287168491083658339870161894850793731372695873547939962739828122121402225605880913684978360040941093893475734218188807004748508160688132260472124513581332250980665282303291980355973318433580608776507271261567319714016645471957160983999177329751346139618521282997077504846230346040309611616893737215605991454852061878306366827690358390865167004120363680285804216749787051488635105293409043739349357122339636593700645028658316747140080973066985914881591196235802357927966600740567080070936341384720262315877503573656546252607547333998780571631107177697100240523223178616940796854588073475804713298079439898199379911006546245616401890344185285114210999749198488787589841364139913579838856144289248669748579379561144594942455411881876886045225091059102436249361160877411698972889322232378662374487393853418999235245587336554516314677609994614925638446774785036923298332152653664910656937069892036902424588743170135139184216723106268041681674378721761809296862351475352976471730208391067082771221907515202762813799133828572721094154737027327708677713603048745932168886457186198613227885069728662245149911003332159311918804795355107988271661693560681756268730039989525184199850927459783770818458480468233789321065454529187469130039536465460186726292816708134547619593841576763529947150321029093664812857793676458442824469851206208530358459408387993624066076341750746638668246065296635872822765700056694604530018746513170765086337163689786237965787806961852744142597164086569482223994257626901117934103211949809712823929485102934891247810339194828203367655775605257596608006201750322839869707976667106951379706811506099172371680702553677170503493641903977005102860095475359989816521132797465068176869135229454262262144145569516928609103989773038038213142241246493432211328505335771980481261592415007426197180587737592357880539135722083867169288192258113937587605063739305359103199926247576180449555598651119851968826941147628921994241331631889022321071856309748098114180472736969478123543717494989357908433749019826310839145240210790849633075152200561082039815920532939288068597591636000524844302631899037022691044038913596924205307335756308695499309820657183634173511503854797993854112932964565010521532954208151009835553037406319881938092854591473171353719718978295162371539427271343276499836560698251857440370714976616544836875981156277750523047348226643849725672364311770440203710270093757609815394025622199936575782049513634809530485277019237710605242392015063960221087190765514940139044256811767981336868493283221235948655069232709665432729289286092522009949173530964556671615868629177923559149374812394025847025664025603970220111829636484263472690890907017480021220092855347014536935177160118901821793590920730261892695113489710580220527540558532271606082457905115604313959448508828838332532420449925968050075663589241004961021753487755074012961622103972155438000680625162521288094924040102582970754783614444812867493358884023101677477781746472593262950783403581317895351804374765062048898356443219352548436174695799180455678793016451722529170083370619728525491284072033445025706847519293166712435898334489647538188902991545854105589419472979356011689994441146453191204994808453074410840015888128606671925485678789303934425394975271470470626454662937942980653409469306651864985408435423368166033804055228940639032927099317421095751831076015580126858238041133529970319093726233757823909516234064432260687594377640291805582303254038235926907838225243524908981765525733651513549806529927316091446193129041999009865297442701043989902199502189220711426172128043783405360646014608864022823762062558393809038738396549807742550657753694003840085466363046174239283276431631899116135156062184973726954576913128408274779048213607712098725516083687877626971514371146203732369330868108539349487955450532292217641300903210486522942450354520092006566760904158762556263653831795907928428760094484656169267935282982956330124437128593403567836170958118043926838755655246214441006098682776994801594886884181434046870372010073686871441887947350918229596752334553312843527111058478209336339263429652105701134212703548091273654076486895959294874239644007172234328459564443096283060363516809268259202819176879145485587239191114606907074349914834123212964078034954681117954690664430216581020588512166387793499871870592589696025090580311907884372633686492883018026261230955796757237834633111554259962530884219611494481292269816639265280870134370527982112656977052242170793801802551164160715430113914655228077398062695039441605069299689871174330701245347832927403916751178846754008895594538644312695190736723624354809058208662010066239081704767106913172069811956209222006576574634471153394889565809993369224907862967765825560548797375267639674099567295071556757522929869503614003070523686908605504241575793366279882421256113236577726649706210208876527032747728466896700995859752192131401592356582414391301407308888462457828686489899972483896403658408869666275809359606222814329600421093255507743115173601006231784698236297371882822911859377936773004616824614921000526029102237771708552204613633993787012740872387067122194143155504519847106601299623476876993311436294827181084743287556270258301444404962452652559738700006954776178889558523051025697694600298448410282437584529112373503746135157980260921753640437693356061069669557855649152565144151542456990888576670617660837181779919534227630070490406559162802559953870910815559316257856034245241115664815794430763212380107037933605926852701224836374780100385485277864762709068461683023869089086521157740094045710582940006459133626526476948442554953090551749929267866471107791595515500681034642788547946942064823627767972511232139707442882560442765137664644519733731741849466656567134358221998889780003439242885233458188048042094217959388716473486426495647611289574205355916016539179107712334011469172863726672751426447996762073569884800736728665812711712852256776218729764171402973676694178884158055278777707653460111408017379568842204854233709930532524248450930139198757115286147494814725521774632317530404395970439703663098319597281453781328604210513829170462616141492891268461815554908957565048760657320006862810744956527452400271722065385967623058826011952596472473834568809702033654636957331397787986589406928387354109474848483428636786792262381725225330659542815532794936947544162747653072468277047506843067141995332953513618934371633310714748747816614999172331527201183666895930992192320854539366066338248795382778860953407125966222648386805488426026554127771376960597916961376099131253349445054877037781607748392159677431589005754319966799228262351596137408361628939290712555349042904160904783809020321688422167249406096052176502563726655132103602078381562543720301107786743918846296778778038982818273669141527029420493536589106498611671350215986767744380940075949643955325029385117183892374554821331371843507851888932282603637011327794816294715155525106846676205588897728109212616009191116541786581369363973135138881423921787969611426989898179424903857139410692471380079497309246979764013544568997555550498966661749159565831312464599012500556736838090178923676436388576212038319795371781613308390032639176799330117375529435085040470186440925824809981376634049836965993184114663469220016313282989358222213971648969508157257617633399055600169602674236856464868924875591773949310604421725262686540208732783571093247267628230778286967057236256804685186767617009105725169792048906319609314136499580242246457697581606259662004359635296002294197906735610900919857230211770353781726359152528315532126903058436261629224057233340609296856077622943707628285208692748624193078679943806130590114280128927362681640750880878606648178681722366666830195308282520887671096082253740740293826771196369874067180606366005916788620313881588817527809347684980581002297233471489617278118689946610230942809388839187973538373120753334319867641742428555370561378946629835585143457845453005446890748114527364018808335870319421676173517785206483971162989616368283198851811423935078862803617042209703037968863948717246752341854471259184391194447526150615348447365720833194581413064523967767382000500260588553113974185411359859777243622460735931570998493766776018507934635965150350422032367366316078390111910313422398942821557693153425510967587808000000403536160717304386273451352732696205644209689709649687537732197332171429726464356118243631282461966228545011888978288354128214362205542715530025455822545161741365941288884010921792519862737730905684609023951493878244327032116751739117332393411456280582080504991632872829427333351111670220940952181739802027048303972063149322722235605653201195068606434226008095330366165004982854386755363918876461132195514140191319931115186162072438146029029701891541527233520393433726609437432582631348475065392223196192326430691015429454160248754669138827460392933007524558247027910257316229299354051331075405929315201919821865377755591235111471725091909674053523508278511795064037865996773437046291151797560169184190143434006560011637668065590419777867078446850767662378724825446870249421193830096288113408641251663738186320815056450604340005117660617307198122631489847867668484208038898985822063092133426512920262052759293371113762382130478395210923434087978776694868805091606641889681785160772953122351965500007038828823603400683248974015609967304616747373766227989644467439328868119195041120338434448222277688398180528849462389462116560661139012180208992403079417423715557944498794548135341769398061503103676406011747868429128688927562989033994312039652757852728806662984799451407592870277279106164162128297068563574465008538306470852741641415491904162115095384748850168400752078961673692409203234345820530828723397667596602768409811183747807054596061216295000520399829719409173829008075299788288700569913729968602311220794401110882648280187613577373003811808331158215179022173218885692108177788394686759932028580234812511318458859247881075632208207096366659361214792440003051925031650213221870803888150411901115503468796615136058245429896418716840168780721566480076732113091381732692304991678017115636361997201967273836294811932267594481610287596615081810985865343343958775231580847035059233306090825439899802588113650468575236269410262774843669856362020507776553335319697531244635239825819855983682909812710336512338762502246935437843988921962099853817643235994429860267010565810714231593711605112277449798898805308217946715373142439097815281681873831174131313242173010916527379473645299239726145601038396892233450306211082236521381746776250392587402232921469615658393358116807227951947565843039546618735953473561333053042918232766662396257019274043645622993471439394451027244022462958025442410353553466425585591410836401346407959020660900777678133920488407601157689645107368916892364759203086033518908817954455893165121864278721011198643706431041068752316885328081374834948479419472162741873077456350631518888801707838635224878816822410516744448450262742527955780678343471705950002397205079956213420906096508592358614422436005788421995693654322816763463165780004484295123390287167239778839046551450657275664644574179041815307248036046967638767844720568795975774982964830996149648180043407623819261425137798350567748961070871322099830034746587728396596348975169014219308739282672055161875623722827297626591123787859931708247417737126769097542965579465946783582678361312159394036622176420396794243426177387325653117147779160688846325878675238008868771363833202811873557619688818094349268523877454183991101833024372104710331424442680854090008206428045556961400887763956783826147828228722874960698044931286031054043262259412824772427471504455934362837610202993125614985120061913797995955416804789159078367387528470162792131962085991263926557653545891744105146545687995767259037003843370442490065531408914896213569030832041522292744305921269839338308812486622077120400230581619012018340352480203437510841127236156426580497519002877735220999945694765431997154538539161140870410916120297441088335606567601932555537559409797125756326563071430549131217097586197361918502222352048348132456171970565077783370049595147570274767986183464701965955247671265153172686559504076239240988585389846151039470217836014960765129938386312440639195145162270424222911718321296720848504180098577412815441941955605520546238637433651491716146663773585261414636487453509308382529007676342338515084119916852216832943111949340724157573856585162214324936101198971361574454586326050695506051092922161472949003018893678311608264463878110802902827527113846563819888431026408923686054102981714630313278936455657587703869600514503355972344018818839771074887603742742305569876258477048560947237614986774817297414955909345653037265990946807819443151973948485033712653414089486674399346901419806618929427595731783603098273116712787162634845152135411064767412004602961811533167574126544753196705855614204385609857466225933624002446052634304066321959567669864237097656682865094042298696594420997020196962530139209556527604094852085578035270262292717189236232313502376324024381648195946444444561232421034137769557600884060586053106507433092594412585786369971880581728262931052057164205354319689584875730662234786865931854284906428709375146473627932005666449287515949062512515059602170794861770943746534114178537811948918763343282395944616655077263707588374610423280850171094124028322099816477908114320375422813487312329601252271825159599599028942963955095230732514039512292781818154011101487549542631720961650492831306486705919279966927943869530638116947380392031764768518640247829784900795089729757113116222367876673686529283182351322012002594825311489985389024096133883092346507007563479333290642417484257614585602986604868630144461454102231525591761223864587312270383322238924105044203351598246686942256126155853432652086437443213329876418917487340116644354750482125667276310670883558613893233420261715043484342614356986224058077697764445080692040741657305681745380646419530263566342492836916195879629687389710653628673299214358624508329662118823577456431386819464438994874972727018925911316516015983467010741518760434648499400832024944252579903083666365103685916712046228636234304805973745221846420104538624822740820075255152253668626682618513527497971984284864044985323287753782417862009226698232275457492635645573972758331732965452286413764885056176681944650514274488379815452416265826578141045298610024156231129910326091525567075273254494888230509393190833386027587982763240530421516633065940718446605633761195866947329554684586998967447530083812364421353200215841103753022277803424177892296976985968780374643611020326281028666706803642041387279610751549033361426261711391195946493565031881933773542772828558330817701508997556416042165629401531736836044120004190622164872967219131727733660416805586051346910811243560268278761708596944571248629962580686373711576374458266923609464658308346413285998731129331729409446003764847388060572250577723819958045017595794351757873131457824106377881363686346243739220058700135350930774202132009244975907502354859587764658438203642143948165169732503380804846520013229477663101817577597695507929667501874869495434640070998780077104142787222297637006894270897754464470565987764839400669887179167631902508695859687677484537658882553366626264729178482590616967177457370181578652080123222735529739661521889194647521935350534416257021005299717112056911099111216389835344602427820458521509879344013973309332567759110632038687423474882282063661362819144361192530908654029911447203131444636687148513930994210851545682043032709337028194806751757483491744461316133773074030986223580432948448450270596735891254916367849483399940339151729295716911265851728064825294251863500122811392356525566979268774604482979480457332434924775580255123719772934716038206017872295726526578985778410859433621712393386927113767561208384907446811352173613420089816034392310071170753401144968062118737327900617151160784496274678810910708820690840428915309847251052718616406308400701112913791759542732595300948676090364878036862574280477446149169583293625420885323899461274361081099544206489504810303406071705451149063628582195975497711615105937645339142964947302418150815348996600394210572483266110083894151752434148369981560379736944772350815383353050770458581417961904490458799451083209004173888934233242508715769933987115709710119263645473080441567469323071031194105522382881438822980777188009002521983850299941516885176027102368834952618505273684029565199678601712684538352092087129801935574779085552930644979886030351614948317080921187102433179820510104795463574908963453492231672188713214266861782656302492702722019538578237517134276663520789033477672865529376009110772465776200298510399048445630837244806597706712375719003138608108694689823435819532129830396505455850598344838890641836200535660399045935556389636446874418590575693875525873811747833352322799790405612909981702528166453411344906463458058247363984835911537465404331135157551385660875158470701473695861657943008371467527061670123770753908249909100016312954651229844839401668405823824203008188425156782704789325085184660980565971839557997760806476002784881673614004499725190375667267216783179248241774393524663801391903754109855204909946893400529724589917791474820224918414740623047667377961006556529017824163616566132358955789184800528997930363875695489248119695036559441790807408333437649087388858383422113183387847238510552885360916856712366438987014513682943369974208599587938592340865761438282968827848725230230155039799001279178595071402435210474663940579152513909228107626975046220665061416403127020642233615584570708909024003636853291487245457877804022039566251018100806320461119199519517050126575598983646078524038872477546882384788267973081393950148271459412715144730733821080163593561410979226770227004533360826215179010220466128374323752891911964276770331735908356418381269810769128524251968891428767695823101525419489595619172548505977444500028790610254374089047844376260924309101249113408698397765865581768152190390818077059387549111153400492535008744369025111535214287896519414504095375857526406023309294155133418702887746937419936307401512164764369394412702856297050212524496452966453405645245218777581956578649827875529362574260730977106482900532312865243803246930075525495229093558679188581113475507484417133183416171697557059550436168548021047728232969662889365640943502962433846530604090459794664435394242101859112448459031144186263015760151347540138457880394888444446171190378208984425943122471148063866874086057372597982405572610003974012286255573091112781873164836423508471976873509332309855377914013117718006864181475254021622081529992644202531859663944381696749516152837582722033416720484393600523163708987921486825096483130756100738244007812936955789130273396074734441747385293607982939503844464088695290515909017604100784504284229788083529974590245707207813033208380635853350079296065616015291816454554389811762226150892185048445401293713043946885694921646539476364661336223553815824382418471227820994237171368258494471510580769066246337890928616766060175856064442087637226294211613165383507041719131661486326521054414996042876242167899792728998995622656342975159382186477106538049245474502647965394173475359558720597483433358825202931058013050493659310530171752194154049049114363085083768833255093739023121251746121920162817804978456734645919702514741022559418078895923809661902636279489891622439456923753474545650982982569330527961533998259264766925434298891086044498086519306995518018327158229084756137796346530729372988459313937745970352622894036069842714222406107021236636879565626835313441212848690512420517215759496061640229861562454318405443163517253671827434749739500681834286120614661547088521159927799459596476495492976099801632424363137485167957996420104461444243350159761548800848093731321965689468956407266809245821811602316407107562688008707700551811103949245828773047615943729342406269407353107174726040733261646547992899401749583084819535041380761322706281008393907819569221999778441674770002765857508388871233001129703457577276091343707104106766216670699021121364733951276285375313115166634800823576051547169654867177746687644732424311331420538419655079541297510072859112987233592075282188546665401932755965899049807732151336451122509029989221911387907158329695039627609866001803652050914271888927146517158319641092752436946993373890356658655961116024505051029007523372531825727677989692333891100166813521166655177931643309909391059542225434170227199820989325430458342702808181375494554300736150178969479140622442577468607061061418647090109962883603299815804734036634894346054294514449445708921945126811956211604598970112986351656175141871048287687971474231466377803394720529275238014097860840745846407833575082745042500130178488681008201290779804983736048618987171002072762291793022410701315176350713594680889418130871406696190303291017377911594751881285562283680250484243256890335431153322165032787339841675794791782136153438944375264815313958046900911045400531649696924979150754201796103418164811533024193435255899795836779187000017336344198276693420311255076628084256599390223570730835951069981896895342701451508103882077850278293293634002166527612359649067454336530615489764070000007520553319996989843762858247613831105858979538133137794389510813151544643858658879948990914980507949965643560440675266427538295077054777492767134511056620520220518290138703422761342033694426828324275070140861122083579718997197796470872515281460189936482587274680464727069831535282300774200417245272974800848527487339670408009296866923316864786440248600194109022912805854128468536413641274430777887738776376096059105359442275347225957889531507302698799990446454508263393455218594858906123079213913027540069442394507067472104543888017357965309799446326663999234661894741127809343707139390542034940859082083760136410404149974385254645766780346632013023425013466605317723948832262236938828436571175101338512691514188504351607993257021234357946239762903161637137031306492016719563272592395024760647488974901328323158830589391485309445122485056045058786058953971843853900180655984468338103320852466370742209791753953721018699901610148766276980209235646101647290272158261493997699461930224371960478383199922802558457377361672370153784620971059430022539575627423568856925212994848774801371895773159331652404822760342727575549332353863150244309851985632569998342955584362339088436480403429489358676795301810345398599939820304990616166302157661169212581233042248482382038917938164371101593912086089927370189804478874072160663915059938193518683753352962108395347529650033889521516455449995436340252682238953839589033384330858768756434249655914316708488964693618127345437483339053701920266841679244654141161281953475702953441855517496868758019974234927944618251778466791703113709419305003795616132958358590960483854013878600945777751241935388361159867018687864975747271594282050116495998555633741452986952923013084978535376525366168401446965832004204439579779850186094199990416948548198987188477366030033069778300640195795434749976283489900464096768380351344363426830704136992869445874297286932973931007681987440071037954241013866606085286003787204029028980636751964771009712374965717955387896690515831866584926427236218863931223165676443750075008132563345971031670945335553944952315490576037523155746883051318022432113375064456355632636412132625886664415697202199063630158776327646870153292278150243500009360914464302429647723024181831110306237893461296851474002288692664699811890893738851296680333209453537097800187444282394648191061922510225623811765246411144096181056347998466378131457326326642588030283492116998237153216620909624615302095547161315439138455177058173791713780329827694406257984665320286120040468145774011377681702516135052513530902976674162903848718165838590533388425359276926869862649022487636947592161078596862979640310935607404249865711125878646271533817819468814008700672946191557979252578761845880699427809828959396498024832101154429156106052240028947233179165232331585722770906594211999214601871647683534415652571822828331280549359070731469056072809973219516810377971185197242009246925488368985793844889055205016272492681371253213628093340697968220967305276535844636273612005515920715887445438485076870598400720572537935003780056167652501813564910673195508701255720178727570893201532447298495880027970242717569852906862771328155202942697637387801970067546711906799618522159894229894090848287911799308008682515687798011342705505764589132023398961563515909050803812989775628416890910032739026529637775351088072725103689356128912524999905208747006715169510587542327458428526240560926046720526803785443936196757470575465661234535512738410287661939411319533025790144611852796117904905888135535403487324301789355791835851030604303802585654417283993723622185610555456034612715590349194804066420239737866710057603497087000342459655926492986445937285954208050198425100812348253395358071756489457578490285833859379393065651943694776658924511127649780426820837583842727636687773744726744535648288459146913506035787401149988817331139996314817499517218397916986063831235509424669243264008460381466648770843181246792665787134226401530353535608757088300307469257652376090619284497287352892598018396720379095196270888744481507246463742585617383482417553656850014719417094532435766838297848503104771542260597746456334530179049593728971711597432146266201863168345099918252999894475368475825761937212067692478759063478525672835418295338300055238314863265381099584468550744712256569554165178975114031888176039158697399057841680943500788619843405377817983536779659310580524349070127205161126093858193947022158177118635474265917841482387286010533909984327416863782345401188453039563605992237875121727508428173981227381595527282102683113698071242485601542095411556527396384531499903924246194580461611370356982341428610104533075067763655109911591104777562661492555253711611844859894909010101792167466947142794375487226080020139270351559076264634776633079799209451581877237689465662991733033465826593524282884077091995748568807951415311928049887741312066375213309634827624626712294308045335854258296073329284436748020255224561569197884610894419921525683874012697023967898201966280077795909238524070164127564373635522009944011842241114584525847432609073686736748095529398796545193558139953375256522542161003651889428690018925382724041740729080368422751834577774094718306433905289966162884061246334238436399451095380543697370802377241066180823483423478504080978744056618725991681397077492384411303163169955950693238579357789143855788789213292789383393831413767122536813089197360809052337803697573519596970376947165133974122156588840639323316254536972912860921414819208109367369965815280903479408512869185579649407336174313611233101199698565560333000065531532475281117771385366832281518738620515840617947730377504310449627561748407933484461161938682532920053518885019910706715932666605322076424583417202809737036058396823101334474351406432845632179145474724749567255637334614758606672154544991883785842717173385439104736246768319452737397352984230630138978903714098789054950261048891848438074658468943759675475987882721660476081659824139630443995874755765863316417220971431495979925369465802346704584974106003073423130947279820650321136816290794169250468594766100217488609227770847543712292576294095254017642973831395678416863031858940090960411631847970419901213767950172865828818141942178942315962152013705740178474717411053136062717530625650576194584363178261903579791188356794896228666882842012219505904275169366463942040250285970312874517581361947997225775145555634250461659776526792149701527490242570521653503397769609607754140544898351618086860206911747314863008876686203839582585231775251743411490086437480712453601943239968163853139067847585313835568806259233822524067842759014681541803846257942299752459817938894567818857438505887137995612484179821680698328186661218901388583520056117690100907351516098923120543838010716762128662511667334295071584592565601509720350893791131744465363880246301886070146690740344747967847013692688106598868290213403237015704340075440152495908159177410261695931646131034728536967042857978510825633317644598416527907137487275554515522791480704014851756268414146857477021279675744538093592046492362394802935933742397383104613795813111837742181526987475703009021115565694961600793049230825461612370995452948786677539831617902377066300670597229661863183584720759185192606675726024900578762941083909917380502624220300240481804484325748573030623824602425083127314398297205114144405924856322724315638285021520693405120051731745079697870561712598383156518581789064235834074541466548991180040744058923732175769751719253972113119740482629434436001427202285245951584661195545604493136689194680444500350651057192693004041842949381646480099708037655449198056677759572499628238598277543659250785851844894081105805268796406810475311172899838951645313022203004207676903920947322335017932961618849295583629537761624027811467501549506225504451718190085511785543001367086893284063084859379578426725029425687898945070888524615135287465285254650623333272430994606327817485310906642097781920338100116178922020019603692020056099044194146779050393361432632586378104710984516677447899826934941884897645746950534875741198406390574106430221145262690322917408334579105136376573201193114284567555808495927897960150587810338718501481350429417559444052810296876683954961282067283133659276718229864734885399525534584535458539675618824602941240505131669189668593183421274605355032127674139576753600557188942358079170476856300452409823573020294862681708035307820228690619373477972928163333591577512295378991701455617702114696216749642465299088905707767997926506951051023614917863831262753178169196224830891434988147397988319749772895524575469503250453903318527745164398978618395206092500641479177196200168137346151876726003068338822693630018168054910464223632959514788747029578605276279946413925469000493323885873803177679205663593493583017572099006634521497353185907737296072665776693410045514302779848060955190334378957299417516292214111128897212612423094142602390512987973932084680010612995472369982982515604797992552766564195016705556265790230484301288634063971767434668299899593311623705652025088314734689485668529690437334576874505949290093748920131982220714779227552218692683627624650364922977383687051395421932458007695933444013959325262545213074187719661412580361100592417984214661671371354864785389642361972280370211934507090973345275067073245627400943788723268042323172613386264398738059519078658314760979965828364121624372404037553212370611182494261291647716690332222990300275643054075416546536601509482864601165986955227504970172446865723162822178999887814507862860733665845709519350794627325413969548612836946077153601543794812230739857479161986455135565435068446266806660255449967250532282837371394920415865394279537761453242252372930073295168187265446718762952399030380601835523421431043909599270877802745122459115411142118279625066109696088203815671162832558475457297123916058377861148725281491367955563467050809483277876409696661026018868213368512884275215271782690052516487505062903502812274640345380947300960893035181830687579665465895306026357805759045191873477811036983822837360303438812009593438620473308269049873288221423926075798059829435205666352068540175242026993064145872444379651282827780006046986860606026233193536542235174416838356284105151129579470751172053847863065507809697092980018104240600640581114957766598448418184277384600751639570172650556822262406632238398108778502041923366911124850080841464534602834045271624913906943787141663720690252642548100646594378907570423707422275439264567828270081664082548045096338204307926744723639029246662784547479725837382547997608053101949313873797312537150844388560477385151790311010455121131301539661169411947305786231789675687659635878058496038766458657722129688618307846234981236805122240553539961099098193189126511993460552264947200769514758325254755108360613872842136481539099176058881418592888354803924362449523700532720284037035644887409503216940902753195173796640831017023218948390402706958002219822051389469472991282147902459648735964588800876767821255845679677988061883722624544209990442378324631165143129197635169223558547469083689850458858720191411960016786440830370936982362226477459811673795098103615853088276564387035406679220729546745066669213873673829096607708508888168285293104294506071645265734871140460354220304145168750948309885257189474297674737855238848265378843349649287818298028701954013752515315331647668731132606940741416201529830302602851803424031402929676762260054231686119995140671672064362069642011985160449229906475563888510718187573247900800850147150240135303218337189477241599625480341986658553781087773482519317294415143186791416287075736820456296725840383646306503474529104255559936510567617347046778136976497407796721277737792420709410091202727601773441944479586871888395620011239172123817479353401637859391299721070305277465252219731961645153679605456283012271291354022577713407517017611347986126212250135093361814695470342779386519507198542589898858030704973588261851863920346830488253591822476691766827315471766641020652107420444281450561815340518399457502482152041840499605179820767796278011445292900841149164403823443780639163904640741316357354965091620137490509596601292398537419667947771496758067428676324398205402051172156622320071479379451557002785141063421398761947532275174064672141937163036677167030312516263030628864103187353648164546965597757909877794445150003309308021018578158751073752336083361691320258956251836996417438234479460219668050401071462305964369452218099574295278478622008166165296483681259768366410886594350868149121815986694229447253781306111953352212730872836236729727901356116422566678400795794377341421825074353440220328044143831997575156690019122504735142756236008764824321174323162952286511479806285570840085882653632045422554764345574317369003227002531311517826224421860576509137503817585358262761355070894090856727879417132999905392399559581730081240589544225864489008961537510362766416845407506509085972546984549635618949608986875663005459014455297096990940593437901460850345334792458944664600512504976427648288478556868987012171441531683846710644864844349007253042050996344321811635518431818888830101374118903880694435334598643239861496248695887602963524099171327388151756579602246316208503936761069947353799502341695335538413835519468253706936624136952336755144064191809454166128583145046704626336601890799861841964474945728290871456403734712332507939691587928529272523250723589729741736817743531151027291280524250405420033748871749983747190715143079687679333345464369291477789136183452881549296859769068472938734547925394512916705052222483268328968714752132022275319438899095893896840095290082855265681304464250987524016517122212371142782125641454703779751996990485505869361806740376666518777135337901489015590347238311305547701887122197071710528148572238990422531610128229346715391776341377035810900170062591137759677767925219778360169738367536050815464441557245874199867941813559137783173120250712009176970123638705641970842799333255267305732106293396032117037131250307780840718373995981966363874048025834030881996187646918879791131448834839962472361861222311961793510984003196341899395679739198715139386262297083881389470059360533247754617676943368262683198748394730983104232242173921843586282894773067303681947944569034946944625872528931201973723864700403971614640402544639232737131254065280445413843733672906202398488370586193749337968859486760771361289924932604202829492175686330950062808158606595209883812769343580320767270163791263782637373854409215238347261870323598337286184224749298967542880112545162908572654330779153425849614867611301008301636137934436330102351233831208605251397012897266774748367992517658992372190698723873297474552011601525016883154617456270771199945542035911523695412396920332092356008961267560173098219314216652405458417595021735318873751658188845268559802798847256387572380150832529137744545964443493972667728501541373018538413557835811970363544855983675816660813598050578365537484700577460441760260928766877117525462317313824490114388794400314552054115066009451546277233918115275357956069167169240799456162870430158706440930759916678986424134254452522263492061286266705024725502455023889755200739194507306720836017228268411597063316887026351778538135349007395924787803105429610500797241121589082854381235152013003647766034416568572813407868642723458526231044571135521211636338073625786982175893979362277574291895304136092834415653434707523974266914370747357914163451613667124541477245742628796593623127239440192377413111608804496817353965813000347793913551983272105088205926787997948059437212447337043109548279922334472416466432339917787675122609396257888467221987275109078391664569499176128518193646467284686287636212416356359479134821349831969645149801556738719806990160407008731954856360492457446638645313514885618704969645228104051867010833472267797933538494908394206616822291139374756654425223044055486503666244589902862484626061003066957703926144184891190596113059505630699760217479215711154083695962577181474277133068540005036479081630680266854016559276564165282919875492832548232256594734535087490313015017930595808522239300396139154318860868498304083395707575447172810552244362365106266268219034992403295692809567743555108313734175300214723149781311772781361951638504887092661178493309099224474774388407999324460295022240416138412538214539012727197667296325043648020981425494342818843837553173951789501383895490051830854106721638665388060992504152961462318573217947905193910353123639242037098911725179840096250173877217501047697912999485172640917976615557377968446899066098557800467573452847733902487423062681377560194824300353302154779202788702935458509611030908701624318112519856472247769745500886389357462130620514949635039203043616784984777772754168510207963290782507649179197300487793807501788850637391718975684193285650210642929047645109738303938111436782331416314835483377380449475567825607358662557948239106321337170134029727847727963448165640146805406775324339270625295271009545327417281061984879281222305256959602696758574799755477450734972420962598840685631623622173808871644606009404653284523915294820394155093355069918507196997039066569706726747895859873862356445188065910205827008674482720920193983562646379412080665343947118305611189619027002677143292074254662641127099391025327069142506382247854132191143186896574790945198097495019623792668515786895769646385638889104379256828164630114940312045140046523430131129092088227096547649359411488770500074232245781428689527313280943046117131407364099051773462373469311393927062041971558825680713822610497376469306323790650897253995526834307062841333724525644964787286550118945343783712034013241349590025751929345854332245561527159672676774886237204460493350936700679788538791919977163386144775000374651306172848801965983809795199897762173022962178839633640183361774412028261220768060750065518611940222976584763864321711568597291969521104622144526184069172934208832678227217948580304927634222754915857741290915222453060612867344611361146641428475057420044836796613411213969732202504104689374708350064696825741100056887407836447694454032485671988318708729518437171228692512196058125285712073885957054671645783818356630482359255325552821189902459349132734796873841022841350098257202516687286977879106880605360819996663415558845365841323709547412853946450818385273435390714554887087097084018352910773500109625664744182165345115819272179215113792090457785277891969822973137484745172458174847306343892390890462327164978277759785212400858845810777454829835842042071142165442773074274950071948257984517779750881198301524791784546095645614214994248544167804636348862525214030876893138424402018291070834370829156322458319874128600757966064300687957226749798180767370320726449504204931070508517517738362116276243068540441067317771541515199466321608489689083788241904291373963025765522688205215732860227415106875433323655543833753835224324058416832319048980003762676038633964996078988396090995962634408462508488778199671004738240851767230580167193498081771315222093780599107289045918004781285628475292646329549534618839769452044766556856946074724916820534570634747358227536272212712003415010092247488762597639482374516980337251194304763693210440481093853785644293852227169353662267357325034866569712833588451786364888414172423663606205138919172753518014555959600428771173119238298771441513857211956729197598037014480517486271701288543782692551760427177150098661770192651593503037020797309305830906367324637581029329777229365742287363920394653060842321815080765856896923637565495091263836328301798370989261481572646818181656766834717381112946873761243304634943418559137930418550991034250966217089482463260966905250260161683328822339282238702984129215736458057743112779101150181506877395108653703105758992693488619567063371222948246490640926122651241268975965745835878335930485661817353274287519875103412515203087698638513899740813457052045970192373013396182680155924360720599075711947746800390406276262021787959326907666214029392880869744413773269195838822604257666442517807276536513306532150836401701589897621151712021255537339273064366062623364274446877885430831661116592688017065106729067825634415854701109886208692070976041731412628526730724734849036594297523527923770334457321494220669744314388700115322327845890552057786741152157275285328124450910293883361925125425378934827329948378363588139703693017129869413747557469649911804611020433441960723084226690736689936812980534771595560570440762295650612127258970734504221517146936953610711184855526748054285485681318471021553122816856478458358468992742981376578079010766642966201343053690595156299603013196110022142939814710481452754812795241256606575379739306909085324505411727877741817151940595853162456228100964544942417479209603911899525617788888509137795250227590760326919554854381111002262836204984103465756324148557611867697029479283793719301098403006407333715571480571729688642841030264314947522088063555095114648559115681687276339346595856942187244381750423267366977321553473155219292613209334796142903161925066605168682190487873568381994894057441241153364299957619446497273688446795128831907085198252314752186142041984534044124895394364818148069416129654571833556274924017400220609816148976133646050421545568401555925655534931721498493923076059368877459570432900953656473206777227377671602117238286870262502952161452003836070699141328795089257212898951232468273432219004238937385357548285857127708747203189746899777872505557834836075932426394497401108305192407952695821140489646318231595108544544777985731053299374055300764871917046911250355307500026561615065106727162598641587925707631353665770962222691845047504217973914712338203435752392060437148237992248994741893893601573341798055567989756678043880393222649125398708361899002592833539469694882685111088515330450343505457136818757049577642369808090911861778953000889337790577538785187079301911973026474915640075372273074214627968600411945236209981680560635613178937093529322208109492759377749448585490532945189750943412787799699171493492405159731418901033020567102023908270578463514703274437116799828598918402221576557011668661714137093645917362628518237022275978409157129034490762017121068310649591903757299550071447230748777184997604396009256769727137468186038470115854061251934399504674487239740582436710363139433501848659067621247362583037070875184946335993760667450708805419057146561770040120319348947605444182548247392487212741249422890631698633253882678491756692407752776701580979112466087872965436779417097752923142285728993532550686619133571438820698865863426143362832966686334044136535282330699589669303042811193567018653469195898723964317038441364601539081082718999839874419506922735378611640411665035636981814546387477881277847797250806744791536999791146181642409859604519263601123319499099382021243233216169700366188812634052911806077244218860225034379578073945894905289891261552329498139820186303158611410439914540029485666986972742090266083509321073070945882454400964603453909073698940966144820791893592574952082571380888779549922151957563952387943188396995402198001143307739854508696453714779785921040408682513437803998916033507241733108138877183964997987387828879878389451964031431872014757160574518033451704687347441012668101198303245812834558051528812214024497560039885500454056758329288537848642584201934560618106026106766960386627717774070366742195384667428664511736139583719866163896358493081500925386100308381405329298742276870777446164969011208168559866403071935534690925577409833316136520311313750996798550461124563630655238641633999396384587134227315541634367174216684613727576999645072721020255827300987793124709689928311403675901609135125684100675313153256863637302738568115716336241202025074206095809874122080837080335905914584618509459849990120796055299024387386076234702733641022272171603831968821529531723282532028758297925627827011796986194939228633600674975749440507451988625018020486382825515930567805434178329983425232308050552504336650098989801023119241495868772293804706147947173662729087909772758027772033170038228538056048701000393766475925030479951643222075840786127902901203302193552401975702523761095807076805859529099548642952282453852185807811403098732336572821591078731233510734306196102849222107559422612864630224705895274728620447725439583330353510687987538296544330316960843541461756605143764043884239728168927472058044275712908646996541351827036805897217027036467003340669010878148775763615823887483683673033276251102954392430625188134702181952879225914709324328956437820717050069506788273449830981586287527297776870540990662693827135180880961286427733379661613933461660458686426000705577591607771317788432925607607923668185366130164890275665530137990705853949431213101120109724929493000761300070438636193663699731318741222409713497675101360341199146735897418423299484456577132066128155749660275192713515540657195342147296754372758393139584188265743516914376428059038922012010967740815637780691176322000726350999600562379130900177786266224258236625211684767007414055070042649547064270053062882911614507980132254107726899520431302189536592190782840055039843528944156563751011881764631045249399946562734073127087661503499839233653214304926198670594374457746897006966867119643515869044417434729158568133373909570449974334218657068283128033073028141605215039554629475298875419680419923566919135776604581785381836942100877524749882535548847382601217841014289114642933656979123471510698585449861567662267818119267017882552159037287635964921624499866577475534468932401947375602072821086399410722408039331977079134489424248880970879547915625366824813267711781127691641803370677192020189872328850887520995011200995956703236295232373891603447279867826205732076661386970015881176815687566474346288021858413130793564510816781316940355264414282590464805733250157548912638404394980850968797933252755475356379662128588696122634959289084343334460703435448570950676967388436046400776076159669624178297235336117344378507201993366212950093206039709660597788368470396224029357845082274345276945202550665585159337718360800955321148538613611466852239001907387994496203539062122725593882641585411800190713046541303072136319974700164628502925820699371673954032728127329697906142007513048286372291049135806126404477821269307812751966446369644611494373923730074846525778654145663934721235153684647384232400202504781201955387035481551197472302665763085252065637351553272398801338874991931019673618204216844866354176566315657839657037137970951435188358349162951748434245618587574880256957669867484671792811262388267533866542766710671428271422352545258386549395637319483222456260565560246685802275629313353943842334445839687968803694939655584617724258798583503306130576368544788450945019893380268952504405995394961791167194641498262803346065763943177901860203424073787541824964425635387122714047949256290768260121290276584485836920592832595003624951169289478616823649081141586719829654756965339505175898923001862433118489527110988735197662447697516268981304221135821231723740808061588471282082220621586059347289921844271580859324996833466364254132449864624489763358905910201473091373320529620877286561865813905279731858148458443086701538922695866603149975593010561373334016587205780678083940328468008940174348074091571900435219128777579026084340611810787478123739475582625588013670467517596796100744332554085920454697618380182036655155962124290845934968048648337318060310411397940304190787227258045887027410399985826689129500960303248138960976312967019044020514275543202679700521282456878910668573062405450959075798675294285554271486499562940108135763669578382689139532024254085745563003325862760124681174133222000849865529131008995169858304148094220118787562568644375381532065149947299430082558172563875861284589190148719010991636686472337990580345933825382109480631349435550714668005256690482523146267848103480717449493756816967166783979831266911010308174677116182428374082421361506284842306824009395051611501550798986016627691077506772759777621234020694709627896283948301798458465599207307282095166977106432645684212780481272914646402738195530552887664122801789665840899222865523980873537599240539850977978579603065290363808529975071377868294190387460732479138048978103827729602425725305431992123678117919772307939851744872868619482202870756762183726321555477899534478155091305423591600495802623976070107541511277008037310856897904437232628096716001520437697310980030098227199736373416051061278084656038285064912334984574525513570400275386474322321290558274685314585718005659812590723924961282637204297773750021424281659984922912736064068329003148549120333078205401408131780422816022487878697732701939276354853753392350370607314414900299970439543853674704783991147350358443925355599033171497507288013330007551264997192658832087857961723291875471050049212825882591830274039722460760814949567720818036893668115935696080584629824283086460807036588379267416204382998018534103992043356735841759775074772164894367571394567652920835034129957423291187642197190459810178121888471166930377615347049309668314922436607207438356053232802695104352354477321062012335409996602874157992876845129854143481265701131580501832486673908319459611312305064343836166571510039678305475592930878861419895438869767287813184638771281208187777391457755316603891299141035275307836320708165923174956306817232721625304786428140471308137756977492831224206663654930941544924465914615984100572977397274170301481799519860758812213285002695708151990744176525282829291846329866991091190337467085964012466523035729663110617539008443761028758072166900129911838538215187344383332327202381408102368379076094991332423368062532456614503543708129150085205862087177136816519465887826248533432188935499726027194124389540663059496047389358064434520950534079563183827715006475436139140148244915369307814714870110086380448859130080594429003492025161236714630143928425002522170239660679039881249059361438423710439057153998355554939441767306724761480069886827232171114467225334367472211164107016748255918771848846473615779171727237223859379785773351757342731267345787999211894803710375543462349037621964057275580159475987255297197678571301033044056976014919574476988744667348238441677313637475295421368140920271525994473404717918201624790267244391914083810801892022975533233170949806604723526615834101582734947554647186177059208604059216441056340606014990627868757982867871692550338617624111989394286738267593944055970913842256867393849649056867124449258911610072750069248651262554464097636076369827676124973277696742860382421166701574434366735328567464121026994029023096253862338053834927875738709867146895568856496386996771103192215031674883397436591079054694148328105827802456838459685685150014681540748709100829710070731444461566912636937977964432938058474769883279617289117593705478936640313029145327349124979292843625504746595089770977295156351560286474957560384110373773580504847137546606864876480904574673299152374550281281552638773911806714430469747386705563333179435075111111680586049872706401267145124599495115359080303802123952647033461030715235184527281339646787593051578347972879585376644274265491660878621232497783293189276405967489151579280893946436973154905137643409438691563279031964685045403698595554093878978639168022486620505347555634645274856012580634492680696296277091228905595220562519174646819811676643256933084362301824153340934297679520818516140589922520790766897359313647061141326727387797475956591267069372796614053269550252607287237764024491840132460813586767891502533846867762764259030523658115444522525343431942473908094582335827018916644460998006740831122834780720646317771591834432543310232678597461168871641941015672887320270018182303574714995446227016652030516114853251094271381021556729383940914123630578380085704721319145140434135630342083759281889915013518165786479313287535678496782172961830500183751749821946048593485854037204340816505288183316601075915491901631507060157751086558228502998807078635001865322016709465471197195241780817572600124350591722201854900944879511431741880281830294056106290396388852940532466804243437455059019847658545141293959238375871414259720425113466820488806612221944883595278671447471299632822088287780262100601903237929760196105605932477585735869995007602929012398709045776595403963943648624427553643887406793916411378404501626812617358346964266669960269373618251218359305902322313040770510258265545078747567173576065048843336580902781011237398901858211489625860102185766195717800823366271783643586747703796988790398078337758585470409276559330558557346382235809670635642375588553583060229694892645821342855831999717047524398498935957071490088960852493438113645206938184037621765113295146986968627084471677316298115758329408694390987465778829792334424490595270601419561078335496559343104161368590537570020545021035352180661807490980621106462425734569007528877098388133026435998992482522659959942195727322141464418515978316396604014753921150340573308085378539818060449568965380961723082570440131874071497259093785936037264998360466430684995524200658574569403460647222351183059519592757323595643099926273902739904540103006900327231343429432156822651637902479142063274475460489775050385719052461073416327985664085253503889835740896258727345640594582679267657127951815732068994480182063045946288095057861749286432750872053020364899759849339045245952865916480934177034049396939687663125212288705730984828035794399796342037883578583971327722919940062514136615646341973740826508326424896770132960701529164018582896805232754239071446759483948347450671204244818188171669573405520345013430068211919014487305798168686615372282818391745598170368113047343371709423136644327063597995259034387803741014051191509379368731481124943637115384385769490123588418432992384333046477549831033211967354814405211562761199858954851147877576723435326573511273633222676270214834154735599287268160916329208541388884872700434394877969968785336791228457576586742645565480025525494458147844525778514916803460801890392376657507985244477644675444548768536922037770578009780493631778674720672060632824203887288862399974518393239536462522074570016424637326392952584707505560666314977953732582864101974838844450281719069733898043678825516271845878530443929981512090433585548275033201392130732855990166578330699595731883624302355069295632147420719916849192568290150472338835616521132084891602922445742742845578059648236920139475968331770716453451390525548434434054937142520275525926502727667097797308334002738163331490190289965344628423567562998394374364179970282544971560584487271585056606747845859412823349356361321827676430624955352870089315574435490420487419175162733527810345672085104091955004981192258351260027273070016277199424257881699676179934920538316435918886315814949834430037167930848389036896906060446825843413659706926624932984722289605996098650064340228493058524799905586952554033967494425709639858436452846362500956162056750541744020849484548123463209704903957140780388901502686951559736097805535641084626089633734494228782935395934836983879594510199183907158896539025340736862887672029353148278323795687659657754931839614661609967292954060943785498129944897311554641245466736176491214940662540060561039477169344351116003740003116813720443147698786311328872301851269265889322622131352281935272982821609407716749751211385811750256636124643581980874038594693888552634400761509895249411058317706699797701779073921215635797682772908836854864575573346695763793152261343684839101664662329904468755498222292321358768558561268758443100877361750821334151177106322369995882016778550342963623319837837771270093802738667335052629554908774892369776280534287792855523354065197613773445749243047710017365173784221070119956424764632250015420112662392360419543101789101011323810901582276160458797755412944195858921203501413986120975536327352315461522816604676629489872978969719285041163358305651741576765020240967049806927889292727793985577683243856562118467807850205553988218187004012704777427793744747038336223543061566073271745375857405940625299551296905963987209387082539880553919543830127194088183626137716455991244736155101875991927281783326727933162098083516379148546713107987139223703846130734656020969293918954639199624241470233463628500819295713094484856721966847866209733346370520949357235283047719122890295029688130020187818451872743423676721003399341414363744721117480588184886037014197990107868306295703233006338642727336511974393597643406749440361442029269243088939728847923594942647426816077971514484855858287991604596737717707514585306748209658339487284026465725608712630459009409438036314635691960745488351523302191902560171656691802496507379749017521253371470266047866189216372233808387302952710469785570322098023091356397538968441037721182916145790852889878085253962960830157105242007369212267553901648615845898973480952191494609703657675927168812725032398163672824601500600396175439195698511563289821243077438413778758055287351411539742093385663488975520621038831428764697939628479262644617936780285051705580058559696004741211823829934795475290508412082310553683645389540069423020832403420092193800433254429804178292939236924070666515898733396763898979574107451993052375928651893047030719377705614058767805145698675105185665649332156521002903371300009077437334942942122615563013359290426894779375061098280459277939595291962069349391971319256228281415415973081285284443996281179694663803090142902691910626747440326540040390518957595023506949510525488996527197812049734118201289481421745675018528142587452772398004524315559376072380493381662886878382102274789523714963177668611949380235357868857469447866807097491334621716297651025726469994516887888478740112213957663725556278121140778189863440553332539673240678557762646158482719364717111995733854688050789835107653452493332094104780945907042891414391099775284260308922953519574386409122481982628067151204796799082532005823730612475300613252655416661113102255109881036980748102106590532421716080728754820314575599419628329405144543634266365003933842731306179468518110543286973436402359165097128951861163916434632842937737502686345385494324854116979846649908104823763332601417740929873689667376307171387422393352879091861661955787798842679143123837834335346996025109490926405327668306649242876206898325333074003640895395954294121961225384853793405668331055659180659856336691011793837074660079557272557872259235467256326421090145830138970145553549928570184971520282263219024485823679010038805958900918812521146077688833503201531368127815668373924592115312471718519148097341725926717993887598717787727401332574426550323686127476215171886372447047631102997816907033951235204051485870513579896855788280782054021438973308106503807166109223358837079923786898565200151196162370364952371192743997544928013825457798834165019092384196604746575939776520908024857595999059235675365998979063694565665355020544198876638488391424101832201942326901792390789261995420639582664107265407027469925952286571329214681144814711387335651885074756327919035869083594547413971562357256926743037380908323864656534334853866259244749787096071162223222517991740604451585155891423723670461142119917487636843471939596669952635275909796335549788148927125063350956522284216372195637098680915533154713026751364160224506886850898638647028024757798190527630201482621778498471610830742177219832276234816398381323298829929094060469961315991359942936499424780640906030495488977618038692599367223000160458369909642608756126367085206115050285479078114487968594850874564512651782945914670783426083013180077318938405490020313076636390607235375542410969269831791769577854033174392852550269961925080549369587445557490633817653926152067163478230317783474467930454967418350717702854206994752722205128918085419527049242621334064782190493674486872315041286632538479847817031920905629748913628259236385237216921057109971090826206839650662243560377483561608559656834248554054702450607577343368647320230914956889773655039328929254686879771724128023550336077799795138878784261500635654604109860995078754426322162301468081000842887704829645371901923163439628096674216510491687796376458390974066694369709944635292915030394872067919964683517067894231009929166246052814365364133001909015471741809498746671699942933849061944257931530497170844938342776053175722988224742087292068653135218633495496300811307887262526565483834527530265175875321847951217639674504986298140892018322802698470362426886472205753828511801431797439614800925041711948531795523358097302450235015462337519924470138934202056927469414846103163741469297766943963686280794053590933817039807652475014697387786633781815244096557589249235112845080054201287624912061071380016194107785510189828858021574755374975577076643227881190078313713754522375703301987798810749472400534784555397382323452475449087146815824755571572641891620824496077813225734631244699266089823347456705116651316246594389214086136290212299907864100588775255134074275350494290552419202797123494885368502256157486913694942327663747060856169800805969696705204541112901704233712953564443722187670343145877418685854868496674369269509524266134294705985152654154870904296655504057051957954520115385046238161224402796915541291093892349752501188406239202506328052769846618670333663208323001663527818948370599401269234607228287905789908729270778925252072742089050861982345598489028621265181530017408005444387967083350966483709959387820269446554733536163824236939303170724274619271704604465701468757681284491707993493675517840799216910975134932502620529438857108322418007406596121825896845493730322971306569826032953628767001959826478560415647989570842720182491726045776549285963662286374245395745556879269726405748926622094060922004732481337178758916508095003267732730642014340596669166997287456118039986654792358218497515752078276865584460302323464427375151139761156524911191562986088077774672864299984070507809482829958732916647539628487582547918331274480089987861581597108243165372292349100409839884358180972949588237159542219415764957166459422075055589185671530754949894491560600942449114709272578046886460848731081917104693935959915618968389912697137168199314675105695826165928467902667921939915005988471045851512098662151433436674996044864266325736337250937669168300990384720385694598853912877815061063625324817987198170396135407457391288487333050690963267600491680272951692066859030932225235252838837283955182029925427968093484113946889294885501252813115087839842845175707391226196906605241400673230595890158769558827608599417025249269409834492665243082508184603733575910535742310570102133135798881803807967462467220244255474150465764702210708575716266027738185808085598318773359866632071985684635776127274131793826849225137948922756923227028729773174521738661298039416852525469020503677080541585972897961889527407549013403872041872938954594058708508128948995653363576241805077897132022908053293140421382609812133986279150062867145552818529574424015471846359381753509957441836667583344825653626178973380350754474330751450331955022962365150459819992418114121891712814894854887130392805818989827313804284993793971900622506615372764147165100855716906302092389138571055605778671927111219920354485548095324752761144849155928636303017817003020084899644986959919275053275118398477804719674542089911813316246024649394739615970931351214942763645008181876588761123269253337112886220010077439698378229013022982695961644955468419721746369401342428764317364642746032405628537203366209195648856268120479651471007811180580801673604829069022817671905194094009474547356748457676828013070502618595978777674390768659921177166396128863211169449389719979172028586268948615847581239290414654157962302364559993303450071389620982983369529925381934047676055268765908660879744763925788962225520426516759722499124874107744451998086908343492753053108954093588092061595542319872984563642714505534721478761082656650972299168061852011032974176524018571897015330994141221939205776410166460924954957259578616770005862619567772596450314153538475518731933613910448524833920585089712799591892602582114322234101689866023697403604064591841606705757296421462940653732002763287385758762931560709393543737401015976376501321695932078083593196312034463341466964750965794644685477327714650972408603358972363024142076032034342260135574322184264198966952640772459096680184232386475785860443470540889829577698136736638828397297119951610561828237604221874723268610033229633145959828909632526062364778578734805847911865151400563267632143395825193550636317008075876916665759382504512168426758260196799154983082341491769902077040048178059453943645137005062705903212964658307161537010571584962266553979731631173254443154311596303697687792514035642662400300542913380038107220331499889679717112525708407741711033199842143658122541406467973477155877769567648688341365074027175541269102927792710821648503764194320438933247874211194021902068403274940830486979016232578477463740619063651805993810704736317344229181308357830074792968037421005585344561456868220503297731744071752472982725621774985290250069412022554385153822075147115004430769624107298057197752441931816578183205089667369561242587644789556183193284581616089554142319265479066809053468383285898788324819484845982050226024719050998877088145009897865584822592677184697727176281372792421980598771171361439733025796978151369003579772677112813771563411420862685944154002317258559432418022472531027825581378012894020214419701029565070974508188035293634773702907298757235435714628276131809648447094761809318995746472200053151132165687368904778261774948883299826212051562856791054782305720035309003556452152465746701223013040518531861116645665322161819134729367082142741736530845380435086633292259434504373896294523979582441647999111967424809549079261827107000362210607336162605621853992764964147038331020959889650703311386995113106847663021742740007069898094276734426727029179613507233755839876471722565038848011285840632201006110626446229346288866319015343015320324362674412077333604278791556601640806764787894611636555774090481200623276722783386763213792795140264250811695807151546622922608312524237449069421545060764605928780341650108917292941866157299682103425194867478597563218720524110720636861270732620479718056857229798396252613926308056234130991137546772370347723292845174410138167476928220940650030044968754602760914176627948683470151041581392284736790874603280278429701308802104192676927033446716429564549016301422249176525130330323300660034396727973345500075149148612716384595594815201949423692221992903396938757715012574636001137875799038896599999606363430692170059204432355472298387638505189695394939406015863807955874038390791284135500559072296633108074588558560422492147996543890427831076802727414381064994187247503659488648319009381650282758965357142724760019920091315088562175956993692799149688129542366073938454155786715230182368972891093904857118341052438259001051042384529281562912804742727826215198193247442084619686329857574699250887433940454398080715603125057736243447011752427810121536975710402766637699677059947246626849062238144260489901502435845475546442394328554560965842380974011141938040506136958595503172090393115234887837810890936737599551553876531356938587631941667259459861242541695904655828263907366728694102383836377789835294006007068987606665273255605389118247694465681164748905444960875592250946645900851008773035458876771947815649878756508946398432391663222088805325881663411202143270678016760092142979397179592708799959982043163165303989447631734011283183802826384516026414175687930430073934874360384650360130061773284061652718767579404444652182739062762079655225724434683038219908389835331737148430754949072383492891818134711885848236130254424864373985771460660323320951344871270542827226023460996391801067804703701340549582239146719147746728209444970552097209624344701093372348368620054921665210575561529942949424786336008574329401317680107623237486716474010801329123681286257583613876579409719863240696185607461314879909113931449792592413991931936544224335331323011349371656534336852755216932727870843089694995921812203774396054366934006090312015023215572321073291687848231512645083668612389705259138005006044065022459073611028397039200596833597609237296010712904319324460569579262116851726191334852293367939810020595890203351820790195822235747494648797143553475923251390350318482572480489645297260331615800483452985802272129988374277213614975265160848403902988572814946043179524540222131373866229610050340806616044884828559933839701166676142645460716338036928820460354340643147357324802847352669974080596258332859220270632733912372432339012125398739707718393407115178169120510548198244017328934219644775030438333138260840148477998237261412304793463378644123846789011842617365643447170071097750267377009336524441954986343176703021637522520376408084179751380137215401409361461490582529309219374957322341940476972780056769040437484617773994083720386358244032343347901624066121770793495843181917504771833192629518796968335727343331865691437932782889745777219276149679273106062567885584644651628227123212171179760922431596229963463838890863110977223172525147017402470776410648442841665358194335850495054629400571978714823839472768318292288410869868326558770288701094044455174609887228636178406421603673791390849506790055002338320636077384276063293853829349352292190535745012346521997219752783392204156470278367823786789422838419139125704365547048442852548764669373140557815750649684485565056866840608921098160057418210587336446506545240951485244344229969116627779075795346449921038310674268309007202294828478741548501326703063375899621741525739268667827380132687208844389840309460587947733884800422954401262885042047560407709071741504538824900789751456145268071588376497644999524724118365170504472361051795284204720682144802470834363059198144495218267199452392224312806810075107174757779371609351087019481224975667656471357841181221612352997143999559889797707641465995117866228424402628119252547403693825322095511393237476290012235389680406595824545747970067024737845636637778086450129412925623351166922397160401028296136263774901074995453724078798810003013508315596797043239465947015467584155620331529307895164886306420143333844751497409316451953502899225551022878449797523774270545762554847104147209997048776405086608223781819119632835142627125666821565019770181388362390126142693222312447077529273560263671848784012279293073184044446236100199280053332949558960211149124058390661862029771939422624527178389998637200193204508615693572846271491038138105236350000910003858217895503009092920551241774138759143309753901014221859978099298044774231449579221224606524537622120866677319257329075137206426269736696987915287364854234213738515436675451767815516645816988748603914762480985332545392803742691268129383297016326592779979741746510477879361457863102384043622030749204713676660559823890346005962860945149494387972143000235543588843948786820804791669335861064606112787358879475301755535131141389192624362588264313130592143399770757138330907619523471787756751213831333090697162464313556801102627626018200817467115008471611793006570486310773465256644314163622095074542678246971633469281719361807228368674258613615371824982016909067280517875485035573069865788925938790089608885664163878887628072173289125931020087941235897466725372349574003158187719900400632837256959479343967954989945534381800075478199484745337613340524387853304278685808903941131387625760668153320551334113181064890966455059331924395600231462605115316643826494628909609428951302821039031898249902455919184219119090896931965667006137395579073228949170252687671352422236533617998970516363632728758241210915395206277551011712527348887090945713604819806754807402297851592372595311198549958450089143493690688354152558584783839999324825644840116258150873459686570403569439988651533249957689914904394496868734590583435993941232212757766347826484708827767434830201733195644477594018269937783342162793111217298617871528088939342258358047126995183849489141957872990792985553311084026696669613417567324941916317981699439476367218845579084237142410532020615264902121740766004546211299728805117399549124267136761600841183866226523888637079179111817207220362179709517482863480072924372260063533026050641171622834839826032703794540882186381509076873696561485154403334405416347489706007954219104520897493193080515161683642954886564935056995685046528062853163828484243900830415379293710717185757984791627435098359358236542189086206432764098016059744212310774952381466410367945161028040386707396991826795927657265944682943475503119728505835090063622972430430232958657688046317692622311047082220559004986673568187755877225205971247242798614376578955289617082865325770408453449468264176968196938049967675449213221880790024852531155313199398502386528557598915021166944636878544131898244301932078975198934478443188100374980312290991601687146055871603191214328221301456582209560073901250030267103038487124280592233627533545936703037579787006695442810870322790411149828544811041561028094378966434260105347047450535780120841773641278081892978123814560314267882223915355938647425658613561138690859570864647672040045403570542995612524816291792584925590776955371595375839757072028021139921789781662345826084678113064694632470740464607299945921878431810101176070729378781143741521569190678093491823284495643030489366715286208097012802357301353773655519650970486091824066208817341156733891971845392200914829282467023189976190412523636588219390061298507406518409172531058935110839878299273969128805686056763550908570613376854832929773629406553486610898886238720107285313286252346649553085635146725227886481142811141487218495801162746441987266938979982049197442595647237374223086316475574322589832982393337861650859967094610251311705410047549976330634347479524128283820804514214536944053949240892438642086516071721701820220651143210705744453390363803637618115771478874016773529595339153657579212211203778991523194469296643038208171604264819133439194107597633166710248408048311532430933022248214188969927553326720959486108499067617439943202475006376979926600623419473855449781533350858589537768540779395195911085952884686773992437436048400745513031644983391263315622553984207773411870932357168316860237522040728261393319422763729321600915556316992173791420562684439549858112072813929619861592598767919865574659565040795923930108649201535692542032903562410599672357171874530186644604423614015599569702373552691942815014627854738408290586170316334764136775594189014116569038545721455017069070155987041140245833206150503678098704126137749644294443559891695841839850204260147587912620628727511754962400427754278113001066031526151756526007351723417204570961797414203629798127206393691464817054555319219079845146482020529832929184261762176594386497974000321441496563207754561734266270712708958738439841118301305495725578106931037197538043832089237004663538841238891540108649616102713334694144181190998119252219031034296144452964495490044092479376470344459002717502426137035299939420870349512853019804662720757881871103291395094207490758100744302985388880377325677825725740840657374499281598080661225660624561274619811061082575386482893917699015812580249039138092011886132294204455346454930370967838150684550436788811563643255817125184713137650411442188626558047693089027267521223353555317286793775578276055340870700176337650130266018019314263317982494920560540515097417236426215608539016781731783519472892311912830245858814454940079245552475509917736080372923106293211494950084237910095463457902887176064634167087324715006424331246311750403058938964856396020105471273070561114388072381804673600168113574971014146307353537224110969213162658455793406652054202731497815520258538545953118603816407553313297244185937337655168411698265037759898729664996801373027280439343235189693123062873888169466965288591570690774468258909325388687475802870988478074432968685824367756524894078390474355181450878881008933780814757327075821638400779019092183390004186676777524225371535612489943840939786960194634766953512352386341557046828389615669320060065323906350746388251050897504709123079205577923367763650307410889980183841410592479957060078594848247767851728872472469535447363321784946967617893706550918377215987549559652317765065585467041284269297360769992773903379001179067384695456497732112526247812924506481056067506348264034787014672477641817974589795011455060275932784221696605320090484970955077608883692886686953548673473066475661611056072652224232883840503863977254087690676757331632613565057236992966150220568337538880881314752702489330578552942091051051659442929295934494464233422653966698281343797182435232599524410925211987857519433393117134542374903873304976368315886718990758269179490267787202216866120861179822318872971035570801371596939365548845854849474054746083185524157742291057786525390139429524725530468556264630947997426406898136099062274291212017575456730983488172222211464229742194014521469511298428408196714870347799542515667142129214686219024380009611925458353246803270519324737129038034915774509015405043472046482918841088331747276623148917250360727583103251902665235856287182294358252139156215393543223189143051572944997037569757446102823625312980909233805414105135477135505867287377009828080133869494890773706550882153138752708510855541319262895392130955957086435471253885992644479555263079984328158798017837092558242580763360364842771572003065345860100740008310613195704628568374085901399649073180339005949979103369027095429450632216900162259491951100895231519157098991020731752341644761907578867193565590220216254235695948669160644555621233125615051272521540165858126495054895040453925093939070383413258534874884126533462397779496081252875407998290228576684734403507358937249415394269557366285436153699531957672763542088619539911017484715210596612480063348463873264798360098364532621053972041452518704867912205362485372132068976675127867945786560400888683329117569515589394974806880696113487184839187445075247427139720860756801742075438029528062381901797680562939303181642992142231144435045470675265448710999885077429425817267411947439200213477880340689226079174628184355325030154414927556449676629765903618439249543603281209674122952423533921890025649908378189408000802886810525034388114133890885249555756969139629748053542239739182469278499379613875405029159031570823843054936459192051782740804040557103669340384108435649575781865735076117890932901256482462271402836526167509351902298308935959885768341401735958740583322695939403922897688745434155765365790632663587080579323897775666071190679954528489714224060894361310913809305198913119479786205085939157104204096612497065590559057809177939167044883233726533126597186260337787429318445809974250392882544280906340923604137599356183002831873782481447103961547410653145569649599465164729397361242993715003651240825300901907241910657981161963187776597615501745889447259441875421388640011707204144789594366068978698600348398080319463432906743740480444683013095247950842251475526239394189131653508532779191784877234510436029065341190289669777321730884492275813036187763729761698623418392450601361409911377272712484030364267462513664416621025827009297713044830181332297384611291933299995263486597034045250788963379944298487506572837553288366818277176847002059672200829214723111976386321224272510938746840145906159807865281482379095063606994735104811100342016235668210159432098641975320366718501032369218173114153162029265583218223820678776033048964906762209424147715785726935698444478071477909510788990621253798857791953089529767927488485802141502520046689660214625192599237992556278219210613719968756870529871209875598648618665098106130133763284675496726979593225099252659667647150976932841207945046335535925932680381621092558635985424722517408971912757493962898655477651874880518934954617639927186943235275911316315757452678055285224267660061841128134746049021279148513857137661794224232034479002957834977047172461339019626751757734324996430354094290199282744185668463640672422443434360316274806509733093008043691326438827085459148377652957399329297409069430738840982700057215015404403663847499408783868793914802827955855491091846548481055879170908277373443610165772078685780892928114245046393034006740991650563096916136812478846712382246358977584485537627845310675527251651581899803989454449500690833203082014435440799761286218789393413331734675175389512822758179577963097805639814100860438275978723405593505118509885137111576053347050936983041949636614221992991375057575415946076297814990723539436086293327264558107195030195351249346023589776423141345347373037633696647041651200004502849917292331148636843475124984134296194429868245624359643356721460439064596437119264613526310433308602499380009871689087865439906945529936898097457877287596867256041780122966374838435034668940365756880451542919554105122429406982138343599753558222388484322007336823518389076376238090925577094229968532481791153349702063932248177184176434120080302649786280631859669058059553083682444634600021226199224166943802993526941858247548607701617825335431839506203856193136020411625635039269673037481974472745301645716937785530064542733029938245911473192053219299876110645768025654740698713775704874177324134086284661379999777701950298478769547625481253510247954927284820339761672239168409395729057322977128190383567479288308040420792532567975917915433994620968721983291990796096342288886632521095100972018333427812949945967260556789436912753550613106664736433887351756639412622484299748828921476527062841134212098454498864280271862433387115908184031719750127799972428530819772943735687669928120324871695018617111113754134770157111550179587740844522078773469604920811564903789635761285886378696095750026620506570162667783913718358950602449506834700397914169686873773806750814372909719961290230388188475608600853025638415392480618938868243771652659883445787548269158411077728053350359140996372425622726138482546923125595720065978273516609025480643642775587967422902115920264595296418952702923133542580818901847741912012229965423607217205548617328459346080937670635513184075010797473297452822905831090595546191046333694451763812369144203010371514065171656657858055791298524199271074984629398166251349616216540898622387967206709114888760519966622936995863360439775599774019824627475295485617503037118441304444128173125797524528817659646776427093194770312516409303914562455680422755921304554649019980090779799818959785781172498663528886742559995293501709950117331322624684132279316734720754656619528286838972669202817988470531084766241755701622170909635253474601475131652767072157773724108864796920073137353401034850831196150257928022302082834327148421866870002853387477526732770092738233743917167253856553021902900268517175269061545750544693814200282453529271377804627557212444979327281836507543340038853517421955945769688819714386427210266067315216919143076184643249570955203866534516457820744689470335929785294578165503480496184965010842418476859804362374127947931843259983184440635120935661791969802990790117297193662586078987919113810799253422335645052835481518513543727697256728838761119675554602502348410370734933903967806415126970736797425283933913402899359250762612507541791245428000069084440417733148459645877738802007058255261911714367856189445143986242059512935935572318123866254238878806377615316432917566978461727492546992738807011818426870146927172582887242289884215154722747778645801805991613816249181932740126501858033906260428465573076192621595209332545832892916223254155694758057071116724794589890564572919702004366974738498347245071867543929177193925961814978002115366438966192933740267497412991951530466219054031697680109722997271278937418555903506640979362074971368412592530108960793459821455281169048639351683473143310288703015300536073419610750408853986409745927704365404249119731753983433846800661836194410611968161992630252547587810957250545264950296231066177862026597951766182824058544808557026734684166022075804726319455621108787963318256650512105219812332477404537594560548868913172880138952255778795299142097274005435105354233967507705916266760768179682801221070496547305086451003591333435193909703755329036212806498635139523299520920277650132614369431257822268743274196469727019197186743904119289320354349192025947560751735354703556701488890060619213094112196170473034249832569164723475627535292039335531031085553328563074282168396938850175015267579718661855937034967853982290013141621390982852772035915266553635951548747730777711329060710918572057661841659550378374158454992484397528993204330991654158506496380020203335729588550360452265388858015609271722045622487394223394384466903324308911641616728418962794959231082325891627017975270675714596980941096276956355571285998605979317473997078936964067377834463070787377412348022488438199490630344505024632820653374376021146653463896458036603907835605801108383787501263875177169257073694597575400614749589611281276936699573298980801936165942395075513199791887629313890596929317593651492924768529958016805060264264856566480586457772216247645992904991291528326904934620173122294391257788885168431546366755411612366129950163157582544180067915458037017388691529177954065245750612256783381305699425026845376230798441869993077033520416906985926446491106168526582879974809200501250503730144419453227924902201282308350881684107297850205990279692231968299037477898895579726850629301528916661529050135806883755035009662884068446801715795465132153602366609278945018012393740683976170457169414120548145713785624657575751562709926631965030015405451864592545960652247789970435182264804730505201887978340066527315497527010327236914200499267030385350617173029285737403151174450642991637293410008462517283747741452645833050697557759624823194825635090492468354303481048337431244740749298978301402098505793740306667747726784295273069497939009464130775518760170710325332556060530113081716903948149598313839378262977957269713727578249055886532634283942877985786662542264831088544316544394831263103951117394807323766645977290734962953824644244240695513346566320506689261827164707597593210288955696872246725893263621719709353423672949051899630678432670203198232769266752669759373253565905395669895372953695684829796137675229958495611817729752489698839496517798782092648283610758849560532446289425078302479233135756072287660449646758831102039793190870595839674974622986066566773747306492800399016402780790810329917230635839345003645692940639021817743936904015140525284850222913097780418078736435130880145676894912441949432093857581118209715124817150502072830705636386853971889455199477742138608781507411746979750078830654665341126753530454197218062346894334366318572939468922018938202280276928056225695980156954621357640484669378471120929730704790763717055998116081289614453695413945624416056765881165714139912494260755607225401489452937061737217972025431612549522074353739367803036354874231533176708040347786060365220909564638162511913692720323596336449936339085102003862972438111090361345960434793406088466861961448875300478757024279789761094628369487992631817258909383703203366386920129896115758371803360989313185462902964810623978024134400956052383116536842390910431809211105211614619880310200902376472441868666768964554573093284693752501344901128586147744971264543738995801623688694215772899701193819181656363484299108718425919599862358978271947151401726941972056618319608331455872659141706061837861508253251781289196453631853846919601052091188143349718349775213945244708974364196110488057613608354249712273175910732072733736194488054550661280838777824651415376296522779520134150841174363637661923515138245365350851335419406019563542902049488936067116210934597594622909699764563291570381542006698176972406089658474685677539981430280555057063220567288187980304503599235776134810261899879249908876332781510558285190233269537482978191709468806766451999061876031269334317483538666370295711357344409172587275128565994608275365391430854856405363889413347034201738024080855346273114113746881583050265835946506441860311576803243784421728875213745616043735674147317667900725412201662065624121677509096579158754623742801931444175591539747034812380437927011612314989852202463217907136461128208351827197816349147108039649215579452252549772759042456707167824462147046148649147775536679718858828335623163673464636191772270737533625807786226579884186798950101563622819263280270646218920401661878032284055360030002022481120270779172181945964072360808998438500862702579219331481717932192615197492823636957727178516418501037020795997278211349679997838382459521214636301650592100974959651945311835767253898833914420627374657486579063544942277443692936545014528300303937709765280254635948189360216481003890123380332851656330460402279826070224517047190820298991165891694101657767575534196979759448967913899593288624377538859674110830119184688512288791282831805676315614646263577116133324027851417645580270310966688705470711658828880386366150842556710662483685860725636192918836461144317688657658353627941895913734428500073595994244051261870256777373411903158921646123221038909977252383471120311712979434583840510625368469033757102401542862848228555222440416459920840583971947233242455833600229996315821912488225758349565869257064964303871130275843160250756692859718450369106278292047807261627389058186818071656965904496827480643972641157068445288775054827988412766947047107924597710831318817425589339115759789404237512335898841672548905970810691724868369815187553959993827259864412728551505296438496223871801160587635944124067517515841138304153429525601202335790537460145500723805113446264735877628684378873910841514333592431683394636947536314756963637998976596544385382731940590875626335910904996668592230871134083039022434372132589718737516636706613804750546049670452583578376094873993811164943590649556744231080753560195017343988285000738714033520490307854968335073096827624902399539709105889105367984316453825811359061338249673548891743203494986412412527660889793087075042129911711012455800160230492317605950636288625765836107662242496568582522691573616758774244652900407878494635896179844120894397524899335077312412507355948220096120838750669791746515209390919366775925671481717032131506819120108914564371006578776862189198775944090921478450368314079310625691941247157216410861222008119877545433043929510540544706072048462190596645102479243738840648664547017136029884516252702699471349530903528501560620418703408042912504766317635131292231563486740132613615501778674229678369319570231312297297118114955610032635083741369947587869755608113882047450253687647256192673444156651582670599338043456702970668757553098982915294542935826941611421065213279476702162637842610930845805774234112023428667037690528333796077733138447492120680913172166590953665582575463721363154735531314510252220305780323257107616817367238382630496796854721932523036843924952338485750236370361321150916059500594106204496113559824537793884847462673271258004161973988346400442615864208502993948194964597707635209241886176760449663437661838661106258321723105910458196574682769871957356291675668787003525321434460575913530359796212099870703852051050404146965221696844958540535341003839296264985775464879188146747935202553307423133360049971002358686368168988349830436461178189894121980194782873062698962450187855488096737822733783984404362266021693810211077392484731227575948261570775552645491391850732165450646238901486940699281762642709959628213459874323942687396896854564871530853657802924040828505133376925328556447067697183810213405860251092879375357825032062277020656806285564351379382133828144521376016071128884954822379842614400612736323670102598021291388598580909688849514165235433046330269773195671391824214382709537659807361427024378383101057221418987077504843338476309567824091495049286872705108985935372528368498368798677592445885863147693787086156434462058398373175081052148723812771839832366488208610110525219558410134521123769496037644360677165298409754356097330429401718167008990995834458035500560049829057303154378155374615922349151692504179406877164922387531232230744031944008811810585474236416128046043641622255522030280138232136354491024884325871046850367884753562486976773317365758528007879769167239761074888178805563912251142830172910419079247304339378682351487594007573782377951617747575053872907599995342455893415217836682997416979327627625882219137226530391881428861007294233120786632055000825059260249674243879262827738733104483934536927820054964899148406206608990244151997447952588872863157144812246101086078721795319510333058421535339524718274103996867051482346172808205376776495562471454290759106442966166395377720411829208977559836793585333148136266744433392503651097224202152010546664916233475421693164017779371633520664488431589446582397064110136843609343404182894768329422275437119310926967133549355137377445746904707999408970900437302683548686900064659277106085147384303605652173428562145349019951475247629471821147687387783738063675687791613518868836025604295351813255910948831666959386575671223764302359561885887529472092960108078623275012266452807799435219279246507198900638386568790937342836352566116823184192213772041178612191508168898114223875463064193675553127170266781951442696175813984435359610349711748766873875880716880348100272565706326110474637851275879193889629919159933256713918223997712824262057997655968335552101752870101554046854358872184126940525179730094274373334411559023542580088990292265392628150750436281543843628590400642508764321066431266405586062924589796343273708910475943093035300182081780130828885239799042527516256164483041921183966849852162484794701550608561129612253850765853002075115888676589744800600233591943194053006451042250744899575363711428913375122694340566291525555692669223732206813239055783947656621689332102628981251173021800026316131204313403363815534302659787060681684382049753284125977413888033136376534511841887568535032888624376676805564378447572119618436683689173365700755947443252951869395963521648579227547343827567899983146370230819814139150022637526806263199719669005601583580150526859524885660722539894318933294133219707530673918580216506027276729500837622056597366569013631378122382778067630335505383858172128942763379891938117288965270696755403609289731307692636549087276393357740697020460876030313701182817455551650550969025183677622131054041274378395540242114617675015307781094913476494732064536496685310596638138709723014379052006381140623783680456203358465253898185336807291628283818749182586493711965243623734546616358774959180721111789023339432295891251486659627111397517337122429425788545601201317909063373883780027058647128757906565336131851589321416699748991194406883465004613781143327159754931183053331440442519409518578416698775119457993801973554342672069281230351874253294731349405700400493381553163151539294461694869787874053183140877481187979020966014278596208556528506951226468829564259615940151553042653022655161099862436581756379745829439280438790670097969954245086460959745891554764348455584046853122048744666290434574615936002187420178461142679071774877724991823946668938993629283883178480231179607521118371245182314107105497229744152543429322913629985262742693129827786340831078966239924462086005058096525592276929213387185372759665720074872712253963485665400106474458716303652216276658229442866513978694512478373424357711983053736937709027900098087325806449494406114189738586376194264168088659340267461788883250793303564259816899700544271011219376447511230659971377952594444033742166999205718405900816685607914181536788628971717159151636088771539741843761415349788401732951551884177026795544907206030509415844922149452047303512575248534741060040319893962637523726077547930573209880916814666207607195017190653102627540401788656118705242388773167992733304210245219266443664654808340228596104085021232245263993402408193016413021634542306259039436242083563283056044041699173157472035957275604337696993519348736560012766795950564794828757012304766070591920616545838018349883510812685527382265999970059034603325392367692439380192582262516787446451198291962253940466048675841239098913900718292524207364814157671926436740663610705502522955864419254349711061307142192773767385171016399721782439067506679840213698001294241543733071636010442881505501501591066573738853303660805819132218113157658202682058010381782580855000987773588157210935815583349384972108895586185044445880295995008378716338816343524415344031236676032218005001673490157090963259440136674784370893416179063340923342576474599338346395426806600588629124189107784540150321232644487547804376860772742237471594998977291684225112126419906329537217142615675010404259157066534323522144471494485221174236456081526095422411995683844838085893081921701885321272618778193707851224009947980151344038525990315249189434670511120178899497322472743157425639191984724779007159562405578212101971712912924632470298412723032030433613502628922189162363304486312831458081692310235833982928906830956126921857922004252153713732277648889833893753432431794968897679337735861843871378153281561578900873355591848081965833881157005423602883913391674677492006908368275223333024775730479248124944783275973270878597613676678796215505965133026765526223807914340256145552990041195765057928786081839835992623007846120803299197768325773280058538790058626900253855837477450069181292324812945606531966029938733575932191448036397797966780516309887404412227404998939194933707347089155050760064443535862169771318595691661834248372416632060970587613715237528822477118890178783449027656960256416927558242586064283623082686376552527031603204675242389517529159947020946576820672417127103915787661214477120322392844414774005380436593933899752520285370608940698728265566731090105166991327211156404959190733952971957744852087511082142914509138480388323766193739943210529842042118671053113372367001192691670776824412148117343819411682313594345652398940739581132395894446356494517629034936653963764011476924513684113700481510127524705177759465071829361771251545376814334375855254185225650983037430650017955077187227400484143094492285629865064136792613759424319942266257303627372107683667763835179236069520711257746656198931038487682362279211441527475917895680949291960593834774065925839129565144435820853940040276122828129057200226315481212491893017336621595564270646064732797991388744464037390435401767078333304446877967938626478255668209921656609733088346804285704156394696566894075660070248165194188673688849803556994386763483192407170329620021143854981719209955246823533918815941513301809345291764424435392888424843621881754963416075252185422393121810619599981382620802744506897422343065568588844425000901732227965592553559397218026671301377356504987964127381403583917889172874534739971129579930373801592025391097478880363943889768323887183471370381264632929055586064466422154176456424232177028029428865725430570387418434226716295017399628367758106209262474133528396448100732970248120384053521642490423700900699391161379788895499118627505143844371761527894864721039486208978902881552872580294171766575669842141289052483382843754420528085407500164730330542370776214254383356221888531904587553564600172247308724198482383794892893156718739265312736125070975344741901031083983597246521862950179296236565835260766177497922270004665626728295984746218642729203635686871823622244996240938594835525041724259232050029907023366118664095135346390973555936454292480726505933619666723750308870494647117118653628394712792007376708995764620735629088948506269998566951104642135716230856302994598270925420309042367250929732502219531152568046288295212667867306618279117662060454951255743862764636762857077098490981400810275209394747977243618922379572241683101424592817646490977165674836531061211188568624501822618513913333618465001792100329317044756419161416304362422437146548878072543754483235837266321267685662203696959420822904839242568822557221244542214523424146382985637048460655476826245410121319209390296091910766762501492427601274464805653739095548067751476390755801567615200826992564326122688860474446794344622641621799318506192419231148685587068922960480499241614221991803303573316566047672054030392608561972107453357117329816289061093453082427986787871689264683471560347182840913985655795715440239848702749388710231844263035178814953263671343874738889118102334723109807936402297763808682792469208000095668854786941169205872833851672660530951018538169131056715996738419944784296818777097745767170306976862813960449216838024624440126136371749305218079002760033419931798792145340095220427804698409798009510945764499706768332759762981566837278955697986124863425336332135683314131982088039085335013727847145309466549710234636314442854507291362381862823375263220131887022619384113523524008382167560274971222150474266724931372604440360625158685004733891640692104748025107043241352255972669922458552292536985452963020341322518216740406163820718589906049449543817426116525757377056485745054141063705243011549486233764182070402991678142384343223438909718651525447380840538606427737861299933676646468711911656414796224625682189895221566474669292130243918975042505407204962136300354010349229078654161123532148198561123994110054057630846729823544191860010400406926024855165011671059199417815322559673372133674343916953629949161590087013942987519467432478642885338635416725195405207726627023848617871919085740599960582853538385343236420905765379547189817515135604901450204986914741663370863732168158708362413013604895081517054550523755012421822350166178638551026538815761765681374285917621890064862431642669166883852883990561265002957942066019544320149089327373489204653243004387866649263039256253646298419308610379613231478867991593258809504996159663281343989686869858670601950962687657989239741899121818109451234691054950679887041692562517714252093754694543211924699418880409653428353080925112645119689899320771416054441281121058059132171975547373808646450345314337576062932494688351749760096513833947074102739958588094003365805229307475642417995726672476071456441678924652496950105935973308533107967663157569610704781022481907165764788462368748581064759408581566769332647439601361804147654675497683070744152809629067889963525840321193178153307374616999962153768613990019068188098311858427780249309808119229244227871988921989807176498565858616519823283524664495142697850047960688005268716365349951993597283084452966894888721861328142119007961537051514605923021534071636807346553352721118505777744876383461916717167898823479757113871969821652970999375016464855857756482701616761142703958748897112930497738494355171508721777561254041574027295075662384948154386817380159586900609352289245222230316341339867034063999281068263831158623882240906797526700898501438723395935044034080503223601469534390377885991213782749033047674761222580349264297367939733584235544709041524808666010525063159977667650321449939809387818700442842600650165968210470043490496302871539755551391473685889783497540989818608524256174464125978866133287857817000080440587604504923432202091663829769310061782567480633180315506884321290648829930675139792226833012458105723423826517235644768322630368792856034064206963663801111329013759860387956332220695774307881160520490844695653216730983224147021721060758926089032185386812641799803857620267784659748861609409581571753968530815801840338562427716208119791440080161045799671832132973328202381805298295051664984743344340682736662589563087857893580716530459242897185972895246618099449950908879371825394689766152972237571069680036185946065878575588281888348923885880852329336416932923190200633229926272315782654996415026832884329055939523685915874422717076875077121701889143748817445008928340825021011590035222522263374965857414055202517590653166944151540282975289477291245689776072104852335224124224249804651563847983247135812194437528001017564118451626597116438743854562323935007082217759089676085688911803997128116820434353085238002834615957384381879941960491565064353923125486511879389664292656703727717392530200110206843092577698220892135311008133977208734122155961212525034050151219774518942628712043757724891712292614987090043807290265668385588274930730682125388727568196166899994206382277529704859137039063992434114256424280095092450921113437861391233511515878002564594293921067793059834436812120848404094052195275699632468245266322856282639503983303691679958849373963147130013166340757290858068186639876711034942406473491496039973372648478314050036896331237190821132505356235978300510757417246773358404384813580596208759501653316967329816223032734086393967605095015433664513369043331796735008335023852554273534735895522440277207898300149913599204489106960428962823960339280033444116541327010009740595467850797337810404914000491750764813025839166813217248398519554713684777616259720464728323486482114186088465057404021093473626053082277453587879975688941723678857629634248310188698028473356010303862822641597158706840509234901730498305793305869113629946239377604831773364373496746737978198941165645165517855533815911216593211290180979130405117120789035647462014226219228299215291285492152593624431032119990484426516342346587561512495949368131066601610454383736925145341642512961711366445803647593327887408077082800589435349641766936085096221545677435042232705962315200194107986832782378799722478738752933618442617831083390005808327063708119542960276554853439966107340403631659063732078117555570232979767679295378716467277931082267314353527685356787733468080442516681027459465600168839453581168210891948955514666700376078260984840407765579018851918600197028855415695211277781981961348173249046801949145231266702565418518403340301430943994932337526990991136804237496562926216900846375749368093553783061284600235830055135721074789105000193719845792506193638321940698690374234917365837635326270165011349328822209862035913112195896341516811121704660295358934348215842588751919806356520458325578415078000224870365654343626210630128831126924660640527887139843425661877283889484399372729103528976654829979134075785967213240653768376833797392105983494224094127100637423508152527821831947953070716173062023777561497591581258216469323015456174701759717275855285490146078740631336538981784689083125661862602705855467919149082301862941676367150907490242569471620181879223888048236553022872177674289895314367547331618457952960822098529112831380347431884450783093000864024421394532198457765897075439383810693824055808780897805031129781243871542408553296233899632111380451694119836184380959067411724676210050204330616331017764845314265663026051788100066721639836302748528036760734263653135999660983168349418504964863147074601476809734952532004866328440040098579613243809147048033001260477024935991972843869349389966964585877593934597298525757542814520893028914342277401243187019220602821301987017076945723629667852031925236320672186309063691449348493128178809083764620915984715399100645178619485301573451479970526019571809443845492892139118728352786703184220439256697596850520081211489124091019614075337427358037806242949508869480400099458624844920995963988596815275321380409399402131619100107282778131430938238047260851870412788074888122891649103628069596283926214357493059218749260073544259560595735450131638889009855583203367108989235429420611388491108321648745335145892207208736630861194999408664764115942030937604619681943479356317031024202818523351890447247834334224974761457211832850774166406787078300589181649561304370346129895477972429632076293305857037931271555001853936907090484069727097513579530450451178186222277905286899260408369382937479578769999615261555188773709137436350834233941943674567598997874137839761781226224627010524113404696850246957682070627111424313246395562685184165396417911157478398464241925815441833227848502491610097261283387204810745117176945831601915483482297256456604093543156535134812541471644332264797264270272869025972903461775724188712293097094800709704523383056905187406520787455652687840921749667168076881402929245638416123650347561425480460687259141396299616512767643103022944731704880056811127362875689189212263073311197269876175378990887228310676896285243087437684595682022292813419360753365746367347495567741246262107530968724436753882540461817735993099414695837387898914531899500052864792234335897047286674243319646439962534083304416363148865262504325016539735296786176083698100161195808675834007550153196335728613463822826304661771306154275698812580893892267722323613264032653973516750658142753678591186461209167327514272207532345817094509413085892413512236276015592850368623488464060566576123283289895693887668032006081718740123783350046336043189898175452866221711501579206889717048318307521560326202975647289189916882478213646466228752146394419822952353097567664791170717703364634870677966768459850086775107883609913808287080745576195145735940658762686314573277548769164062619051701667968553954498521067194673245619146889103168656547977116521250056335614516698596186709362591825107918984607831189677963316267626325128934711508639085186183704569088530570459316492090546264985246792778028476624367233548416186107001681664934543973486926965509262739940090765271573813551977696335453402945784708451963463397494810234575427969149644087992930067985606012839104266644039947706733256052761075197972805043368289556368051388383828773246308014959998830038608035133002914821599661516442299596714028439455163968782219383437168152840523235850094866932759743545814752960401502661162010424180247992619078934552523511218703904032040451363005739684102969805797538602633107405428173081822232403357457117857215176660945171406974935052533299083290525492607370123761536239270459082155818376121039912638096696983386918845811652639795341759813869728969405117627535667866099066220083146011395488464793476593749588761853563094996327657752110305813079384241352247225736392942599434948878248811931421352194466003708680890480196245948618742095880104229794993980240639955286774833051083300773775682549726205416514184586422450863463347552863977386679686384647852634340816108275899471128099517137061349022718173686594860991342177517048423191021107620984712564349184580257849051204829871166666558482900319865318190993756132050985079050589522257825849839653137838658218301734561958860609167322019754348284591618330074952279337415426078079551715369724858370498392113304533773699129600194666311197024417112081051866046355885930389138992111984102240566517791402166245739887546881770368233198791126918998203426436953800988933341996583601114306247751808822724296068181726110971731160426021277968664016374704166212304901431435660653662468365161437904313842538889742899880889853832677188049760213732246854083296822398220708022397222298182542915314730464089600197475844425589725891070573855981936626146114740033929975002788932249667555706500661959379526816275682393700142812782354847070658221060739072050357438505808697488377813037531046551851887944012916165902334094708221288157293135629324926939712148558656489626529033605287421779841632979781354997213055797374269404459797357452899778931004198413496094718452105472247371309125469406103266323437656332181221945544452151050443709593364252845434519770500573858966217942250079240365252937112207462161420648380965197650879703491609527902686470259858791001089040212213997111883575408634628478039656219571612226450900149627414123990782706951852047345160952980860291291679075768619029304044255456801118003961523670515266241787598080174582038776639967778559837640324930950559508422299968137787341082244971447735264228666190474401847928149123980413053209546196020875767230987363197677186935034366723366023373119254164682010168469910537112153392781474013979669942146538512709119485227059290032274594390550308014404056115307439122884208973918467462021362951631346231313866191345080635923926552532797294548847957558788706813297524807833374377926875728672171683130554632639422543963205053758545483667665867968714894144381823185324077953346428484501434222583311177008797984393470371477200913562998831481366657344574868825514412689477825184787751371233773385620767094300716970020458676449178809763982206147526371304905836785772446444361089109405354841774948054047476218997737310489433345307516015073323921917885039260038262998917511545748175464559150743101305690851212209578653962314068353399230747137686723978266300060843711812227262516468800598321156015991220406113273528705960566430620779751474944069220114520929552359765365793084551302718030000049058828902542412785211719326852468333904398653324385458667192242582072318232781410936157823426661368603684967043021385260406010171259270997746204449481364465836503920162445329505382846695908048119465465766877158143527166857056589625387166146619133344008884207123030290057206433584447853579738028140587460090517921696755823154774946880212949465381975567250337158192496975856686379240981556197642712656184258162568318267512875094106666961866216523204058703844997652263776903009203370646905574271028582585614796021896061454521914489755885295135674350574249922433505674917677750409995237203751402347238887273138819741774780077776230478285126538480320496941516616438940209531497566500249747362298627185493636195485722275576247988181297038167181998701218097612485509125543527440160813741508547054831030888364245831969426041540604492367476907927307709528697032769765972808705774680506225305461185766691278954396706597456271210362559422071033708078170926361089778401866076449305127345967400759963736379852762206048469061520113256642347304159146966359935832074668129640641941534132750935036875958275885235284332902138146747035923856595431155142878338749381247990796361232633131553063511460021467270202799495495508639752223556302987975326079918262944216064015030576107528281717985617469031249483496204810391940326872880924754223651965449993036869293648868082381506663427491487187350174555571737317829013578001535822532182519560508367084799383460514994152694808062966160282779568589194736018709727629628571067255687365975362134982979547497563926594946924595474039183054915654399231541387853787514585550184232908622461395365267999902566722239437442662996323840494197464504454502180720567374931869025685061035493135758216423103124045394518639541580249780960035593273836628679259199007093491930593584104807382716772642908611193263345864751113259844766881690024258960054779865249132650752515146292396026489693422053766460468414055945582454307566366142542053014564084702612516237345508305668723761572211450140832355365769782654050282821965479083095961212226321168077528158333910548794586168063205229490780676791943512202244815990367177690475934215888639289781610403397577650210749038666254913617116097118327432481357335453142867528607595564585341694706834467762691714234509929561581079470588031580696580256163088495438169395431462707287727706861436108967160675803300315398587328054583677005666534579580474477818338646005455694902275824044775076786669026741170434332880355961108450195062404968091780545942694949570406439433237285953211092117469455491143923910219610731028476485430140040673197937314362578649116440357068367732878487362131385952408103281886714269627001434489597682326407018208899974210040186751022128175999038501512687443081917309350170578593249058693974121715036600400447532835721596477508951914845908597010239110461730305777893868603012610792541788721772343717397460597968325120775519210040500495427331048173038297936817616107271636882509518503880292935145775569874671218105246673752860004386193554018776266164101061831968001793957830786417721176010476071131800501754552982843707212474966545487136383397839733302375743941581377938369400040428535554550422046636800038442025396427435335176809134390422315264696166187415807420889154247228294707093123280772278368482135784828943812615042180788731222294074745031288152960517399825276078379502154712775195540661920491784309428270417056366671564120588195672716927492384818464970806581359266827352400272738462696826982894123528871821245395010645150543071254298821776779618256249454897448938589104223642380600018661070578397670069795241997642287086586292321485687921539117390604736644141271287810105995195135500279781087739331173468902158037929067038173192470590226037589520454828934037765930369966409876731451229644041749595587471723823043373807938986941150331442040577535372438184800720893405000577308109475807592349437845988880630618369931306780608663908933495329852171757223739569358659983857488160870734220810695676089837669222493971648876232694433773510565187415530188994580577292595235710822409896006391038059098241474180786180802002477400495413234044687703569158090602307458591228229029646375235441418954557489457470873935432600382030413589316174358662607446626416031963761435577135520197130806222016056993408415500082788205163879835797692096602154700851238247230160642160093289216494360666916343864605338360064031564111023738840897832892113082297678716421608430118193104780911285152912105129585949523267848102334909148150052273403242528107418493206216942410754052443972137556796362996626061712110940875105732978290630518435326100787690358027570891367556532341843658922577725420208600693477999386375569589260776539002877612380949293435434478839716991559942719574904056745904471707990402030156653446571413780332256101160630225350344140411866429547018819086467767489780073413475224584151269622020618143884753446698216409473539292349731044095742088025423269577757845803768834755560859436489433809599439561221021974448986652170664256432917179335282137056817444000795317083800049825318715606617630166768312693958888243290182804012460231515364435279949711051522927793268003257019945699135384894015792449555444660431362532131752299195212175263960165873784629234360692481937331632360658652658592888696862142383172645874198428853541897600042547705734093147397389085266449324741467243086217391298144678367299788831314406236225577677081074954979169838473563630055921481173638240653280435719743230366529191170181554390902184842291805651578907182967476910812088716400743677533445313258831382775607483930542211357555630760200447583527434637612440374550127996633585813056026828427003105116798169774496112417288978934015143113916675612153237243666274651533283835473404240065523876563197987804549189186844297270127267739435176400852694204108256040346380431426166967615180693374178051367631590968744905103692427542488580091919318528405837908971148926524102703725138790486050094495883707358733000971274295461208596224207184848892808980373705356170798327830250139553526833125765888718218185382017875172396363559354524742686504774751765937613940039158567906026251845993688238956999282825147751136995779247065702123007795507669566120621781681666254437779704107767608121683229140440501167936947757040431698484295383649140704261965620495748905682630373513526484639672798204921344726582914043273089643008430307152582208799949908412654448340367040449200496019924525399670130890568947441047352999157348699651375565937512173246637527765487684154613119985046077781177618290368195693384740068456057721754456909164417232276786749684485399564154387181129453601466040871426508165776880711664641671324927645135474472157479273144395205066697579898566828075105436218119166247317597449296645120127302958362655192444958696536702842012432035930686713972000266178697615221756270375216306670340048452363501044940758955364698920116043805789530902793308886037753110882556945271822653473112892740998903542313408434144440440990236270654706336853965762112317477688455465787806590143134048072999131083263398556713996034641625626161489021068478164280949778939769944234523833238909605673372239456624700587723226232442634715298897989000003331605444725023309262929642499202929916383070576464454155106183210971038227382009871440219626603371534082700451266311360539397524707424688123415695053625958005350385977795544390139555018570019738191063060384444710309577753244183585907226592921802372363354754511711721573820700560291758743169858328656293938642311403023805025153061231567478862323797026105799611425797520496296094436712355285537824246769102088046454511159522216254089933423933283873109216405011137149531292986527281764114777157750830930744724442173566710160228870088908236054251760884407425404495785441663691027876509925446201145780407818061258818712494294034103640613748744991702524882362862911912226974542993967426391024648684495877837529856321093212483156864997124560068298741555462312200395669423207675276479732092284217412468183720212198235366706370431464099805981743220644204718000566648805736013857026925502926397802942301483325767022032152415145207745632005426909061822669387492947387442655985633079098220893531420954813410341892765871094327726885030649455985560951503193345450226130347736305452043016704288692435054712931653115361164110894225215963974686904211518812921790670964003758281468959958215990462678736971661133970037163706977790953374752419036910555783521474222119230054462372450705263765082495075537272999502299494562991003693044248370275774013696625607680227342889709231422741827978846806537391159280064538490808653187023331549238818695689785211779803281398749704982180334217833597218957261493341135300780932553955090139964126202634048012192928940265319246848137249141760879690996583889703965015507010186513185368114881870435036786246169303036600021434984573893905881922519044194503550810316274921321673264673765010191675604544840146014135001774007483493401070293163562473414383213460803711418372181039430879412442126955402743916572531610929586619490306068957153663616947310941493546873138678493162412680795466790339832792870754433699190573145852188865836197464982745558957875847963354660614442298975176594753997975030777601530891571101118509569679907718632193632421629854789406426654691182280963277875974462776798840157899591364668167716852428845037112988121423309607489727264130665528055301735043829482824983590440587344417333756628020892849891227705126707723175824948416124304483952412635429215638960776308428328750483753226743864325897292556130190404014385892444894090597090001663213679707389347794984739901272074856179868295142667284579639558386264995570710698022188584993061020199489405678882919278384342756734040300625239744748550339830859163955943316470197967087195674157192261063662793217880719621720077929557197925283101742051255650766984358237139733518954565613747007346230700373629392476534879196098225821646350074739115439884569342534912297902757317472722379865862949989944836512792460498762260147019081870143877575790273819487292322837394633549456965277601862170847429721259661076363143728031313591877796862800256395986909858460699304978123181463928901344065347906776397199849203623436431383513602179186283363779418724779343842651072456732185491925587799721008200212394188588552008458715244507562403476256415108584366108209121237839213109334499713929426510414995978017586945983270334983626290629171095835853911835932145805611581450942396028395829038379835510268403407172894926626275320605123132976203757299875692574766417554747293368306981562403029617629108801496370245595563061462770861049595666232417754759850693362687888087629681025836466324414393095623677994940483604226386696209761064809837269632187484417915107388279126930400723596000200201719617401885832312369938528094768604752858289135188676528215508700515253124561251938213915413907539932478238229818040723665445589529856257528946771091583357373874113139232531220828482762173774856011415323129726283979776773427462690576866789697402005050666212817699010224370145494897303608978695844030944642176241961124867694889899820982921661856228662220771051511399280001140847445849693156683735511551759612231423761256054119602777091245303767487893722226964303904427145347077909199309007732282203210682575889830646677821391356445655055085539998662149731550067768887512134281785571633307642393877769372974742126076825784639367510068950636231372961272374366926478819916920344242591164131192755829666536777043201119397621461065619514413890983850996803627686494719790297028537775046714251323274752930525809490033427864172217231468986476895117904365207077946979610984634321291333060657172114131088277215509336283958066069164770169642757093397416082666796625845520660045335423037330791024005774916821362838430167691195220193934318507395348276867472796452432759626039436438947540438996874670206912290932360822727497631358265122384403610642939650483554037143630063740355082561983669246202911334535331539563671116885045165892445205493175675550183279196891657773002120394888860585068306150208485859504600106372946456628981770318116860928588293699588990496016379600431057167676605328922234677912092554614263282759090856109631731659749586989665407359645674952754543009552024213131409988162057618270221469450014344007966500153566745513686637114177834551909410113635996002865962601627770882722847266338439282542145818693072476589055198491043966069401142044538858992273906292565179774789875803355724224594136020664741421408517890361252601033423316385523097397049911505845037456464791599942260801789635519039455533590720368346473748698385998548504706718662092654877975407313365922770548884305500399379829846859800220978064446968423421161550508607368793749461090525349513068753773093337874890233658302008860493626350216431065712433947632533639774719299578040753662094368001608524790735981313826447300869660160250810619774629975255830728592232134285050148718564526301654283060663698627058910307364348130813883993812604732179925418674281157464028590193014953977134870795730863205598408731081026185979832571983136589382786672801282043088397176793402136421441185705226257921133520323445975525822146603548335362403026165596292856372232858469440788348218104979153265206211793369683713957000372468341676187426293911723334073398961168618050045958464546542792439834287017757401803790443008699696973728527042638549475539579029503325239147811029133646272890237107799003425818748943212691552711912850685183444414510101808774752095154180213690873780320382845435274301754560615410932581850555430043085896365003264634578951217094710860093000969261985481893998141382806552486081405663487832876749169424310418116872305177618026143486031850937140352257201766879408054526610981459478270090128737162912267668285254653993068795547613786980290892674286899058096206701821654285581795048637818925247725029461856334331271527721358199127203926566628350237057149578083386443770645867393850224164176462441470555729425083522290470094035330569075256294698298485182760633620945911501580362504606449088001394953812185488378044650977900308349552778949830286876885778057006540241193300736699127436741747825953546140321174481913111111519382567820146421340932434977912511190574130015708456437628886129271037929335310431511641727349139010176525238087428071859552216795252873012231260258404422943733941107898045220926221590569030237796336393426715540896619251838449623664856417235816516336027201068669935765066236453367622203957604449821428361454211081375618432160968054933313036888831887725021944374858441051996974544757061308247358973908707720305403359144748974625234762851448909441867605490829039381300994969093146319351746140896358002621205535398993745314326624901614543958633800656481436664030753547447701450308609728846052371327385229823635994911186377927384852338529267978373329676653806658376966426401560239659607412895771154762341959319391202323226114728988167519923603660823673533708975138184386815099817184172779431246325260841067519109818778315715630901443270461936532346084049657213561520494136444771086857737212061967426753211978303804284673713916107409010646878391043790221032512277361257567140812276359805488889991720530100643421929980118725689685906511232364363182843434885063371836372156955029415508293981397814480601802558018957963515534978444878891192250073426952984845527193387528075916593994242053392126287281102038310884172617390170409327158938290973160439761206862285406963271861413984977002837182995458618200184312298026554443891955952996078300743686653193113561602073537600913514494509000261640349656134567841364907894815654118806900868467927901474506740511679507213571886546547674206244029794773780572826960174734112039850176737504664541058805481127790203817979292649658285437506573073373203098936289292635620398369573962958023048978219460359862983306149138470239420898876670453402765133656716814601802712748735654512254302831677870929819452149261860683740092200747668235611989606887781330880068763662274357931877929482166389787306523010023668397209168569698653085814384229096654974815665852739901403838656808025571263502145372044841082134147791270196767254110264858892289963925328033022267465371641513694467455056648529199851186331730882957780608488870989511329204148947997641929087859878746332293693684269732409922889687599924525890167798937919068851918232413270443555002950554352170914919384663258809272957214738939083822214315914764201135664376900365576180704074268305103118132339483691134262950100776594852043497525830799507811045962150401890546016949314550820526533666862980090390376729030444144718692251830620420155667260358686674629768168704791639550728826404656122826954621318479718381274196093987468604534253217156994296243404280724867049520134173173121357293079903148529931811851265191779635270536374425957791739083138536671113172573452942949674752315346877322410236102138362577200424024640583484009330406933005289677947943367469701817810626359167035720557469231091667256732169206192047678891369809232284422678902123631204753173410389124432172202290368403959396887705692304413407910915307059037374760067191583327290209260221046929986908018634213662858669165428217232484237522935430591584462064209196744051486826519733390025559726262894773054168843646235706630402526093134805364795145495794798205335302960743254968167308112165694653057174623896321213581541217865073341929173597351623770238937830412600896417412471502406938184783185018433563779434286755437412222898203012010440599909258281948221340375434751823662615966172223396504406728412752006300192705247229425210364907977152670168626271947992246472644146669127064164774252643233591744597725345232137248148244266862236734902500228507685375933316878150084676290245777562094532726854367196261722743577266625207529959774353534929246840127219435638235726597514745097027613006066310005653360067311775244732889541719070106197456726931375033566298178366524747314543000396873108134531328861415024284450242319085705703558802973173888231714713368544631157399075006030634203579507484459611767123622029417728102182578753325539412323893913990096797787816172234630467395581910424455266900718617100753241829006122068684334639644952324936955738578935376751474688920949911707531099747335478976688237881571699272599756161189312053445536213782617919076895612678516802788645362602458140151983389245452508711313440800031233210235564012839054517860529624994207091686098291775884363886219127214636455706659186924214661774494342236670744026489809681010356929285738214282655126230464161158492895763827185254524924387563242390068578005258495894063729842480993968711010672553040195532059280035557916409506040965972673616623156606450805873813290242381945459082866597023384161954258551312315445679108295997596086068408360387344543935683018550220550967324652776158865125899209086321444378932811799522452076129545145068167140206743025967141769957042668448867137061706035507956716428362467700794936845487332789614790168188479407708638080059920866722674184086934657938234787727670851874096530481546935378326820619403487300465522078177558352519436964627288675862619683265948904485574203397429249549107180796279394725964454054155057362711044461471670842624479729416345265605929731678114110079766471853174699593897757801971968924078327701528692812251873527689238647154238695685900798805374129599274122156935166352420259251379200969318296388500613889493969124172355422308111047474318822190240735088139899145344646670929539421476517954221930623339443684486054536957043852921305933987935657175271717629193099809050749166692962663738725563188838984041048627494009455135210727336733526586633517867846800978555555876092318223553627225778989705245172450344886060313907027938072951163154936674553995456659292028834156409177491569783633162380744400336640370374579249543666584266919859176636706384347646542412845176069385765675724142519208231366275526110491365098744874033839274867469684157340347762956375324109542323314881224102026187555399151627047774886806347503833047417518786991717332150956381694124364121052828713306999942315983238905513733965164335595898093116731919819072256337537959539597049350829316613342503717036107539323838044578481201859392147042899520752185597368993360137015621747602464528382540519072400309726894957698560401513537713594463314694395296251413969753465687992967197340963737759361081749853253407594917423175474645212388108417773182518156549896232210881392529837779910554246285687204525347557737674666871548802092258157339896922759829874395854443109418598807822818104866680666295243893730889719574210176229616116343989147275632207416620859051547546421352878673606646454607305687876064623192056644623146814703566485309726478840983925234785685032232402864089654409085889678420852940075720805479078239342162544266963331673610225466110186862417558750292991621271300560759873579546144865288287940718440864523712400017729858341510370286812324270255280498082701394440887434672783702704112291843028636336929752742125809219052107882845330135239598463126137057702230906537611136734034724435600276724902105970456738616598379922653778179784388747846142184947614373808575884048238208038892115640320238682059885843676840900094590186650447159217415272085169714193732280067445458023156796577685225605725112727698631206979682268055965474938474467551899054129551884223985580203190804100503375434720638719363108989557875469344125858090718914654067836751086265944900770771427841021249776270862447807704112676741115283676961214020913173390652828117335919489070191386549124438886625158607878058286866477861638071684217420116264647842873070599301256540883509563359996823617464418923287786411318608765753312609095591221413522782415895397381779615488600818251913064489831917916298954141347342996157900378818578650756981357249285019371552111641849832852444221864209313033421256063185775507202445467785008978265029549751281398704650819088840910365284035631574823681295347249345166772899485509198410022812161535780562560022532814226614461557903131232185156814916577573681653899799232071319538764958520782762316281756944351713659918313632983935108300138468431074001909368673985368090113038436661416289633017263808567047167975114581093282066428543826326096853916319780670932119747970931030275874745547034874365663845939899500895003644309996812778279366994894179608059808294398682440133842798172358626530725013098975963384428593039729323172064243672543353908178432770875303905340296223535565998819822592080028493842883171779999432182920491045849962047088484314807252755165986835413753422754071985686702442500618779201344790617600663729034682356016184023968075357950264557437660212490923228831717255899168075758039819577939547385289667260821088145298725096549804011907384623609432524073159910811006089913119020112562293008388650207230527210163268762263285825089872166887419185277641963341905904666449248868737395567240202013372777262783556190381779981690875976521998410411486050665626417398938457248685734428524385057035943631545084140220997133261255183592836096697731366687932356680081312152571388611351904658703250286367989457455512783116363016286829288979611978435599677884690868433525126018696731799280630184343159587651872770955541315967470586586231915473089052362350193442176557721238753523845901706215302437579928614045333526948392775641152829026897531237878921243868521015363930577718453701406305392920024528050761459586180329452850800768526362814547545891326381481613880236409406410861449834378355175220075480739612130508935201912213994626789856292244306503394038694987507661496816120912137080414845074929604915972525265244347859088650707498368876296918420996907457684752650922755778326398519780205020874881813042881924736502243636908624514071278508474396363690460022232123226431333799179360886912796813031447344323776971150267953789602654511580124125128579086505092960173373867398450411101187889222292604229704616583453801691882488637569766137079712689208971800049810850682336942572395466153304979109021417453677123089983974627710990136864919956995768049326385604197154819317699201540205669364276646190154938042811352982083040675572517147974890205230920380080283106631600878474978006590398087968203255366179870173786441212568380901568427272099761062365747521636246621884078355623195690033833587167400171552312810872074428752839995339453429904956939348507072070037085173495364598125864238911862457531994735238960819228813903969215192798751387941543970949221546642160851050208127748020611611385556588509796604144846120342673386692451906781906239726259635066016883844758218953538944118587496692626361283021677211738186818504620323938841099429465064443638059429783388409507707606051804988871388904571806415795780391788005277717818078145591759569589872963699172640042959606013301045454618619733959368262562896182660808606239855555302918054844067177152969144446148172307915882214716442147510315459632987533670330308526361682096268026235030504181003167324199172181926288562852890791823783712009591854859936524295798254121171464842881959601807420811789149362036775381687289246074181248773456012312944068818669815796247787604786109801738950806639898090329464378701872864682190574852495384062750357055120500088538500893802858352545283154390980810125626420014634867892702446245825403343167705290713791403549751629245579886777990623156412459834564010449837105137107806055218899606321099494459230887705231170965835603238055334072226775900889337959879362194295877527427162498958155691855084456862779684670963569164485054109592997266349456451563308680095337866952344550320209351378871690582808066989342003358607523335413577118226545814145045474885376123947585976438183199147752517802860878871998999590313530174286543608653179554475719185425105043264688388854027624630436935831780416985085731391309130889221380222911297878514983761069289909416043161083542544298451032098804303848851431237372379509543004672044850995028109637299742579105595901153963211441005503820365030672329696899426007173223384817428958260897625762066124140445581837113109234766518690390563246192175920320568087170768892195289516903649217024512608993706758026669458824330390182410269464196012262078535735720249636752621628869091811563230682145242642518493170972685992806210883364640676903823882966607291794752264438060443640121501678608399764733148373008874620870765803535040981399947467212067417104284529481577474636874108994797897397848036408425608784731752530008649651598493658891589986554967213820808540681576848896992893869056611347883396345443907116475411465063620271693752856486030572766796921837958955340238970374971940301515224186497037973793429848944825749299177022698065620008907693929026192614476465773163041460036937898660872911530208973477690544435095701560058612112779038169608049942246081892367400248059336524857800842819425442966188153758855948558066709215716091777167133649109606605806551286391640970050579516120291167006597623924995744315897675559028032792122188788840777303280603487987997924830849268639130415521043046397610763747306177477592183776127188756809838837329699264281934638951051671304416442890249695872383933426900827774615576798948425817207503585756067400999049034700533208382298949293518813309172668199411646388858342274875780235333484374079973335752994573347889349362342118472366162526473906338266296288272284659269206928333657484979312057232422792634569062515225117933337460006249669639249942777999077855627187114259387209779341060200342614117535479968684308403780088468055141560662916030404629981325808950865564459241558103012465170438223948886900450896137818266486812762966907042869144990981709138267819468927437364299241465112064126684683548867100540389051638279133980104298016142104233345268465931892734127743809218432674808788982736350428943691185595560599113339626060042723029817014147550667631363741604894475260812670603248820843450793546199023630129870037999203417087125395139012898762185349799523298067699291353597443022890076814113732330979570022515301715863037859545170303358707304071116453625326969738260735708116258772286943534329418535394714552885181527655287625730392349174374010889624673112325549840922406366336866689069239337515137864724590435320864681783440354204676423523608731020134636773768056852282603618289082607176856078351354334565931754372629018586929539697234742533773228642237623990438950781117890576906283840743822170434896129618960384199428254885469082838166658119021987149279175298045792093046058945271156139169876246080650505031653382455377768024920627930885041732717686876033588327257650677561818748828366693461792624876442314957273015006208835591811033891205559325856536374237596207742665132143741629165608023336458786519494182805407216163611902545551049361864844268688426896876864231841379263932370434747786372948071385326010259630592420193017888873572470921620478576426522021627463699897156140417360679757433740526771274911169819144728333035404894958925339341384612402168324623634089513759963964222718774275743142655864288867770141651090501966186217291401636683138105212071838979693140092781970276594266531080060464303647609302787830644464841413977384463349040913644229600467078629337029350255280516697537134109247408599786581742269359206644297034759345059479269646864822418064647786553526480555620069941847683323862439873932283658938468804542785157452220599279467725293395242893901363251550470416358609295635236899908263683313011513991266788192916446661256188293601449962948974290780606640729767217979078113926107535819016280531680510512452551852047505252585251088815370249555956340339677196145200902729256511180939640628283513253216428671994778045356558264607563197920236379218780182637257310306807571161249359624152436955947281044374945010435193609241789157245366685121740732501313520040035749336771233584170415890120588729900442638928337966187391807294999794767399250109124887690371865220033082434057370707257062940106567495701793031435684355139136469971676027175842062497428590954286674219187300214029721133621616184632410296755336798502708895210450292565762696585708964157654918750493552532161618085714449732502661211112677931835218225563030487842117961352782901874135856713044799803602887681480148088201807675172589699398854311176414787021961661727527811918855043509508450328387053149767544135602283293540327690536138111425858806073335205898636457400354910510433088354443285942045240893973464001937551212873181677473477827395418093545918301667985605535160214860151567924666922438495577625476509212387347328193636962690513805747243528426198814263745765676408152842275186487226366609122721361956421043712639940659357835859735333584818205378024713699986808068924330428848735586737883034400865239269536887088054663068999621067191767334665819306476997515404972664417627853052072536909023693914785448361108477927680491776373650506966119986116210175301074812138205835643922756207523919022025017734006061324410321241681760529479795582048424465995079449895587627662549242938845029773853681634956732415098522956602784011376802105182976998062189324189910574480582195420707500378169932780798861509911813084125782850659341169559302459838478215076968628270812061527648356863126505577478225768693598121918825567674379131355881066419975215192710529015111888770177403458526062888924999610048444464817806432017635430822099152157964075027860162459234319941688583812331418894490950797189597596256334322490866259581960090442210430821752279659576849157404850653778022312719317511918672413383414624809418946877695151574268461394595885934454140623828937049879437901420208009101016339158745733568666075113713859297495041641790377298091149518699555463781566200587889055466367520623354916375930426930693770507232948346850682577443511911276985838068812593338326224331581024785869080965766832871359444246888156206314438358560711871723844656502745649526577526165345080817662935183057544815484394431267895015057607182685367248152501440363331483873592512773473429218594309275383069197819049743677236559133926500106068153949764828384769009165467679084191590629382013899809193441143352878435278802031108981609195357303507054631518410941440892128056385582152133783288963218486050471556604295800891981253117935250978302279837573695852053260957207582281896649616808771793333900887074088642130630497368599805023524579071734558014537681248797009773171135378388470800222603208395975012992767868968954858134134273616441840249053090368467535057738536764887325469647795493534495433174392841695696993845334865345011135862837677161339450405713833513563201035486108052925552542147913868407139831565730492526180725934811014394480076685343385725766649199739363355949894583671351766797320363484857380763788172235115930821503372143472766141613456849474508113640163504666306679108695954608133718419094845975163119557375978348131624232788615900985721928269788601082677100438168238152320873400919737591248572899449000388846645276027613586801810003133653785673009069459678998649392403143297606858162476167524856346028284380556504167947802014145190739140595684995142976756784068170679683737950957689819092152311695369281501262839597520310890351438438064598911141731450974016440321954924834815836698586076453660880161877744832233061986457566733011434850295108962803313410175093642153297696462218849502729843558480382397023503898076612814063087940189310706873972670039150339260254556695889383244244312903302337554558513073198791037320799900520901704285682688429102270209201363827825014821233607668397718776773011310666073720971104109733775059225550850942416920894552807858913802957870025538593307983946002277184566476478332518205417479657862930033962742972399349543484476908525718947328445726833407777985239209464672465626389359913136977554818077773415322047907260550411703643877748416734431529726342868637039826756071686035309467956967368705879678983393305490734345698479217089325613787588421710532094745079444067980903191223808651616324437406060625882213073723416098957353517777719168753571346325597946353919314039006398823115574535879740216865901188474213109723614335387104910738631489479135508934044095602413627635550637145824751428169659141075446750417670838832030334973536751256356640978210066624360874988944841235576136152260239400630896415172116406545454258724506699842095191185298267669210865913973522587763180713369302153701131058284489016968886668041982612916329347289497882664152471497965329438307126702136928454610120582685420153259792211848045894512662757967336149782596646863098890060782165796533553760439324171679280424419939117917524128632334756279275620164707238080992537653837600996520564758353964854732849937741757690464780619505324220552131863098986315708884177176648707384145897145121780699097801464330154141564808083085010904395273754426703081453565081133147007747055249565695599339156723494162719174087335776976794336324848844929423916903939004588546090047625349628790307919586417896649318500166712637978212035683019204777014872122348095173328502091656163519506002941558810636740922741827735592209224346996238441321071338652385248003746990549919747351952374455122156095538695453875972580530009271282176073840040816768717934264793956277515172269743846767260885186960280866549019953514612549100518126767990994456262997290497113460121578736912131304292711005269339502210387673805476643863221040097812677812890633419136674690194603062905286136378286836635730023734846257051479466399799112521752506048410059557492524946310712795048618020022938790577218439706679935951537226541773567322952986348528334760103769157556226319097134539221428848524356942269109554371606272759756150944030778809533271824542289072528328585557831293785833185731295795465389398960459546740878638242129412168382734699995399816134322056551600980279757124636016801503314818163892448069157510889137411132793281654345464689274595674228613973204369468552568477075957511830279927748262041190869027104551683675747234252048847136882192189684241150938206923280730570275192598380446110670139858564749978819262466511081410749890190458395495708806783637261084635401560754942233723979288193438556571079069311898219757152998309084186666283518142308845255488330075916994306627927113655234879369348903891178213684870736890709242244465696305881107154296512641122545341834604066034036920267743428428479478592100554436439382015902342045607180802026466169836310388208852047514750556059008322213858037472618453785105154032222984878215356350945159761794991116935022322494287401363155309031319945391239904927415854783028613524975580975897758431861436138750206018694117896344852371315300853591643402509164728088609154410468771240939867677124716066650925077948192555171512878376918680496259184177919415475821434224967257838848751788227756136193253622304694498064084657280152033859303593952082730760623199686096340127572242945641862365045608492466778349292678062478094636188286361844863008757875555501345792072112007308018869080985158591549646946597319879275099236806956083338581084579214725101957032569474052006691901958116285473158638130544001890594524168071524240558814242116571539635857699709461339863018674866684871352875766486856175535350638529388531707604431359440545153991544516529058106371785354880342047009795153509574384113408547625363027428132058936297497943330622742258181103323437879315778813487633028556890647047744461524922858739741361085682881668194074088315214863054263794555460257577736561086205477636697600398144006489777594286215028655866556896051004359988186759059622730456838375274750722643568629369394232242231694240392533545627418948701029393020800864945238336090369500394516065480426516186246658902033944388622958562048909064803604874317748151481489929903177951730281972709344391771552826109538304750001350794802548412397969452018150686677620257592683399863506776996892833016661905228903545902605363534056529042130958418018214271422157506454512850601903650816765743546391498921859115016685952676387081701070867960189806964569624589838513255504064001215683961137466307051207526260564696096703763190012561168616956671126198289451848051355559527833929642019058579678091910832525457603733003925815764191739071001059532230672497767688612596537906049479637224490873001110792798798547079597431749896732376539986923706990148644756175105883996306106469908222095814523990334676645303501716043094537731855313767742712901362982298422245189872546313255870804460791230227739604391844251555118046423151988188244968855071491764517572508516653198980791366279677631263995194014931876885884232878425876782688954279792828803206666957695415762443279376665288685518852884966257609413266776479301384162941262079447866617296619638292676991227005024470212064105309175124424507435204470551108470065295720884885570706072584775281480043455696780330042792602188298882820778461543752429229230202249865580766193183869141085485745131683464282485543503220196983130007441166826078944673381718591608226592402415129550196169684415650792705722689443889917540743429756397381417956875601954294988453847531481112773951030793087796462931723683970364622868550632712148704540422810423781021387535609319122368064906304264611575721369982386731719514086220025221180441100317303024223473820287278575357968549580051944179771090461560362219201262494551799620311227060037627780453904588573431007574321887176764938241348985938371791244459960342848544882784318115070331386581106144119591856082571605843435901315415371751081781640171475491902572755470261103825245501370007210080977310302027425182263476483214674581109777680438443660411208834407798511483294120792676500927904742198127680214783349190460217637926527487370167831918024152873417929636158475653438642446783018607365798302498190579519654424299877700153519452902517143108638076667648522871852305862487757497041590510346606150097567077525507576255201922067426735033930345300492858953762995490438943268204437666761285504249821179978800179786717466726034256701549220630522829469527831849540037807868396061691415140164908806815319758864374348166611728187143557473203468166693431953593998607664436638226117403377825154228256996186429689406512629992390803205189519486644588547018618420423784561428416512327822670282222164979673213933145103165801743495903993313835752584415190614592616264286513338879919115903609654232370693291105264036957639622252419026332866672492749002538029473626968096767734661839094781179770091275640083818622157228647953922967601901361787130722405374638658901839414590999874777102013828099803592751326173834596077671606188957758151026407001208587797574869839262444015371931914559756220334364881077181283982494695963654070744251972666883582533955807018791943405741542182288728425083412900086209414784498731097843364096688657765909999105789832582101381888167639468784846778083889414348775536020363570144160592982151330359424064144954760960727015372200324025866199840904166322454554414301658677176414740118579654129813151312722188336613964132996171745991071820679917828586956785842388382258722135172130718377815350401656241107711539863660789763495431161481595804985497452244742015223642286567475133399190671393834727871609945870804798039897995832633112808766371289119815913661440695148641719128665621114604357655686738123250748733909427893007976841764058190054423353107121865479296018540269009917530655228246973738269621969254107463172888881797166193900052333891539542942612556566506871846922188120215657508205385320806384230900275450014775528476965416043426206791119273328768082826954933932954014536739196115092724375368379751358584466168955762574349909323798431527896340391120414297181809031880066974440870217920410214378697291191141149548943790981903195109329653430556098379580699278014614001967974769125831175664040973330033548527796144806462586300341565352427340342371456955282851294868243798739286160968294061342765286647150338974901755763406817858031169521208868806876110450520293296116607350133988446666775773271010429519961328744181580159564168089482299522098755537120508649684571839712887993968691823936740971896277033616666518925543767006247099360504254576258025119530843125418632604441994202487637608419697539433491005393195078738914033935111426607580617992953879499657856901637053396466932705180196639561438820908632385412210247451536522228534853196787691285662223956666650931736827599594087099171883079763268876945836971073512173732990572064425940360387462846370997703414410875171917981200502070522197777338523537960010776517450287675023203929573724778218751123505510074859158330829430530785071379101265223614862611916595794326506828923471764082743222142820540486425398566790959992505392240189098890726399065108358911072684730522387003589529903811234512595526225964886723341771972290787960479267184760323177778225452679919711641880508873718257657311983121591114255444576030423464553660881008152698867233432302857429855752597572996328393834371811755194081372185558222084683814268669049081906631282465116253183399111648701414293367862392902813082849032812192526237706360514569351948660967436661542348639077302115699697166534571858511522678456273065313815564672151082872601299298505247328669012881264827849883433880108045398329722484487274402545108865745255111467271335037191037280447609458079830648265108196527851311738353053785463758885451352453070607232528556580913995951305189881204220708461736512793734937648261582873398332038660669155213637365789796951002807345304046103492962484870686039379427972952376160015962880312818606831391018971371291056277484710248299941824536916439132452035372715595274180500316198806502921615531037216333211130677474816977098682520962561951405272502932236063785949008551893107324618471282233183851516579214703248990962644516291065861767355244777695340702545204703120210399612173250017793438833052329444151808730811011372445213893495657339349779133533565789060802095610102595813437480483771827012139743437781129836423193645500776371734183526919399328768274761182956448602534267007461673689660194268402546672613897980842504452136570778281386615225006086122413060209994124228605886687820407633458829183870438157465263121087527131917150277508176377541977568932808108547365259742614545534122419388514964323691372122984253713061211609569037602399456223945534998766929902971983597280042621036448995508743386272857855704623054832028903097813661629706479045960077741289427253129625526419381624453812486243552911350139134535593250348911134139802295076943359015680656767465144892704624651763992388013290803977546921940379317147166198792672825223063008539568386613311544141874117967611178099896831383118318534434827437857390484149337782610255450771498698781035640180725198424733148740701482496229308040927843174796651754038225219508972272299536787264793309501725237976667943042968971242659713069694268561376176169492871037016516859849191734871630928206909682518399792766717314989335579625105303581719710742713649504124282262978329826140958296720819488397629167211064148985693224775654941452924106080358074012073952959283704158096845747224092920196406708940831569164356004625481682385905053750684444089657049865947089104769344127945348490617122845088477953077040223979050641239000748336089977502780810631694517734610165378928277622680757586461438418830888964288643734095921659689400679217340955587142246130756758533153493643906210361119504740841956163737723186026402781008950209493851985314090168332827940925764030468049885133707737833189305739282500205123433556214168222552102151285791260821511588684896418249919627417756196321389141539209131743100119844959892522012507764054457756860937198235370663677759802195509800245753182864955694926395869947968278534199491797219298355259888957805895337616648064534401996505045968873401412229593687883623957591467913282451076487092244836457528313412022192113418271887749393229763009042792249233898856292543008073713621861902316306514386025866997689484560208413575030409912803406633890774209087739031506090463042066997521708705773441911873803595816331112918052353140261122562542335870251245591972885267407393809538940911192569571168150571195246246610152978943429215891612650873762508191434225200113525115193614847063323695956095529479057181492374599537574424154613199307332304670208879154448691496585106989762726163855962781418915909290977961531359032268559921369168459771655090460423692195957140391622650650677433166971598577855575776647607241621720767506027192504439098647792074452155727716422980035219103849484563127048352775756373840051061470380485586980409234376207015468654473308595492321703483268165197276689772381511258944479135304350223276295603478328279234292752493132745360967760178063609781291214783468822684120953174394834967491630505485958114972698381818617824460329416277267163474862415765594946971505926412607277992145653816834684995851699281064497226045214382518058314104712734753421473942661808034463689403730815226384636459137314317946109786442178773986446595351859564031501297846662126106079069232799376645069847945877963437226322153272853594269225076849920857752341471231357016621513815912964243211524445774715030252222590889564001234092801671459407377273214310653506030049463169984699953783431854176216768185417157857921237717508786917218151864090508049946445619313705994808451569973562085721022052010892742222410053246026579491279724554380201986862310496310138544719297716510354002903958032187867986813590981234325776925140279587094156443304657781766312736323063586881054751043493791558225056861397815344509926577884744791318105176401511106076115202651558993367349039193249101862661935675759326791424916217890388504034492776957751417935352518409394714319544628360278678354533739656552974812193621451101873435489025529861209845056499734077109701386901056156214900820399213070135697010976040323722041720661525207149701163396783650642127319259993029666487490500397409929370073538794145344408821212170548309457340298722244088703257324310793487658762341635432243512590004574257678177376219614515926385594236383081757083069132838913629740933361725416868122227866055179356580500499084157928248621720138774569175481401409560587268642157053108710199506769176020611035206276929176654675395950574951112069369830533324213543828412546018912315036838638708262191081992209678495186921622173718048685332971279191533749822914233205649554978084783273808903590201078412931460466353091013154341617685857810003431894332799606776795280409527988129854283534771603058625182836717007806837054678225714422415137407123156053228933292622175741364909815933934338279907816296308397032215304890051348423146929340716307572365875500337623096737028478677055095687250582577276649022938303200336317390805751485960282531042918043853692713637698282334876924274487475163978168163472222464353870974881528125687982595085610718291483242991450566847123172770816873751434167133049883714633313865533040318663816991319906350518461921182830287786827537157011292148512741035036163301188758829782540523020015139345713672376853738390958773651093429445321736806540866707255949075777832273808696930845541345480679409730180330779362954971435411846949198182889187241718251758270556138629247567309044780814089408287266465051569653956493600722272016755391764172320207249970373927754587705865528831953272356550937576764770432833603789330618557560064538050757713379061094434242581563444625954257670969160721424772184905062032455709460061613303583491549130050457292090684113987164350479143426738982165429298420866861692231277833301531783583653873344447490724998097257897931341451092543960067229451614594110127371361366192662906403918856249951940685600693386862643101928946031904495709807118140853329468093936596460719460607042254535121424435878532033074104915863986873186710149665890737188902402032108416775349791673146516057922991702979559238100094629254311582135439248258510449482744635388802219157351462687391263687267636406168581958649767077143082496160036434942983971824699148649653657267958324408878906907203183135927590560538503056596687759748409265188037294835908617423790180240677567841149080594636286946457673257003212197969824792333130542143299291195485098604129215686900227418675000762040835844153391916592692269440682690765780918474954247245188702380217634124469014865576132250812979912112960166047825370069961462305196492610721866971899566727139230324607851165355607732962240675969807291221658581667640043252922784718537303546831621299042713042060000523087466296357463368795413973125712029298822586872940726109122679943846692740050618349520380246569030869698365100285846164795156157569933650462736931751299591889584904848292096614042385937085380185294717719634473469084485584598096059484172801192419797066081522932348309363270764217667160711241824483858229606442359430672422384518066713782162063582018423975097013835220953874384001376453074156429231233494270166948297096068968166303534729098090016566966799660725894011732335880184198572209748774387985038124730423053314524829819089865013320451105930994529918061048656911718327720376910302230475276719339896389462678214789907463846011462306094142201852981426773240598916532479215097522187953402118929112789159594964996057400489678158147116714509366066082028493104796717763495486113962901508837845079689575885823823022982639372342897843538416260600039934742593483723279264000187349808031444795941173823165495857553346333339056311241979058487810032284070065531315027081445111729019303869661307967040675373798143174295561046012019215796991977038744051305486343891790800610473439465966820667806529567553746817368011566980439735965731249531453206328052599469012680920527138417048829001104064253315911128837445715762934253677618930976788544572402024254988274075850729484815022553173040907204919237711629922324699147138574215737113775008515724479495979156157661913107767137879335393342192849339060633993054963802458388176451804104028490898497379212789283554294360610985768151886778511454118966549588993559760882648238593310675383297130984136083301284992176645693644645956503024251163085911465616311050406788281123774840091438326686709764756713064563424200930113282944912373605510375107559712200391690514384193006554840404302181965751756869783993723973515323345832288279404251362890409419768546256231969289497825025329258496829981590452162483657999785826844741449265706210146362737687220674853641678866004795639037293317313921933842788511826577094972458968060965813964660110184650546605176959353147199172013922239048407363195202215374582028284940325856111266085453478644079473193668144000289574056978528056247698070691216070368646651679281237596160025475373916246648443128051400163662283631006360195260824829731010596450114683647127483001411436395596453118828259562514685386207225182300357320017448551048175515878291702236317160524097160573297051146943334414537143642828883528094040523492567649058990465093755966789324789651344965489136087241450096054450190796534099063201446507679353384042176950105419681811221879179576107359455821413130604379856790662134882011981104380426369901165489916109947309492406348836428971289141768696267631279981295623050843256618990040115878934451597783580759105424630891208495045072317904563694937112800459797911634175204255064879377295191901402996357189692232023331205999964565782202258366582567092512053713599010159472715476568380328077800264184998900573500668216734278792706477685200495266231691799998898512513646815800450285576813041733240342218405330094588045129718314294630327398972629608752350312498130077191317198363289524763692519578118909303115908841511846960214967433783245109594989597461595960797580711968951266057785307874846634882287027817764226431744515585850190406099108138083424807191409701317945363778904478115440518051476430750568913345334657155751997536407570429789828313966410730666029781386943379906572202654968353245775682014808042895995232798323075896851216514218768091401993305847749377709085748449767643906284575056847525886940435638828257948862876607880623128326703624359726932531653748940836432194157931547677202229703089007021583551698381682619959257073859210367759123511800335883527857867790455755824623907348436984320858337908426318035724719798130061045257508583252139925251325786397788577903481504147244792498518288515150351674893472694700342396950684744378647520131943953755581818737430255421215963451497238452051308327638462343919969859544193755880696561900124528679912922139909254074428997863140464552395318490844751238998068919542472248368571542007341558944521956215584105980679786607271847034938687007113078765054315178852432822000931814444694813859328016932565252392232099844592747800884528310548147648581395107954494971434295998637440339979108061153857664840640224167680885876493785722137038314565652849554291446942458019105796003995149095145502116213504247767316029991656673461156196187049458825958623790394392247154335831192976784381623251045510178891940169608201596075407544942407789230690619991163240157907457926480390691544287173970686719077392945330819751423283195221805061298696903834806217943212291328836198774795193818939736060775294958833124268979180731078377855058105114289786162670552851151556179663772675811812485248367333057545978528731709938085785188436407896509878955004637618911136037833400651789296814506394467361016328100885149199395752246193911227879948318381305583884301784069000894877422753548118034717214879910602086816921590345185074674855727030144644380438426906369478383741362874365383538690162972866601103398947869025847871398051834415736168040320576579114990337026713396728380730101658337812380747457086382932615918887596389413242662870040194184197433631848611120481164704859097243381898940329994289344840938809710212101493280283768411270919005186311759142043898890238624275996327847000180642303791933750082179981581070391764184107127273761380451379136630597243852446196500556765789181446010924833016128821375141433751298955924019035173114332346958469223842057678546213142901271865618800702918155061019023318338549562079818932849929244564156082148186076331961258196107653737207094275056627719652666408184834616666806434613035231432532708562643675997690680989735650172861485428571972254853228397060338612963484459482529721732769604748539395440335306663615678691031826461758661076818756378725955448994465756988205570580961274964341163542837106710944950945683147996472658016033429101987576115914306473294151622775610982412003784962874287372056138555536390470881911524895361442139013468033526176154941565400940286683042383603512110096031458538027823810696563295316549282069738398756761542438158459336252849805339679866310861104473650263635948378996759226582934465569423960067193581691901137876103266564417254495253439958016706299808292771747918318324022536890143500634668093307963530665713913977614917173611750135433242496586627484926153626238568302097378026327380607885768315442639194330277160681504261098394534434677585977091942978487473136497636645244731083860447852698815478669290920180150153329072180207481046119933636797505776342927104908539229914762215286813428307758519247043680925563317798883625073746591116312856202706304517742884365044619324887289204655833439585688372736181597535248144439637918291283418350012416859095487428605492157468791503269869147218839568090917750471664650947050738388420357266915840932596021624590354770777373403451702168276701952891117326954061284696515180638003741349421529939317105304211615399352645515773330472377446588955706948982865415414634058597921951825866238705907000478824873694732720594942699682195766705115037562576387805266127945858012565235924011115191661973878662291929356455489787065061248746820947352904901861393155030490838918798873737873494399723990604183290130515681681988757276234235382306753933103308587630746463437299456443859090718865776842631696499803364856923421164962604234346225705147157909288432432690900120880201529142533866018101297876957369255066684883320929227020113733764524753543889161122557945590984475590127249984349849798074844756579469754314758371630311070792064391015972310092196387690620128336106649423262903624077113133631855354156462432978915019739742946555445512187024732690991620904968938122749022821583498403440325111178977445169525101560672733212185189417639750116711005709988086138412393683172087277246706388355901016292466790067909835293343364172111947684986043391304151271128633892652342501905048344209481486072301439982157774551052272052607874232949126793632370905363572733246924755114752089924792491415003220086598057761918415783429332805808094833331352304671155130491624371974413382156541959461753534146895387540032432540175628085379730462856007440893910619515357800953191788917568490896001843402375261950015384424344804455934794749460070339314580976675888364146887638420883240530181928883126656509028095121119222443191728393411302388869844877877998508175105486191563499380898630194981245327566459470172502334355382093645646241744558921017714667840115393374515489422838789775200543124764374638692045295843604449688919823084740521670882206775944564371678064921974695678904099473288984329067753114528285111560662416040207202764778540893161414641212814440372132708955506562215444125377129162064578916886936410496506261572258557551479479853011568044397035371994933296425325051439514615784755955379243227673419441066683263944412437470106388510853151916723885711789427401277170273727568495063790339486093948177627356157923027469482298911812803124794858232119126518679799312317329479687540121923125138853730186319061029859034942925820142243951061611345973650940433335286823437843867005223885673895308687735887998196932092572305580155433464299472897639691609722016424594759190089942136002478097235094048368566563769837043471625972778615086124143930347547094658716795745312832255884087875650423011169095352808840696983781656339960100368337724619029981255003471101980939060955348216747063551593091880905836386263207253434094617966695617380929966079272427624359722669768058538607000483024641645446194410886809810300476340248667068410034329714739821077189584794452949726281003538252832439517735012533892665462924366557675459006872974514622817568801742148645688420007223528069203243415117644795746149909377260859838968534258098414530165115576771340584814268829585073588135980430202384926194633079198555278737817107933593075430703484377498066849540014006085714334170200615310527311611742910621767098596091391433636897085298261660050989615055364475122375646703511205300034451400510620429827816715742264759487372487020773767503461965736254251814232607950076221542355949533070462125291780564527460107769166464394858898130853275665276395903768964269483477620797941933017573975973114129231244661567239090623546621768435594576932031370283890187910122501222547780485576780399101521206572620364722319156877613600497201492872802583444335676074883944683217361366032368250978479388694732750085502024884493293087777383805987196880558142877465343138856314791369302588333325890247995056382207633673087940942537438878376314248876361011626516454577923198756990829474712730277541595078231811363187422161363134705074016793102787999442573746582043319804749806798006427925334943302946872989268699468317394026668287255382107752493241367240377371574377441935916168315925621640649023230965615104911253658878860887979093536757820152550900782191946772837473844652782285412660926006156514365421735256114931187866078334954521384018319790327277598594620033258396428639511628813246700106788266360876975358893896055471399684393959450249476040154263695988684695097763173055592386028578218819266435231417851866793792995032790412250583184275024524615484392732138476627129855045401234599955642401928084061940777670308869225576176092156587644167154574256660750407414066961331121641939701072417421959483181075437577304812171135687539891129685866126175258648971950543004200281113371031512892994401247421542674435548116231883575429822143768037378395115022342564551035181663383590118116200572853170468634946776577965220587164665763652026388036761797874408704588900444871246127076210727846932151346952481591458859359502918984185001936165451813644350582240954362108730749880769004375232240275733344372963651488406301884380568834478637251298396488031196762614878494861003736633778529814419558069889718171089967991801918541718843424022047483772413782659632554731123321657089782885421273861925772901209050339358900732484343612949616098201941802888283018803835470737775707298685300447936016262226897844078375787083936310851153801174426253901167795851008300522732439050918717298782976980081073720384083171494341492916319257787859955289360035106068166560993489004843286123850822115363559618626224285687908393332217588239557341164801202474322920347921661754316287749962231889990703068804712785241763510207493666394983922537086440298209384552421880741037634196000028996736898549882685361582995238849383077115167798703843062042965278675738300256088861826576492998002204055219890933312852377511324476304532315909350013225989485957754019470859946102841310592890485003548477428425027390327673775445372617359472022645702940889086092591146702705294456520193266384844294139492827467532909768111386397439849454999038545349677678943918328592843989122674429549736369113655453943969839055300637373975127251437188327811040873061633774110828123176384447066505869832828441037591174590460354621363845327006943165527297663392940127899823656339456031326099329758313112805507810466796453269757594185811479345183232492805326059394899999873551171218852241128914398833429356154472627127680351545800087432479110114592540804531809491289387074083462306444777703516059830388261492653851982373093737098876038087438847482329434031081838470744683119758501394560997968371857823068687162196630916615626702956737959698630636609928556688152186728929535428758592270622474674721156885894769412802655275197022161361795502012788938091174426751288748939949505311719220175822853274806248152782025268349805562326162449272766779364315498095730417130847269063764075005106550728843324442863155290288251869915365889075880068883376474596971230201883242433938004795225819079505431366847859564845871749870465574908493475800296230690843395052300863556025159194879552192375777214895220813851177017380848926177663313342267928870452724338796354086633667688251956628303154349994254801867616311581916897986228110241352366212890868743433539442680343444699037941505392077790455074975832706487587726120227680411402163480343586626779256458182783468159041570469428239676658264085378582433495334508494757332879028630248461251436313301689603561678334519340989466569402376378681884146176114541691496751674012727682203891424065099149715926356518466289950106803633913579522665967006750339416673003614134619084725272814738097876607873125316843911801324642325373489173213463467268338735831929638237522873134083852382379070416491797300124329298832306083937316130821950468310146991820449642267079118043557958375684274265498742566725174037388419103610694208759396722794400453365011385347061925443840290878022886132279310361588922890052286467911150113737999964304960877721363877246160925862150154645070336750813082226679403383867180444765570979409592520677835391798968628524743713616210717757848113912645119006336885792027539638267368229428908910482927840095616733709579137894515004572861649173401887451380907914102330293275493682468343216206870737917187487120819589633749942465365780923023237936613926677027466252586397173635683639991196802254547541317532481345822164366650371258856545606042247037615436530447302569182832976361421002784705862908272707827544806791350722151902595251948894432896389112704485854123625567961799729116200525400985449067103728693034544809086738175008396436982728166952310151645185776146238040365231071899605079320188328651602686662907624244631746286826965469819188044834792520596282429473307398658671829984076577434088517185814368809451379543715970965425859006233605277542916027033594055180446942730027927074402965370499798685071061781626698246958072290664510938577857889695973084673742159868867857456632896016611766970535071959350004555432583707657132805188350513254783586724731290865634186265125800390626025335839833708050462554215792257234610171690168851772756765328893282148550652673608726990906139764526141052364886822726133173408997644266857680241065331738078976967361342204687939821888520380615254460114387079485602382229580429965583386940856799013770241146595276866705208752701164488871146122322415631335206103594742122519100217897333580757016833396439279141307596213516253622586803455155767073223778822494624067001860468418390051140585586283975506123617817493468678831940765493976513328066900033505221186304295654931501337525090328964813430739673492964512129752056370581945553175414471139938403881725054710172307125864185599136575778933109185703456343230756862744651691057876116947178936619446028751897550275640183443487738957470974791792590875062172126083600013918208214118149961027664397786527002838828541097043552455106613195070010134752408588642640710822307997333498036681078749709374188538122474813423321593745679771021313096598791054158011486758565066818962358696412092492856993313922544380064448125787140267938821756340897022519903053485295216890773057715202528936709235054882559774497945225134490923127411202722038247663377513971249667545749710809155576989508797130783400497511930089308962711956698966547075758925400063289734483490009317072838981574994267292991093221825600907734203430277919139474548717445687703526056508859441150587077368625581064448029498578805105236560385708337080239236162499552520532661007590576154277519672442315841409798580945995496872841502910045165057975649378373898352583445057626636653168086928179805190194092466259157962301676743705918815349662356361619155010723252212402110526406103797052547946104946327239305025740871839734038033936039549582739279170372884754209414569629263005777965508826222899659030198424651924585853871088158319764812201957101869590037915779435767073686651501760769008436205331373839232523766484975735316740737829854777391433774118330065230250729914955496718022449210899725899177867988855198688855797186569080235871278193614551004017874743340347950946110868491806474170940798770735196794247309893488166458894327324336635234363583800033693534782954183045197126769678591275405660078781379879631855526068462234839694301480106041247161620445656647831721250800596601725524580299649470918909738393776402405628600938122050445650774498716780519729049335190573729559531281546941818584737089703638540826481944308528787876419133397945069699910916969534197872379406991530989311326752683604314662900019339353547366426297032317097166785363238335727797836026943499343757813198357533339700526616013704883998136149330082005438570116706712913725062482108339712118378013521921843601699876570001893904830178628676940738870112363447990110093682237177570344732535698401396119210887815432993193464105506338976538222376960151991126238949719627231566732400987574167405656225008670695152806136270228018369156359962273732781712989303349368402614534655444296817572580519642241301278798227039702180102319658425831613572207681525849887915267826360488290788930750251606635163838579323449490567400038695630007521026673401674005802113948047242446030146292973337832501818520752655477326001423779237323804560869141733753112663373145313161451111592339812917741530230293536902147633592170864140979383934622468474343114831327009501181520981732783518584290064525749688434794815008829195941167315327149299651071789693901010591215807906953578856236535358632952977166230665289109658586480080990941804789234121440916500952235728915134051669507097894843915284514942198235332897455620877134892189847810521113586084437085308075692126560734675466389650855198513528072465887900428104861956621854696348375397687732417474484291845366791406421520416636727254742802954829398383336398112173739672424400304076309245130251459386357066074415955948756085873705334111037965524854117417437667998121965703415297124638634308760277811243996143393507256224339171864657682888257988436065674313389672454112692123468347512274229951610043318779688584871734732415042580483615936640111897659823136648805789695806360140583837736357637366438455810468838554644033259306798336086448562252350704729340598873941233865445971440734740337577570695060711018103839251293206673316603294144259778089769953797186703491530305254810523863306344795042490390922240504987825484333960209110462934516137568660799061188444369654549613291251181033659841985965557114892152881893964942328584029219248643524530617471935173304036294116484782148643359815669928378352813578347906168549094710531331341401400202978068182069082462642041764506888521035912734622809367860977167044304112959489774899244930371413741631627892738452337977732365606215522994989518130197898525949938165357747239512738131756627854775741161851342857814171164314617606447137938217325874727265820211761948250072807195668859192318782063049628852072725287759433490420374317947174822288894226609701252904637291181363751467077904543919772264959286295482405034119296674780127226426356201468152388273111317708638876580967560463809008989262999917276244635834102323423686263101481914281426427621876070405200814683266501560868618942964014714165870283995793645837162891801914048402208200773265466747146196378448043582817737061597125349364729831571664241845924480006143989024746263295512935397386872346776036007839962488251514038760533888340746423444424386928150493240369272265435053691038425287731162015000324900047221080698985652598540072799696550103020155927523550506385765822103577159267655829804129328513785334066176980952669494109046450205258014023052024789541389802299284783016388358325717302602697447038684465310701819357577764229459833707683347486031462648148297518528677229101847131199687667769922863162755324133194987738941149361218006042651039206647219549934874588271016754735887311565298100544475457774564735983226458899067125729720019242487997063897974536878153046212335054507268881027220408738878225123951361500743758896521308202248909030509650080667992847044010488162743928370460800393313208841328245062623457733151096435296471849482109372267929071676313734631979763441740473389445152518768560891819220408299222497659210166823502582305006575542428693456007047226346022312551148368137446735324826413739815992122424478945564344681984945495017845308653864764808019692478804565030348792929778636671055919350985976983810329799981198066898942780667353198668016567350455153882291411855177342271469774750389002040803851141303669386300295160115493033254403953206128936723840873500386218676109250057138616387431200010722068525410616380740411371787620413899701188417656919191106549399719197829789621685670113736041209258991572558343132318067577903515803234655341115024027282560374575837572312200183017893440235947417790480934635314292186912195921509493164144831341994079432922164911012973746091798736922353036732876740340698584993820388860338000573641123119180949540665141562267151460836843819379530122172672830354593515118980109548496208789131932984229690882293510184082461805655645642809491821149986973894530354792970438978258192445180867575243462204101859600497457466432808143760530881876913877888807212671519412488447720817721176888597648402534394015791673508476666284716310653974118039263177045197495560804502881436084429454415046264085862238574823304306372778366071703140049127822199586849896388089978322715499064037973431392811870845163915457530913991271408076760970592541301624702790033661102276304190585304769790410211453164515904785081541032958155424432409777978771033686444621743758572304018731822926159561812125864921010773365453808106458499169181051560522890859457930820655404493429710098558906661041993723492237494015236039614955996813678907538914794936783849416891815907993665029033220039264057440932974081926401595431095355157238734009071086065980501121681745620582119362831780095788113529982119427698801673153107166737194888865708067412335768068011219955953887950311064755059045490279827344393086934428211526347550734570333374335225591653575274711255188479797340181667621632416091123318871029970933990979060833473452690561903843033802739200044597757143518344178814617843662097187224058888694505213588352380616219980950234884516180111679536185643127323500943294017290311447291152108684008999174800267746249137354766210782415568887504803120596141053287939261934534219767128234447946223780117580052633577717726454598560440700602633290519493645115537483611289285131684456728757061234666521040800157942592620214024142466852240783151600467995824154409799585758909335019764939195177889991750244083183692417779493790849492797221865269195913045490107820889671980055680051682212274156115989291147214876400252249069141266014792313585970618836039474755380619605602585939065401759643490919701882881332496039281584735360141621538823064935589081561016143685832272771000381235995159340204794409602661042836657281751177054201208448576854627969091866696288778348997091988533438765782648097411380349601955307441999926153343215965481662736326336867537959475456286759423158810272860496513573747273621969296111789874976584685045742747811004676340750155785513332654637924082574428842193073744413887305504074525108276821372177479986317828697969319586115214584430005341180151202767758575914364158050652870301357076490157479359160686435086173223512844694264412912246595146574422686620938619426624819226619818985136297353452009982222945143632810526574508430530212178251060570462869606048433647741721879882795283603351142954020662633610912591879891504203781106491288467401915827215082704065847266941839614524110123034836540590662506526677277851016380227196483930337999033947965388119546047397450333949050780520087502845264710473087781897163713807478901032184519905167634202659973143416309471724141593999431135615437063967869706713208074562384368051279176180044558142087201267484546284515670173673658779604527139004325649724338376659335861406511743934832543399619576175913677874351812798958018887063940675700162311034909745939099269303535527716571351271748224620488320515050542350519799210275833419278528016871710011920301148836950698144342734118174218359842396374494193499536712816444244923991692723152458757723009505516853406927687312352187591256883393267252678583446761212743890184466019321563913848719556022555568564006138951155274330346351075681329991476469288664858205727439801160770076114365911275117960595793617098244472115557999717203299973522150147459182375221662367566136944863603447921274645414943176795858947000847948786179283844847917692523973671188685703127728664855151017459262922718946751235755365062713753614926148102483104278057207962913738470098622911552615310310011009035077540816693888765169220387705162340083934049036955677670973223649149849267113376171255240778874504026646482459825985064682093013132276664197931337861077467570806964776899562753212784833950990502478241142917654124883411015963858656577065444918892416514919498392412744382731912102782549976392041454180219766683816567447132141595317375044483931311645761998719503444258409808657770325399971915321432914551977763015046399864890416588953009358898162222770929965872183430500909718943714470424300376430912728424926525343361597548985394813114041698361638739072517036120490947024270849676976409807279359446366199914178627105696714478623282926520635872790573094131178085930338483304496344346595008884627206915431156367680802123154822952321964365553065831459169572761030834137429872518483691372646952058852463292577012447927913038678630276265531476750346366600705659034907500997201944620551006810634519595322682157373295200672843406119302935912546853816156516217042118748063300553169339322075047700728289289795989679323797097354898312698839114434574571393829406141029866107586137627553508484825579887247035544868107189035899525924795140122275053446112664386407785607896094028055068201351138310701635121476013857233413216313254312719689160930895434280099571876804513423305679973570275244035798813646809433984724716015748164961115058380862691029223701626864585635474121119856703840142277904749890191584055771096343693752889669221747894446009390703891173001550892848594457995775310737074966336993697689074981888859829979066888202362452049616580365487290059728198139421058763091258695751983513384730389311869131221021853765899388024407402767794207760559220508264728790435429897614841526794601097433540158122164677597326405168550331068211303133405546073231345713579018612109079929978018006880064864260428674382537148863206051224204658985470757705323694222747527999588156915473926833668704145921528854936537677415958176409476235312659201474418516699552987580528558760579500715011718878694946608935481850384254704811336209657462637255829242166052361128506755261064240401564882473827051047973167949972684805353149167953450875210124049615400769459471056116570212312527233891476073404517026174510399081124836010558750009069518209133679135269180255255278745394434595815743186617235109112265895870890965413619463763008946037511571680306662054421706111393173972867179357579324180753075913327489666470211273007968300028060912786022421204473835132949251577218316992235058340312646036957520410506772454911389782618030327475527259995731448443881037671057818441722146541455690926024501816158716500534228573256482686399712815895683299592057689603683777645492410584788597840520559187133504801098891046349166118256479822983116554099055490758749699428889222281752529499944227094299376583834911491084378684694420045128981577534839403492573991155170293719951154684126042908835395417615311088292442750080051038387017264217211929560294585566689069319352388837512855500091447308014496900251474394518774358265896485591283164457579770896064052900554593609389728259578775747630644469588288831850037639084599780405407829414573331596218465776345537032674393117913459955284379939630051575064831562451285379045094577877787387075847448891041776440222589473362246567968342907009014485508434045407425104274336882829665038648039175033865883776530408383507257383592658411016307280949260124930473685303559949443722848051287781854297212642749256298640044855209794551847712146166729178637950658409207868388837166873272550579768070240382755401080300396872981664038940466554649190729252908555178179995656891192454032665670971725381037701522595601436661920104311052361668786478243846104137684618042430071056162064179799533293071249821569624517070127777486393184023432102601931583616495346747121366229585961299658493815905667586174413386191142327284081212593798760390898551005800121005679539439306388123479022848828660391346148820624595910686200673125081126999074334163649848901443899493420910054604231396046230068782236790748424517651190194689604983274306787959636373913068022896664588737618678072632459056091515530588795255708360728419541310544342093599728747575199424050970956853681835308601480754436477357568530457813289517498319189096791852075488619814941775722674392969364760496034916274413207851192386406694721327302599788762864864679944900140145389657279113565701976917157719417052298792636181966313966260691700765024624665086094226067201591786873857689362527144071119131923308226718865915913321243258936158058410342506757789101114960938123930529978776350007229991517001656910924093996254698738145540193587714291177285318852780973315969240537870085130709718868741446519983810802120461796239612344980161128388085422918275382458181495034050399770460721215574947298353705251997908823824496662334069832192977451200756789313901761957878506192286516719366735987219514495853765015802150266844997404585994788046848685834826089125726628963955785582092283985428144488969623599533847390067753082437648577826658767718847072690884210650913755296933891423366361955929814318360849360518131548276239525177486567850704683944615839445812343646831047149512354366587032517337341533175682767107904817083900141365165677711884306357529755555554622785642994299770755624977816145563397327499049758771028964423739064130835053298760183020955107444790590455856716664907763020527540542893800200241843295112677537572256961164673262304116622061676046384790580057719573160676583640436821217026164617732070918782456039100929354813204140226133389738255500416023446510623892726323681365066813758545579954345785181822100417366451150265605579971821712825944837248527461582690064977398292236923596441660331625966704214873913251952011780180519698317697329080284455296377868878017610175193834216199866877413946635871939188348868828559849596436786296136394726217978163646938258095204447310166349443409841025523249456323467383393380930992227169946378430272993568822971111722631159631335612382197804073168366627662419701367961004654980963128768742722917809833192538923650986646569941460000010849594798514565288302789263999386845021471346943145294034975453951239192583971189612965303390247507909468835617259059247043020721586010802661024276457392267871838164607518239606624531260586081684139964868576553584901292173937932835116835008225883799984764962629969428754811800117272535300379520006188856056907159918509814217919655554906046577367830637150982168997967763095327031330593136354257036396573607092687177803245778752981900602092104206757627626810954952930191994637259617005904910110184544272103377595563265925463227276053121634186632960436096683841523613618472657723873844685441480220742829912413455749927811770589179693804091223930787320519768311305572570102957415072298549752025193068646576192091926037006141931055700083065785581910363278743753550473526344622261014228180127863423517230187689352449191359001781049331225822962417838437411180690984124779729530062742874409628708440188429453948676061454574231568113766302401931296339681319901098128136095019726702731198181620210885284248204939460148416109827309848654189568635381871017714452300326769094339348571525747776828192400322643764648368381047487657371937877215795495230691626494403436170469138442983513190039623656074626465860887997621457601994479283698265271924007393173420647094268839219021466900473080224504912522309806717446696447242433433466110359825866098462775523805576689248166065030207944089173613940449607044400947870645042815982977798705450495017664643022393132762928896755121091330318242170612820136158826633897766443291012691570090716002651336761696884059584142855913938812229850739402758761918329159718522523228118917099727704703352725819401933254708732202864637938016175484734347012212400853531715301971786935534137475842759922181743566637262053266482845429668762642830190078394667673632591554895340443283253534847279836366996472716075617585051413070620626101727249008113819845851689562232879881947487779945656114731632053384609728013250515018869666297298522455058551125594509743847843296617242949565274998171471245471505202659850987577460667784746348549377992971873618864529516861160541416958507289071009362313356274503247298617565995526830955833744721177655503689919007733641855655324036466501493087872341459501654593278416281566597512660719105415033001079773489369155222312036514437608055518501029320629336254506695524239387300075591784391963237453237310303428120781645758914097598262066248711463911753474320636310219780798019186521603229362476343137068825985339992965684511199165686983295214191151259252306095477934671945675974461351883305412827282810552524968145976076406121545481881052642883526430302265872019880882297082719317832562019551840470777308185411541171319276535356568728711270229247576621184936852294892985550307033980685046419067802985874792952826227602830778764795777176142395824073194618896986087480036339278162715506599855997488589442018047236915656503217638134551549471787371944712868003580312016735581879619331928537054065413092524240956440403191121176214444022846029330014967413256860368578588327125356635735729122654293940178191614380714127014479743531966631518800580111521705697683261679663274382474199095731116573964421533353496746905901701060447070022004543134702585025248072205885574488653482077891183668414839078161039203372940049289663879988720986113959872139671170165762663804389013527502210572117797190271790568896759303871223488838454957427334289838024087173541382600681879354664799275401662518457571881676191504250582175587722274686680713642393389843106847899122910996782494344436514372682694790112774360612636875613972207799602348217248212034048465511204626005964097757450945688630097826459354561983150378996669012633718497152898979037312411135070338867667298314926489967290991756995612622801015029441407764562494781064803504536073245082205266162759265708479551697180626783357211010128106837102741332325954957661189309759770539514464807210737362385893371257877516244974198792130575093785731512692041775615192029731069349498358000949595367240896352492043942099215194287336672240738668577069544707547971625394683927992713631364906366420994285982450432874935958951860400746379340255397953713356089434957998955802670816286557588020913254353388428348559160536858438601862467859371655897479172249948788421582687993281438798926825533384895356327410361802070697693432539499718282061945069288009833348705030097546559527706781522315651645686893065479621600846490448138977924712733310633465178269066011389990754641682000907027569187499118835276202436562115675115975156219328862651521947103616048116490551067559647470788262628346262393954699734299148870607133466994919563146047772720570858567091564947801235609378051335180064013633342739177060990262539619971789305753780704164719651370885592897163390060945870249198888021272463180353141700072539663739980025570421337574556787021752849403859528567896372902477571568614129443703385782612811128871011257880430006893559694365401699991345707751550529341655784922869706946082582287771638985983646476269149631327623095500157866413024717474434821992133928381618040415631448534579856766023562858262005639166901348889465586224857480022435344349102582814734213956023121092695701240443696274784244588056165471620811407634050724425508405891064398836153037246609638892025671682019432809442598463463562324413173674464884755398599736104859185047851745415821302748981577427666724813259070491725420059845997494258300224653199356495060093618850424565665687239135706608156817261822371531550137020723128986254777002859435217409222195237463243210272148645875439241028697566075766243219599330270438500591719454709876199799660000998665450420589544642615036569211653017381587056415870737593274971896136825549843893169360118908056842391701833464997141827601214995694701326721367073320787994796794666156639316548614155658444599203355837384098831010907770354783491156456795031223779281720752322222627601687815340341024967303114491276853636244291777614417960262383394209141243490205867089093072302968459007103446249132195598978556771821380157879532289532218780889935359922497988961046266712762629176023373524553772509800389123704127466705670815239957152358281734240005137030775148435381593176251533151108133523417357041346957224452170434294540296925805241258035380738583359274324278844664626354647945112045426788487111560101489203411274734041669781353460112390922156777908273516658866154076446054927491193281975588831652135238962198073147331435661567620687072334206779723539585729073201075329294961782929185503905056465216480529187982583032787948937841510778768394141218925095136634389151735335618194167943521705557820459950207628967072310658698919626555893428231682726515187480866039266795220042891851755400497023228610582433072413062333400632380364180714350622975614676705572725896915592611789870916514161485663348940918578831152032090717343301682575669995902035616739262003849002103354954964977159752452471140151884589391238401713730129619466891186689928008872447179964115558564931878514184747809309311093959979945949330234805113555912081439277736129853353082205288217206057760232651974489316349085521215493506839465907879161485734656881435658961309393905651613142525884174399591453918539847782572083597252887504854095528362293444871157045427465905913724831787854433702853581309232863676376085556317888367253505546469795103497191004896747768542528996581363646426316210889022312451244296547097566346344453985938838934435190082566357121176110412139029021971651276518412372923838482077170389761669012771726531598967247586359382584429973475947097994003563074648551293212995776988583926683048256198209526542534524474283351374888891174193320989370740306079440620497786415285527010041840769988419358121565859706510320740518660051146953400477574586724694432753800775877474423572658704964308440482958799898987259816184558282118217862763166804899203275258308906085671726250798754421237996678365126481158351743647401145539031637499643823418703399191934666804097925824174216270130179042876187983178608235000712429727246174712084660936077303511033344459719681416344958153376862144409570211029653851794259544467542118676906896722154632289660738102998845176835514187402352794518360530954553846403149157036484684685828036965341052194191004798900509244413696848440522961744316723377915640723081956911640183175634420639888163856859204243830111065153785598025943234159370208228204292604919364467497033999266296172845697751233996146185198059557997698831113371934001282748361558385211473382913564697484392848579152595100324915514453974168906571357664339540306335990350528500254222531240361652130173621319928823942929586982243585454491064237264627885798712047443954556908564271430379867051279933452239246223396988627118275850701136787399906068750598978450428705500739787596399302504781254771361247673465484359225610568434532762753616927375604755968545082571677606694659660326831425063126682492285802630710191767206990324768048698682840394937031284331319090409898509855071499788850496103566499831438333150812462157470955573987914585821358685553695693955808869529571486449373927325115002546747766923013587324277526202924455000422600870582308929792123401438536342441188226134075742686101952576792887056402598050691156625082637290135292002512198928402060283926688001685068348800712078392740118735987462168041712419319363557392103631695572971535148406567055677782727612098446162022724669745209896198933874233243547193954392216557535725899350192261887137345777294290753138221297657364856653184956228537570118024013977869498625787311332351774605963316302424478887892821736135553404918541143513320419147238706588504319916543425309301232860316786203036987841058260599508944599334085766262762687626828812371543657622193610068781164329707654000719294383664660697069980244667159148065686570848310276413798408099025398704214001551105147842814104104456562053472273158245616347211790454030353181873126046973957870085469224263987031378240406108019678173257501777822401896989242188671855896153177968625642869061892300443535100885708655560515765902441431855573181270590496340844667034449297881671231814113158785086860916242531843031533847453573745186769257774478483423727943132904080486406580464139160686093777826284715316283324537740128657241355731402968461409605090048533938418472024469317001484838602156464156918047020363037320450968811606586184267046422867676681963338073283616773257546054777979179290364585361301315254622278766176374327375526153573534565461575380619457792499554658380056687051913492107684121601102953196978153182443686816653260723514082763671926410018092166184677914808231517104639153875420438140074016931542818484531664481044880547062439605740115096313539565038426269757933206570027684296537763019496008331476975935926808431439678265403253808367835596237045578505311908003541942534222722783446245166202201198900674260781901251093212605596910307048603264733268618793152768912152719083371064007518733478394707765819492791636766227854383438664318080259772647655532568488635564290546543641620572321862212817926173862230103784259293930531702153235486374180346853653337384410579224632341828246548216145531151455986555421491121836533489111305394839654258946210356421369078322677193083693021562424650612914296651097038530296809722474314370440327375621712993236541551669472736675704561080430887095954923896166214516504334604513309006300604621936737409908441414064479692674792610639324914904428289677519676233968442341586687305052553675940352116931398739726302891872183438862351573030320204599345019468614368126933861427261532555974240607672115918608052044818613802441970895674058383705681899278910215685307940410006063295833018519522877087218350299552602404432960254106689039383890424245087228028962249413261131344320599534314308575852238192393946813012833636030547027389509862693859412192066447193839818174023030732154143962766662344377377109002645526010975395035601637273552096357859935059245798772268063304799840215132626037594584192773716147754682347619075997952636481917746685831536479577810076449978378405099731674205688704824893464475712170703324477007602920464413843056035179645149111758381806854047325859231018698901255926279510035881998008547931000342292183994048680743515208169325926126922006745330386300129259252289521961318919622064619021221863075595478840276586093461165606856736614029344183950022948245243443752909792356061886029932926762216523078556350040193888940748155925954731192314949079376533224694281905445133972029559242965268308948897221204225413756882137100369731766646104726670361045962332013084189135431114941425528768912193374831266238604592834845503225004173206512933521771035613606887787148997244091700983467708053792517072513646019213855260885793993409241457934675293130150803547240639435108377147199143874536902628208848550915735092445914715141902515256313613142443607400979627503745327737986816600651978236251924080390145651487349689768054546226358000499531637827974011486042958470076116247582565944620323161790586034619149454451919177881973128262111749156065812132129964458717525528953569505223298704005087797986441505598497270384141914846968241106751398567547882081047542144654531963601331605651337728923033689083921158311390631218774069821539182565624536331312156143486358354827373516375734259211613123581205983580947473924062124083525192523872467149489798773967108170809691792931936646516736870293091085067011228403264178478350406229331015994752917629077353634803947976335726968988767144762910882690138367748101230971169807920127031189685577935107474277947051169559115435709272811147248360456093230373978908626359609227412734924671101621145697673892040612175364262080955711423412738131855166435618678728233817253630759491023149096155034113991075713295489914659882944086350321913726154992015440709276820056394413330234040816843025181951486079890121483322399241586593226686546209456102177590189289217350922609031004201817728894320622773816177726036451933641642443311190297363809743904971794935809973670687726946071826911426260065194743282098678519405543375829084707742712322181855440044831447841428952659394106848352671693534135685653731936226455657923894074826892193674135929398612598422817045248659444880125060937000793464563477261374279731607221163869937113215775096997672843864227045239199739330921097867552060607938314751084027024587735792843857287749326570783674887173133590584212298802105477067326094215628148340060407793700365695342468764810103474555487818216380191289509368098753472050663328720362683318207387142031054960225384588515653148416169965078490083563443404369398030263588020493874231279287800403828624708394910016478484171921131822776393521650105798329181522090298660796501740951104861650244678908116563340499040320488182295671397743373837748074279693216767783650574222226560468059954284386039754394278378987501893197080835143312544681346965146559475582815381401070635180048189518487558404260871144227401723277220660328819714607284229214378861203525463412892992297956215882527134591033276804113985567592255726488130143082035973575711712565204909954619780569275451907915662292135985646543191494522835365550645785390382412271779981913924946925662627567863844226974326941473274687399442288264936976508790004618989658246613834932657767952904687510310334992008835931990953791648963303293296042810986878859135406473987532514963697834239265216603405870302388700510732095489752400168951680118460693844410270221559620282709382065534456537249659074932413669526228389200277480062660180760897308718435935063796199574653360020467052437563741524819080230697783932407411299178717797133767573881058756488368628687612903712166566411645795834284845011285214868815305323399737184831844998321245324944079485124724206236534662117809230798975399579904391957237221968117538095512709341305068583367804859534113592353246169396539618591603797185344443692997108692039926008351896131170512692862290002047038811094611637229692737372363464321208219352040765777062960357577462811935069866000319186451876045050159789413308432204305431605733125127484673374883788903306920767115295899790643238152141870210962666791317341830179307934792794833737326545840783617179592333810076338532467151789390683562595920576272142506265083827957830459694393357771154037857416470962140589350027007733615622626504860705737299028172259375712053191894448536464275751005515823108387599080460228255263151219240254759091516924502124027167408720319797948536710535257966927966342687743842186188787996570990248328565036541315459145866413037032126313253167042165883896749054285386407533799278779982242105127205785909327419179533080977600628996890744313323442797758207854071611918078170568501670614766837564534891777523095860760832842595814934720963485072712995669675029849752636232631919232384639290032102824520763534628220094103730072734395328200984361120077107396181442750150343645778502174183758177013143650973446718759236790006986478734549397108834513201792648721470040926326717793939856232483792854821218641655935671802757642625855199780322142694819216124849851005554882074773170139087962259523620100946168843796357094917427579603481117222508031245417341185211011850737986028918558815725687411631956331938142506245662089701174736390947308728297554544618909298649623521974864993944013884436189714210173262849351215166234629502039902549027334981646565564233884185651014252297189593128771222082036482779883025937104692474444084547032357626298452483673775879775280262691635754081149274818616720047754463200412154187771403460455807966661604576892712192177303296981828409114409123029517171919139524707604429752385499463832301075805016467433943108364699791386385761143122581962427739913924314109357950975923604704935221262122384124458380534013518975597350691346044476044595807492132827161333055957198051743811099174065184765310516931861377551280019525044174648130455391737307389220903086581463995764238460870944677031894256464940187651654137109975701652784537537133263509146313787423272111062019248623314045827755390072137792416116566368947646769247001695978021752141749157852638059981902748093324270116276517097625686710337893646679623979267918830896454366942355526116997819683956093302608676016177446940614351048330982009658527145384966305057240571809128030437560082070971516002938507919132823874005969512065533830714220762762461875954058448547652276629467346378834351400052936020373049957354556220707146282079392546161457167748657851334707579442689509740893564168153207143662336606899826368334294887564944735801863272880412840632554934141575468977589076787353299940065145071464498049786294590389501765946251394856901321333429881533841293712995659872003984089943053261178389094444601243918725788664432827742172988943637180619261323903068193608402744020074841874412143900392976892360201344854666215089302049965578753826940877834893010654493345638671259441996991171114646772012187363858341844601051352310646658789344214458322926111003635004608968862772912212678927145308291404363477919361848664559981281830261493647749496982555518600160371297189203163130778470608375133284517481208114815529765681093075292834528717589310077182852879145338135674288310436695624845713443479207912619718436512302124926613453352367070205773589486501559022709806254939290078919893969440494549501854280393551860282802255255749381246656191339086545638135990436056147220776478403988827490541156035401797989619418853681747804106447014628723751269467909327734166367531905896684462437251023970456008020702091264807247387112194467878126900512817826998089968338412356496236608737799132402637461844032842404375044530690549871401885779967294154483044606504346820392076494259623770244296744001743441538944377454897877631269996450907291878879914054582776968222881276067636068509812525488293986929138319684043712090996706507527242380691632487545498431205418133283104091018631498032192586288004109010511503831820381872254365272557214468594075495553290031832584669807629941142795032963497894915212413296757897339564380779742467972637327839512212795949701167993254591235264605598288924989067457192337108454390440266565274311386252352227819666032488908855703624189999792808036763437137546536685167585337663178055061245955454737700780094421745410611324986487068779815279013333478593093679382117436435526045224147937888275741343597075513481862709380040876222644252492862370875813973977330481445614596717429949584354400582178268415144414736205331289397407558951733810839906237804219530776535554871410151868624394629900805141991559207801251807131283544512878844335732721043126720568820165738779926133456378112280846131001098532438998797626719054696157536771900966379929726866020696825569064995345278577106988196835748937033665744164108320133101538979556335849385495791078603265671627970869554351860215371967403471905598478774989894474455299442554856332112149231891729649656734820517160266349409559143712031352399909441879656153837789568738613450026456512336652519939753325638117110353586159645698375371217403808570218833189248330646100826250657950800479939483516351767432546408038383898496189878878431647926654616784135058378580370711026027977623841707873955863596510123279693745026605819288761760763526462491473955069734997290118400643011974555936182096912568315192234889996946449851595857543623268294557330162505158798723172266216768685897736012205427823891399624279059060411013055287675304428609716159055215349173355944718197789376528429378259896900032925169842268293181310418843970888681770295272468368228734912946029934920010641458257976401887247587406191361944328859368799714835452755016648367121035486436225093952502819098252501064562522596614556246583698345922510808366393961971986001607996290049779635155284877898740513450515082182840170155855978300498413395503003262385461059829573479644256901019260054800645310248006437697909890700207797891502548617522873492130577688579977256026390245958582746444148834856091954101278204085206913157822079159899903737377606340150532121149478285000629274101328458264126686120330816040397935919287036331948609316355626570240660111300184708397005050054031147936891398205554778106906374763478501558833134487461720276527467434849751024500116019127399377310383811005520598168232179303183631813905242594374942710177246973452902509965094402289021828395631838276361270460135151055324334705984470872091234679146000941095152749957446723950743047996559276594931080129402734705631404888864922329335423070257449648027122712668862853704963265465469235711405809956619177260861582105500888387272980311990397402829260993719805129643188628119979835033274713205025293599512602523796678893785588802749143837025612303276193621100573959282712453414521128921954063950092332842313754964100949655671772555286460122858040879785403946988077099395793811404625936908790113177846295588898247273237395390723351974712766733259023328344416302500948477143890792621788357536514774620706553445651933153098381184215795992632484239613841840718952249620594669175790865244262649972541996722931938209530424626671873465360390929189883123189146639771276983897076360155332083953842772523547174747650252645819350445321455329098077516996515384225708831151807331388362131131357657519812528673735452935158733017298905417283742098381917129595239954580587261969571676694175029953852775315018120751875712984970108429804552198847985167674425648769966800278018734482759975122270570106850748623163908658833325222336949510862503825120560299530919315097515383456177630953018969157948899791942000748088678543373932597886380584075241987948685573829494210837695614170016044003393987869522323058299173371154214957174065706495119265505799704633388494459248143229276957320404501886023485365428206507532306224522788427760454756005476733047444433890445964861036367225680166821732893014102455902574382130454317634542860899345286908702011357257269703893987891821514625582607306709840003211306879479002739963534424946601393206137384601838104651099558619309091032610554977770796229218539874512121421018094841660911434215923707133800240717066022611393669108183519210865360648936460520970211631552496526965376417373759593839995500325557154567510690433876771101823380586663620177524994495011918205499004087820903538970615112185525829860487825154336226185643943977767574710971499287206854086971188771088976115708844129034204214652927246159525492952137469885686549371529535432306582505481692547092344158794777146714969191355175478239082400379790274323311658287056942638098639264376532992246408816522844107368427300827466163477049413210734147182131709745832395509219085405543524025207362303983108654907784820987499858888866456131594326644001193379029844151321269947292002897795389127972165845107348355846873200266660282337998761882061054909262764707536595748435885316839662463642370259101628109021785269360364766667653435410791533732879312528821873052302803744337523905150777173910865871669422226019183032212667613290457497570135400208523073532223306389198145091378112037059181420454889527087081699335367408392674062497441356482242871494000587490167258085267790869326284397999562432155677287064848535070599260229522641088492126529041984875461057110049266325142036470414491459616176036558801703365588763930821713801675213939684394544799526463425635741069111317726845089803127068569145540159210562807942650526874387923329880045210997164396124342026626454285393746123868878948254583536479896031366802929956456594915405300990791532393416529201975013724425743712262666518622236035392787943209263615923824309965428674175477682836571066655689534636112066733313864696255394749106571733614416373473011310577719434005002417905050314068767712974706776019794914936762984533883045221276433723892191596751386232422894788441698170138608844683102060155060243660428686772095439770042249087246145656793905759236444679888380516115383396587119966214562471633529158774150565273771555108548629220346034052069329854415282376814513287682325840369285327043156761004004178244237995474389511315870899459341985756532263127143630066495114082304263375194318235208356512509885336467143429531182423708876854255136483339507754293337113940746086075176529120159813333662236113018646859033710830541178737225041769253043631439790332524597749083824947227348260458996699337630194073869123294204658363407956108332894852830286646014654018913730509673892292160135905531286028681902530282892829254971879066536561284702026410063354695814979914429979291102093343954218627372326393134212536508288993351094604289513984507706900132262549307738693411886889854295701964716076535148869461308126089289279281792537848092443360151872492027190659559365956649576194462546572989456097813046158900242436157619424655441679065727745886087740823955119303068623172780557103754698901165825658478280451196417719634349789178814600314666629340933041441401180039530097120445586347587078991993910071541960692851189239444062720889324405058340333440831788045453226337520626908931977847697342194417226129576672775375543390525328692338334833435146561612813420637457947240454623020945107981661368086708263704921053621710221214965383060037454696910280793967334630235053028748242474074890384446489076049463703776507127391572052528583061914493141804272698499857751259328187785324319121090865625317342873321743438382906993223775503592552181581984989666804667237817036735508553983734987984447364746498655535752441644822818405161063026932577615414392858077139341508392174822079790394573550066449760774781258031233070094376673668101379713941671788379356588169355887467435849683230104780263749148203742398937103874772074501381454729548680739486977713666321975952952661757995862416282921643600381396815626721202591558742494769200294359720326224833158679127908622792778103057737625039184735805875591318559501941880024408119919077584855255207253849469868305410324918404325757030666881576524269069951740933636812606363485744262123210624437655414372297667099864611079672074126718699129345017174828600050864292117802919895371921444501596817191106187462198044144728570605095584861584452374710212553726955525742663759467532137108807086133042861038906311920565313592488519887384336837804328189080156521825601148433346270827708365304114804992316302357991269084512155696331107956191008950100625768048793134342131562204970489855436603544578673408124597455548359015501899297555362323284046486106860205435129216347228013314506536606554109394169392470515616788811421549855240699305510164700400776925426304211379412207324502407189284384763057370472347121956079586247055534378828386520168980973206550836561680342100097786439713852562882762466527397013047474259760294679847232911867279916360018433826984634896108553130163944448264087762414723344366494672780326012405243400754109211273041933372916308641171081650689992821709221797415148962150547939750061246670311740087598399519188307596179884007346898266575167811626855336733561380366248231650257382494450739020826480210730949748894700080041953202836028957318204972319519507317869870361983895302022973848423524162548574812767709440073859289876236824206829447287028763615200144487106328205086720239831754341405075761417238088010770705971246477855017667954517955787630829599070829895854229266783478911058800327019639441755004896702315248522054607744210187811187431748846813156278466590282665137087915126163390878107990921939470452781530644686222290018611342393445389982298024103376806863872385947576479424492704961964303172250652786356861975147516955275372705676278495166242443644254033874384355504316095772511217152505939823661503223968175460830171137886701135464372310538897930101239273480047808409090217661428242178596163841840147861205645339967624910497510129082300400561557897291258550049564637220673270793305765175265763147484893449740217363837428724983232930950876940504359428034410387787774571783930115718683920185114547997850835647589586088260967849831600757096879222154430084510979374147774250238163810308791192065092232945380956516297506695356167542318816336572564151123156249966734620018888778468297408440304974810212091405827882448285711567549268237995295357341591997777936335645526497714278905292590570497128558964542345137015866596889338436468890102993873668370399042924445842253817455679081790616029208676385319719990559830448449359442504288718354744191285541196219247002036570652655489331988922450875775193692820642690737912402463814504318859274199823042589081797040212642248806171175047097632417312603854623803908104288697606173661377040792630544120177565048219552122455804401010563862414148315533315458176183535591357809433375943522852481850273183419345481345066409856724818975024176608736870721983286997398067198394711992131039109975903899791752718741566082478998521181252036597865478700359011034644225234265533136382983365334658494422838259730998267721006960412004354341660854152570711993282197051936833792812103131890838863511791558446240318080724980821300822223166018461196462867184804790133554387531635426085376460389061439191365091084287519417628881017341284711213427893213467295351517336090118841774531392425101537022965201994530390567195200896598549833374405377255187303358589326399164139836263035374969018829257926788786801856905151581089430585409956698802648217645018579522145440082450278270813942993845805332420262745499080089979303293920643366499576397134122401366104159449121066198296844806048090730475750889558332259690425837615098231164578915119185644768455350309206810663432923689061869987837676417775544546280146340569718806289759314274357920881594487217204832288623038925731957886831346319524965145525206219063250308298078905739800686659481243139552292584199495056937677842900288592746841963660877778045562823405134632324545339631296971726621948275702166021212683505383158396094579374801355257547222959930144290053332785477493999705571461517829326405473517286726304218398412634317912122540086212296116750376695719243891238518272122695888258354802978458530446383209096086394909292652887613368865750157318198696442694049156733036372817650820644766966599093533968982294139344039766235263151859549578577249944061109921843823254044547150942003819309627704278958311431575253868515279282146837259181709276729819561823306586971508706496444805502933410624734721641090845316308871612649874103692572418850327659476364309981698276951695248486153770354341590092562596323601614691044980150926845295701624646477285580134094112326807154872033152982511703828930914690299605781105734184021003391547556864369292904685121044133275690965898279566026212367183859683145654132682872043323496921636225025491399023449956734009430095760622858036640804549734365396302889228248022452481411715101489852632681603596855023850595870612769904228162280483107827628934260100110094013752638034198786098758055346090790628250180909961711795976370142717007120152128414317459838772310339579482446814292045762472932128756975957001380637927208431924473448702913026274548668959042161320274527275772924960284524908258706568664302205543718198482087517253462122107766685172614013708306832886733246413201912661019213133003829605829987009133641738082932554415848896024091527873060497158761501821071638289187904423122054890369384216710373017689652976283854965173837167417242082912091294456768186122869727030536505356113159843508197308903480479413939659356358063078184995877853813615047972681026536718393083735299775725723819451839289787558898918035240188190721299291965454467540397211176168522943608801191717489655277448986842375569205195606313039700686468753990897776598436938931043769459999025783672555553354617737336114639788787458107183999448817026996637426333472017811556957643882086227286784181410875543277557233899384477456613870876609092136737746975236640360433696927028154246981083300470353026094745100397201195893702161517440541185793787309037977123802075278712388775455607100707728625830684041045589221750304981374801826265331772192182447453572286604228575718405886807698809855598259127568117383523278643390494294117942028236709697794153503324631381603684617123774009813738675621753237821486958878194995507185630373280100358736880501354424711427563567093849204395032289325327485179024636806583141972056269249668019723804530954632285103116648289910301451438049423412595721519845118054003285398121257836930937754379454320484617623063247643335046801172910898919010844506407572597140339382305143513850444626508064108452268385421223151214151107148034632720021950693809797337714643278938242741773245986253060018343803861108891175301145462431821071205718705212173371298899365076450721774305302935436261784750622907008544253669307723617854207867200510562577647998545555825248973216347515953410090848451879001191731469671212178008965762660316432471028726137937079180917109269842682059917901929983081748920234151898744224238347606895432119663744159482466854691606872406739024887898773410204335491723367857302597378826710192529502631520441834315467434095529507959984457218774770874312516594708691612924738507619659727708255528635577047759508114705938216881976265891875812307184586407193013484861001497659518412492529641072617359785397617918525989557133827531787089810250102140690218739810457860252915634747295579967758987194924835148312265662337816785808122477325126137697699861430655995471986539096776454530193053827874957994242982688299083708067659825335063685869116110390366143829948428417810298010837754399281077031756296041592636107403409034348652347367178170258053921177304228555478124389623920336022445105886513885033008341204861848836646112058722540954990052438737721744351855096108631098608493364008063188322736980587501195058039465506233552495357141376530133989104943668763846822121663027311320041722579577765375432952679997823069243052003306206713871812234701167090250617386495882088383647162427755884982671968743391668403435231495042263894753637171025689598916388381906607632664836727927452021087333203032255733956262076690129432370747499518372028005825364252304167829892363627971466000721167053403595787399671228161641595338057169830662018020576474676153696029799267883930412069632271266231254697293361937569277623141614773733067955429101801006524651380191969373993151052906586674376295069617027372766290560729130969439182734466770883370896935853146722687147987951858385917731423113807674118606605509861315757140591022571819041232461198230082033885612467012232416318503101639389464502530240608694693681101521286068427496038323571592238526033139286757880487029538776917600607572230793059230523608540233568986654170715703369276717719503439868517314828444632187913312677946800918412563685844409145596255722085062359469666448904890473532825130623555514612893183744746033202144121772752452594403195439291903129899222599890456219482048718949811115732250199521397850599284527414350099098385157091683305321635561690804723689801449737711748616768794109582325039493209196022558756522615872553486581971319155417234719303509124039527417008061983187066110151191238228891808914125663846557447239728421324454810409117947646403778188459070176990547202918458495255248689721539095402642878116937440160507129203290210560748242828410175654557951440177468034564639277685824328325257497823139374602559435489802451781063907497966770869523828638964995198868442172053990592913087575145044276775051116931892445090994736383052792173590595870788975351210919520615456194463004013339725813511436799226367770705268630124762281556047104305057692718379976778136565932495221481543076402242318884825311061462164433488899163282701168643336958921292821595516355695531069816042246515573192993433602744888585477307382530265314654279012728296382830008846081126250492844282140857211529511625535545189505726867148846668072389027714386881755722556426797421440509155599328093062685201422886235155078110759758927739018588566811913493833634496154609383821139698910818666748420371157816962150889903893268163812012483273513904476828999021883604111312081573238613637515140259811492753593276516581467817575646624421734378779053716520058807499220076709717935306070078839481818748920169458128869738411415455667046520293706298143045865796280433817405282977204790825762967434883335939114098570081286877373568881057234291272081337929805076726966193613199709899109254003754432513381733110171885530613662574119463280420771874073570434410613976612283976037209807022841850090157404505278678633934082514188902003231707613690415523979659527307867887405922970809716948298300168794313370881594686905290437388565846883632862635008585732531541191173661793364062454208125855018414693183573340878699910596559325385177959051359904016276894090416598335768293562460881902002789159681030918452536867849084168555653506024188738394107549455811068784135890371617830242871536019441768897398639019571524668109110560033766668888455818146266661532301890513163001303149066451317016680289570485494115617785800971460497540934650757803200506070600280380041800228645260954643311008360509705598932981407539394017167873378753839063409085821062905326163289979339273240728634291098819159381748891719169485274410187266862570153237885588331010933854628852854313441739851279962061708025344227963268777247868471160572346566396513560251071675975804999505164473147114267650771814144653707340079381908687716688940465700143318388623593548801317042280486058901649392196809942368333257268468902542956096932049089990778420190616358220648385724474111498428918535717553454421434283234635788771715097410273955561534277456589145375460564888183900371802034756115146822549453839063705931248155627371167001294064675593619451661856694647538034067742964537795196140371335063215807122026576156262803575631827391293800368312718128376205510775917893142583195875809556779391641099628568803277615169770124941088043484883558497438334811524497757464513295131658929021640146531598013735267200833447531625922507709832569787507476555852360574583280547435703747166294296730498487483088319406990806871089539755031116106852242746050832444031455807452937812453061024829952301599538201555213917353535507225339270746900788732096163996136088458675562847198424725404928515444323008326501542101978582903785127080378256026827067138283366290317143605409014030584986900525905433105970693461625139807339397680336415193050896759752467246267090107372190296350118260081233017244345232963178953448460802646454194828261806283835535126626230798256736887983512976839842509703059992775352267935921060935569348147506147306895272524148024672115562970609267705871718653290280428706286467552197033155371816569431619922703044655346592315123954359529802995730062431538248945318755413614539208060111316571863351723765729280689193386961450454186590454253769970823275869960259342608211154187187071324217955694135435082790503153058522943526802245871369010423964085081255190164946657747805909108289844603459188591193988401114199524276669576287025321360567924178518662485035258989006847921272485067213300974163942161661589286551611278846364542431629305479780762542396604169631984153688759099112948272883767166325508190935180982582195393139066204437345614841796549469628520775868780831981037434169262926918533873358407518605012584342249880393002323059191912078714453861160611201976831631245579526196213179497718293050939937455912912719507517399122780162320770812873461286057917387277182611920776781052676274196226259356230201216476495943328826769251208482858885807913298027313500697313704633627175557495955738275028993933246661182691584948137102423776996643784838183055024870044841335872745889009773646127990605632334051866148597110445738436501016814106990242206176898518503834870041899155381692107058115197480757564321540642632618785668029186633403209440116924754056417832059444150057601547696224620111273585824873050977589894351754750586852875509297301644508274822324929583493076679585628219449992503504358521758174848364619654564943081846934149494917585912635715768216082601655108961004971914435089761452364699698410746890047121979363105683207462931562331282819770244047809512435877416977775519846975812699635006605751030189979401204308617539752811591518961150322432682490490956291950011885485579305692743352093207036319981981151127061573755635718893441937592652663174228547835591459363751479720328544416934729332671261620192684488856616564454933710384064984559273374088257314373921926886823765360693641280164234714925836034982791805466854564611407256926422520646763593386920362500917520729767966727448403569696198408519327331108494612670987235140451083353665264925443913289553983363891366537715047649218153480005969635027897933527367057532803078492803748062318341636174601650399752479896640039134341370568180557254540215891961615714264841233400890283571806254148319542796030892597341817459803449716603194256238418996136512830095426920985744608163609188671540902586647751941594448515943377686542057950979128331860914722201183144560540172825838765791172392452935621904012686897297137355322958558480595818186296525660260949971388874313664900535892399259610207381907487582319108014207025065778813699116391584291819309408847479354085193687234147663393882907962024595755273425024419143300252654124328267066203552094603362882947351297502315348828771127799223161422705638398992210322190174373434096217170182041492399457424095580127032972366857590657328902556092920486441271730417203119700204175357647305243546767335760015626489596329956269704326130591369675811422113750714645120352102374636328594605807851141529521325985387008784853886302268656348746166492194665130027747994011480439694830927548201473580953136757532187743597226614837608031669259866030711100595058250106566726639584716257605899287337438211289004553937012703301173689144452519717031211229848581664099894680339255783602793964939126522108794720961247855462840269139189548757633359661909517677907314740362390892553410284868886707061228689943619048418764021737108596470046656113286361188836963515580706446403506391627751841345493105778669897388829345553817352321550647104929850735390494662691749913126230429551978663795927233791345748933725803805767632927468506761689872320789455895937609882740929253301364114881596362646050833511927347089869794759341632499701444059794404575146151259925552945441816365056233295260335912461654479006617144150981712339056402683285167660388171227082128846555282929498834916893939823682185764545872694775031243974145052427873228008333071440451257213183842795283422475610452062577737574778978204278634719062775618493069231468746117347584798794062102666624484485777574594731211327623535675501824106580518737138253911576987254588168995434325730983736593339689353996122100731444999485103121031047897243442294273307939843536885222564551579896625369941367474058781054078985862902408792832152808133789332422595354041468817381498563989757957990441597250917209890293718445207154336314990273384469111123379882488131189051995811565027179724312157965038219116937426825188789996363453091235863745456242962222618883804331509210847315898053703914920727795130761799183260699428011132711263464768429498462839538161098457280912529358733315240619430470418448621837461705883270837890744489028626124030024325659404627523695356717625601204726829941503725632450235089192301636098635039537437780808795071768345157111387540381045770404966823387622011297895462678502187782447424337301578270880229624155896120848093127476962672888610041618785694190605183848329708801762163896488331200781313160907729598192246516891592592436798966689443962458481914486211994890096745751109385899730766369505159098107977262396947920155025435597444540598842648678223278546877779184076896329714590468415386012758480546698767785011919108124802101505251584217455430429222873960843676777983363072334475542284803213031346254458934153296163639116790827738103398385459532998172577420600256087063196169144547702174369275014258612274187009659324743327922223168326109142882542725745260089453928386514391531763135686607940930666271324708164378361670092326029431225782815379412870932542167225126244772614067422757863394075173513197140018213990265257680522988942852160916157251928173375091385362961844340631393427817219293617689624121085769915404411923850356140548430681522485254174355879706391199029106585268037675283236308970239038728934675545712950027586581494736276824448789052210822125026231144742265179096849355855919530993495979816257154394954962811432398737609751343377970988431222534630071803931338519523577272663835397264720284352108047454863302731209529525244478991304297761097969760255138442322161737281142502838680266035438750717487535990126870675870737770293053988888020194524659606569810854701756971816757999690494996438354417268512909423258972391562300832007663301411894447079488721604480616757078328764471133938447005413863252848608308864367092706989723445062909543322440102279247763880429432187949211288441444770874170863051481820377464040486772430178757925218653313952546814429239239620506381903930103208930899978543163853001030378014157652758269782371323736760696909505936514232689710152964810716871967807558749349249129361381376341420121025866792140362016275539618997281898892709846672173049337659114986586805822904723177185540431112735576013213835079367970810703430667782748919343852106961462166549784989412649943733226308209891580233448870836834311819885340651603738957707821830476981240183292910441513148123299097358220264807471197789816893615727044428673912975384720687146009023541834399882272902883044967139352712559850167890515379107334595426729973220649424631205237291383167698673029062053033965108935362822478820278230412193051612092510005063227529221389560679787164083553275990502843987235661088430684033252139297108052092614776935184358435204635739580587340867723442957709407096967943388694297535071544589457068119501584392144518722410920929360184618778164976293232911527499640785901139382696242741895201339402173323756302982454791909287573688697230963708425051862839815317527023753508584255274205399348827294932868077304306324595337904206296406879690709855779645986412452156767993794303056261237090532221403228979033460708404154034437612569585717055835039516843272132820227147660534737893714164526990252886016484566960240185287191673280043396100141479758487526982302860554714776342387208492404799493580143857516110862903996180767752531391864298666444578023814341732333113490803850059494675597692907783931695419184371426130224476811707488358259157110677325658087552002452283556578575759243326355458480297674416687281744292300798331180518393239097238485901433122867021396039781146431309392526953124645613214850774698320505715388395351482551755857500940721227369566989466887136869223775497678784229154976423395055401172868858414763054985903616185604481385483423608213785539101582062164778264656135307047121174260466408421373909810767707940302043531169667931905579837603047332133345037938738857939059233980979608386730353002248888562479347247416491061146152285507554357025585685695542316166849356902709274086272301548023641236969649262125298200935863164772638611997241375547349238387789310898781377187658101170144070697530775818240553877005657807416152187104833145808355748939715282492859928844301351262156871335350487500013836187976188509446033328403140610018797287931810437336825545301772601199167934349602223829020015098215520938414127048140412412198327256387069827327562452551918905555927137311826227060986499542507953746651847153916695521680976410706707272432243210301251288549307657009601117782781822473606970972604752051829839744262214036146086619499757093896702187694111588028167351480036342325174083284812210431007486230645103483839898183486465930393240147392739034523222567590599704638455123796292524268254765991604590053329833188549000550556278972840782995477531328625940578189649537479454456681403955118518306170142480876749470357769650771367647133307188635501104148708056108668728605713009077427080896658380278419974386558212445794454511694347421590207041896014744937864164774526863539949394219266732315800858267671297830102095856769878539518500473262557828814754395493539579502410208528493879813894222259291305890397219843935618269941144595612505219786369636499933656146573030334941997199434406985069120575720870889973201177391042544156582262034841411762864738492065137191200215573451991622297003775406027451475392579129169694192990457644032110723263156730623252536886027788192084025824255836477152846399090876393965729067701341935027121178824584989829961536463548788398547197860114383224460385949290716175312935063262845399881469623990956387385632803758087545437457885565969132972479241681755566322920167667688927679682955443246371097615374965070417958667872294379312925554502354197191730692010915547150101775029727956993318752638294085340006796911126893929197507505176927849225989280600002999832090422771451902721230125072758722372919826353275267947370998650837686629201711880578360470380817579915262715615347235634382206362563582743378004807305810989955191603320135723526475198812870704676530756919090975373405784136331327649893056898924965858349318574638545462773905848608676187177492002024598684795731785663562451575147080177779445856862435466777636038061694566468998567769660434456994523211639727979973851696700550903982588299644519802562433473338423523378196164125523901746396779888316472975586801273420955075659584039412385823731087158977899963964788408105203469721881493272894877350619068134883827035007123907550295958488875378328242728978807376027185883468718008526305636048850111873237956677699775255577882905441293583859278516299455526421555427441108644220221860895347515349853771001716857774781389321913131428219749629828414671886961473226821319194888805212439326667825996761034708092354265552106665677038759710312001952389777617953908761114811272878493630146633651132675937014669721938280007791325903399885767913810399260386182488383481422075767025724921031233837596239575671539824678579818294068694039808250664992704552539024304892643702518046907659039088561633327025458819437420218178174320491642776388336794969993824739861270545567048109529243219524346715424774869784277288591918756697007251014820123759493542536131765420393441487845550353566002106806250889490998929464970166614329680691502376651851884655784546163626411474683405865266441954468083165841873807682925813899657404254344334620301159672414554385567498822246028883516275221028482376337401658600674877456148038934329366233056854394391416666459031523493012314599446436417589433796499885950561226646260388033341191070072868702935274052887781761981795156297688508492520793988588651367775372425607037664696141354053263267297077108161748902038448544883088329466693128102246776601641163636469583909909620604627185228916897814994096966794184404301174612284540919957213749562523096117520988128739476641738661884873403033623525644245000229130809759325445650191245921837025833128980545219591675893616008427569619264716089979918954713155310184329982578006220424627854588899222796832955244205982459437402809092316975066551178079798450355127267006791189662935983401712542416721586291490522022936034133473763819645269587839025054023104440821878613177662147278349711087626789991422118118936054244874176668681771806913709317859941762890807678899662201492553475534925913644678874423651001802086267239898467748539179989608830682669336212145493777058770444404597122719452439813755981574661471785628978403155297601969499893051823423299323624270081818663197546614307950341888576891903254129470134309035202454681422597556739020157369908129661762574616217449195119575040086808283762371882621764518862502299225600251368126603233231658771507494364648650513710590082726917101116770439322714449795490222597567385790663948798551970051267582982826576150190390507284786982514749528354889195293175204558727430718979093868795126681632342946779504045493006622774964082730991541500319503248217642503229646649736819274072121285929117141157945198067439130926983627587762897916485606124989107317255488427162063895596147321171095182998292320524534774279352582159307889454256757101755005937254750309925563645177585765675806980502548066053781035399947694084040634009744898522541090645396392606428186808714863108629207996982838607079621675148604268314740252958365534833822462741304807693035058640284599916358605806448327123308904978196953757511055433966658718873408096429273376823478679117332461130131821034086436958524681982481237286382874511773980415355547947491782072376284020178584733221949017116342997910262631464346991038521162199891404288163419432440763502938510036868502792806136629008371190721018527101149065235112609502878893663114078011197154068850902124854792445265300596654139128288216979680297091934565647725609984273475203390519044495739028124504828218731047563624161613346634554720622820191712297256481690774479584031554430178391032776607614721500708012005839561688974594766587228873304827817256486173271251638789347896868166520598325503151159321948029506952613309404388745527816414405833605213613278594002309059937632147847142503958191415841366632120011071101616825614939091910202916804702977068177476265642656250916194022456560671473052418277637922336178088312749009536894145088033850084640952753944281468165733450986538876029871991219537438389692461476480728781297667971731159454092137905208418779504843837238552672961271261842650448318186359935243226892753900140321682435383770316169886739794862074112495355772469102979118466804584031228964419502958682598719179398017783834651207277776624789727466684962174052403754965865566769522409067550629813493703290719075888937366830766402084573536406115366239043328653507053571880878584539148324891384036886095644438594297451132844948418621528154489081102882894880050052773079330719968400412090824798975633247668122872613232882234065982814764042476196259140939727461753820701006057549582137189703745077646881669819651556751831798692655986643103410036946439873543351105353778581533647845813502534131799063396017752380094671852733378860563984664261835127366081572563535549696771624150834148238061306679434473171122277397115149879729627395417884207955247170192253815395030574828369080111658242097126542133393518940258973535731977047466338156153619284878803027302482865137210030585072574524610567401718291990712910414500225866005013287458197960664096526095425816053368134411795795615751257073557603571080092145441786599762980927369307312377804748505296901565219079975908812944832633901144404626842809096359935110106754086221840784243199813286224411862852842906981523768203790598407883463342769865156559592630935843880251964887792452743933370674913292982689162598564026106567908753295510471364458365654710788417274160701244637773417744178627768653675531288021651343270602199525012892789147841837450502383398448106118122845857356867409216656683182085527849787676224804569077393357125522060553066728454152581707311725695513036763562960439605942521158476053851961369263225785341618931175370527011602202603163522130862004387871162268523451830366859108637187948970609836633559169586215500493065293505925143694416176251174124996192489607867653855956587844709276142587474493401222641801218017440431098635131240369722156993251560870704518322384639206002094816221965832655661080230500510871737322397209858138161754104045804931555676794986835250581320951633670198275117756391938587117039635439195255143729932299047902787131324543085799074285531785519439623747483333090818881469420963725765575405620862046922036854071953512988866765097964421225022220999601863419271497941337294550880516893386136269373753847050753405907123060137214736365641300172726923404950540996722590908532810370993462254881870547334219952562778847110306782805646953603271239472352635309789392569778130821968059317428129222374658702283842031529103684623053234964641527412075559832528990045979508058185256369238176802567925805038305580874757810349168380909577884916111924965361056066815300182637315585332645985798540399350421849059108018197261787190016269593574941814807538959995840123559638662372904686316479186906130205770953933164808284702447268402958162537569668277413892896166182824686851654944023177311077649325631275924643595652845891167585989535342405378673020213702858272535161862839020758219131473051641656100345743415388902220395267528312170397670215991569113791411276669707075877005997334168112208389636961024772881650839111417721157794744897559255237050150032446377308887408567957692433501210192660326679366445734314767870589231404593461298399321931390650796239753026352913975183451319823685114514721685181060308423831404962359135202799961934144288478902777876557905541711226868977680982291256588057615930352845288836714901327738214933231997139812072606213777024604636804297815034226686714567413078965299237265794523567768239382977819678879057405207293903597046201073022753846729853998650648508973134583728401552222793701169536620004814010290949124822222105896790781898841855148238200590221893454085278425324438977047383133627553423537499711915898782832237733329896404469909683960928116462202189344154353543560566629593759296732908515424229973311541029898729651790019171881818759571917717151222844138674115634610390741941273807419952840542499172507489605199680216199011785834231929487198400510303123041630424386172313876845384110896613643175389693102639992583530495185767760159969866053940609889567321744466585581138826312357052643296855786645888771076959223809907198685669505538792576373497676161759036633176756778696391786953622586150602794871661506690234178681304630920625812793672109862120604987397033663056419240686114892206138094050346288393023544299611763788612027151773656254973128473212705468336207080274775790058769379501620410094930991207901815766868447355517043755263831902966967427937439156844557256500885255706697181009283334823491373286643151875475241301498599741019183722349409452359197883925811859955714855061549106922986825702138890391594158760145089215096613587066955244387482528103589154459931270488551370187491061896610408572091293886235360434319196600019226482261133808309596820536558723902703628959690501745699611800751116819997704182857007094894167390998570611620388561183166939152280054630259735960818053394740198417266863722845038026085437155307915281871253542856675989873096142924268420298523556876880811274013592004437181657217024753599826085426549053208113336344726865785651597888747339952982637240346327569165890798390550020141914298156522233893916047811327461687070495871591479542433398662843060583718795189465254073679559375845509349831983373404914428241671132683813803746027871156646883813474448998005032772523039494043168393883381799989832361366304306715610909999488206197877338707841205818149192998134841831197795098910992034481732169033014691698561402894265883560262621974057179148171825407957105552022108861671671828702706805139536728019818538391076721167818487004029301504294401591499133083050579959668077962937044516691869196603548494964348001836001332726274631549314625461236265270543182980677398639020773098304271859969892900816255067737707075669122547988145757496537927159830988146421216041103740593515009550617685568451491657576219525013311396586371257157515981703466435760975430089660452203777549823016207716779085252274636876977976153288168535560696079785375197327501265325662077624800918906150950035537630387583367850462891697447012627407379310923383220614494370715296030467559522391374935183114945437300210499283030705401664513799302001290414417791519784434017496539625095727648901279758573603923602348881963392570742287254605789975677066299595936486313803257563293361767835113115687448467557990178702204632657660580465829093459039349189077458427489829968919774220931686397953630619347420036141400686285490294934346573764321648949675474805085472940161525403619863902986376645813323537724871024067117807727538709853557142013228265459966436788064997894132202170018038628166279218904016993267616304538914034683513455775434567609693189322554645913392104979334365528030040681384691604585266184065330930419557130888448928755978485591868583441808312521666910707225648378376783898846483238001665503781366409478133859695361690704699875891379464135844800616114460142339628697478692926414282075552013172202698317871227220542625841863934667311996975438045299296711896082376989826481180605541575005619197704099437542602400486408994717390469481216950563493212755093412445295921760607767987151601901251835610022846402569902665222221206479537169381949091799036488590649616801853387952624513713933493796001262949130620668465486648370768000457293572579027815224562075855618930410523071678815303515175937433328204637196337565886871565655530445629367348972294107244557051119721388976404831513850099642754613253131230009422951645442229591060939447431902289937270417820103151157676969500612645230397051055518828712697948485741909162711223869693753722725674650936413154516110567027378831151354232598316287348564288605193741231748119069382395518131999727807207367045894927029791936907505883949999196281521245650033067031556951034861251625639444853218137885668968715834080816040235704999839451791066792529783244844260134743484448126589170871828380737015587648929794973012808698193683159306227569571775041867217072789854101178379130585769463063959323533293374301850192849635681355096599151078691784393680947001734455452987080986315467251695004610180802172428161265287213123819414963091996201914147867771047609245175093364587624910351120324513508622088056623043920459374596211699200560211307326511466786166578720884841943022569449097178681741522226291323018465961607569224117267742314176134769316030116167478840853196426949536659807929038567505606561556940725710466831055409554739531088398762225972153233751835277611460788930142680353376996477503984550069889189933297286153881223897769078862970420520042217600371538187868639291035363988673179778996705265325566860925630591972579308526145622816766116439206765931436243032198561715182258954242284507101654903190198885320744688993444697275011782590671636652267550108153240714988471682308233823912829493554307450008122780233206696348242859814210175388737287703743042484082594558857317183754684679382631117255953717074237956211319703681578141375599722787047258156016046488623578662382307508486923942115054319037787089177557275510347528750638602312302736327404563105548793853018980095346638835822361060613004631136427215634150626982414067244567784577836219754054759093474281668001210183483348331658181919584563621728343036569991547406416058633457858954381933009271514660896982268976513045878268835477024561256225607141437188848751077818631940698448504117285335607653764855882667196509378634007145969643146996478792984316676761777376444763769250184909884970731388129478976864489962366330889156092843501826205519529532280690742805985337693257843819662606074432469813868456271007868448384192106341792887242934239296616086205181579867968059289161683927680380922621077964301313386478546988570621337942888619994743601307630952333303961440262970613411833369096632151360358931626840186259081193253575284380849530395733485567928267810994388373455858647319618087195616324907852567576178433686960845430924613097575059267630444940581972606229275313990110877633008295201778975850705919925335922783020156637411812324662059605824574923396141948370872044518677425922606917626439642323422158374499414707347132045699931189488106811747248228211014434918082495261725305856479707855414885591522063342298779053526614274775338983211157934143315241082081614123580861362856834132877456090494616593744002850984043580110216487129929073830373071053308741581644281678758756745124493445477901736069267781063788827599193354260786631877430488453884297606056464458649822743074206351834785487403625995065315897826726553105939489875633806683267069654528647779234088703433424960468336527756079616558326822146300194598225260033496454046520618784080282900626266471358604462472764575404944169852335501002129960890633348435288560888528125751539644741771780645137009119740814228025175304989926595927099799480228489700145386239091688937596700971942570081682661715254102507710040836146433526671224148948988030159270999944968239924221130099089576546985487051376525967951555312123129482368931427920814090444208149704055161593187009886136372207443882220042554656885051529619543361784142852372801453441715988320800908287510475447906651485044304299842678475785743357876158774012213086923229836492101451593428852431849737993071583118755123619779259899034365059092063168839814763459807781569530485942693944894932181682056797385799093761306496904949009536736843690487951624133483294293980140338175484498738996590403799111616942229807672990646412786265748568499039425369763895029886178380579401553144982763572855202238187440626626568259663601081792748503917740802327031531950692855588808799745375431136740354181525615069798633574116460235891925967522615376142751209594585148250306170781866911046685712991538794541224863382282082349959527156661143254027971378164367263881062191504449242706817644802196694541824375220293647093758931509977266427994748074663611641506841695588046466010700494588074905105294559566553959966691101582779433325059082936668139520013278617969155039907228277334941823986753014520802821783164513912698470295350343651299437212247810342046340629569965036165202989585559527285835042292562793119371643399679531512266662162106667402416133724782787297250517407103501917016545656406511542691294776228888929811801322023868691313233068039702447582967614501849202670668342513422481148298135556196943983086214392387444318152670292042547464034884690377661369293241566723075079799887479122674108488364514494841406075261548242836661842674909497993957486419001170714610298783695185398658768319324829278800951970003934865812359298003857614788210064762068375678296165938645628985828517052866420253659087988986103332593711808536264910498799713297178404784699266720877851977994324847270027302479244454249230489279428782333377951827968224144385668640454792704135698311783889324732743972355508716202745270571588497880964518138435912721006721632054069545184710624235529293412501182444296463603713153340715484687935310284410460873991756707488033654270349774299409579018245720953238248959670929300947668386533320856937544838471861945861966255063092489058243145128643496337314018563541991039857563892310449888764163033039004162139844275665956549775603883068043134302433154289269287537351745473032527341296349126959705010193996770471829279533517626460778356756082173187959638948278096102082549096748604670361952652346050946367387688453889517881614026269056042729076785579148462746674601753114070977178259182366849546097314996348969679175565384359083568708686037698816948187584856124410374593019675916405941403970923910067073474640769637956314190186972111094625000391058156496997010646320181254026441129069555781784900861555357126257047551037588205122709157403168838287380342508134082921290061966699067849900361106875506098098694023534095542461068481079814270504365760275199599656459732659855012986887360244520090804022284717683392334971136754717412026696913846509626316647752179961127551672234333466378954738721829046571996409126560990191816419430202212724667429491833795421188636348072911556643131653590840245456130720844680412887691053360605855539658474620989602671507840026255153824175186535595028307055941389190352928693938712637963588007171576218401628072402340312083294599566407200311418212551937421804195103038216792199897221292146936460366789496931883537937255765986175897147543564815772387558527281222031428556528895767612978924914630283558848046845766447868560877740814872841796178722738342177268387906619502346267410377431879375191189021394915816133523451671810481779710480598768461129370549580766792209275381436297683082082552377142854128088942595796946005457264173305863916026331095520841902763734830615225105995959421008128134632891066244653992169552865424721839474485063663025313104519569178530294314697567022248810298315938288351796912817814544876717506507719371250674576551468765383630741870831489802703983162773183412595023417283190934713227046316331193325469575067176849747654251226318285439784723174736018423186488434055512671255866188229946572723039630013508116348123646787286341687287754049927862230106103276584348395361239107549983055421428530746203233402464223642232122459046893129717979405704588181188962762398054334114239482146467603008326929111043089861276406930756525395685466022193889711076248517185825297722090149185024320382047707009161712638664454563681103344980765412851337838204134688750076467000732695789670582532287377412454106351118006985161072912992431499572992288463974847073572314064125634354646612144611894951145835284503336073672189799926824243888946448173626831799357305265863222399271369472640440347720936911181852515792614513095607012291207576249090992364836608000104441214649921254771154821227741186088078662144133878415509288049353999046132329890564611628781109733304071535036978532417186191371957396268314235331868385537514414775229954092075754727794612874118674401155597784243392016916814036793498949245057116776527357900187020173701347560315887584664268435425440042841198339141264558100799672010948585843704963591678599168568057566200405622018131843108633867279106157208821467282400022396958318334521948184825342038049445029095118891948104800581230090816694130494440778957684906708565733586644166807716748570182200044534389243374693764391729233834686883558175912367421054148957946522718764993117264439256492195085280106187770964928649461514907355980983899986179717602578219154528925885914158730271196161411503142567525825105127464023151008499015425761454814563911708190204410031344084938271657894366178365864825669320503722855187564931577712649711008647145164117155262384683500622154863789441075880077180590341092422995885408912301056288810341758600318223993652658023216063391672872115236907108822944815048907165209591754028176055700585377040924089674714477687385268878176587583508129163137838550859334955940900634578823626862319268492706266752199253330295902398566196807815880434204767484503216303980172589154648047501526849519237270534942401090525349774741770014180772080168858970195476176471988504860858214281769432118559614724499400621754030293828983921709053883209518354137606350312000113070391885376908029175700044779130667092611155241948632289740124142152260491633017549964533694876546296816548199790958004859765599005667117025670985863525488082001238673767783835454847273167078725911689677375835243681333985947357931192187435861944861777856645947638937114688586084313416433797968349837137073558821816074574923213296776270228286692295556717514761384581767581458883259094157196959044237491591250671109640418401442439239401783354667470577824368110137858755159633874256289368988275672414216673334934412981241734026106842290795602181011894122387130723726400244335517016697025370415493298822467001269749538425337184671223142515867965409374097488652499054556451825290647278122275609073915915087918971903546373380556815907533354110590533776393627882983740800738106884228010459489548607808667325278905091754210951034756979415249920354685838256566533640760386968722009822741974192750362523830995301877980781308423355911051868876804130614881482793138109030386252399565307118266006511851276403326512554853095852768217935097783495760794765621092113343892210652293716205055241741893023283027439481743679197437238884296884174897385216210928660652905879111356866426277199242163138548715813517642949507438834351196980602610308656476018030095450049999304565654546091909243680780358161400665879820650258836525631281476645933537555422068289990203687525355537337062447541171290012486648931272840577942007467041896315900907706546231746165462567377470809037139133903330673695931937067353237695167777366065727498328854917577297409856611355935110309963346635147048827843685065367593136285391061968281151774879877350306507488267579137059984062415526146140096063346322106341512821091257257038851487878547606650623829899858431130193708167965435888214038316472968459182130697444584399787569893902012244894215992305702888891598840813286426969308052516504640473676450673413199188507941795709754203814624855599334590383503630122434887294069828253184842026524616835582417798391114056666492930959266093228530968527872168615415689078938145567788542544709412138800669327971800640619428462350222227703368272211679800645228471757728629239666922876302445659420527326883486939738580426075983980853816943466162747035955962302887449885621575955150031609728317327635555426550182760239642660776407934183449161003319636176003359360122362359711397844628636684945153643592425332693493893116556091055966966705519233430365957805993712577584955142517093998014480283951636707223249370471328660329862769080978305678469221637936392487075732510173931027526896164480330646626863455273879036085481773763283548510392528133793215114692326307602313112957890003711330475321847204016783252743074577460019731979075778038735742940062384062081833151452030695925787702619730708397902992087105955846404052278749992667693244279476321298195830208196599732200301540070758180493330472228516772402891387092051582152164343224057449040363402445943630887598999384957358720698274351738410076597931109196230661264028954075911863267537464293091214132521109170145302134045857140425111035578234993035018095764924400950896046893979524566827031581773791542498796770161102067409148664303474818618800565309761792259271737532306691541620795684869873178686711805597043125784652040610706360806889092501872252794086820201268031890547723323795684891785656424002104267561662418879986739195223947545144585669655985572318904482384882977838903447808674869570204292119684562161877090677570194146676767828460984874288007689496904607108463194736632522714308704450842213783765095908180186261935382864169323121874246684323173737801174163468463794883558701973964098512284800182493863720796199740255990705083684643944276901982310244887074325803550094893408483592079476777809879793215299104059091343904904795354695071894585084449421831593026744410825230050521749021054520744547245013320373589088752994871768915544333137480417759944942969804817292076153967808453239019492307988922095285225130671344378436117345994405562821306982684039995755772536072927236928744282802572093205944874338611662763815656363575965946386220574801008906215793452936248277569406583042463712440952946468310928128227148983691760655546241134114111795113148552667895125377576002579733193677506456966892107480591979008201775608645160304902495609686704162002269070702271977625874648544887262728720320856492400617404494630672985986720101850717206175803884192443109034112337383422998125996966623778414497218513252499710000968009089231507577840543991851794648917899731779321227063209455594204132043841995031787758007704696146633262422360896804665362530205987901249933274676510057580365387178105591429237240172109639670381854230814498000702597757073367301809488509655612499552481454260431348651644760000471834644726896488056487629041144861296691376224137730385177227622703412768831307840265004180478088007889834428244680363959506437312828506984341497654773758003192970844912502035643110472382112646379848984615710296730093556930986095446959618800665522051275124584876296183369203880065470478736160321080947821062259815296037383863508227514386263264224741525858290770329218654847105441618157674893661710358557311151508093029400622070695994980536852893119319130403003365536917447925829494317223814694385715149636259288284021009389467934246307162754701836293530656309518200916364780609192430570917757176270549885228024264697104523224009539859880171818215125744107229458828932231170940622547587272579154979454361167159049510804008092412469973721146863408363967523235399304417195131673885620784319474978316491683371845951540864827206089974319299371399831431055234067508111695403701522761425927114175834631218705407241298953696203995894348170115747494937105711394664543182925395140091322678485232396845952423348241998811536818419964651356955770567588785746505741860204070885478392141188484762898641979388682047169754545095459401348026383521913153223518936553444440197557065426005852582813306866200812738411902418959819552001653075750099449107361804256532302724670209004681484651357140696771475813525478407560815499664637020667388752100340922850222503914420339790998609840384576997494323883567517850082489704262935259964754752280494402997343282100513927998575963237871191944474355509763072628548808971740351515943738537058408724585882685869692235801711034427610517850197838320751517998176510474494497722096964485564427591693561194953204960038611076486784936737045221517454015993915867663181656251283747002547709804909303117329681102545675937136752710094786625211509601857415170601053792977544829662559220722393034857158520617997406144631652667350287056956861715948746203034408315027561231894252541154653042025402593498250386409135873341697895613579038076765893790051236250281273764300002631053802514975925704964272286023690397964582806109145191968275183329881089351901451683957776916024333276427535127218705592596527415210554990187704993936813753305479271748589717304402116947717361987410475882288921684883668960307450637456754831551529706023515375915734625188621185210611274093162873935000807048430050662543033912244638053564361430028945482841504784607989266306390059871507466052493995779860609137004481310445642063739006830352950494968214611746457062417113945924799787524879347167277576905834700815120943868918663208782770882817570276183006420930797472536548973706515134029022113889055711021949670447432410493092919272588992634659221781041747006098374686684249809333557783117766533792337704719561546994790594864852059958341967567957246713464778977531227524553698417866039924526326259230532304211368183449184660113917584265963127747747001322556474301603499050230617785516254136002352963612729976549965443591562837991105354525155369344871952518687966269606743102234119338894863574262157737818764152007575938862553557762637950471150383899228993389426479363396067937630738494320653238647694888208556152868823526547413558690179202360467204833771970372811969336378902787776469812460904238076552016308030259189264219212515648067167641907005724224227824322175138878691622992268679058182227314914868324709164349513870416894575995652107420451353257746534086340988308977880566790448090444158961210574510504917630336165174732240949709138295545737867677104388049707056615940022207492621781935099283851912039977192750290779087105053592423151947203807820463343630744554419148862937227076693292611099704001093597313291226611916763018590208794354543475265825558856608169580486594088328833547472250097796822855165973375156703681999241970113642468338624592541850607926563785093563563630080388646458419749050486503138529357692173260785117253384377167617617076314864025194483271603940026788346684906951592021106946540337160526880942249803843341311685906298175526432534827576428702535665398017062129487992771317331461743502914730473282882943634044753460553027645581116040035589140442513976713786863110645808762427260217967696107054715742284616065842257207085962545473664484371804030113729954801783473063240497034579152522125366026613334879679234808549489162287374069076631314338063905145957429726395444362145494759872091651461937285289525904850407774336613640293597575438061772501570493264253917510494432763888297672978468442024479795231389673430298513686396194546174693250264539519685830732184824742548577211885561187026017115917957001156663486124040239049278739537221835440689813156756862864518802234838064906386474232287772494500253610676369940560432135920136220600620021225170770426841298936124371711606113519113854879425751172362699248034467034013115951341500474255379375598770745863171763665798275767810074453339266112619681686649397469927839894738656642972073318329555655718845452696661522938754131331806564184769280714433207623076225877431079628019257778232063003173134779719770732845810087006392941122724039475402978256658518281691786588039349439162531007917319942568126315330253651598647646563216900255731770360543391417094180119461165675265840640416105719842521313119652087229601636579951735410866129402133579255344610622139440667858385241769846579335733896239722268213022526930399038381852551365872146658157536500657166815712725802195146201623638076319703047741312932583644854173373373916544950388825189933979212854280367138116909048633984164533665870322873362876801730780766541692452342894470754616880495188541994714915548083239176639101719562332837308735837496825311271875873087848323662898416633892235564316983127877956223015563673871952944561008195811353566414194192219848041061228533034080089840577502363949295409695163544703951619474641476665207552364028350390463193707080544644170052977906857948321620118313780493524999534071783036856742942860977281169146719860340892929699724162091315669635760350601589464722646144494029953816317664378532846898172231694359810961828668009233372776195246608438522198925917419656853857570381731749525852193737097644956386440601815622621412233191006507623477390442185861663774287235508161960532981606228744732038241952758063785106235939470229880011594666799782086360141641602181442143104345237941044619239560116142432572522188851049694492295747030067033413821943294041274443559926819724537606064148338794897361270718529821129442927728777842808955710155229960390809690910623676516912638176652819914560861442522306191377902085966670141020164656850203039313820272594158573994970569710639024203490838839841054468189175512931128841727227509723383683658557774651484151049464644436860805250569139136397635320051344615402664902127379466866046339913205691432952828633574650179219503779402831926799027875952091648681815890493520318243135152633451843495718691464971684400318064741624231319113620435809921343135363061274936313745730463645977394394180399002122281648914807252869786588950575508170565405613928632503265136758232448872183993624650651594702977708306233625299313454060211417997897660421280868233463485247233500254608033625211709045497983662835232515307672931573533735240101897253230374178429936374015577067337363619754353853772182617043605144598193411662692228035922852135174958080892913638104655884635747522816450058642114878664703137790214146809607449870576377064104651634864032457316435224400658202839304866613492658931007276397504459747263241056326006603235990369250305271719542642204877796137781627546580742061076090485222805475836820240277723403653698321603016532433133083607924489251516885060781757653850638237394356485021904334765866151005623837856289834561520459037889465473017441068492076618243467486365177876517846191850735933856261552244440444058023709136660911226627377044399698029467494666183643441333515428360456037321854501455547813607580952165802508870502909600389305602749185524547805058755999163425251108022606143105941654757944281889039479501835273664191020705577703997004543719242436916086114644429935792287870770661233938409347927113431366290890341730678374891178960409479552704009024551276698655804166800422413245981670336225007531659717771020089725618929772641584783642419759029550109472589488852484836235028946280766266572884541671645724488662469145119250983643167694160829508387208016118610519224655201680289092092604007035777903146019617987730294902308537919049575875299639607240310781197887547849150416193187075433159652890852977849605989331146385238198573346335397400961082405029700195169267046976541778896625958047287808264307866976057328937767351303525646682061068530885503680077804863104516818765881666797845634933473823819720180830103245361700772995651333414252358230158622056771628834016597481072902237059717401591231065091263365005104281985151675394655857308090422445077879126243324138151775497651527298576669585826818696725881537041644673217450685409809776296499876678928681880642488776996299803029295492880635639477613175176488445705682136980629611705983806279869030423192988917750342776934072338430366381044020172759750072452940751228063714475391878830085831942390204732040919936602350278112499390764364859869296958917313537575263901011508695937960138368466057948059580453028700319943081531610488483219109823155993809456768062791103679588061934025158898851109209257526944486359377329019585146726543723992080743441401929676865322626227283799128623606752381997000723262270329904879960874460196449614389226273715239268153019727018396649791695283169417913953044653718305094852072813465814057383378875018724238133310854227773780440033107644777291769531482224106173518955139224347869637476759875453054545973678426296005236891032365162547869188072975477317567526132304513194082362684634980056572496841646994122803985232089504140533878632385698006746514923371317484708734010188434137400210476116579532620473394529763431418762309952826453588850960816753830358233281098355022972900570525898621296749887619977700622221765608099564932739889930625023075140279372520939240055681304640074169714918612821641681054452483982193497277356338410352223541218977322967456021572023797113648418813165293619906012488415589553369414346956549843980883449337035400862531051373368044557491899764321102725729053174924789924663522694709088621463114740462664368429290312119075495770066798600213412053525486732023266246165112045543953149007797796702512949309551742212864785472233164330804372057485665409790728084500081159100629345750136607883644992576160945834403778550057898887938425757978263635675396487158880552913498901861775174141842055699089663760506834648457269653896401365606643012296858805181714821708652214129209056227282884504175023469008854870214528275138773365059023934474132735214073979386230988894714217289734838673791740279701965090426670818225252243573855770106007806657664209023622999581677558174380408887489962989609750867059752674473825512321634328549667835576344583757394864968457459114290398573446541910442274321412030378187548367251684911702328471909849660081217971731176799109568374515170185726255863936620690851963679084581778750777216675920034731124907034575791403163224674137481974610605084417685420662361620028517576929957901347260909300962227899303077308157557840537986061763334251811548589643355157340432380502906791855907266489048990879065412653003969922338201799052663927918477965430002184724251896776896520991200965633322280052321745030292370504816204952846579774713463823746230154725553706231820235879073192980663508956273075170502082131738144186243099828817149517753045055151986710916108409462313932022187088197663614499259795489833272682442242092731049573834352756155958557879110082009418409939184497941961449922248900194623830511018111550623768986683708936041804448564586736074303204461726802436503759535645352125279326554375625318825757201292326691234625777799868750194935782964203428736336450150021294447543710542341956686416023111176303756129402733875284519237750193499559613987840420092500197200548834257726796804015818786605360541883578719917720582522235615222977250399768032854164928736880107108820101192054055823857573265131342601155737003659491907030194133762788499050345128054932776554747381624605397391747570777019712961107165417368870209898101254329099203745861542844563386974550613468602797807017226231673102062070866497879661225428162077801092785356062097116112141619401415415938683739136433612763218701928481076489738153901675035069482590048021740424248908670843924758557058736219632760359365794596793569543973032894528488644655416140354684071309206221642202848777178782373524911937307578824819731344728252617498384742745511684405057221020340414016263524929754076949211089100519855809632900364205197480194664461390774529918875021466493303129136417200683911454848058436108081104649979713837467397716415636783432543458019173179398711152008729002516601367764628150760066533564307470701916520541134358069748109155443321574727226925664190478971911754870261698382346265514721738939359558323020003663311871024265486725102152527283117014613964165769874803758844700589357289749281460117940219385635290379671871154129045796931340652852142094410297262703264729975375139621459669738102587240802104556077356320952679478114981417251251448303771247629400746172456563229955185292190203013416273713974979241984043672624749317239537968724608658241525526590405258619670394287146394361091292041072069593146691256640126085634439038833416600595227849484874634044421378440486250069852502075687503489664510967495622425096439545691197202249302201996043193891066992077655820885720212170383518670058468234349252353447609794401259942544975249163650128242655039629245695353691691147268732199880239368188052639764656533270254679553700577253824796232140386328822408607555339735443416418176937337308761899772072698190177607164121421290155559239479399990533512416016499355882191286873599398093320966427017768243644362567706330047592260925263602965842939030912659496440574873126663394123148398334291280395163417956296735189983698574652143295468311458828903279863355483801587054112123488664531054196699075591755679421567842345138221279054224349154384706446214084862958277657217092844838252926581112465971037793869612866386969760390573381028895678149583655988435557687779589004338038182710096492398016196708651235213293909178663859744654030972779486202902603467353556437317108360149951792801906561549867847900715302154549777958033692272839321620932462720725342572015675369355887120482870632925234094478474260935531753291333040288722402792584528337560050466690584712671496928952998024958597421060170338119478926918597965967772266101066653055174060166879766611853074769482609304697077241688270685528160810121864783533271969637824539351455759218972160708748842304773135757068722510418129078921523149717106017630119719052200346034038323814870310276118484387215459626901428649474138621343777467151330327613317065693661933857757943627441910288696501472979261312863745739018025119208981338273085383126414679976040308519043555496102872580339311653095228344311996281314903189670712755208670279973325641816703921356282948016072613983547652517290095212319807587852878274205832567207046825439938614049696127313865258247093817206041712731737554120475321051773204610129414178219439154638676388460164507160067649689345314866646951523441839219769416966153847113838308498224275315131125713982891119461087787049884244999495812771394773917888527663495876110920104218883213516572726649247514608019488110167679368068275823797149377550994470993310708211001458229534329880055680721575810595705880127276444002488467196286959172479228838377976905620111744000571068463621106335564178474080410459126691299934146674494106392888718353418400106086174729140153624110462345284552156765804918840782383026332241153847554276572513352751128412479131068119112193361805627156365052979228154942000760992741545406286428950565664896104974028969193844515310833899555250764629325398076908546172251853834315096694675809447912231318219926248784164344092583640778391924877672291951300737638495918788694184095676281243540520164329779118895069880327355128486017645172773663654858228579688531339198629601145845160146766387694132445338933211539061374873865764271435710992914243367014912482718323746796487321339873015335438470807654769870210548072363944982550633644427790763347977138011357712496796579079512825590595575204373024173823544324705810505524058704969456196961837878173085628758362614152652166297293086186155971140671595218667437080179415069548275410162685018369666293403035889820214751672850581287790113869643584096365810343253631798092957701350961984828902087815590876371263355182175801398677600983150381785874963742888975012277196522868037808423400708834340758660794514491474655583064169937892888872839164246658088855002464611822873820828256235592035084756296179544947481723284982898022758871765020206438523604947035798572641602947798666022566683767095166035936328836622300542581658245145255510888605643154499043499976444717667564605898722700439360205952376341789498741374399039010259591949045507975832024543361099902034347761629975706022332300348588664587304097396137384357006682358534194837714914728120636582649886151975941572362259511080505204107190200037267919540393066171091053483371474756845681636991746556076737633605819033941048559107301652226900714856073745455309237566284230002172048242571195378916064957357684491023072577152484863585175474115707677391238726321381978912896025187191475599711828456031866700808915656174563725253326742070040435726483922930565754079585935072914420337179497611960913489532839968857975779546876316996917041686174223924288063628083808523154689442291902396948483991407598412691261212713217205460386915355033103093986111409043407188518359549679029684631285985972936418583072041912448781499192828923817917751427143471446991649650037867270999620386189412196026448841918922661086797412577086945052356255817466295297948035688243125275447564820307044282823857347309628775565677999536159183717827642689616108309383288335851541764505078292634104236192056779567991349873407324915704654336499970003693899970141077472620254626526253542948176294729510785811473556387464136580517465124380523540449813614281700230933145618505407746119334111518301465782282588464318867874904581907368202311000191894887112643980055664364888007194020623855726993290916707389613446444211571422313217959832137014345721333158006360803589587454382682739370318792740717165115756862528681077377533665679126590005696731408840320669516986492832424576806945008332586949949158605129578072107700472773492598497380687601277190742671472342063201368534327531673208025634299036290209598066542051208546252235699687906355161606058793810666330196754560573505268866092752685487211053959702594544752384838542822891488163962867094774782253242031768066141510638606755976587864641779188934789941535564212267212625182332873078601098799937192274937588441183716893655847289348762761823108565154692792494841325566268269965618713714735516748374335360555801767631276652413740724651871589083670615389472635337538874204414216607390341682726983518641701577411215970858031848512078955067388767137400215709411703716047645606928046817215049381792016431366171543042927849510207609774727238129025321847791031257806548596126170941573797341577509258762741857003295455927887284010288412220124564693205477270822036823214784358693689970742299208182047034324722457366621033287935995664827771361053335490078848800016321548925154068642417049268641796170976571217801389252739453728939838624031851863747114373236046939203424778401495939505135984809251541369139425228620413186801430969310738355052026845015516349431692847644118461248120020775650271859405195498909647100905329493697511734849374457447179404043480452724071821162354579193601652308917442840110401233099775325506208574844972065300123648798783981033252378303342259805793801973408112477242385992147591286435649463026881824959289864902728811650007183229031506037459966901187468018601044746313473424628879003236761089287727617262185708193721507680435216236184192551129758376480715497645557414015513632798370886584950087300098217497800651474807304609074785461355620260021921993088749813703332832074790042864076857348821147068406134466525972499079879088588412754578733935009839751155413625971269094288710372048496529976306080324212286956905552965123034011085386784532968991604525718157671468725650022968859463607465872475292505249609481279669497547137461032768792743337120965802819697727969549614971184210670983190520734948735589262442072541636553245523388457947255113075574413886776994343330276126406398274923314253039145026598627035737599697753873040959280128684616659538627470181574289090100829510779273986773469268838714010213633748638900713511957087098235876877290693821371757513794359298071705348256840252460402518040628717655758821656965909566248419085306634840000161430280464244365836137121572676881324627038695402510881878986781091839211443031763037109122063120991511158781490285939334104564421369638369318256439760601295790520191584449474410917951925373739956587219397572338422696064503535601834015179523831057745044033233980123303708879905121051303762501770130961396096425264189267036105821712460569891310136795703202834576882939887940365875560587491963142811448841595101702305670098672967730190376252521143359275747717013460334958715549946447543116565051855617175253104620056590241480265118260572820886974057882432118387377843132858537710838311753750174841095176681348754792005056667184110585029855321166749027173717605434693366786292481908194562818240642649904713811275833578008214946774979541640280241134645451221006670429794586097706838226063294271728030537245225059725166936552119474759575082849070704365028244013019149040977917574808095385673612425136602939067470874817017600425415742924648865096736445091840023587898725129343071529687062454605852077209648594641175698094703932878387730894587305679836790503288503083455422344707298005019200907378309316933340106179785425410599506451882866578350233833365513600430860756926153582973040318805222739904267326703047237190841749868443875225904714421506683290339643788701814431373879370366950018005343152806849338050591707249723082479588069311541879081225721777395725975823162777082834474220591400687702856297965641269690580706314690696184391145162599667019706686613074935609392515705045047727437171619223187406339323007089211022298932448676191152523313734795100586945101792367345668388025594937334991023712632580285580271202289061097638697357582884959881448317838309785523065224287086168603953654869876874652980393137845718903918058006077953839479151146875761915309442972793426361113568631078354393425447252526895011771219899558252468805393659114242253301634430981221903962042840972477541989682439646179309948135477542189273154519785046535680302109126179845403356633084721390911621782941372883205866379922141967714529214232502442101269254318245475490746207945536351983481254429947538243425893876788652532179478330874605119850681866390974981966929099236719035943617682032400441766183009838621111948526012089838878640197591413720432469486124536086819521828289970075234708801225345251684043566276349659930948310889359494776843896641650452414546069799662857934474467208042998142019300069434761226403232265444538165400396204072685574507031531167126965987215835178406153190372971162639009124702847736868478145695794534303257573079214208360327779621328710313000288447653786445333446168740641432033000819227976722996575036114577604920333050124554921217331478229823994719380559450964207628556946884618465426439821834839902875760769892968143906685327252567126200452298079323984920449764044404815209399460920782868111522237732719691918038472224734870660526196558568861558092143239383009112511184179123390649221154287203172603882908812570607788005793633064158733783045196418113699276179314755004287100254830474170026607457019622951845327874232048419819905644043078226110253104645816368008292542879464795723954831625699409644973211184963857826629770957139478563522439499404275683538681227680805782104861333264770672635944080863687234812374833028191091343496311498535316942085955254721767668160026672622506444511902797840602713176771932928316523182551334316075696839461170586182360092657667238370449362197934402312159364199957420668322302997195197272925720839673938060198745706949545109005729425416797302496317543196756457371615380649880078597490798912633031335594394985656557544133780760921830922814965386417855289914993443350722031535486516855737350044077658613614865978699849908017484161969449384598723973911632270247920098379587300329432457363794439111303100718476790614177129696659334957310690655780624451578584539502107035648578585039082398165787198096720570413381940002837872409883530293810329185479628811106107090847429785728396657031269800835233301468363063819255102634296353278223109674670800435308142867643070912506284006581743575426260232075740203705200375509879323287067164829119229255503289392188837380359722019833220571892325900332473503649364474717214559815925572834322568713775788367060346560094542687933922122464372900792365759118269739780889476134105973412743776239461638597672789060851706457844935552991172347908232290126190167019529982047612074485026666818798578040185568934123836177783741855187424907371254324415878863846112378676292533347852189933846035194455572881162413659770650359750313077833151637178890992037696793320305160743481161392428481130329642277312638009951380529851259767886686141088546088255358976250533322730786075817325829424980753210411002599641633958892123783566877513084683200545278308427047235671576182059431677136296095595476059454504411866874721513948498086113213424201196195319758462753543950741603292657678319492596883949665872526761097273594745303604015912345136739385811731012177817016395125507619310217676907827135688682100689767024356636536144008220757958905626041995410269035343259726539395060233373137595343313767475511677104704762714545178337306756174270124565325595933994790070826573686265576437157191355798242316148299864000353027729216052550251179570825179695891454895934852471512349462932290128298638661762452982924273618031296146877736442313052322451437825942033562968582651889497215464454089265198431242892845483446158877977101005523938890749259315556499919886886810217990678904053277839728649671604985382764781696527593256465440528854440127593671358417219608111267811149152461688781722068359707468195703919097590344820758432593149786796722914285848469863869426831412226886364539489637768834240760781436952058538958630849861306985131982560355110709768278473090352077453081822031221988171903057770368039571816380518791771490056970326769271771460930996039013892251900818336849021410166379105520743361014804367806938211062114007372318308880274176025963272592643704546924800566187440003840792277021600469439866549203549720795608073470070784772420716004201358566120405212740153559309140174590510295523921825382516834901460514782951097342890854850459746492218420628491616722069248634434859694414028734787965556810197378313125675242014327278918215970544748434955088902963401734015113526135325236576416161469855852173175721750234341168140071575413518344257486122356808263857368148543817264849986011643346230504745004902094795328484925840737864803852217032934749630959821869332700862747278190516764297766220818761033933390953478481368330646146004467801329003053337546072531227590286828653468261118943820757927880057755478388150815304417241510575570575553279254417487213939452956816496973277126437294646231376120315947477199478098295758361952534630810432529663311814323750894702954760287274336381761475135462880538226587158026407216057227314505422329744749626262623091649971726324778998953985048842060399472620143711268125428140900204389035874466207149121323876980042144483216185870014278967597496190632341072796596629481261833061423541788956244449477029495622136788100651324623316298134033556335455290830428872843346014792663487393914855348339829047895190120223855633479538549432644710042867800897606256850946896070766128336642986848809172616956208846933269831961369695353108576882323944091234804219688930035691119738457230019197805348179495163010742080972708796130163565713998106266378659848618399595599613824906509840820732320820915250309837291614692688608244338619182131124318612781340406032847564084839470777032231481186986055450690466939573737414938486550202272430625433345809723114840250054382696985822044983248696327742813751710698644638943740999027249312388027469753696670873669626595670923217345008612533625591647087045168291560892999975770488591711882617842131311977502395679636064132029682208693908840848842300668577469758690874394540093101930783524500214700787934574851153438125724757740289993232251488532211838368682516647011779344705760728103436553799566381763741880062002771178381051290456430288582417924387818594603060442420874383229148114580357072573950214289814896466023147158177170438478856349179464755703887844229280683109504878779380240617123935937091964400741544628749823117997142247363392350665810180381740260819738870130405574014075248601413193887337868739815903913058323587376575630516375556267617182718499526153367230940185903175337588585786550696830876063986280369502550004131250732902513123566451323014184671888207796560299580115334477306676181248878178072837112941265249809880554302600515205925631407492293620627805058293656769644503409242170760768526514591298429908333362694512407218933738776042349096629826862285541545332399372992650037495978399811540883195995398626551691299185414015096137768091473652720332160167653605037416127938273360539923360199433623595782814223260441137431807889777794109744282619281482102024391915886602257012467431213152243361232521826882339140097889413452783641802597230179625096453539148908202157710024380826930483910003013081701154524934587601935731550696297619336584066770869369191071415555636370429627288969639368671989938668162256549216023779406858652940704574601512813802044194019132464275541871265296694210932996835824331831766735061833562642217227734012531443329625162022386085672206770283357249409075576842132739979180745496019283839662594398778803464385287690890728819706006188551876241898983520163039021425640171643655709168470965479104610167525797497934707683125649535730742521533871580095241277215641769421384798378997494648540028958710540802568321238623510528347619845321308088666978533430650307147595854529039666034364148945153248084288180164958192749751627257434689016671545683793375139029995809736147721643785319170208146168568997104840178556237753675134370958669007802588591945681411847025333323002621881316357702895570702778888363479362673528060910390550938919003404816192379023993587319510781167744123432377002729920946939913950474859148774228252179490888661113350687832793011917085429243742489834838471846544297550623751259112791037226126201490948982434932739729429930278046231002476558543850198383331256935065698225385122880698137518360331970910602954414244933016368341496852874923195467957865926398569803222979501510855168618552902479184384453347333927408871611425069068220335923466310006788447885551479270082651769604923295715772973460466237857788913451410915375589599294607819740282695552482291061699702644406395320929863122316373544822896522056376145324755927522505619403676609791232064341935270859571790611967701951070405416905644822888289335858229063532528404109157533573588117651568411961676593192342277497802020831299616110598819548383332106158868998014814368503475754216615467139192925471247340882279520452440686910658257350339378195307562465236074762309841927208959181858211538588914114880629066160914981301526206787805450467205065439254194391724071296313107442432958499952798870342885563861854473608444797406614968217107729289033164147339919522843277415710611217460163670574140472201871286257081227014669135714603677883593955784337044370801173777503951540422125971863163925832032809052024389557619677139019130898890463386887984019074152966710741186029198099534570662886845165415721539975283816494752814325061867824263014084480054957726330356566719867105641297953655397870695452518108390115715558192606853069325225183004239142585757861877020114370644623735966685426677891373386028138060443050268238981456428510439757400281068297508713441195151019981694927959698950906225819133771260105971255056404428104848002747936071330153534628352398527709005584546477136247405689398600588287051700705472967819438783977615924495723198510971686572565856548577802091942714437155175047157740285503891469403715803031357736892870533808438502656859704762390860510266378441868937545169237221334416886405271907144254208411105429891126704056336956051043942262868694391584513851857114980966687890760171854252629308626216701141411964229040708249750543328870704588753575658245981370892600288958790329214308603945303596147481656839971809609739263629727165918061833361475159997402224607139898669812759659552821831022474111307740615383025663580264044052096682433672079117249121905366491976679303576629229175967033808528216042143818638258928301957894948581213187342088786705060676602533519611053885147134808311018051013540082021942679698253073181211424360277467497933068621335442394802098721671919118650423823658420498280719501482455590830631379213543880568811887129490271046124668847768562699510998786397169385875301694154816894171916984522113864694820561863647766934522147027456703660576681536357618467849507737550237555264227865133336972127699356502673805238226964369442340582362687489321525454774173581403621123043262841110712244128215187036324474733223418313311421304798740892721515405964098103298531805289216203072771572803123161279519466059664261337696785359384865173443509720319013909480784645061996862063315355010598292179015134051521832444921857883713747682950888183654457364164720835094134168355005110201765492057609746138600566652749769587865536481640090917360352773818027905057081760547630605560832467017454348837451853422598131467178312776475191174092592442808811292194417026565893590522083613979414431190204257361255512824835054666098263418204348534769283975272115099956108760041749397600394593007842955689036425630870478757834952238091025134976343283370990883617074134394183580131325726436707089801978865163693686215941424129722059839850008088275111779598067298477441623592742885773122916910677866690206141323311914161953047459111936844363476289060787456488183756379376420981830751541966547814674961865526251898002869794426231518122277972129156267494633533754542619912209117780569903035225276495023168889704184533756594533663936405956448519224249201798331739127903108731100702898872720867198179052308447153375640392238378186230217268793804381145007811869344423223282023686453903693482332055619708784152174513356569035491637616678538099893530892193908638761120584824584848052686750430189077934481056934942469601440708527190176228966344852611349117816510578960114966196209376698571634468869484190629448203876680031124443576342070311292688220353277447847739522139773853501863117542044993244545912194371397432081664774507089205565221837993825853902653162145481580708271254448505393919947209955904679258509185616633228755380328569009859466246879621686793089768815395666388967712074196727218427128401691755737405063439806836049938607039806907343514905741486727617840886769751157883190336963215868875070226028392926716329857621447212068409450167953744071932980614854879854432639708759643500489667404047432515512198963266975701510488386893583170962866431957208375955567541197040745910864119697750344192905985730430169083896853714481619186824393318318419029578816815225392393386515152390353204398615483539448898332642356068424390032017664027116332264026189832881272409579802826725999306253918543203674325408420035515033682452935360602856167242617753092066580977728350768656303444819861562716693514365325216168269035117969533379424985874434230519818968747603357279033673818458074799044819198742598932205152453150881211080872822503512708227447330700024100932597878258340051713368500162493364555431957832761421053975523995373952693024167180949459954289406284721102847068756537847058337711812774466211788377048589477791039880422045700511484121815347868258342605652368298787616284678972575861063040865330413621380585748171340280647372216978550532955611824206461657795950338943952760043804250099006976721918740243631932682629882309163540814337660346372134518907028044931549685287208876696183365885406103339106527185433626620595052757728150564290326278142976827606177686839832670312777504752717235010022144860240380949033610387181690667446688081368365537209925725144453802116533222445682448393995309519462725763117043402329677170309355245212248161857496531373844977467737316854591823461969206813622622198984666800312305912527712251090453797013712763519161177544503209675855703549307084833354474904119292085248010241198356435498446377643258667075819439065997623429611288607642609001022706979823554722400164176197755665685802217214529059016504857346332525234877720084939202369323253055129442741110403744860794312891200814014347049648864731359797005101779619928225324725308008209927108275119516097029691735866769706886106389558635530410079313477152948257138384284064150161702321829172843591312567957299246710637886363659874705972628938740599753764742304153846894967245828002594054468873099474379294232464412305018984004693627399139473809393635327688995255107354496016349602963476392377921374515462799472287235498027673343480068877811642412925512522149609620742221209734991579960344354170440028569324047022854934084906498970172412150127006443181290920727434754901505579086865040370720917351102477769827318881969298595855923961770027671989548870105701574981547895453524540649056568938986092278762709458754289368915718944983057258340852109118556853139211801410439460913711476683836173358087643786745591710087360784550465115780890216648083194365655885611757305525447265190095684145889394170026005696355986065549139379565994455023538565930867913067465507057837412190742925269929005848808202017392859492789498235212847132493916126915921985483037039408234329545816351902918066084786421264377303459000648696238155267362724659502673327351676393719669138412168242789551891850058731282269986300767850850475971531867233652955955251309361016674184681401768827237612198504306853529450910506096669032763023487228822186968522318011972564900024972869690163846054165807375174274080228257888443592405457254863044299696319647502672237356996358781946364954588150728404635123106481252911527593184279248201723613076994419825576050821859177120786422624689812427267331787315735937766118130645976087268614286504365611829294342678418429869023943182239918489058389451268388097154068948009292188244793713383450528196747115151383431127406110567909862228164780441092249763262914142070059776153512270949133938558590489603313499194006944944667457746344758769208280146698185645578439822652682198743205928688881658683984421916494008824074403331503330433501670374275413507988955947599592643370850501219152444495527977717758936724086474442974330496976037033888032113728365789082437812399516184260388921597866564487519690138420819184609799592668163687126236092680899132463090339208029013471004430994004164516066692886420996952937042251919585278420152800521792957682068809480766375028946192574827137384651821670387580694289476881801945881253523019698258401852884760626740407623272300426657728944001873763688686465731168638200736501735111403107123203305517769688157975932323164483114763547008454364848135206940925832437465964101914400546906333554544352403222407060046409369102836680766736192573881131540165217753972554443714536387208353229893043933392861573470239199120829557722364803616260082389080385476221951290235080794430329670802124879840571235401698285917356848931194045873807369886546718657071672331054424669653764514030448488682131787309382815052237318842737540872538986731121572375205968823343746448234866954031988527598741828486971995424782206956061793472634420140714776902264517668182194434186575276005593064516806634462755005004479171877354741841389366507976217581606298726578335548746636109292473746099524696900912439233489364919210256003242869398669162490836607018449620751639477323771792207862632200565384443485434968308340671697952699491874484388734046721148910693080553305293571878813158504857728541960381045589599917472950759757745193562031513597420267613728585866244589510122109262500542050479008410536718346420372834811591296439863726697190148697416741737526940801355203104645612907288659210311318916188487025409978676589806912369234017746019926400316900990267823937397959037784837706448172962978182258279215751630557411158751266466640294557129910374105308462719293359812869684217691943749080594192976508671927953020235852765794876184907671559206358192213225242515234281853252833260189352147606227026011934013991298620294833356556139673248273402259523925799508559189896512985487390530460986175324233389026910798904302489117539151884949932177715425441106414257765807017430153325136164535227042094328483219460352979616683293336882264121777797285820451748823853422498708013545585010460144404270177072085456839502835529620446097980555752964922905160317154954203589900985494095372215233978386063780683320840919108536956941097225511617063213894484201561948372422160098006502094166727911436553200302389017934570370084576294678187586959906346444261608137933533798185389650859302765335330488498806370829268831461131534103181851331978596042045609443713223335268478360594228836178033931800399618468331406297994965123388727870842477179540008688007549617681574631203560530879446735977601341075643341423557797255829506767484943171046435023893021968083121945004199064849265538359958029982708085640867610600794915896068595800006356434298703367688894462022758524704435036520891833691544205082430915920825575451278022899732793753766329900591706242739624334074867253430701015823467050469069766688397488614907662967112961670618903853926301700547231065665901642181015344215994464128240843570096087997263477174807900923834891030084247961963835142764565075332803824801453742569334184601097324818949590960221712662334525548738047382377082879278871989547380288219010216203206352677069245573957471629585021333719667093344732256338122146264810158668645786163914957876099121720948747641896977568960455402240252888287115741988778164649958823620903130119150089105847290766149109817592063142370580095572071416751499807881154295345843002789963033316797946774286723144708802499498403760335108132372649415783660406364519337279303654084978878458060452686368072144112832329887072179599338020013829552424444255825068866756721871966035866026513441302294069536747441290701634787039222482928201575021879164119392179188219960140547502099425733703577614653078217827909697629095088298794189822671775257516559977186197228502857572554088543553484718495612791454135732792191629671888288628147950507735376909726040226787631865363198418718590773606357886542097541209949808009084258728023326954632844924840014960623949094591259083688670391013351638213247485989617151258826303484976567389352422463229408398263414917125025188088447979877701615199139257213873822369246029870582465086981295070495580751840657045270810539757441397255505175083643187679579978266234394173464762346677357241570485051744264660249885803592597640685872605851978963558092470512759656195179276337790561909661150901562468153168342333135230145495102795971429104189579895294869958658153663343296072641650060993495361958457805761432048078945789426574817996150059241696435953556533534718171828513322372881497344529393451042072127732473746006800682600754497814812062037537767483494457994284534914649783421393703819880066756391073540161497285886328263114609428763811427079878240618106544062208579754001346105741114430087905475029878869597018373503985428805539745774310248758111828359303371465452793381029363896063517632030282779042430017336634994506658185948042237891751983300236295423716648771857283479972141772770898898881859167208347880389879615606852785499494243457537050394386197152262122007152049378419557296406229611404016263791296370407048004206483120691948924511316570609909633011389559705847240265418408460994886823471973218424194882741722433903918161432366026526041707087464788218484811467767506224561392480926476300315485046511518675857357697990208645905470122427671528293443461537110078738139898411803188820028704741400320895809838332720350801094953687844139833036129959732705495060224525421748321438012089434299064239758790521088695771450104196789092297973500504461705398057145689143334362381685987610409068606735508430266955084163325558432046985533401489099251759413101377455376917672919899084732140641062713320224898007946691788148305123837177256562407372221083248685410800302924185752184218738716967304853515343763418080977422011320734154183721997319954560583683593959785290443246997451332785835470044830246806593082775808042514829179179416969287887056756979927701070723240603680102429091228388354490046599829722919878904604978062158091122897484240944801810285383958109923519669590622432736281091393479437904379021465451672623632551984972378487541329867385794474175775225109530195115687651497133763629929754880745770060974349149980408758063753795390786469410783681669470043053693751849541972159387168056734178108000564345762646220802933856478067366749276432857421266896229037119749051022017202010063331084754218033045481371285692230671921711048529250038755566516548407330963721616435114913133511620879322185809627450791288491026892330745737439648033224704676767299596114955030383100362202270102669317591252637409963724286801023266904705359055323057036315067791061185434360711097926469444832006195964464114993889061518923626279512909160285758291246851502479912009592007202185681533358605959322831975787762782038848058731154423990730900841008463811880095260408481971045086757710309459189019511629335646056833974900241967458125771442855902629428335014815342824563743414383115369190940160785960798718656490314354491452132418077768202901257677938516646791561190315486258080899765679771294673867464905168578432344196315356056704535359652812502583293768092595496184447358285114236969783530599598484451164980072005051970947530121769597692968011298169770892390358843816022669768315090157037626257302690373792785811617857347824935687846257911213526101328521984806799248861448217570105196853908267560973774599794419449495550999156176324740313759673584909038023587133726481257971353242802162997256105892549003691286281438695258316785783359354251728097174960144453703518364348697772429026459878134515382686435553903558984174942215681276233331747944448771625162419853157356535551605630756572286730975935632403938034782339516713257073418585880786773608720165028445113754386982783356990985637612299846222343648391193226172915755001994034006033082403198611707936284562455086224862639925538149505846733332756167363907572767190896394422448103092069599329468268916990450691706324345864485225773113745784892329447342940789531860517108697163591078397169439415888742381197978152504147598462323711988988347688491141358351756775183303514105828832755536143696530442776757250875084447315490072674673856022528638820203170199400814697149959252085755421690053456359249890813576805157761686591174375977334897975137564103268554085326574821427907902790109387367925695772608582523690161567773095158240009021357411334218568112429203630094486337262802304862836635949286384068522661590680620973411216453038773009050761604849184257435147548199068173387173221544714044406841510199368324115502172450699630815656258610659477215450499769514238275635726186612536520226051861185811375140587190440590986973075618627154722932218576692336588896216318772314250558196683797774032188174464212175403497643240848199680646584329225227570400884833183072505954895153877317659239398509881109421571105423448674357850749870941524249571205365322839488364279222962321948998790881278540303357009143390200288751507213673873494997712150061276947524113458122298958920865797531452652059206509407972042917684104345841851443712961454076229098411517399778333492027890574375949137519252961190455032998890791644551510242400483577326097674112665206640378944682352009713847202209786181543825786052309053635151049570568948282419645284637572372123915057562446537444613968603606951874947862144066268798007797744304701191461096746595961590249033476026326695840501921362884105849687862961262127369441521626893188876618492968763167132085446265389783348233445370266823680095359028341066950035392627170173085338570528804454755528386351073167164026220090502363466390964084403118046231327894728509050276193444433452410343656008555222803322259825932298261947396909594870042016905334228242457095841607789701651339575937595440401023887144271057621292886505572116666435728454208681541727400867364859453883809684307340684785124268453970041082348617835026429186318532902984093177891541955072221687917976148610382331850837560701256720768009537055913907142559345624318238155659967968023027531502221781365796898385374545713443738119606444116913432104034851183147120871424099908591753400707646325502851918561893610596276206238163193752666767449644934172953785007365413642367684115612772083293961923671452748888315192379941556637167255224810276616342174699401793656992493764033571591297015240290501084451389803264721489580639138985569938811759793528901249395680760238723251871326454600895733294768367675381871562039543108508601647933969506526097579262324980961041951631223081683099595071645327749496055000065546947435601566682162461757998954927270610958140159093422603726198997198571084900791290958309268755979848745869254434006439212201205639820474474389468695839343962760917067179869388390998035321748532980109025083775685887103018815001128438452869173270002434899453504209866058512631400544789664077695283164021033338337436069466550075997441328158131050114590544845207452649998807722418786792643887628093142455164242758921677509662337441792679731007558853124945359769668803708508453271687123566269461551161397197215348339994526827370397152884557449265914684803153694971692901994390035722986964106039062098583249089383814403121150945225938584902707082504867449639973468738822346656860954975240156679002695605042262775668200797814139435596480969779582200914208178551245640711229544392956963821073130025951676016183945555618210886492374741637289062326955134825607166297978053462961544279637629606123791909653543432244815176405603530847729710702915833180080494777788286376777159371891575748220669877397756978946375183066485135015138935897362127794727953238783868324040822611897583827630642581868030689373746981800926531299627321917376804047911202186356053820210926291991300678480077441397180522718887536698712551218347477811225021659476588402732313235291987683802647244321313882221851931410364398041392089329972937416128094461900039215116007434189950998631125175381036311172962598619556165438297308533923621469514914015449893294956590448314298607297663194166145979939675631308313411264604335457852969847864799855654315398672470684923018744953717441849483616925361914176774952010559802787734146799744474625080510255899897585125674733596004551431410242232712492565055634519588769841014827155413590920508259744293450805682068443771238469326562490891000932680264787921941117787381827648471628967805773956398936801761310416522355121091926131169974565501937888089830610792185908651867935440365784390900169944136633833788017097607640425258747428318789215813298469799372456716133742591216622219212912480048545403167480540071103678459186479208291190172989455357288804633724275316996032373509921258735047486091594487899920079865669670505008821227734556884330116935839996029506823271657368228205676538857269175303726998213668332704095820424453643188977665439958065246162954688165645713467194323182923942979768757076922722785467075413417410519243574497284387952544903053827259069616627745804827195671233482370692780716991911761443348881531943723477959577664287496849898139350726878661559180207342659174540240871718700891554021925672345306624539523645320585981814732143885406963378462373084426781499648544447013478627133101163222214821758181376761464950793887307869019590532085649125404668923366913154006631783077162215899928734914197321627465860864086179403092363814245552200757506766592565498580581407517127703882695977173756916113359717744760603148823735590740673484883262632145420418225071876623887925746530153884726309889480527251686373543545105133332649743787533065983086338568172245082449626238242077762172868468820916847861228510731065534868259700357027154465214651997094896979566686050602312502166068491753948705973059675155861009542612360328649965035006926941549208073727542669628054714332341225326206891476043857194684596864034040220886067594867350710845081170362588088864695982554684366574072427165885688948588808547985930928133513297013732406624330033193965532078200220089049342850743762679896455130007137175919131534655290404856579475894917212021385931630084750881471855709661110392465470269009263362934560717819679781630682455189302620132253269626643656320300009952674041726540375723791958305215332780192928901459141116642122169247513825411435343640402730189536687462329956660961652257303422541159992442574982399483344983342245849735720208409404186696528742511056851083670930480453450065194106071063618808959745754425830911623567648852761009339555492214983568445189606182924727322403796702716654192609065353778674858367359818854942259375918980710023101718917509982048050377393702305738481290462822433388057527571200274803943010785999089841645444161258118231149358948273282128189642272332219755110226013829820915960857398886111669323712543393776951890020264825883552098067636973981345882879818967399848859658998642979151579874262483790658621713907688842830883800864266928396551356697727843373805225515276052697038980746173155870895303187093007814684306224217942481591542645572519500277952715097241882485967820161874328032335129917222538790885496062597616605941200603966117652763556296527254924876773178208952828328904928134372564471319433213090059103445852176866078843623014750419104327052817486058943445458237373773821913712947954644252476233794414359130634995575536395467715180499806957126022281449989286257913196256779466466635974791622419324732692325295277748004210861225226959637776389624597031881750423005722536971217620890046345810891268805048746329562203743298621569298152715689690379622302459543263330219347457581836411970690271496978079938558825828428707530736820097060277188818826507017839817710627575873101865106896757417509959093481209342816846382848245865640688096089103096013773517771123277619973818861714521635757410516171402741981897791100453144854946097410001287317850975909593658400841388155275362534398572690189787755365986422374732720562742743438684305590623194360550160984591280624367706384231331565406834132597344085075999279604844979975880467246968822304778330602105758657502582260132021636629727400910461425173403208872021160006064160590896814855997700638066608749167454494656829616661280019755554275600471391482721894949705455218891559015830244936828641140705802255291980936103311308879620433859887595604780239514436294315203901054850453693173529737645046575312461152302838165709321876839148849390368607732398589678921494290730755301994457389752411100245189307488203637540911893118611012629624729859977232670773931414715503090625499349293858345276228772983115634823911521670538400672416306768387451945040593207340730143069549677477257146830845219309772804717276297650846811114978054253588232714430241267584504150027046781068651861956797914518260490825317781918952880860076491061235403797549888945441114881888367876818554062344332365212732466464335092699150645759144279866971203962243956549894945194593212911951819941538864459481225675462942677800422142564910957498188717765773824651886547986729074635964845151144385818238269946089145902310997926778168162422213761239302069999938979457255640039600751249148868871042534117128880736032703825447105638652831207833430171280683295633732183559500042641017099767444226104345512763024129742356738525878006042092727130995576557104329021261867100554745300366267410118312435984920980599701228713460610892287060933473380739058747082833437332169490103356344246668822770541538068954859334717229334138649706350061345823174995625911928475323949620477073221919523057848697503616773563068482123403524154399618445439544943488398379897105860788841148517155214963291538087469247088061367608328487743832365022711153170132821833940149425006435202246864396735197940748825170315921040256152209025229119209533102517261244870947482675984581116630173503859431712244210502637387411855581462346742308708438247447982910132857111683105160924445933214151696097684303145281368585108391481409752884630576568946495320793709513486337760353640099255609488042408414493295770240040282834060344865243610828160378659890295192231868988358051609978003930376325404187630798343234276028741571970023307379169686652762733912103034636966548565724477210001557364910519919301886588022091143365959237331952381002722180356531927309405662278931776455765146097911231396842407214856873749263017715333588170261729458596994247012777343095262581602621680749616349855347596241808985158811080850438278475118775633640227484258808511958836015069705150230724855474933255483444454439078573627025025608876711986017621975774790800592231554954260415203615266652946414223408218051014034467421162196202484583790120630791880690117918523992045856783034637636352229997736364121090380523681664284019270598208600850376719815695187956171801572032971092662967328058201955391666795022625972220774823871901102549268338500224081408358678880071653606949447778529448952748980285405716387559492478193226929317861516660393894945778427984897780932410950583658380073584916852300409044077361726779364668719764636195452178060099452107535345255771050827809131495678107731821664629187871866536346429601041713688610754388464239004417351850433767881277993457386822317057419227545349352676007277229025235381081671753854924475046291599168912898169332583424882575017260234886050076200585815618011846898309611887456392982545591605577448253832857445181956126549975172515512272198997190663576242448297562018337000667299339462160943417626851069963022597254135050758125397475512258849675136726733918611528858555415065372518434728986433216780033851689916739901473010014074412945778878084486502001455894692551441602669665953100330111224973987255244972639132542823756844421530269936125109306844915117440226130142512577858655248919557906581936412623045724388920849253233824421891319980020140037974996931560310546871337844070939938206618412956126259923948199260672290233319229606240323269966797811732276359418291177087675167813679602756929745472600792678662070392268175630240835401879230181836102646944021849971391631019368524227097055742214083478537799176126704830894334014909681429610306235598849426264274434101163339500653008526321624675878115112491804254469859695782604580078828200125108892819369819939049182794575853892023052476906455789532240145256215932720809462252613793087772512963895352463795099445422772588785749699688357029790388049474946791612361441222541970505166201648234327437695203956036046693625487372541293658972566140075746029958684251502376312175829862680578340885986617550620410039353824725890690476211933400242189618708656645956513786259702679187683308354823715794070213526677491551931790104558217527755578088843269170396030207643841732430829532050305351552611930817772496298050433439167583254600389283811031275707899650462095759545908066594229007097659992335968920168945078154552138912485515541561346039728564900492487062345596387824634372244570798406896809166906937372733082528083979907541495083416446449051783147776284556228673099544724727052391493377002962829548280754859536636312357449373652024237839750912127373351205901106056285834103516259108211604341945472128409248858766531528899448571726437285455147268547025792852146658429533812809474391869159419770287311885100446966956690301929829261079384340758535167410858925314028721929402895556977421050505619921558189162925882838204224550668311613072574882098610786074965526795650216605214919004347450978715038660896475160201989531145486709245535200108940869764617027958645723052125479272733977503720173759505059287798844007688008210027774393769665657414100638551147777226363890638018132450646570979150578076265642613862920563593275109749426034015668951567678355546597599547087422567781471119328809570839046143611368687187321280704816272063412779358407592152320062170709241278523669401182339819443919025903655519603264957828592970687353139344091896271480476003403068778963481191785870206911562625377539192019056771793139007077174563125726836843840108732645041381695288270121933815710638774530230619769904882844943858488670993374705447048283052991382641100147090968384468313384189749230128198651240667798227101799607554553691085231513313244303490940924853430862975029799651542267626877724467853034511239535346329096389841459453864765026883067524770636455695078637173147268853191480729586068558714897342540298189542519852985099289364013205710488443383845471023462052179142955228781457736099368325436738739296835265840723152786329870804236797509961211826624235490718010687688058241336440082595038788585470800532623083217591168637373218371314652472441818271560914810413087563405340151867289620807148316654413232124504273767698579053331751585291288997013412648988415407800640653009553770798394683863125219670873295782163132161924889181767919003054005002124704808522136692693615419956142783041347366294932905145083355453938569908781773298168877513143292070818369755424579209893621183533001787652806724525784348923387661108217272520775890836251980143869564942231709454758552026236133214746901471257879008339899036655536549215535320927527513833665159153255147602881840839848638101026619904354348851922256268221625598413884945840846131524463233178420750476475206811454392426638374762913873063611653945537760402287331812679200256990353012833926921158967243403224859543182796437091334631310991778427054344397188754979773877337779011348744700412958581785155160900164085726861723329787607112810795601188141731024240198815776123682240414650477261939737121359460765877660799189468922886827155250662548063183600278847216877799582822877410717786645179991715451495835037189050822534031413097001356556445570848105611103957708864350341418532808181744505886911981845496998661586290685100102076159519736199934812789714191415351276296502836689498951547563946175101265712918827585007563736393584199600730582735322026993866942734308237061428333867576428672330748445666011087541409952137452713614438696393941082429200647116139661812226954722070331320858853633900861169617510135825359175678373951990550583044337362673558866420628025680150086319677403273832383743404110816526534659215670716939647560258096050496221307172379887607478764606827744679398947527517519061432330960079776091051373374114298908760139850384815748282929570372753101234616020532525822834227416477274621937468974169957741839820142066371470074604111584249950368777666301731246374869950931704037475077382799157794405047184494651703711613282192191778163372592488186196974376512553657340311806304819711932380421039069523232213382213613370696371164527331842127257961674657985327749949111962664309777032155902534739728650881206357049440469700274537134752173148867992404851143357622755942227582920240815819469623582476213690960930384061835155881041786141146894510358315677061902953611304023397857946247270350297252994812992329724098680142028819021721740192942109618179915515224272454007106741794952698213887837228551838246973664173016671233975635853936208506707474617624251908138606154036123327986564147158049823131271704189801244163159879721520534779419646783135791285062099181252509819372596094894376676345930896882096894261667165501750938554456717993422683251610855881858187226358982109926451119754861824935834262303111150197030261887538117722146783950576024711813302216040893317695185550334117872561046078487366252754677905487456355462121876962705710584740847295234816841411114003055284740639345494916685427549687239547966449918929487324142046340273265632012585722534931435272343080517593468185692309645900268524294451436892151536232248103433857643446591912269206681015931800885881607464812863753246348353958578497951556964188674145192194088533046315592589918985019609403583421392579638683438861604489712984674195013822589053472347465958411547497262595096199015388810066057887685685350283511204637179190303904524328344366784355573218207439792329763873345050814975799643805525024367499762580399494689397306634496819337554880390917962423208680109266008400086644271234944870194141759328736193127299881637704279156038984805673610694199673028314780716798907261579766812664317576673565734694777028587425805062824168333003452838058922119148473658741822445039451921618039400075752504762439213115629925195806333574867917817764604888634608329699002626215126021688212469513584143894195961819714822850058079109235926514686946756853774648472469884624279639081407334246192765373831292309014561842238742555238005403063703836601479542489328122974999416918347936260672706187254524334855433391637296747061088059688438021909032596766849436149412302003873242702685907943752610434112829755700692760462119904741967204207385955414949704493428451976467155358616534962211209996145269161261528207317526967914476499488808848374950703946547838211923915622706655071273922051246683489091176329708781467072399279933707710187991407403842455421650303556866569215078832651509963501033571538892112851013400576188833981586864299908083422800004996439956588666383973014022217792218567016438319888787915778641273658063212193969434819324953977348443804966131047491340353938741793622062281294629656830091048569380342755803606784710465555791956470306024115780227151358930499446740722573694814821603347723002582291216076877721321893216054274922884346271809794352573410927950608918847268504527051257231761862525982815620580451799424240386636535224380872702763434259973862880118737877570831672165830001219713070978222171083754015877741306914557185278885970454383149871167249876656499787197398060859989299983737620221086311797042429158082682862659388116719711341924824871897603405977812164586603811932686806135318818074656620743943633603717153572490517390202431842119537678315725917129432911218082269225735144047119925099427307043449363577291763128919295568811691281012613224495022926777422535321490017663718064597387607629579755434473693440298067167825841239574814248180748217889302808879523606378909028011721709415359398836537297640542815064806405215559019783283819815610058437573637833436208721302927824352592297524004523858012662286850313102527119002993296767734688550825908985447495184431938757126786799954884425984239729878012436884390152133435594458360916875308292341198015361446187237474583163287729890520129999092303716899256019702926636027745661775575309057245461350266188704189209017431072434792374967249809443226387976434567764877722701417452676863627463459087915033833511264530866019704857249412032091287623037876476276237147007619462731847265718538593719736777662065760682175654973832998411993269205758966015985797690396955559749539292867239789905071403423426159054723771254853443483631025744945731579359797125438744815212199265293262210867890812085091393173007039471129095027287575286871601217168051427054722405318524547452256690293354501546079001800279200131922439856033635303019268769301285788680537078879277608595314922095571279896818304822855496548014710040790549560079601647865271093513571545827485912979277159887153153583081144429902856721741371807990474463155920131019640297707673986410058186321499309209551254585006222073317811724598469987064760640579642530836633210449931324277522701697012704922899006574019908801244786613791960983567176529864433241914672415734734207732763467813875685466000279604441825759234127580365623666316589772196230441417114629630976040727874659844550266943055418732220689757422171411061145208673548111085554039963821697729256815828263174306409503625272871240462634026125332285752116020991311531679385745921703109471785145850904816124383056031871539640606537761290744957780230781914206301768242019481936155202268027825907939557580618985832819953498504233399601841470712192524292235238843626697769953916794236866185269910017158757983614484868377007631938585473184030196481868048814347677085096814873706240524977584151843128606779115428789533692121447063018757778603199949589258592958710478450806705412663807869617884991069625022763673228208586619798355975396135166073890079374843856814284838060117155192004802913570587475453924737730083551177194332384348171719948523404369340500552866805535411914435475176339855510345566817372153768575903038507225153728039321713014460040040297986779578646891708784729985703725617684690664750014394278039000242718522606425706872609891971872878986359383270069292326811811740279598788312411040152477922179046387788367044758258009778073410754069485093732180786936988227441923676751297118175145719124806237308316597183600077828297278364951884667329704783452003658333872928322733553744405216750598432610296092912182431651682236712951681984786115538200683223915834505796891094794619184453706967929097168354731331350342549338278648845475240819372451727135269706821824482181310101883559478640302626896222207088661025255351992862406307440533950561470137419838417377139025556870319617133213706666878167813136547694780127853384385324834836884386096860330073922287295617951289615885723846690750375498082618667612592229800145255184468552874565346590341331416320121729701019656909598286184592536205986214480292372513682542755670201725155613526611513384281394687319937128072605533740122408472149206884424132793460038293123794639021621252100390675432246620955063881292717526636912047181376216352086497118196986033030480695904968735659086859495158892277405931426715843245792094425289284004931110493116412572866487053033684781841564507626953221323323699534285002057393258248228784039490915468531153071791313794806081912296074138336812019577880207462597632653501072284512292982801355439313207331168321858375770272196986616471590981856406403799292368979586941551407720940182490100102088910102513683223434231864913603772833496413814613389313668321827364784742385978967885805434806183760216027903680196780885647831752812328085563545556173885795461702338165798432221451499128309507922177023899330401454908075498652553012364909988569307482588774342887773943852976853044703822315861898493106293885399491574968743525458881313306880296502866516787601328623626289027545103718650629779255082444161270688371569604424760074909633382569725301458252165045635305035888428694318603483504284951227212792614729829258456146083161396245725401789588937331239243220159930614188885007092282862380807138143905105415856647440558525926826409290118615505791192280461804455135555397439172683133374478986255553928682388188386045647766609836423375124526249153376377711673617844650014170186746989439760604228760470098885859367994228853657312901218265873085290738898374424389638766284289274254171079313026662729164463693480523546094870982837447530258198772355633876268763154455519118974857048628944748593874133109277199012688825003595803756125245146238600609932173691467997615125360444703723812268984188510022724078038373679336843747447432220451081409147985127677772186296654412367084708869416849402357277250535364957598839778790937839652455647451343933303756099310288276470611224979319570371721605563784467326852452706502544815708519843929862008626382652966909046407491733218216828829356702340706915139812282859775261388519278921964126554297661953862409006904400546516833018180462900920479619441954971459684044893276326040475304458337290795472549446285299701980161280062900440642031008022986056507575704362736071288320380348938501737108724147630450777797459035460354744383750055912542674073474088928922683196245795521159084081443680438606558680740847380966716272489668530775068806650443942549057761860729996547885612919108799257232609928616672381265782768307036298457950972936039193902903078923559461820502374006582032336778589941512219087060761346661050786565734796301073297144385960256371226055049532997818463150103501026967890474703830075675981778346897258630060643883925060025947376934219031233965037295360477676462840795583155844900073689758462331329584523523127486448358558866644223493677487692861146414200054504044894882713946813386253375147308654427488832086731275501603376936129098409910213817448825759491808399879671653384823169756037314622065158465230777673352920286131751402974174111159953200197157946673459703490797770828231907475094922183309636544612419416335268634292552839891091181377723093764745182401898612706304789825304338846706781825269863524776588963310017844526803972411190760305171291764376807909493592547255759018810443766638258495951840183594391355473423279938524182407809152537450985255141028398674097137039553313243395191188239833692060606004558994183606379579277151725800842247181475380915631708255680432171144467404248485305964740143250354226048683187133714410457433528505732103378597688684327279978089291402655847472568771941303469146853278102762761887126645125026281560204053106843262639923219737692740786778708461596370003473303218580755288607929587077912100289310096772951837794151535286056135597132014444983922242608769447060729011165434281658653142174131982666338670370382721547641867048596379293603599034941446122266765089417471070288072127478296646578254910550986990018772397495011719744383084355611244823904443384069778697976224778208867037846327784838803189059625905077509527020035432546762409699903629839868722892612016615930418531293692482772543015939349145669762425485136666625808873471866868992328127393413832538317512510183163935698111419781749206195214071418865810658827494482511985658144573518195187403988954134513794005920144114408764025910011742141514204048727451195260684435038861022181264345319179047429937285648286547948426379168625773695718719394294499628242382878881195979314766724066082815615669269471782876344936807602592405033979831539312664580271597767476378869365162539360317758995245767341148948723931962678959531689433208492689833740773025751486862712919274976016768536635412014114602049259966076142716031891944950602539133998609463492937755788435365384469451983736256930983093755303183726632676551380582109862417817536092908229107513024011275748999307114238803046222936514239775208464794434673997484633888248295646915980868533156214757140733296926006848575205486384364035629107213802611661487906015839353280232502731483573934640106849488975143600805058026097228562304156344452351952018216362525189042468597183778933523105019013103572546242770881953175213632689381563987856030084226146992638988096929229314559239376019410878597363376210355606409295303059292475297402749305407657598731810807793269825744243619929998867880257222576292481465341220344986528439100600433106878157133031206089919085563027654650016576864071633787188258921083249592767265057480784336745386184080966797142529323226815038584600172124418402987938130991149620865769923836088029651162314033257957127671132131417865192315282712842928344686906376496153682702190994570198488334773837773919669963097924390059820171882879732633647669178340068028957844856078777766545107673079689085438145086783305248731394956257182034177350839350019767274855829671387229724734550802905922221753099335367807321307317706841164283199610874623615379991701945720701746023147150436698170269871352891159647508461247439707023353701823592982461916275415802354445971005834109071537207509958847431371504587957311927401989366120676184050042981189260256536193967154579528434178678667281013960730740200808743614698897454068817084120686153541538277428029758774847599745378511547796718502002074638376878964850544301587557154752199931323398375000335241544551620062501870155180661278621737535960424208811748408576212810407804861894978854261176228796942959638820506538433492367947445563524516443220628021917619565126773346469722807754745573669124427601310772544889325817008275777587913902138053182466400977634089463102482657186500746814938183397847444439886660374610057696482186665391333753781946321152510933138404472000469378519152160841324063262250831069365257248234538380376069994968886701714096771083817232770737010958265935821403396626390830189413171422371389257058966443726543398935848027790810849897842000147592258728576373863650235690799647093764234495603758771230749735933095154681955984295728706947044023354050635120928649224758314558268459304413694186089155842976154436836128539923084195552554920666220449536289247852926755872261883635554652850663241650667243362085374391377868506570254122724418883680015735918932312999026803929180761776503500257258832544912456140809823988024452987622150463017298994186912333284401198173340192908915241998446472089326828024118870303657148702774007292211193399309235437855873719613401717179709057060773472089169388386151026487643173951274752333845226295956861527278001700488270425167533363620560127634968481661181011068673398175704133438737023186625070276634748327303267863610794513723171884107861563935546866641723659717372411212192150984544310810154774670123441506046665914802685961332748463410113483199802018298153358737485808784010855564639704023057028899965488927534212350569118422470940671051397666321346678744425685838823061303454845638782282017053523330973871147402761879630565456731473004868490594358166783992986032777315635856785643474846505574008612821810398656632306420473234430489450035608378151042930978401295149769419657640275127869776682430594164030739620305948042582032008055491212492826221009561688486050964318610990173739631623919905431865431108066494750586316649015727883578747154702262475967715787647096372578212902183198997431857338811304641772808235215227482203949952530881041628263894387659922711189173247721564527252121386547321938946691027895405174884681524857895166313212654683722875107469770885806732869072366265483489589280955941541747165537705909945201214568485372047629485814714541699284488135255638731048193373635997612268091686031446769223694671786486280269015258298648598130696093573542665099910401546774274352709236200959656566561832047443949981675554904386798735338897845782449190362884731877431755601810155319980664319554287544130476302215842786623762866002971369805011268023773030787336688003862737148611445047941949392407423974197646398223360397613648587615457262626948102956836311181062268262977096967272829272789126034925392564302113497882696646928234196329236693772308473617825108269966683579014282376549786892739679936025823862858831668465131519041069965763912703964517047416525870838850975573138394200651820965880797025499807460096048032514805691287437082352322898448765784255021116569623244041180950531571331044784019910390138187529045800617464271103107728497802998191861515894964049893471519357302873677000815424730510364151963456543822123176883232173017329631760512372441390289798728616506341916126268754740716937169445749501882392563231453949912220203420605234057197151967033754598693984297343861845886246555792776194710741145779844436926707530815405217159712794843430935962837829134290561970823963391009100611706401659054569105056469520414123336958496811809583535678352930841469110925836197747841043013628783860143808163974418568859178066928169936218046149503530405372055658907237674620880971476383832930949842836642748494387882074213178593738209842752069736012119062974558228787196164498149767011275051310993774259590190654648713033488967153376010443304905781252089778368245493154487407694521504795806231239340783791387041961148394879084086610186589842666134796042464697388202388973809761871041380678830626634290914098979923811040574263683679972320841860375134263667224423439702998141910656507354909695709768176634383954634580885617296743611817318630284003439697655222303912954756116892174302739976497655239106275699552677979873581918042350854964370679746424963353215415392518902510093498062217631845568546792514056528459069426231518566639991306613493032107704113659040914373783308982920076985885595523972791531305755554106436839955309434082147641238607892384938062361533438985215154328781957999965978069941885644465695671928176486415924857369073141561651933104392055585822594456263424093282315371971405706718554611105936985182505286332214748333284212023304241101101479361111469964705014616837638012874431514838010808298198885152945853298283543228737446353913078529382307747956907973890314837828941378114958040588717453375776865916217790306025028555754528761960677287801730661040107200307745961700251953961834353805450635557617105940441369724494347133899772590627040116851326723839797275339028801805971550808648235903982362765684710630146962808394672024679032618984243773208139761871487315251192434025417058047046433095591174178152355717304075920291689982434394654745729905931421488414236650039493270782361524828571324113089504172055214049851306530101638348778274787916738498943338026305606493370550759010461333666186892771770776065934341455480932252459172212819044207730164016990283517845696679220218970239686704334533355475612695143776453579294965055413530716917811673969150892051683033285820514180590835066037049490483365799450943251752473385162854444935949182439979426217978223257117759672867756045082182542005080353864186333453883957676638099458592528451149373107882661730092434379069322516084822398327622587561848616903305675407266886708415839495923536313729864490948263045743212252956478369703048076552139148881919244483572996484318681231526524345905411436157053692129982612842097840794696770642619828256767277346210671572406857823601759106250008084205592946487733217178612662679052496451391711388284050319261339410787926209704009608894889772439430898006651316892110599966473116904340662647691824426157053105127442588836597420793255541804437558757913296241282446480566438419380478520477259182596449227561680990296234001626758414993296366962027685062132199987897762270824997876681603212957341713821102042963457760833111690481222942720210572962787336740760179608649602819559844839503686684679914885545005804738935732263487084558931963454857722239596591031902613884099214334588020248435340362106539951827847068331273220503609271627734761350821136557875216764355502741497395149573876956033322122839710087264068567084882247781160832975505416675911312937947467875325634477675286838797130687486058402073542959439725924923480630764370758495551685682308463048758505340543969436550104175587732162659906706303040632513028877261029766469216793217386305355596445660438197239535354452633034968202227687502958876073794604488807050159231121604215643901459453761116477932897700018492429281604161703868488189768486876968657080284502129044821866792946919967013631420342980358982568709700169908029659418370355398025256860606453104998170389681128965538795367389736998477298872938199824278830813438026685634445091759647426506804800562162820802188274939144370413794440095085401335288154484856418575493317106863575899905320943046980828993163522276193896463615731608869863093366224529100602681198447168978463138742496906969862318113815313637106727226168627276494138323634619775560418373787860081907974763658025883039051131498416901139881537043853164444943238657612814151970534929005514368298618857544106769325343459426890426289480191379217613225571962285133991186259131985212166517209132898690686465502336369036521135873835257393641317991134202066708078299577442022318346414612653715205236522555666143830439041898989134271073918129184545381025688018970768379398076918243491193609076137152883135549826528238189817152045223533354375248643184318190239049635365847404324418205691448948407994067622914039301697462888437130343251555387874301395138468060838098030404235159330663074261309494480107718712394169730786991829173352426376045495567114353016843057359018984855466533796828725660226950143168775974536713058107774105107837169458708077610250594646397119968036945655554357723859811409514809894050677338935312615476963777944581770027941217524517177154975953436396389618390817458585679423172514428567022355036679100989134601594293478927368081022257197854328836334700215603019224949070514306030850357326372085401302982651081017860470603656222111005400709471494831986399061555603341569498806901305651137752465918185789258184213190490379343341137675249709804320320582057008150471369493939480916672860606063807266942781550651161659505687150542149451564685634219550498695166454689868260899842669269275885823888701993089431710867619046544712147674239520131050013311243258303641550334367480010855073136710816698595582274429102734027449389410336906483909143185580302612111641402443318546982709973767364770096175269667141346890850430169313761627659666104478595909068955007812919171872690021739359616122986527459444729785602037367935293087680830916543247600738501919268615903297176949513722332846253478810407617673421083975479786905233162291138083285593257690105973216954255891636749433882158672272560462471750629403442769419316631186283414725271353150035741321806695797581167449914902427502048958870437750806285383673108936442781823618724490345107221176486266840290472220549784938944779763728883394777468402531409944608856843408949673638666718540212630241212731721687345192271589555372878060216047216055077750775852034427374510424480927696982763520657772833512346908006321263529247971425143666426287732564765840558598902534329207006770938085332147901265837161438271079925155674042982889892908182867621674113199455816189808689095778283325307569609850052170796936149447175510586645860647088183180008815970625912847192895285613696119694885284559756125502419046568903153855878295615262161751010363036480798730255543827198402980627528778540844299734279576894855829700082396660015779953210252634499581024754288610648470166551699061931336765335630263479898949378914518791314804695591819161019952527519750108878832140231930041657509935236113253681396769322581692528257776985551661963918558786387885841743224540316365431694309965696353333429044151927641912933733644194293256033735984283949600471991984825545112859565371380859511171425109025406630983447946047098613769579234957608119637606970290435396710209330129065343252184970224774225758734900207194018722326958695015138003704616453748211234231818194158964389027757278833570874125262079004584484835277356008351587057113663629070857067003603207913661036238111140143847437811062322511242890823555494095652313979671523745868787127129180561115889190767307467114744127075046290446215438432398543489870848603886667104553115226632328847691636217939299846495602201404498508515617355295676095643114948285717407628052289288026387789172956607690272534947062601642231759534706620303307775492985390157811961225159508199461279869161223060582564873666676502954601778051225870511482141012763549585912000169596620407589813726285345254511634575470935781624804671152398726957992881587241013451882448770197649830532863112193938555539388530885326604109426954151141910583751454839845550604901634584478707139096329694167474848018824557004443018825907158183884254145338871625889473297556737324553769410059186456587998454323000063208971518067032643847941069777501668046549491889363945402897842176185991432616432314198643732957848778432686596648391846696805876953509021468105469714358283633653332641333156191613747103807789632361732612939594937307711785139025309750766695504441543251208244465940943496429113886195148203649488159110143990850810984881519016724270120689625155069665013436725012363126870859746018711087575829663946445899260878600549287390103055109198262550957394258956233550672999918914032493966383771481382667554242972711624050298363920994973907841163867021628096047531129811570032950065341282985875246671173336785597985802438456701196208937728259603017835007054790945482512381894099983897003677421636418759312673381086387756651524656845116020467873870767792944964447252744219856605077612445406288197130940888635727657123499078748408549494400609250480118401002567864161149954317280295636346892036629467662718604804291458065250159372456422022189428435586446107725238557606432965186742519835685095965631175621749216209939449116308188543282412598942572947368039413879879547426065434318023577579723619626821195802593500358168781506499172177927117903350362463238714687271488217875120833076097659334672191313054836257132701001770294923361980461644603812334521609487053538118726569977009956764862853391299980908941521139848764066395174814554723981423064577860450872335639366094837128999699322621401902690462154247692838716718495659898276346842903143961915057237273430956400663463396787390330702483152769050134730202746023593032632188811328446119981935142616233863950657448981419815684007938432874066331880209906582926368752431567218340609502372823050541922712057208994028035505091574040994948971793387275256294756685411033818617601240387527702649977220995117749480869406296652954402573789289200128130557134113386711414187509889703881122390654102648346797198198715870572595054235916429516332404080099806061032787980299573052606863423394531221577881693728354214270123821927824369893632118793632947456802199411159386623187282763140696475272592893286775702541289234935760913763318815517348277360682112801738489375773448412837077933606264306205817354035566433275466159893750306127843110324698057649029301338795394112982457135279027038284776765308508697710049730936991964641482992044416680566622551282772251988890572612949804222541270363934069850356235206334973308542585338114440084616912671074744416616473653178753952430099663780864157870685271177855214607153162517159867231109348876909564037716612642704711733408654179546808600592924747175334528379884535417015125353864427133037953916923547561188067725955912264656865757249187717268883325741555463412298506091180630151931460823793381495770516209750564001987311709408691431643707898271153886512605333171678889561939349825447960165692379481636636615355986265158591881177250850129353489812084621029499824214310184362060413214180958788002894819726023657064776925916340631535589501562652808211157071918620809112237461386271420044870733224673721868440876311518965563945958529931372152727662171233326740936752200731514947296085646278678291867551011217853181817351480414091563851621138070532425891012183766550450662813997596576862348384162222504510008841982348349931723559814793536265817353988013992847134301336899263396311763592194973011599932723965621871088105609988074875723706037553088531997319158382191730138458835585618551221232485261293980140798854309589736981966085903693650834086803432915807430265071890409355315073130321779304641054150110344045086511789321207527811156723278764299047893073262637943201564856127611799288637606933789974853982361796376829760456337257253860690552177363248867287096276050489984312972792290565936460034587801133336916939294525933692136040280036952842701370455564736587453646600884222316717422824377910732137679958460623187516799236723095869241343399406606356803403540131577324071828015365207542320685767964784510515147439833333819482529271724484164267227956023584222023239836137617968667135688861388386124291075571740146366743151986914542301411327217857368952519252471729447014008250976606240366889465357303682186141326798024033729405379576432593099624633401495049387257996086713100569056652360096769622070083064871762876482041767203870013405577161479603801465218925604919083565063415867325452329898886636866566775153614374366315933263801673566690652545756806874208856067453893229288856056841905542950440721522920910248527655387707437307683974254257229667353787349251329347011440281247916273745526085337668422721594173304091494991291479727296524089292319503129971187840922704897251000603612488472485366306133165861288716063897369754953246028119194011861248991396955250468437775392246794784556523410106073075686378236610749736826820556206570270033173005647329638182373406435507505502012389430480671572682225129774584611012826415786277038363317474811893971716345312279157659030500370230481850164135081959565373666982441205232553575751887631812706033639277439573956090310892443673015152469367672126772573608526384646230974824172451876709534281746187706760987468859854696218249069450467071441905518596935036340045316342044990343418201848796679380820565072078685032691811890586508273752723020091358572975126231759242475441569391216059747567160157754031207032691862085692388538775933961073184014117917737142021413062140839276311622407189825500204188499851059127658917080952682434546069053663280652519389213636801141252402585282759432824250718285707106262113687933713285009451368120501678192475429784282519490680094546276856261935999631233827841548871622345375988069126085460806651313677501342524086747137539107792027540240439893905821391957495809818035121919202650751700098763899995297656346633098436180980391271224161649888678664405513163283202043593859458626649053149759578288603739564522859961812242452779414917728499305196083578518311624201132033563887539785356433575061869966346849527494683000602286798075421810922254873612448060780896823706932866597075127739799532188437985548760401915807845947908180192658863796967266105686866839498395977247899143504381753183108023930952551601599837731953776413791955629138945341870165055458269870282737488321226512227060961079778901337883756636545395929442382824746040595966776931514326905805485623068542418490733700131809505394191820145396491677629077949773872207333215862781518730112272665106092377834981041566279422011359791168234015222108014169271940737301609993198757851107586456622043686295196521670209382396921019412032297986386159826117195875512510589473495808012229168395995757413690591906371666131633486272198078553684875678595499251133739265705084257384129421454631099014171705136783607920928693116090427792545245566322339008936824948587087228378825778118329875969270026309394821531818740803795964653507699362389987956696769874496695622636428520724328795120371593740278981977500240132272966767258002903625392510822441524778757567272442654842729579028836243542822523622250387890285132730030217034223227348056861192164165098728467083797952171833727907542255798576545825098394245060405403541202239061474280899010100386618370626125558794612782114835107391289582846338877428194782170042311528622418175122210326717249060791585592795410151767591046673269812101495149143167736925298191302121609790370883484147198251843895537152125101006213275477876183836575691075002226850061963629062034383899674463599406251459359608815995393232464737517140491885523828507562530050961435987419762525057611329997939701041056520086833938270627347928514468125245480983754896814656645232453270762280893353052581128628199249059281680738884880521302129344219428559770896568472245987995230798055848936387110203146414456890733542236939805384614407959944479674067817055662588393965937982339899183906252894324341741269552470145817075028670269035130535366770851039631163416560939505934931448605976825244930023681420795604284176962142553845895843943737406516186106764134498054154166848455747191902532813429534706371498780687980735306249146627120754394281707115777345246902207728003823520685854412708053214603378638596672911636600612142047161864864204474307829606610768180115429862619424272059272531896137281016132993430090573919476037385822485718326460790022344042853329362864490828297649728597851006433290115707193564337473146926374829904501223584245496585162422722823105476815843164747323426143890724965524158148494452813200931905119671235766818996684022689799361357086354782691156754480680264350527293334992534776208458337765411200455119549660069998985667295091573762894977044023248873906949025764040671714061415535838475643598715355634425009476872906017062296023161034665560982144579764899611676964810149773144130393482293544428073989966364120200033166205602236639023650106633982558169824469486732524779524931771202008686425373527838143141174154057470925531166767052513955690103812683389605899678968704265606853977414559290332977442236903466674853766861130437032160412202380473155558683156787690583062707537905183492629450727084324416966378357824292440993279392663056188138547056388255225336246430210886419122051554492370665084683953372942635484879590000654140856894714656430359707119780444258513040304260608957959910944973986580516775218527657074434787170514386801528492707433680540335130613206425099873697291467887360987580046992811540233548247503436204122645359508026772478860644440967920671677317324856759038766814168455769787989961322016698666907708439847079330542767510653332080072202785715579209302275808348617147858136656068939420392244080369278423966874968262924912736019579577949204561216079265976724906703034341606966995592789844288674823894334208231625914044228709267245235230568746743768054548872730652798732520556136887152801463145527995258072940846266832333156675369753318047855176127861523185044840602087793487923397639134684750560203481512404185393031450930217073740731277537411583711760588980447622864068822838350683364721464289615464466868723208442108233538548523494082631997917766149968999199806362870486083349581778561546517536351010818615736124567187000089789411245466798383263487948197149809153222301128979287587029337887791604490798476548918899805457082683950343476826123240025878835766443680424282912247167766858624387784799331258554837284329614010698910135225511023848126525048988190019259342317807422629482514224036786595302251164606540529463647740716262632644445439954203506584430839796379816821234078312996234890764837487449369827718810908904036594867608727950398355320751268229840776721912599453445803810666814921442213074279972267547838476761351738496827161144569297127119853640206085067686354550835516541851082814732844699561565430986667032346413433764932036902787190151665638307892622680865763535006911768017287975576017947883692178292190534672811948285021817186890319734439952948692665605020078142319985949842297109991889826615301452207671967481468864032553169472460565467107853596668556702797631606351424290839695693056292576420799707823544496848969313432521633240310333331406055394661994356978173379823967396672665434504452534044513190588103179863741819428335127030590666348623615804362363585480477841978842010932692484122743406970787346581713325993354732860415025478567608094655021920796196859430160856247127248322382429637589781146654486602743106262334256763097142130868161023167105442289859205978427517015812593521222173851485050370421259630481521740089870019086660263826392858579535820007379695181413824133657290136947186062533419432872183958369258305125055393949360741032921367254525149040119637753439352356950305987609210946521166511320435455106488742821087740456633353962560545360210511763511435950982783078421242349755587879873429682424783838330330793481226553978204805547480532454595941717612420972899134021206994495011802932064165842160915927289450841345715260180996107991704846519792832072502796352473452346613726001219961412284025397591843138807210157119692144437329092038764363910987008932468065344820202689486139695929413749316727842754267972106686219115041258624627992241941334787384437425542258723436219666245822526374044084992929451003329569646679406857550086810729288437217527395944826681460232218613387288328476714293541030024784641851097990405521814081438604693367307395145923525608766193894686409440165865324117104615606819829490069052341197672420667461918937299551526298320042885159569383302337263369613490203209578483809340772157214669034018781203495567359431354340744968884633592854275069060575559963064433712255211358514450761770716528437741904810846110275746912235970277573362729830212775524838965443449294330830834310916557514201407307790726640990278471082447388629654290902307673269163763819139581608408514606345085378986741213050673594391853995145825626405269901617454599595032191568855900709723270425599598050737046490189726880682685368548559367320142729499469693025571582467776640666167504619355005283601052626979440867512086413638299885396590966017262056695813716131317051035748610002648222252479156133581698292718373673390442494557859346612574484080433325254048586854415668405680856903449327401703205020639225460975409842685706799880537864911287766897876453291025853788889450132156904736690996865998539649776875228137462723679283079419622635550835941951304650734011622065831095299042947782687721712037105923138830492474219368014653509808638523837733142992442874592967625097819298186799138196221232864341622912395337225188100803744592379832283180206201619786942416512559511139980150244861546882003110231772917897695964536121972749426669930587665878524285949838372182638546117243729897494973401875760533972312987376773259391452408066559165244701856556351266136637263713220514104293689652075224035266502862277827726272228027015955070969908489646101312517529600557198938251168433124015902411398202924116835744299249651451394858076204859430389020959781593496462193817470573835669935189370328788775111101364291274380017978772772340363448766917341975768303916031401024617160454262215889166536785937636464267078228926638580412505964377599268741216305717323063150481794775467427910986544527211034276221842954327559702500195339570064259922508057672917592493127376665223058365087272113538787035752539585174044039827286316945987139964963411979208898635579346874838985436455443565076984849687987735897144091538716754441982616892170188101391752494506844067402679159914212001578705146615054012795143629973875897592735908923341983946449900201993973002536333414718823090547076460028324477127746518324086719280860507006980101835355668588028616434689730125006032133573483767864750336882299477094281542924171431395743455708481643202362401182200692474093916170853587170810235013759251197750110191044505866708355934539085559265290280588829807299607462830662520783920434017595987823317341121780833883085914004758038998892293186692003419974026276838422579971014169405276057971227097028296554766884394162192519763017674359092465469505906730104097686906406110302175530922938327014967296969232763780907600431790822489203942892835531417385729063830953952081675938929189193066521759759275118506730764946182901574977693589907598378517040790465717976225223524085131071702127607675048142380638991133692588610832108721702673816679553593215343769193552865903244413366022929660574121311165407292905844956298087473757499835338301952015398127031068557684468595690739716948764872203219766403713810003877990853504065492862952904978455723747334680693502021027998739911602045621650908162995547738143139097934128111027108288134146071232335816693684521273895586559057121963967219094373190487756551738898161806196359161868682540936049151776377641294027913608855583260637007764994732657701078832027854116702942533075781109873049115806521374772571834456255452191772355546806968015718488640922772227483462376442044954404458119340639676653351808088489514270847098522621513072771655217921466196883253046334733684781476484387999578132123204499374030646031333435501286735041818799711516202556370400860382660425684350287919960119065459631135185697279868814380971872585012637626406658655860353260657185163644958855192895788431213760918992779984199466930663283439250391404893035740301563409309382377112441564428338643435108143124271732848225701997642097205978893516967887091246959963983778579580243886559343113752843199302002102762809813117589727465552019584120662680958291737218006327984440995221480310080074081919476220596392190670345870070568756005157846305719673151779931250478827561532965954838679338760609726757598806919479471507593911627598779694860782635315097930062390741301756601200575751485845233652215264788876352594560372318124911053424757034477082783967623714466498141187872614616006209116259372834010467923835095573962125517853714318861963002366325244813326579388946696481035277453474853137955372849377126989124970482005293139467066319512149073041841516545661713087711832490047813453309326100276414323807405186829932893163841300229448595985022965924800421072393848628042472363643495057435558947970572162053975119336310116033562379963835593588776199640675995139945510603830552534972175044696730927412741221834526410651884519296848609870600094897535893932973158469242230298768427959844860766346303490536388243668684704125326666358913239917745799306475490508410383344995054262519772004816580821025408319767121140997214533789451225881203892306071808765870821621324090290418433410400729737248575372609817089625928584552728275243736936651131382600393995005903546266479938214984238735713088332814675301186551585566192617817268289317940218832484009432561131496356893033756198684405092860483916857857701751143816026322969923741681882407144354794517581507915407794986711846386679804078404734680491359936244476942279232388591362500902783224550785570898355787620812354596710487011452203937813574659251983111118937123693752908749525280481353467792696293903053797515072052882466630504108549006921287761680616952950040338333359063132838863456009183412693722437606273885874314025634021372169755463735529390128637701146247716493645710716480071196529267195040760388629608433910650190283643127207194759697063380746413011241065830978602209693358470674330813822123408767839537363158952846107350791555389894793950473666580182671924976659767854859204698964338002652189714351984051581594717023591915408436749422864012288494823900167720409300603912092298306668372412929841998196398388632613404756513359878530415718576210660444244004338269693527165199739171682418363897034390474497701718882270578584421755374534024125155088231123327682377857561363945043206637009932163336225583770268368147805579141092661185625274015397029650884253005625696869530493195125586909873027054157904358161898725540742038421335334170747293345910449592559053952338204722770837776543014506960781851411040315753643784759817063347294086546579476037374144647449900791605881132993060923742009623160136584140821778767259614220738218760755837730461543629509393217017857095341768438916593764245047478433119975576392757874639333111826511735199848907916037459005167885974101160939089225285216635401935855799935321148294190328222967202189674258249591349399970366029501748790227152920797636740126065653981783339514801194651055215430196282808060945823733124253836731249257447527317337026463427880894782983101012541608375042642706711371291468297325245624100926902204801700955354354009943650228682197863756387016974338833918600644289406111429300732124843886252979119029078663011973531276855754529954776007748628609795193879875740882611139977903226341929629688559344371129075760095456460748211199745864368214831015235878565680598165719030968321596466877980611954544309383229390143383456198334309171551348456978130686990265702448570941047479139214730717378610048939475144919667429455841265212261445837539655408233410437497305287701959979028940201322347629155079963040301428665300587559753674372446885167833699121756135882314727625753554943838794261332341551507927591509413519366731990422662922408817479700531913502160365570973170997903902037596400158661871515931718909888975171491455878583387487186664677538442850537805921508386765869417905240290268405244524192396942954817813882963398445446115655456862201623196046078510692231332962660365824508642816449759150112848806542359504571551849848255604340118399723209530746609070370706291961143828663534836806902703151706974162520002494821318175064762491903761584380272059116815075052390009328291924016323931683182940005783595025457274912354839436074418210143875658240664168789388559767366357289023987730482618750028580717161305249835965711951859205350230738762072791914088691943192904819790504192082812013681360855228291347838350251581156952406512772974609189020707446711484095383254791344777259353311297461228220698537960479530817855933875639140307112741493459249035760922183591617894931581601095697955348612118241737514438423034805285895949727192309876141415817995651155075165620277823444621372116511363371789333058514427815377789585030592812693808639613878890991943051508126508656734761496015032998557857592654660886115237274565990589297462805142393329681475780662542428442289932904645001285603740610248865863636160017407343152853531801798809513055723108550733969175995830941194754009962569431492993930781766809275309052965358401289689729191550222115329817398191036631220074311739085718389564302806943089083070016853543012954835488284230487882464109721159082806269042604111266381449164449352056595689267326132714684040949342434632491860198907810460302160022651795710915074010212781479494025687893109830969944702207849514716906186356042112452317138767851581849620350414688342692134951513317099749957177268118118913048020234817741350707452016639922746042283034197140359479340289275824396718551415666839259644803359695214371364719781447363509034972176019053317743119528265176928694560613773493288293730964824285857275304422273386676161236119538676552245133166176623467314791578113920084356281309527311376515905602957918307197504962946503248617673473893568856551166969421512761324581927286248368305210797411888731750981524616022455523816374237358701977325545477865128785562481443529493678664974036357069825038052345507719249182792067914903224550935656235637686753011233860138801069985162115811886585124046954240217670017069600603639658336069007401396601545939727248500224117213304890557222439459453509445657583950730500069097812226697009514700033099176852765842751218783628034031987822740287385650248998690036743079807465156049527792568187938662958746705033637305579544958648603827584629614121549653171315536682790458591498521634501670909852932766346913138215534064785908007141679890070655230355783985452099973082018824238927599701391697981534435601707699740370566280116312410610818417345441065040864141778867915560672625082529447565171738395204181994269166110428021858349129796813077288672652143139027693177045064317969572824912560831589584867271729648344462835829715773702535620471121196009303404998193873437706591089688063800169972694314568727344686077537672501797774695729695985376283702831759305315332667891808595771202825006668016711616566093757890480152428039711511666931506895539165533673531788799250557819319490993192230598708904845738121126362683240167668950630822150630190318335254155454163627837237108319336980146942149953877674934251300926898794466161898501907528587782891614040262904055702268741335479288010155858002346850832451170491426163183123710376469763280736410093723348894163249109191710389184614903689770340734692556519657976424768274787071031809538389578892766415175902220468310151596180231627783683472419797502098955681611386370822827352280816087314291212063733723934676224218267590066229324614768424380313446292236989706669568193060587747138431177824250468486560894987497305869152978686914395214359814398262675160299241219857343380716269804455166825915839767599833833925992313663726352551995932950624636416228936302146200934860001596687872687470642993316000743204096685915548454874687551947107297065904873624501225106076618090278818820644517440003597723806511387504792761655384821297312174142756576384522099047000976775803697135866051744902939355436686304272737056378149598192992768403719629176639084108394868668562245883669239000508816006175027966366208707070077239303675141649446655136595337940037377647868415785429322992070309599954716988952097477529738128294924893985639660206679041794181093294376563341319225902753937010135697766433890308585770582372614430983220073174747876860991586069442932598045963752853833866417272759632471651263616771799949684844648399621065950276617164794819612143021474054002869931115931984083477003554593311533531265280302170879083164057159447005367090665996116187397289716047227378360752011574151159550715190916708965004914463458863510857219582464947456829352147084241108000919340660727962001360944419655775328265167056072489237503513105150518323970947845260262172295446653770729756772069252696647791244814566421927582098632487612018734830317268931226315916252898134121513912093283471787689570756708648995543767726718118013273201814320058436855597786109358152214284608179523255289234855357090711491503098647634208248707364353273185504330705960042767248650276875895536581866178911991203825261319869210135769810929794088287612986390451246048472905914221806949189146870273691043992626158754991702856018145591592473405312652058153533693144834447019574283383248431854780883053028800395703887641103934718916350523572239722270978239412192247950314099910429040375665593493119847460652779439553262906368259034767435299399275968712871789906600707476233693207546462374929663743140884428517310461642995037912854219157053523431453087047757065141791704885573278988289134144843383827328190158146872278677841170914237696392926818150129493277980607831902020409450774584437324978987543303155605123436666097240629326508018951502002895239158956648331924107868875196180737659177075438059179683159110079595328784611168316873171486343298652136493144598148893380903488232213907606396268455088547926602005198171153959352807796219843720159747570764641913173389988207909404183217822316424901145336278714485888296052081667399624044591943096972666237893015210168874218406015648750806628023620108072381238281244072261383812363628833055334752894309270197801386465684800156220614970443980686032061006227265072688567494299547650152950805473252303014911627836352394068130046010366777285993559377123809545972452887546280011875070045176846009416300290759167422345439155527141353720365107172093500000897429455515345722386595494049396391410003743896748514113873301468297805861224162503423156930293415796692923125204144864717303675722971776384318682894927352478386566850320791930985320109433048727822852933420435178018042627617682786020581567730071256156920208920878207113607060226246859527912161146566644928853044678502210072434815392253063240075501373668539126865436208071855053673652442290088042735272726121403917062159662218511331555662921616143632670557379664269727590308959945145706133280579059727436614681342922278246369906301512614113314181937086949697585023745236453502215991212422653604244063805767977227080895432270602444642352653261820967653715076844525381062551293541246894504061940120543721434997240525050587824468595277999533601869361975695875164964742965664939441048423318695733812828031008332709001102666479752503160033461986930737996810229895315910056950222638148473574694098795182054420346923393578951208991392169932945043220680953829779018019598682807164966350432037455221253717531453957348923442127600344051056381482833068470440335671790336817587658841996206120752747321195277464947439767232191783275928165398680374226773550061515254735926447621238979766138813600622067310971469636926694867744434708814447457340149996406792323734846924335289106666074268854011095542285590971029192451179839542009622545010392842145691918814377294737542095444955854679521017312773997289360771215971732920369581136308108312370595505807609024297133367314255091665168172415444635458290474786982425471808909914003933154493476735575156879170887387944407748771786658238409447690008760138756368065811043962454459936705941363241969665477080006660483255377115594487617740335074763138842640374821438527531822564706305787852926361191611281988614590569305033260403300986321398752302725389421351872203080475489799315647327243608150167870947316136411062578889545267762694021827078254109020806452894092871774712392754095804494395424571445000160054296188584612173057492488109197379394420177143757433709183669408494156758288783500713029598558170550951347522007000246745325307720345887640609641341722934966195645890094134014782383410704253610774954680102216669788289851598008035308540351062877358268730859025079310588578751116705336567476487913579514165579643355878867308371079972212257310576159046232605993780934308893863993582135548777831537608759040048489376709610210856899391660745045261197300551326435548872406601231492876677489554432490485262025563193964349739877918126425106548951693714041615176287785718024559940923938924273111919006517455648727599874057380145312484815246572059406802913928628645173896174612609829718076130365985974729889087845634594349677293723585519804102049698786094161503007535137674280545152927134220187518514467278657675048471436575515628165061456367895109581085213243536840864847601873948599837349897909041004361479455122923719870578842015005575155594296341778354904251120128588370773470360935259838869938549183427294335371639909348876774850012783441553013536786292731436603922096014916336120423126963311083640431628317226908568370847270604142892924091018997564507536934443993966961004673133662487086747148671114095720221854447685576268119229188670228357599996360551939937859410784820024401003395512832503705442211831132687812601162655247196360716516485652116744542726493139161499624073023729414386377307511458122171890890225546519058978009644672574781473704810737038677690616204052913626976047559952432588715263658309462398235938735036257497112023785602559360452684087428717693506124273565497412368675117755192971280996816063838256025963699429827575973113697396750820840957931756652521073973054542731062080943841302987404950332201498279564556909391077918966599841190342853428711465233678314709509411789539158861608733012592424724542804775870468720694996656105883021343192149138398465436020534147356459917136327287481188859470835439116872040937639340290265502335728025004670062257624793317888767653013904018087323489015302598835049755986483018337936518670614929865653110330326150730451097439127714495309945316661970421663321796947602057409070221042856851121865341100879494278558335620851590746933721193020515268138936570863847474260169155250330321105895940877546659549767099026577711250943850262500521441230192436729015632371172041389045354157851306028488325804486141054100508241666852816098548210392300009084216144635138822378557465290226523125222136183867262755168974737629283480780405793975884708758786000303285746524573813887148948810698498362577121795770356990941751813974310365518349967371481643277099444242023392300066839327878520261734126885671910161288591902193686778716392662597899909308562619787330978430702532905399098020076705517356314510394255778521774757569679037762485030448869208547308879843947780854537037316586984386057197272230248532735651235188028137986208509297668692272669533690008220608676968385397411429403956429399249286774438566029444274896431242555056139457095045427010663744282336039322437432637778578928086366011131614256418687046394163160342763129484604243324544592017293842826199820467793651164453002398193951289434502422927169934000854553109704881259222411070025775447992291189386160845733854875224374014151044745581904585031963349493236585252507328367978487795611455601300588515396598974089369247177182665134748754388834887999983492804620732919801381228314597178621711205981650397349896993310805410369923062097998979950902850223871711871940030540271439698898502770863463700863394571573499562276347171376032381038226524925007778948266100142285696499565966674797508697210357775562006570039700132573430637937443330897490934808882945521051459188730957341861740118972267694159984384051182434003831801162712310226351725587992397791319623310078974230485990417048325542260232479618738725773199789900513211680597894654833930473408557986407569455110354474788389586602993715245762985041900876679571855034103505246422698876108574839224161644371978026338657706837628344103468304022309452681115393755957127103012974657675141427933064223804814615094454385112606742033734930794572008414292505470827333146857895690648326976157663445566649987626680570996582640674509673281341774901485826044556259308989316595210841910878128432213009273912279605289921695444672603030635981616742318879860857837433168150572612082350180553084097620753670783629037509261768948856691124414288340252031461613477967346616736162043084945741966580521881971396747216278578864300240869803962617983367772716588690029920206853988198880367270710727833534423305312288895742497715739631399214054764291996181264676120436856436237009041328888213541302077888861814066851026651830869371208158677196364955146563253599610737195192047961848202915091606104767171949366784836583446816018324043303197084258164545993398122760227170233405583276568568223405352220933304685081081324257852108122335814968605047612966658341486047460154316031320462665072350936486416048054796657508797748223571370109991224050606788748021023719422598885382578200935076290082711541323034212085210823845744465986446796332197425996548275678669278943770009457572069193682557047688962183694975660919778601647523589493571793936058090430912983278274110514470159332586966516179362661011117980380196732691211202493396086532841157713989244533796737588910645393751427029938405192441706053746906861335355524721970594832432737185059976232493029107504303279173049087214378740881029423339306809225479629810163103058948205619503446101163607790464896245875523467667467984037485926209040220124030554188468131014000656681471626153843740298913879930356864030476245711259885580796397043312577729225484913041551986314536570461492057772421130494448680741349182771666475101163119387722942537673035469559172295750801489472740040188112435529819414782666872685686470040884820372265413653837170104310035650554724602572997844596887078761833280587678924515154681665827731933196278408481119950167908206099554505984673743108933715493246822925708711108494264964155133422505913950563881588984386922949017674166691539774651767398648980681732739266970041967630740745056805991971957251553895163790123246727331011686369519309152234523945177857544469806990117599086107854627457208286894707807335462664366943922220799421141172699542258822215941140416312226282015833222440852761545004220778721690723047137043033052355724481662916334069833558893833152088496545824396646765622334078875193504125520973234410992406630749515085842649203420267600587571226255443677456538276715025467819756654260740786123588107468677764711999479545969746015071601925016720501348060263496431837119581971551593822177914444536246688747636420610469482775986234364616519196106191569688969152211343590526358542565402914723202245152038366212127925429442461518346407202645146452961541045129387803591074471499599829147710430354855717802676309725478432521190815947421418060511616675134921676527435865254111244894623577404335896251180449710519296027343285325504074620733745348719957185877536464844570263171017301079384372958112627417902195189159533039483287244617452946787744757064651908324768674668803737085525936323468201032083303821761893701593420238625378527115522581352478852482466475150649762038229305819752733489742119763152266240478476391539149586436407387573595377243496372398506207873508757979164513702488639430149266814643970652460431271487276192066671769792233469654367830933512510562295699784274518460121061416046993772817750689981296436808364373403103616742646459898641197952464524383866432585060575697131626222880466814661901944795744396129215467664181374668835417761409171179860556856787914796328942565301732485500667691480856439885880832999091108929156819804245915148800672458758469494309766084722024503607200186157431535890292871552431001068709414974042425373300317817378868663826186089356821780187060380647882942474443587467716968397414755451677460543302441523638927958232181085492988730391365948409669517347639539717426067122001275771403660880628321056153126534209099289668437398382428225967058272767844225808492779346411018719363408571451793159263972497698277594707769520721681329600101347484102839035339162238112817641357691083674500539762457883998151434762350503817774195234909700689770109258626293939059107895500353223556969484751258442400643410456466455298024416038605519880744604441966583097120866509816246357279912796569148243155108510720981110782364701345806375588691368203058662503216870863431508228363142913452186342407988992279602542927754728826941573355114739336305148589397291473691495080706353136998277105818959176665868584947832806645051239091483436041881016766794750205189977136926219030183861988958153859148162348243968276322430854638988608870940440262746339491614726222086276460492952994811413471311549878643053947596122782376633515362066604692188278644652953671780318436591357696058651215082475090081788369381694010055421776023279751213743713194436541920317218407769854471568855296492355246520088072948253761555224722019618511493034839741971067587288153146339380801316998529147202020221742535259023697420248301965420128162187479501686682327926207574412289240506159279058628233118775583936378900339694125957827978585386163396239204899255606452485651773050385729443572923136680221585058448911302774265328793594182056496336242735700349358432571636771944882419813992785003797546798055186742519278469739303165005584374790162911499914850608671563522692589211720806006102828112389889962386950465597856047936333362729255959424512408270436535133851927766541775905191012751959346844897832580302684138559198665026981669758928669917763461297904994489530196813634921360765291432693535763927742477540785116778956764434756091288345671501089296245539884657871821866535829600284864666423984649400510651719953152216049109605588236225209595456084408252089601480769132224026234926528996271977335694630194017255747904962334867690450289339277430707641786395157467718536563554237436207898144347541330657379086399533260164997234971566029573244149435364475796941798967252584535653621062325644507670987186345902395998693617910980220567375525241400969888888388229244317006181549147359836537630064309423497339380622599526458374813414048362622837636297466770668366466603923611449345004642961155078520575866863581920527976616187718193696845908901275385065772044969434563046041786477437182781605355386454262311400192638125387214494741360942694839274353572168171174597764486465469967854929298246668504763977419775795576998749058526308534799759846056742446957574579652044934847888273024072120418922684303381365383253650281900237571000297715064681493135671624441542765355783469237935692105540574872042139561332557679507641940796262438205061482985258565546219518593906110392283490229813086120684173940845834073843811293160911055449931807650086168306624397653977746737084445931337913487922249688668789930107125180459829189848993085520493841535026322299483960305211274792934187622519112268026387792884435538981477595009748836958279780560019951670200321422103137349730874545211521286512177473530102308310356521343470785814379375618364083866652359447655056167998357593319064165041676576535275226209084796682168960256356399474666368050542455628241334905761837411028256919162227946127070324279300018144923019320140680442188962601285042854557530134074825868679251231673831442038364491921112366976808790515730014211492082967456611894132530486740888968986324604258931293949723030008095567348987749491063060112963160193938705225623766581354089655863351650719913144096935170567213245841130416546753716155089724634390465372969285802113941161935402376943331683443127259827332607798224151363783103875527375119989296121791827736660392002129069362793572378697123019587336942744208270721202484380766740387874483344337151048687191216148801975936782643836061928740531113486409791263679137694846174037696697444063781721530280499364800709672281043666285977019136870669090583642512315628234408846055406128575704918406818473251494942606194480695348986917799416351040296122998741747340597205021426743975479823378140273603748467263503049162507474493788009166155631216418814589266968367999967914601846084661570677942868273656170662553440720355392652151838652308053928849566943899304106060054058672630140402010660953419704409155592488079347356723527315940451060754869138410376345582851412272031855414793778196708948204268595564781538593804837648858228975764295692383886558321473494495786377890980201944879256983126006838394164646020237878572374634322187894233800467753667185483326676658524838161756897100418665920368691457173909018238931796994244250075871500307853087690896338219000434594760315555718990727278020671300945400844266031826824401775818329170350313346959260489434871134747449716700330374712097826235385408454611911806376048883467780164613534375889329968546073339061317142015447374386814859272407076933861436082790809919984026772810020983970663847451273994305013845261806965310494737260741844119048283503653739608307269398643755362532718527539096395594987566993976312941188349632917306245637614306214381828810935410520291121618163391237351916005608784107928862586993139167814842571169080428610658540074951958100963079876105726177739395210535070286860785278602680177816673748420822155856211170235072672642642942199929974091962867634171224032566486819713500734820029573606365093144707825683224778705412132122710422422915891517452834844837310796042238102040997743715900992613124789951433745839375722800590683644905647784165228691613925048419820805354166941865308343121892785364407081156227433998711558234894787740933983992675593152457660735345494816805123261068515065588409425041385443889451737449951164282864947497766049889735323125283840996468311460540573956457568690957222839773385514680147303280548901176006737898849967293663025668342301773720295490291044499710930201921034959892822421517114880019410785614731168355597138232019644482214115924314080396521954332396504464596618959968213588762965161109159784812003976310849954544497626894307094622431932326401122963444298653638146930647912009590827315870986927347443400120297377080058800324333414360188860524791656946714725432467812487591174886070854362075044013382632005836777814887173703920871860394208240077408218048320550900910635421558182074970825792779580348810427098024077674364818425780072858736411676689867022568076771109154226053567116491950666060960916341238281918369143668138922324003260187267565393587580975798356554513298878059721894593427592073705194105841248727259018452422557593370977397284900596974425373148274910130063581857934045199659808696413143709653915719921580393259094110282062522788218667707202496081212513486387706032096452716753064384022186299679919018598734945766251805728963802621116957183505404049248692994144198863879669286459318399439982951762706359042168963765000096766904560342843684675033143813722405248313204717534100124257187458333474612967910180611371117952054081553139319317529029701873642608106518842899488766688370192023885595289601595273644716669867322603743678997079373998878354907269983213327684431519719817170959932623148497692178554942978925085408541654305117947567412313886935496430022806395396542639174679634866279793988521551974235573640165602127003463199272480655173114094654284858861023475137713128012189686040099525155943908028684717178692787828933932918871775913696927151428559560084179056010384735281613569144675879589286065109286837168877638581141915764059222834460751382610973433406789505208617811296303378900628904524904058497954196914758641651546016008629148642896059577550381449101139133324402428776738832849679688571893973696696812462269137833206705366035855915633116647576384301997812425192357003718771122394817882350841151159591268660328542209113632871869499074375698941057224311116980980370584210071711471348663467736150102461769346118314325523551708522991365891596126060086129205236785632628383693031765316742204154105246772311822769816688403693034792012043219119429946914715122319709916486797810006256839926701001244623528052400597083071228215813190213811529721554740918722482835178165131457078917942293279744522103367262787022933257835129586735533741819729727517760399189801787351424428506566527396390831942351107277332573321219751374733722321120189128161492292123144529868843402033046466913579032175400046883170168045749160925572605938451074368139857738061777146250638346226938238952194499459475612635628216826479826607546299746291246498652119632290705846628248401280415109982036656460711913193066754874337912006371662159735359785885582919346252670829923860109883833411087376304078208842374758414795007271130609779986472029341472521239888975415220626182412417165788753528954118684483761295941876242757795249879440482996212360218445915041466261451131552698191320602167852212204627813883855653441475123822274637962893876932586984345609214515062677805840439653466359870708705644923568268415821757368472569874098535170885214027151377024711562099714519391274262189823995224844628270380048441218282178427223266564708157153138811451560191192572824320232661950955412603323949304913021674436523325356253559634925127458916436913600120357024578060427268924170322913453480994598569980841495316048239292313900393044981410388056354161605970234067760570158796456955801286703310940388191734429187488139035078048614629643384275040634377795944929072271850505036621735026750931552385946559511115942801886627754838061817898077312577917862043791185757599784352036912909482963222364141494871416167985863863442600619317583073416529696369464724079025930819624979506832697316536731085858506132032147522197317870428050459968077990422246329078675745501703213440193730200435190408936521935672815942174385173031355214571367011555474035420384468548503386261114582639245399017978029560043871473949884214058031970956377328382596243077175784922195810373005340047886689805684194070898469728961382301719204983388127391258031993930724474473573253819407377531671458554482478782035618204442294351337799602231737467401960776689962629276174001236974429165374461788697483755428127392360048188992108406947524783892737487455752223411286203233516549888420264175807110897544805410478477745336376349645835396792309063791946192651431804008946375284076639099665357410592581236638372187743432957020117881771510656709720342170837268572808403319641556673129596953406085518975647074971354470037492661263071494249661490596598389396553764061291970911841818308888918823251876967562458253474939580290803008084283119352031884990982664939876239578001508205528466705275604172223804253090243307682190463825088028807608465898308711889261545970004312645658647469030500105359698454631146687698835698621247874684827155458625851287771679247562081987438128131324558010160333404040275667096799742447299683761703013577920048737096527530080051764437331599258517564500026642777893632369678786703513039700058342070427411278002525670677698489236619863014047429942810614847519204861554731757852480813554896834983061360790758484669424578582415499129104316826064889778329994995039127649057462697397159974427013145385458533202312601311778447909462544236401873152333990081962616355024162800025118304167875225243149026156308472447845332438935192371243201453365785725605842537028987015028664690698473971995424315187527066883197489885896014495899459860427109270668374717109636617764393285681410631922250742659615332733859955260886557326235986093201426738126190270133205636456608839496396190245042858974019215526689822794835404131861708026108193938449413003024775863496295661937219323493775449156408931517649646777719731005587191919130354506043152545542958395585390608763019999994359821803958397953103862249794304448124676409365301468005585776135308825430206691018134079712130013727336806078887446946547672547535040943365530872427527093030218886134574700315368476120445737892203736628404466179300670015568583395694929199762285989488962849989615551482847319713055098028218192268203018908166516062299790209433522320928143059203805353868503192737600235168481912633663564697531222753595816515406975233437335990424335566313156387527025312778871064187390036111083376008943828171992829403237756049517574978994600487566778225931848683063729126479531505181216117575673520217740832742309361315462570973527844707825924456868939034398656369750159835831876032599856482861908640012319325959849204830948705355858762571194736967507533480813670343852813053247209688509682303648667556350497677901796357620386791020723998024222014629031413520787988012424170152611280957596343837690846368724029823135867436061019277935402692372512351164875393915359531886648134565285789433401523049727518230675313405315794083677501156587786906768115736171999261176967929653184076571583728508984568272336143108746441236197941235123761669601202732145649172419727364378402366752287061194171924079250787351243858965528196846272815086538548566201098990900417697077945949633985529956437085896641589830568612972338811234180612129322045256090819279445178641769640397684516645217171986557337518545576835275255267772558640079119801759388561918935456976345912055301791766939951110402570990667588557923797543986213984722103253644089096882627361130299292231839532575072457773826108825578129479158528890350176689869053284200868322837632987913701226770313161415208239705338115683741233852900681405672727336110422489959410118944853323675912379341798157933829297267417562065532758286184628223821977260563945724178999122814675405165399867481756417038451055097574662143309899035576172978849145225203775215340316943913966931395595826148756891103565694026644461446608550184271581637876975185460155001633407877473597055655039305772043375264224017752384290547238250905919971345753372589053827413926358223060679159053684789286311848236204050350231216215416744932209651828702352165266132923000961666144350905691884116597999779793193021343242357947773215695230365129989409658420499604940302628903168615002007998924015983117351855214271635590122260623385129915999552694962880703877815812159469698013451406497925114316833678666259245039765515779365779198062440242501282328844404902764979378256671926593949034324546150723703698317480935075931459564928472306598384875099489873207944515950146156714040235355899433953420235746416067247985743948268857225941518836115794981949980845067304370282679316978040980440540851264577049151623027193757181610828163009700540696071315977016514643027802756290065615112879079397604324030688517022214523144105545642348012766392774715266387422608704998743660738561466521115966692307460581693650912008987920904709310936967620719762117175836924131179890406980142637382540012112724639234921051604040078406127391458794169726166305700683328500355157466652997437309170354006151250806133354915984035323848429249053527449142959756993224251579449870497542689140753221881656331553143586730089075758154763767860545755494868499197236939940862777148303842912447954092915150460033989270060740904668139973933302845464097531927081896316249810586897433895795326442254905272153809684057608255907020823678835408947954181533615631190922857997555353663791023883079584070668921198514420777996259453915244890320484285170988632221784317879947429263278585788858139324942439619068686271445179809916027159303365509845170149134480218040624710945030437024884235098631277714596702425981835199516509438989350410302692268356118844165321003453712897199684640820178533242980515446599222131772888369576552276731801995367277829027735461638298462203048618458615924970644780991876527107002169767716883880582677249516496118848137700625593983445563084368202828554531581241635673237725878120562754243846074570788467836734214900126985724231980442199562264750055469855001074868480591335251754337830489630488018725739909671439430975912786563750765725148054407900795376092060895280946160984603479623987886258456376307436369761826898215350449214798155827909227469861450400734909604521757692068884448945790307254766330956685346911214131261168999159443558115702927773419958346379284684761671429831161511766953433997985840189022914023208613683551571002868305083272680681564961399899670297737860458936493761164848462927902822491150694919256092189797490208238244599836941619644365780216742387811386344854042301681233321610393281223156132098655655817878577145387446949755491653348949546474663224818549997556067333820412315327925926734660123545620060780233779653112407825323297188486653542160415691722235919480423978596618781454760035640650815819115373779939310542258710381930722269564470168274959648959591930065448091325836945266443209968714000684677101423759842558360642366448771413315190079153878948341097893814390178357003982187237677452333819148246557484355547109913888798934691272264003263200510038361896440161460010121218003948636061152430277216512089612041814251435284532633451482737828283790328214523352574214097224239404753571245963072278537543692328574953180989672062097469386452908596023558347169827712824971698259443644816032347000581072621001715140723481115121786166142591918859436791894812441116293709056002253746581059029059846540114216871314290373540756219165769291980409935257083977189821040991632090840929500592112888003353996107171441205771213748425255815447548406342601012926676992260664516679012981610490931407301300524559217474011139120527962100033681523393094236309580026166167721630322228479482560547382009583350529451161058395962080515490058052365049112320206734608938535425407329511802390620690797171178231925258180883281106210351792016441409284332593199881500447750865222643655615554103546754072804477614190919680445321616535962478283676952625376752643403634183844769191250423755225916536115409205692492034182940545698628082229649124591508549022876716674623919656366349220177822405334656163031071908298606980232167329547640295663756352384198987093329341106902802907015390774611867713335996868517858133885618490094173226126343782911403448316706054606630209342811778062494958002967770736093304386354794573204340647893848392575394419027302746449910476615336146790146252106452575573188492700150300455929827307744447374566774829734636727035480597931511613174135770645719172282311500018212154882779669968176358201873093921936994506984394656822053778041085070659393674878016355262833904637862362948782552397726829353062038216522850744227385489763450778097092758979908943712004032824267539391985481323815584970788946639770142064546209842885819052487180816205590443463495015197225930028144074280504670568217346996097346779404835739167339406713657818473678197821446128400926309634996366163305391746728833926694261804167069244256825552668294600827608781614838829713834596515233909134146940946458526389016091442502983055033022162775081126980361567866386066504987657096532541660200022590917966430195205542466170450773766806004152306959646565550446408260256625494419166764325393858721204374603363179092324198458822990389365158231745920362857507870992672213207689516788441374006544978529493416682596463764309952938771910143128382698869275165818180271658216322325523462798966401827760062644165330288219532639728989253044869208238450845713767776970185157568744987055987827065574079502645648473030322715451000409192826710651177655822207536063346780109626685175364409734347304352405905588133692888970239612792344858574824854509320976114395533560306010351484340049947849901911410889670548173406786674531997100965258904764305733096820148296554871184569311432199623765126237962276385919224326503657420872011741838731592812964822887369448777550241642443357817504022835441039937683677967563575399388475252704400677351794742675468561489812244642812396035483401122326153934036389683961633042483956143731588266460676404229605265149244207885054144691512588214269345126270968103509205116652935291541747713705933725669891594319348910629331077531009882698554975071476281011472667988226809945985096722080987881946832036502229986279226941234998616324289935079888518935522888975238001580207688500524838377327956213795324955349714210879650854734911319103941996684826582553397499633705350515390871086192164823135556361515226483384662260412457737178482479068557871911457571347235148879439748849854478976483008616721130880322254251376690531884222783370066296689914841058674118308024275769803887636768864886507041650310435318519594789597223759840173727039429641025318962085789102118842311030207373875211820363486552118462541546255418371977346994531377835760569663204617773071114758003145070116124051210379962264866099280546974649291682976455598777255324421461943569254043927690513197454675478444229154990855902643856080645677613512193049549449434834417898087516619793759240139831794794525325142166035481819903488658780620887295643688566889585351625011579221581302121398661610389903496169998893030170811475761641296439072220977709340842047102331290319810770860601410939559213603380758480868441961911515086506958413655187228131435302290495602681958008095858208660687057332024751318348549856493803491685356379364977784674225935744386247535493370399685220138216759905233883115898948790952272351683987486123399178596932140934064257287674309408702684711594317269172036635317078243025169294676221696617068075988803354717450851876812442438427123791809505110680337234079908962651453012191784849391681478518915317224808222396680432928758462299280643084930731600190327019285606031640603298325810666936892226520121809002534547104136438846204529107900963283701025663945152709866777150265943524423085481178300738753826992371766766604260481385677876803245683586600019413638702806796935986504627285662296284472065071415270074576454667709683314551784336320040915191783466813331374389465626529398786466636067747519823893305071674711905528781543765182602298973758193178174250891151725732745234663543088200302377816428911214068662824578224395406198334130727342975657261404542698396997915513579197993814357222835876020937521491335920999987482731632270963564933040909459268795752340382133560113284112973897314625851332554078295118384009167152505359602688303059503752443866650459850787600025253868313913781738021444057134815807249030929301114479054520038645049590038655410730800814282634896001277022733985705905650514035549945459995583105968524569332040554570416239036720832238056574854525559247099416939363036348117486749189939239472150794546861670478342413469814472313331830903634569239274726832404797720191894218477292943175159309303585420399711797616054293858892091891731191333268666978064037066124988178083279157878129520828341861870481892243985367586470362714647700985979665398837453668337433060284587662911287869015685981023436664211083441590791734089147807533727384773863371495207689159771942258464954746133251087906235706385889518713620056923567738498482767575545419982885202516097135851353963038583081097992114937728615040476084907561228061353447265230087587369825099420943846820524040726930511365506280311543594675897177090064478432164828059103617677477796355181190081842875624473023044792670300265380204514567766911077395069118738110200771445083431093101342755230710794194644952821458852428349915408029926793185826146790828315440615804685084077996508303472467336867521394498021787863598149465028842001317523037353343172633085609043898698202060667853830919904453163574902335437944452400241228608922864811837673966687085679047349626064069567019868284777737033956370965268081227583690781392382972232593107430524499520101265891332093820429116716671369313169256930490074616434948000028849465229341065625766932188443490473038921958504798339026545041974141882334724227976147155936305260125766238671653225263269532912036353410995824379730203301093869379171078665357550141425924310107283794382629208050757649247262533630468882113351123717458349862676158872516019714561891188482582210671061077155158104422173672509639668037653706688057756305800789375665807743224961082534683507620260598943938843159236817789363344004194446588417685892318911214154964100507066103923564985758653294732249807613097560865820272311369972305417927818488691107690038172916690189193382164753639253547071170221126221042064890572159419268359848882161711513715538872868682262412015815343907218730845190622892691109989205141159251771751390083173219517662332869860659050597394313271432556674882510280924668852514290720428032326910762157296886001510205484619213815413026462136571203343127408733862145792013066959262866374928686712741226943702758154286881743828122789151926725453164267516284908765838784690112583853220395407154581206671229775279011559181994118465581583898547312683060338071993349747061076047766559110072728853234179846444485645958211851029139361209364769021007117708963282190262878838187279727408423549673507863255088320781083243161135563253616145046909377616756978648597326621051092572499835346513624998769808233076353031080687704517742302467110196687112309414240084867761918772662687437979069080015086191421060312728242041936454147946857584353244691106732964463317546217420560811252786563802251261380651118941985193507332104329079338790538439591761530327469618320958245159280403360464828936072627030109281088763313992123978103643546973233841619264617129527777107613226530497379808870863782816296303248552865746537418126518626354971186264657899380458324452033266068457080959297019356996681830739660457016987785856385756186151399255284113300566051155299032710293003430628548181693119771703772941194517586411483113684825722612017409412484309879480333124856568578966519473622691389758901762099683969167123446495540519682683306004161456211739472740031736959552218584395534660304682465141327683145057686776471552625889529329649009984713714265836636582689859890575737216323937503935588236929321886146654932915170699060686398891531054977926202914100532098752777232068692866516128024566305507374036074777839365471048690042215083651266427205727153444070748948528940754826232118537437360482534828277837391089522787263296197043538065916044105908350562957763458989377408065170531449382907634749839995738084615947071384712902017431871702751942654611455924945212989049445700020840575872506421612168741229464374572407588087963470311732145036459938080998175270958678996702318895082267053555444507855322519902930872136176302366219281751864623615597270416048719069301330325351232385112620864991768658021823143466087554571597870478598390837907162262066427948907055258748063585499836925813536170640258097018069904178993791739754555592110397284552658040362897100810299064884252011932015329668043762329077389687495706835790676480558104990436475765456971249949370103065595101889607266974996149061494245659822679447447874920412115831975070517162368018811367507657586092896494642744135405744415587314514592367569720894084043327488682374452500448869027966589918455707729345009830805208973445355339953759292704475012369623200799832656227474683301835395949909291925326488458987243152822274037641123207556284421265588698317655607777358793660697617947125704506188292233393180210361482977494237599108802640637169771503639003997435702538556188052737313334225327821364480454284494236872920203326233627025457716981203477767881379413843731153089706044717754621959671887869690304795006664872724894911901506274851793582076410440611563339280223125934066698844519684613965923208036462888300709440317597955865666137217053144830399751911348135294826667704013187424590057848135776028878214300257643520036416345652171535921728226886666132990684986458341031891236448684778228666053289947360593277330070882080807520142620079659769209844889503147955510890673760167706753778493681701228175029075158126489708534074117746743428442260909588643232797285385335653135486936235259296621200532449499108203419733537266470003149190339033374769753258368797418724677730087806063716565501517035460913208319125958775205293887490675008284840107783327290937610104353389110735232734099836441119100224716917211627544054320318903148794290929867420467737498412873136139463985428827285478238953906228758334309752399288704086214351168644197648818352774766862750358813745941854356586870451502558202661539369478631554275708280149754645487587014288059262385086708815344325536139295117844461028029901218391926552433051160698679235623072317398494077777392686106046742988168863440935084933586028869173002326745603236068279229764968628747385128494628702930154201573326934944501495211893176919549693276352932002596351198865580930585956453420322948803681612704942202388435041213372752763695926940542489721931538402822622376993634548855129126426954771042236317821799442271503231005746404992026405145516921906398554887787251781979086081861366965079480288607916603225292525124181780687078469087482182773111298456515417922713260842722232537921186658089799600375352978151944659080732719743829340707607822910730465197519355381344247027701325343321075315282011683270058131697386776141640738323220384104405538159510808082655391598033242271876438714119414213339311222660101408560873751148462402260669917404014123816539324737493609654402702639529709459596634471760802764908512285105978516669355380524128719612986954848149850546604211054949394036203561524060981880870303568702448860929158953945158807373403837265066989924201135791889305528355135184491379668001272017268517745984901770725754697615942938264119807152348435936340989671343335243571061692305341984991027240285084512544333047720511547231584954036864445427111528339826491181100187154395846952248085658647850771534407331860282777628537552313677110655535213565807398965587087093427814478634087948745409770400830958517805896398454114240019344674055537070731761221606575881054656759386868702434937659303436121484149562130893231528342655011703059668530336754841025620210031857620271566979746058212742135882889745168026289173216513418468209675893189320056899424628833830946107528369932818927949088662847787951642484508555002895546348293962719289821283254329424485515407586298428234107154413032893674284187482443644033876036449327379628956870339515135736281394232520809495188432082972275403768977470945832854895159536569156719737601982226447303440767714303428583763988483633533443273247935268871550695160185713626322716802552792294955375240619275373422496144321978111051252346182036893692229521031054585895852628048174318828809131699666127199214798725622783452268535044745650226903562435403927477259407444426740033515074386308001373869624418883735023936447896590051091365376924798680989360789283841357638164428429825315160860070973659668143012740096799649321143080036435182577072124678558351966887556321622144657096014217368410312742095287950912135633488998408197067561050445031936325848459714252320360250871712643821717346811458049917172457338648202631681329898728573962186319080215534416666311553987321543062835185049583720865803784451159523519882371763317053655845148754125347039833094237530961451750435640283194446981616291346033188447410450151985598403651616882025930004239045739933433631222976243405183136620160170848823291165661036238772280921756339037560887166557949139989508483289712274750651468851283478798691913423634306382036351939214131666564098990721582908699525239979144030982664189291337737417086659955637467632815493050143853624142611976604245745422875084754994978184127842793868633833934557390131114294444341509122425041785705941832328182847753416858152373794591519750084379088130835137691991837763263574191232662391999184286825433116728557725072461296891539046687897841692747083124122642748391915563329181564684712761669002137466555080086446139743098767796532973600809606190807677678529067486001450661840837172951243392902640814365633318890119217608668925417727048807526969494568223569455919798257385012282658209320403528541146924953478650008480254028463882504122332887880177357304333478313952701612465230207164537169942422703988549502191894649889599819534979225287925146374610038790542364810098868692561485132471401463566178383324889153024629978662668020904535857224331399695628429161186313486943162433046915814050067831008967848747949911050597349738991152138658379734234485432751906834014434146445880143274617464743805633177499045674049665114513417605655824889802745227434444061170457008475663987223617014143326226303611238626581190660229446904241394311179202290049912735408438869503747874194588839240617840865274100698766847764113576554212167069660079529289497143730467256197846971259929714256234767959112370541595823252539825848424448385381044682694862759143648579494939466383112594139761021280663928941162351908771295426304696082129169642363247648352825944692878603160771398885353312631633510503747501206373117101919514943368338787544826481861353813259253828908880596886189466717269715162797747639392277231081834508507724721362936276030893533609050745428994068432705860839172205239701868561394621895787859858318773075304686107865372645252210435458947637044662188969481451048638357104595138017190258494739877956018292472846097823853241388361371350541232750661672558904830162701104707642103888855304706953787068482484756476482242877335310574234844082522985856840242624952495074349317450396685706690522871255577568080992203097716425718590464501104906233586051288057655767330491417524122786976474107132988973320841784399778118993986618983294726709895017845662963593905730249404454392446845757019372258919744430397341350004094128004086664080432983066216510650096567303644924259844280980129623774033111711064341610855241533882167058807818222549540989720905528822122663244926876117419684705320995688453373695066492654193107596868082243998333997985557750107904235769283225874010759662552577725951718248049046951964904215987974106948236153276242230960411544596869776349004901592947741379641291590011215724044309902166209554042992064622907359151413498895872027901944030598048529442555384925058420527553330348466071746421285868488099383755476696840270605919973682378631123623106930080412255741607521475676418232103409156084156489155087841823832424396893752286464252412716289577870128518355675856275469382082345649275716212437563554813972025066574891173106355106434094075960933839679206039532647282589844015116522392272196083982653035890208057437252535044313799067008384492610793801988315992036521056403451100197815898520467703963246792649936476339079494715860289205819464073037438868560038012329907591789821257658042504937400581353848196222395234184020414513154022128742546854306263273665086633034933293776100856767544505832383319555036256894579483601552605772670325214104732448903452296760673529824666930571451820545679649540795528154067929351194752168125785870338234287801293357968274832001795340229249735001299169191896035998423762102834581659775941797634723857033669114691236836175957046355803486628433629247881465400404894961813699864842979658019230905139355862513204948293227762316272861801666820074187031496081662178709753984197151484182759877816976480696093286743636993093594448896339828204127039541732717239089389292315314541862953296380359397331529160933560688927756424376649726192870241722779563299217588576410720126439759687211334170231360024910394885164839655856361663850462652254934039847057250640667851578346876984543540925210475720860171312440110725181775420901823055859265718407782273358633312915917754022740415287928434954811686300349916416489939965013484541053553367876720867025367075148707728568884831326537190483020827803767774073212459813569531617074715150604921714741002913897504866800992725402501782240688293043786785137661246310461219255053678011933260439831329641733507979932244204394009072046206239960053637654965004219015555099712629272892623598546299515762085744196090415515558644977266846700315995447852841353669558986557478607503111886051968830158420047227270406481389163749492855722143434226399190569678719465854804830818292106681894576369788131979378881341645193931077512165601681367501671509521391415354134725456742945079534392571588595649680631574662192741437447562106192928382143635765950796696331499822230617651100617074679577369583100141119685181293435717660186329904649531349778507458253548013407422487112294359913829174678736085242266636067291387517944206275664862623506859288462285159930227468615621594692386439005118931943729899958912185111535746159380921827786082603222212411868564358856917001940573903393256375419340637387677765452125426164079191713198811276756250170030966681873029760574891108999840088379999024108067290262807628757263115233618946461892428019637557240681765948903389698280314889913110468943176346123344769550158489344746850271805417912157137852361533462755803990849086635314531776095864165560693232100856328021442187304344741375706158332195069131036471863003170017826939802625220769544296849554460888609527388590224800348282774459109034543571970921633908419757119962311083847366797206820035906600863581399333657340702863005205445763251901084770142711732679182150234460472460696484378707827998629700493638358212918531917666445237751941971507521676427486115385099017964353565642037720434804210163536715883471204703454824943889163325494198029582120022265673118637514572469672656167849833071782238869898312021931258115811221609526778159871587151291474117837315260922251068174260311243919825725147651172493114725621354002443859904471607294575927726403144169440729640861704102668999436087561469164651190978645964571445872170683994244338854582933722691434150633445963338287912880591013665027008781341200175092459642082601317683700204188809325955556408009996282656126357498088891171667636752384064441746184816859233562585695129320836111824245981752788851396271296857559937351595265216261009220970764375757899891614544200147580497264873330159285401259784994448008462550290180305738430386959457759484436439014207950617657801851921383471452440004061285026471662878841828972835777645975363087794363795116080089750935749890425905402214165150538933513677642319395006618071708730634140437848714541673540334587238217084314722011012975193298051361889280793468055341005303920393102647324825218024969156548781685857022088725407317243090290545682926610322293048440778766332618000872994491458968387678801758447680112871303569063435414367081461639263739655397771810829750140804939354777739491778423708154120215128874895676530366388057078798847542108653507143122176656041010380713007321912224837952573576069682254731609383937559285735920750615297963305037192994920077697677765987706759890234540955876570274161331640723879620790487094802748002569105347444757406702948406952726967646386634993293894356546531376608216473279965172965750367498170129017961256313194582625875017957382732163267022790239193550231964271189772940735874257924562708925917249185292244368438020821676404520958504686377984349511614017795817947295953462173546228754349808100017184201642679630507796698090190784925336941436044713483231581419552020165490024455464122748634557774722562787006679096312342804626192622989291512274122146200037579668531586219992515095676749953402020621960003192493989155365414057645191024544605884768622230097763400979905329135227596305733493117273521207469685951530744547206263249622180537730528129112019308404105888499470826177958885748040192511086150358190408044351932911001278738701444554130637335133917178840129866826283729055498489806132848872820358011258279878849223786052658437010044098491037125820217451614635701228908911632062919558992808840899181717135632017262937790822419016814874426847368509557407699997317569120107222751056248491967102656742543598563787990896282653743086304282273885320730441180262873161962868455853535150283240787171292252273135324205572850676638046625188657115296948961699025586788075447739998623270526997551126558618759945647796213465604881452762693794733621519352583664499384333262085297458019990166243556501453575769633540616991365765165391367968354927200443355437409711146266210519264505043700205082813443268577805191394594722733461035802138718494809661965453088205480008135958593539525537942476360973721960180332206177792498513621084237578805602184646434181469084336735361635486006173934957713791035691355901633855208881437053068973840015039925184918525168977275641192124314304912134119730650179890903830788184395492492125469372269826511248924251139988289971976683091054749168489600086966047897792547098226401843444828164770027858106852660892960503655413992028885416860259226066400334212067073163114496763159172120431935105605805333668156089430566319200386281588761299689712858456391920949068182682489985488939273879848561593830169796323622994075394204308143487945336639162545484145859754276888382897443322875330324429553043145821889522503920103857111232296683199477602984379378047853969470308058210208985269291707298409764838347542012136912346000085395729527270211965897703399544790632125974893584572922943376875577902651122907230745421956661357625332825289270478841008161255249311671236580767575102397355735117436068599533207769141147006381354006159113382716849261821165666924912038577354691631929733030837979002957520312639293023568614624137034181029456579031825350260843846966454081359363988129744798415627881060928362379566958192550704330933060984319641134992361843898130007281759339643945389391755858832760802547461602010767919420460783889932914040700988251309699636849468261689707914551912840045978298841257850670842930921603005081688573251920972111485517896924965972651845496390458872629775040771247566444504723754267494136721570375976904308546945935744624026151236490844637684899523714245229795501615532173168426449864479329679065351844113073239195245752138350081123054492102803445505209813987939340899878009257151173471879637495635560663173296658333088581991170989949477522356645554744295513622800772142084563315807534935197446583940509817463226516507213434632610250778261272511825690780337414561223970297504500750531336421682438766859505523946939673651832881801876037807809267783297597595638574952768469507326361430359223954013446857001531862580510700612253636113115720979811719286214058422666279566804268255981009188188732066044064173222394994870525164613513669103702611566707374421833371758327638544418229151457782726856296192477960355847538450568886456172055332523148960002682052070814739453471921586382680670351786106408472495084524319837992060783137407342614031705725168114230914560910928235563915699686895109665509495073146804118614345889113300053850568637567809338640705701685948588318258200182849894679380858078026976584455906589535482208325634859695416077092603748463427192815826748327097448217240067543980092989916496497248321876230922761672964594186218892065197809574860474270617060681722651915143846467411932435587720278021585334899865285959256336230334126148912186920707779574418403142794691063555518110367209344116701496487493571360809876362947347418017348966992461465405915279367960444378828282286536203744444499542801453669868906245306368166012604010964263355737473615284380259053316680474865607588177837630032557942095635959219115144345117902111966723485113075818215527239825702528967351797239270602529615022680155763535111820772463192585937373096315610224373303486918626342648456701948127147964118240947934489180136860396199432418359970376612596810425706102338999191628504488023196775296288917604393723190578374479377288255696700656747839138840567085148859014568502117340587680232865474444876303958384047558351639643359493441766570244988164661515149011019081720732997699127143876487178408314182520076919882278593362331980180110327237143835777534530948537799190907595896056022524898301790364535041856773236799306547451105869955008204160510220103616602142174547781489300195903496587566522547222411955170610055972590435832550305559510022131503363984663447997554931949520662827764445630966389664336019063369255722569874554639220392041208846735024393153982822284019675142483356107370451387493881524471322255913669644405153574463771126929851519247517376725634237182895148901916124840565227074214113671268221007686284406635779607164982167398756552160304893414277617055023953113387836034711886603896284798184035237366957872034303255511516807774582169873460992574868954029400814487506166421160149996170987236756613620989329006129412145085297478137754702436568556440679239106798196500569672726717426995139799436803525336716442068087778478417452208420044248448463112265950922898059569369995423780807636921151403590206570230444062075199936673248851980146913386953753152644016717803609320663789488087045172092085546027573747743729242460556721937766791224585008930204338029453438338023658706998167430950568930431001932413189450001096349828847228389623033287759876049372490150178300149845993250435906776364170727362575349807810466355443532590999304320128609496076568437158676938285177114950390442813856958965949681279184099543131281189211640103643728701428530790947702945993984823354085191444946178932103589334613961418359241612104202211330675768725461201762991746478487977139917864291222236023805967510514060050217156621579614954719905474505775184595533526519299771067987179933744758272817285800360342538023087952264510505360223392990795603575386633767047803484847211155308712525807612883115627025822584596367512804056781398383722989640352252462073333486440211494097471647046978142893761807297418428189330166903055917151456239510669208045036408865757304118006534113422232344736510638258742313418850357603833669379168625854934946387858353921119035980285793210806336693382712219927574772304412918757250369110957635697489559617229746732203089943784222825334387604582499126727827238534337167551180401485117137323369708080720362792522123779036038681964574073738159791332164707516424244300211282146566582601855376919516279883901487723664127542769753807505628900459675180007481382945001888592610566757055424728979785635784756030059627248216242620877647840162833259553763057817144985136792499536200617579816516737442388173526638312139116794658263276655494333856966231330295394497227632247821629203727581468197511392532077655066689881590787467606674254448627875335474237681728070802302375351305430060612629353702317682719395871979755569051612249614773688005181434635536754736993211093177224689893101996461355350692012279849270860395001038659336932626829668112444678029364094684169811918798052905257703140101188023014359402077459792734378876279239303251372759297833768001652365604417317909863909151389261460184145794211743603744729754487808078524781440501282009767454898555859287812679484839094619154872111428867078737546528159749824104434798875118456897638443669113703765824488661839580176710398968045299171470280160505032454124014973416659943325460981333062252152108659834092046688048043065373860505593652401316995459951768391504263769504213773098860074217863617204949213898924504054434012399520659932055709064844815641193878874884570982223843600604609357702267041556971109947228797259235479023424001956381225121424550180344180070581921873808258090811924008109285101277128764654350341379854999512062027320804139467124904510508599811305129456128076000053380879813245561631180393047420356518379018839070431249183101472269954741793013238272256638823867279338436061910311258695340544497361287566044238388192991577149782406250503183547825998187392635069135537315857181779124774518193228668113079784634790663899059521669898908562898915383029348946258461881707442948077179057889151215552922907201653352968300691681609910635109140593542027196129716957905416122269632458029917332871348871142939753196727155280946530743354654871614721203340135667236645215505896566715505458450258435390514720269934739221604038669398451410874622643461279087683696208569722022692825794628374701655826637041513364615947266998963733429197069466911191630990976439097230456142378939635456425845544521372755107825555007169169497310876543850327192971436628653491141271657002220876473225528009616137669002613106093382632541552815143942376707130920765930047778861860694350752040669374848715913758083647372048934223193843294503971860518266314300775286123961603119029753275932316289262974552969412293072516951481099268314334830475391951446444267272577045802541730232054705927169189073603839125363723870138175007127675511550367815683192974342961053191538810662740494294733281213691692476658415639060083857151083112380741374064292007157725848365093163920650831064362709307407268642643061676392315642900717084517063122203587476878990525638712889121291840970523475164958060440853485896411867273864807611060730110077518777170139453276728338279823856014252559892850755585638912626376448438802742156319333240937189039183257802755580162130759045654555291381116192756091483266714636176540204138508818145395546208458742582678133247694827136638136411756932182221426962778396443699895072252638402417987935381737151551329092555312117759258611712484633907309046831652791395942068090189188258837537270997392891755507773432851184300644555065680495343227272607656607312259449428607130912845731109596278211979465960397395444396173153741484977511897220658429863913798623763244130225811762475903151193879323575854619480050087715505247634869860567547231119958883588769952461592026212917951454904167703409770898692022265880791031942601238642459663830554979873366350978664982553085476681639862494499116646675255117546731224365065559820337498352910942480707186001744811868952900639361198071109671995334232617040099472757928261597136872805258297424821240576499516513248217792025212832560078053515204601572241173406979136939619400750757749209257823967575532120856023830457883041870646204214638569893214716314430004975601495432205563916997340268921378053750319848623744976893691874927616076677265667908593018681032428742921615706407552421753905862021511228017647544793533926730730623578177440026761946867104667815926549510927590022622593461111644424974222299786612219987527339334367078259527695098988391697776327756929663686719789585086818744836002281036700274757588722427952429677491681292281231361060263037592115962134571489157288609256698615122654713073141814071212759283231912924071774692250602339852331468571731765041809895899395848607883681923174264696312232782124361386047604127819515756171689212945265491193137574744998035844495126179478163905985415208502097423203469685545164766117290311299336610346956151804586439651860212210272582988567101649959377993905432298053020970508547507078095790336321137857251277130709073382587071498419389353668854630794441255748068784363678251544730872937343480258018557235717804203543809335699935879414433393531136220679635325589717445085765113814383973131014063101680198889313159348067733239623485004793095066898668916419866174682362346443712042138164724890196821138271831532682303389175902328557973837321511508930978127111510817514442875561682484291102264479839133963516220570499957292205750557131585706946883615578630014906732364238861073790746930984156324961834466015179341215447034849186251378922515461085211820610881551129187076439225052547870489963374469934837222564717543681195301383681203218137594531581012388467863733523884032564707688836447069994578112032445805435016138652094861573968997307115191003079518909738456534976201614052567836236812099797145922438473138955558302919024444507909467176951458170261627862940855731283463002689566680096678659608518938933881463119168593225470222872908558099345150243557707090877638564841772238183756993926577526090117377913404351074757291419007752503820612404135768188031990709873665845760930704514382997132735419597841942840799188493175746213901148316416322865780840081193473233255314505469309487409391397544711394105685318534563915713116100621395721749794077394976638976828286701438228935224685696800076762096245795848316624574909887060399612081563584016949234164736478570239650581460623266678295413563730331440583717176501949674325125412574364809771933469242439771052006522209099492294366562908265418721596016172234708313060118745012480042882115706808369715372631849687008333383386869188255494122370027098260934336502032233427826025531799465721158355365313736292903609715575989447761717388217536118311430659208236030344139113674688582096250217088457607175386394294049816237117685708006641970555612291669630353542392818940029793535025087648707962507895701185474638316269679598968142111050524490919351639643099249024695856652398241650873035427506697425659077913646175965296017325131616232588347494076525471256694210203666761906674871817034942697997247669605951345632766953114791846655841505826464501962834206349065274888273040242271384474261735546966114781597169836961324457993367047545243470014075765720124887985377331710058891687001162872063227281542719723813088581613904782329976444740135973687330959466898456887228554903323498396276350763172337236457892543292098088667890856984478479663620505446197548468544281586696252625061638302658252648778792597545369263453294803158491511557036579700205191817794509297602330918743561687605797918948003337751875390772314531395028177485244602625421100210096318188306768306618455552547246090454522040906181636146275073727344245066884569525211929007225921733856885168161792949418696896111384861423045465127553319722878618215534495952166065998009305764016295282988487755185738011582041784190679650761166247629017276633224089393903656890699790792507623182053088484848558104212733937602972270180702864797431837896262941507567352119461590559793949124450812705589665596936981156689771591173292463813488595549668666227307238357682698934124225476645326054949791551226683475138518198258428319836270007982222050898441816639860823220723735899541167845313605058300726727325867813144330354983801687098073868473690622993322586938786384227772712440308817113654906306696129761596556505315262585917592435247499411544568931224798152180548133143136939461969863173584953076084151326013119958770329763153544720341236755135163522762668621962386270706221934022861921207585071478286679113323786442717126909363446303807759478132643827906328506461982312896475640601673574568908518606079019190087205403206278102487021173583087869477496231525489409883644086213847102354308564184751388752006791598208639428923502767829992869517152330435869351246871806152277722902475602167814413648484192535800864793231174424829723142533306074069893751342380001851811409288328611736767170907435781814741841820244145183219936170472643439183995428779784460746658209490161363670805376732806064666667363301217738941048170059163421584568133905657976581000856100663458803156845957729698416781435438071276806440295281637806536124633680748222126783398874458379615769475559972822880088474639106125602968240407437568504128386396049626772283559513188832696943531140148863364675766019233442600710627318339003124627622593789201074948117932610960605444600636307146200172531927722227267807109747987560212881039527634458726708840060863257659585420481821193307027548678420448016379393311226906940475140713079628419405324067486537519088013940337938743583628302769540175569296320591441121764307604867286828080918566220405834441939070734792690491681773286425153475133607474962606211720737467550088988602293385904075055819377515451728295912690412475656066079439691585898182135493585553055237725659344243580884188833948403181103768792385271673845900736864520442451549875006587322320582685454202460287555362955879689740670584974357560334667429979475114424473261236417373804238024121475441711299095469027167490990346320619946404565947764236173443510741215888633005262692971439190050325279139767782064149451293865582887639103198481611027504926301610572424891888877288114526669145838213375227472630773268810317089419598533296120471676902361323430837749529474060485812848799695014688212290639048642401411730584499974675043956672833273215776118567213089379783052020060435080349111012153180462520991563736095139525359617037457487754681456372107632807251591562530852454563755099175802243009637598659824065564167623009862242719006631296437289877153110281238582128932858814107878905609929685882120876910801395737166560052276775109399926105298745277447039475522139031193559776541147434916081321912216973763879843897947233848242640226517475101121553706502586014150292834543875527185967141283103885093485392891790121086894126309099706317974724153119343797996423964336440855573852545879254428965907682056986581755960948083456504233349654750607192619042720275854348244631363783686794806353197913134929952815123495921729646919670556533108107274656021024153795387426454672133471205647970510984558667973420541876242802227379695501421195370419689600403251564240341541451190538704379627147588377112283605001034712171131992796766896654238607344304242970052309618962838831062439373760474416397369551961619983422338877251260359653475996642228047643616256856985633980443834750061714236382916702000594712506050784659897583395284687316213398749525384074594073304420650545237163898148237863642400994974224181733274010974093783872543098743787158292613132095866575636535688076610042190261916607719002992002628999802694310994808096846164845134136931694997751040240215123942679425067520304848851899385111825182889849176157976667140892930089168711622809350892403113192569660812816502079311173085320058559460068862454170004727065617692075475556092608047100828015293826369821598098701501117021266995395246191735563699021988429765646395487989028064821404401019575916367773638354036141206943135969907915825242872096242781761778247163722668185931832698940751849291607462541261744689655036928567413063576357768944941492012460315275651229660314985441541508231984653381999548412670809993033809819403032193829679310119411337522223356663491729269039854015668886168055952592661999630799457840102083434799639123856148141376006892139994061979879887527587823997260518445900627163763096625236102158390020887769731326829983826700700481230185566640005500302976532883708912120966515932969613182691610775068630831444001982441572954485403102269689446064427346283824624967412871913796894652760248094303193258226999675108909177070499663990753609324184268054692108835497636641182338729487080885230108487284076914703755066887758939342632209873636973150831184581683096768539214625228480857550643547560579270797043237062152551396740899364554941615888293813251959090071369628907742903477458104560603127508339164028714080568804147020554496361011129105597834813484671599619118620457209976352717942291027496588211016022088269699525111918859116040101981771504663057790341563095029158500517485334747976038886266656066014257447111892529540108146607791651503748998201583534757463699412629622817983091424686779874010168765091281827995338276852765964026176525031489372192220543682503538553759002018270212907897692688707641751952198157697524666730561289960716810598498525392845705245515885695354856919062412910171327000976963188043265756949951436221505642474248540938021935350118900588598488073154321092214300062334271670606143581986462764253555882401909324993114986443476135840665075013045219101725783091350526489446627509402099722108363219073055373155435187493696982779599795579410114204929605189956997296242078436977178435190709352530772784410808530952520239302060490105899827398736037980701073036499684149741792659512389649003098743343025656142688532705381619075960543482755623396207418066166167576246291660093123995668224751612011757680971213755261680136053757204773536487671524410413099623233235783354471632648942519818386694638608797226011957583004248183139880011436098259817808996902750298471333556898467356410773070238933955843017875679422720204083033393384946207236199387021148659113044274425062182296428132820240401867256634823981050377604437627223123345172862908095606367130145041225583972853562145372955448470226771311613294162854099365875929790945183320929987284450691611089753730340874986936509925207892873404389749663990862905416079861607076497691925340491948470071529850013225355777404585165424675230309473446582337203610308772809306978462660468655357448720039994982723680111054325486756596597520372231275578044181316311442643919402525459319308141526322024640409754751664900618872721087514418527162877439159942135659365214989457884179384797484857719211230750149652020468182386283455399180094930150573232436036179989758959069017623941754789363757846590261481430574405092005736832843531300046924686705757347454851259741178748358299023294621894553473232479059664274207885739750001234563044312307810920109277356243927491798736653760042179692703247976850183005942540031686852676497774733351891366560759474296467899878097738975678311724397907421214515331085501781448018608887794875917479684489611231577191400780184835521330328923692330899231761689515840011146365198947321811033718886489256857600676110519041792367584921979464297071411967349072789005742063696271454918629827904457569527062600417473102850701744135696068892057829114969898484655616604807341496736466556645804075177332757070189644166378024779532241228597311193001051239557300139540142867534711479808007494430187122736139734961093254772085174735539848258271502323440797265266783989450377749577512157648647559802177448956194567327524881529638118935137026074928722836239436113005102135958415872337369142153889978627451595869828021420740722688172259909756576040280908178352848881687184574422045133183083023012492056689885926149363888483883812560217772366877939823156720863383662086410349015711289203953890577524840672105109771559657750290484840849021481395575909228908968184298336106095985106220867443465777027746722035970388775814067527884171608778287572411295283885695127309503872150663003504298446650614612218955880820454416994782144207848342418004596519063274295040501262153019833503654878327496136106786591703465680896687209907513369394906966588297082067142982625050848769188178586401366838679913269390256132342279891170292901213381115408055282706960761022567211816122024050865322229259968473042628795260329946755030599677148693675024793873377499610886297943918835809455873990851050024120185912449077783082203927909489064258037792036006518507159687973587741866833915121873110427098190025048874331563843834154598909795691076180601761615812973230736243978119568014157974997722912809316229611856836203567213371391241409065977605757783336820986557614025509595349854403827675955967482931947767134464237977450935061353627666115728852876279481107155650019674582113441056805972121366162907455399079684891670913320720445774768700795296671516687581999618022191886735464369942329385511755357583752459431373176893583758659684064438050350803999619552293296413166240859853020248404245703532930251182690428384009388924338340726087259751486422423152141240693932226965884927905239362741247820816576862986988416878202613141374477613619436332051806198830789040641313304948601137666671199633100647129231701745278867832512450105135807038112259482001809411803610374459332099144139721703019777664011365562121410763001765589146394779990075492161822491238706419861610152409545441533277730429064990207860443642985765325182022117064903787581131459929637301579293031833840478215112766878701771455410386085469425994619327435109629832098798423926180566138358852531012173501837979391693760956324151856272443561110302266439187248037932259722796911503073238478809558983939475040032876754071001062323340302100439625535747952809804266501711079806561399592138225566777076414393728694439710054869794286896399547098954407896602068850446967259313951416444044399763416440134735436789784148034011552053542691058337124604040184732448429278822600523067802670209973711598125699595405129839638090480751726732316904813996468059169572066886264591725326340583026692743224849809872776363019683081338639859735843986580328860572184394839129379203577079238925843046635856518259094540528493284513373997826340556671800758853752047330045918122199947929033785361138832835370263909549262606345667347193946370622476708755278777327202782738172364364270841050462919569086040377847121404941237569138826310496383588657917109394857678349917375757393360990248119362599582314681597368670417457957198938107402702578775832981218612537233030866683883679466194605074168729275125153986995969256543266606609395771779970006801424379918335788823882782975672273755151799592147109753038449370938571694629518996369658718766164638889578208746221150875799862547763447858137250970369918886997426746380916491907350481808642988145912852887825003028744893020334149025062595017132689202121580761551286640268858649109292243914195747480750917265224223826124658343288817567985092626217094950598400595957640336071512501296079272014116001053851824279510977134775428291643761942651465043349326889573261261951975615068716160105935554967782126490432824778010243451916217504471657815714155197405795336135010785620351928521108119764869417366705230216790513525815797828084698509998874989296054463446689985949390726726629324162651801565156392449333080348669007963196012221688979892720565137481528984410839336047268636111787950467313391995239650749219865781631395706203481873543429786951913191505357483308181896466200324317268877214289387542953387289283180025366123620072737979502295327666561128246468156789459516180861943848905177612649461908771793579821609540913029251397405483264499365519359646229636985274130160985590890475314946573870167128079244881896593272638134777516559928821461606894509663002577140453001259273148838251622019185738328913925883124837770169821670391623216736294348389277241104766690568660495801470120936750517804987348338235742829405151563665983687836120510789470328849056222442981738620275333713645184294224744257743781626185367995497283761639406698119491639644976222058309559495929162944701670485478586174865352914967904268428270587389449051447046930319009882891693062271543674645744651541668320355958577595465440746686872680416187199250593959152510365402830992736827127865066188018898478815694742712447590945619153729150115611306312249346119343930605502973105597653899271510158623088590833766389931209172612818799256064784492734367256717051132740141588012186199026086614009603322831461925000128324118417522030018108447166126523674055530994212218726773150628593921546334905574735947645190374968621475369757117337589496391011289557114615512320095443094413348326428070218053967576671215925876519600650525914612405456396492791471964117522982385993878316286998282536273353405180305346393592570349847354936418029371322165117427268834610688847657232346616724144914291873510827454977297082770558377029798180298368253498763408256447334555577764193926454769562182087148562177484953113615293351767054188219716723655439929169894277012119629129467938979070774789332456936026431449885983963068189383834587868594137746973364039782747366741903247605949604346434431634165177054560648933002942722092522430964096632171276942789330821116481356326075999746239114576452189064384815098896229314265972735960884226221732037834490257827428802766755039244457234205600790969157881773427683852402121645488064035905759267187053881621765195130375622195374123079335628026801596844945830104574287103779085463478513590232536985063437867446610571859602858349663849897314816113169547693195090613842949545055039694155656732733759842839750249743829000987655677552316447800511951218165548802723660190789101283240656008081038771651309518718051179469947332133797465513629466784860850176013603025847753501537801065603607716308390394550653214516680111995127552121878657731392416282952035327724682761044538695497490389678918170291423674391348056197813748699599361586422748724498890021209705813742345637405369708351841288512684273526011620895921385378425607414537610400403709563016456475481728200177234001182094721258064045606315735120854760961134814903810908427151023369569704595107010694929693706466240676429414465832997665303386992734442267120395336865151027129397760361082639332803206273316638263331274147619664141593291010563415164578365918203548976419118154896927491871680027628984341981388111882844879114727433704105971052650117426226604539191888701433310484262107277695744115697320185028438835184478574181774499706164130175854947069647309162454757972551981518860747884385370734901666791632878543218491934740620337294515447101987771521270013662007693543574371309735920494462331206320242409687710067179729793449174988396013196623065828443491109595002053454661808009050247103015742963759905950540864120516147369624076384266743839527671382662379626962549611509014726729668221240977874114681800268965103937113114308628461057067486835391780551869713274681908839499234733594192700584570689737825786959400679358555845589743981516475068678210071825548151770997848578605405930390159482153729639962609452403789557050049734457489102440354892285458222086431590024838143845051702851336636605913071629064962064477016285114320426271205775400623524516782008857725804803294873205688521427720054377095175927962999801077785193946336453810980592809964408180656156001879083277362985768019425177349593778394317953237646471185842869541719809002573299352771772244676681662053237557465283670976964770934870318639174309610917181734465062456539384545531034241360602958257235851473105896507664611294778037355881787625953321635618061633271238296232926512082088688377392248278925567250359896532479103685506665674207923454864072606908638045792854555300834945218496279720093623769328850885550110264101059982724082181123908565744738801165540552368009213387970035552392642421611886207949727331990891555348984355077619942870706515323286839255972689942751241227848908598655983808048017730239672344245387969341706799064090742285900596855348012206669822472331378132490832374104153386071912703369622811908991441615742827739466094502170955380376532224169542429975385710206981160330090225245164107943556293163002835298228436994935402347839224961329707757168791955931832670552761347815014348703718414304137017420901255820149860917699569038155835815189291981604583538337285380971276008470589865272848079754477490478292586780605980335532582139774178431384185194411741898542432927443577840269165289144985407869879028570784770731966002778463700281595897589204340924136522328417715633416709453173671673750423724762795235961939473715066222431734013450074210373106730574919939777309715556794958815830192718479598504756627280030155995170059343163712848348802384117955684947519268496780515702077987016963808137335497169746351382009007154153558941578489389596588775664058675743315081902552445120132497226610725996009347964652466908127233325240155034598941250431736154755951827822887184958350449558092782009999071449547823321393083612899326371115505967172216047198505229711783872026974023622967094970222487355299373594844660164053675314123717754591595718566835026790354707043953340549855506828850718411234130190064724563046105699872843864471880752711725331643348096644749683364892166245816330075412858583785558012999267476468569386634658096152325703339092027750336529491741631186096440552464633379378404146467521934862118812257746517706280030677697543730876706411259309934881904310263259851708261138820625286325385608372839144598760176440923034594391818546718100153188510023525134975146739119859438154235327418026303447611772196022555491841760921391933879825753800376133178410118382329071031482075769561473420532279031324917622772672262541982949319368721090864669626482207061322676130196126902302760589026852703182930052662822832028841748163821220561010867002777776931114764102795288908798824067777198772402412638168796006203599355026876727504997679866854387513662942100306487307654961787047095447215422314667522890019691257670397099875352862651903359980037428768523722872294164807717605351493891656839041968039298858844445084506677408315361212648905611356035975389407272702596966917059300483019001431667262328075902093713707154947680619412946617190056735634443961835082243315318497957954573193967536882717102205552692095323586417384014637003720728913136828509161504856437719720358238659839662668112639758171736260227651619119157170367030661487413104686017649390797746232391052977850869451754788093784740894787651425291578171001455981820167749035397264631503030425815811598228816548199177521710049950892461358894381956042593893461906662746385079458507962960663805822276525803926154849338142589088964950878186703082507540560881032365855848043894033469823613722749264692162274126962702218015410094889187707203228371137659237089750333836676456589106316927741702111988851171307963825124759746055363400585790980164619329149786630742664019786951267203048037858526641644851795767013738318334774550318026048972867967208315745623121531617831814820832714450147725488322380649957451817246286244308417785447812336701219217304482903322192845514363741564378074124004422004546743696343717419330126351681092583840762998048166411665353526931309072389279427816490508606627144049004961494997211135587575298398718453908364181159317643869133931304608514237600436434854267655581907532000207405484773987107491763783630173801931599032793456059264224589739431982284922707890682151920935125828847621940817595361799710268298732027277175357862039066003734543017650594478710169814808403665776201891119256239910777123883591290453249488551827022382507630813175588896611807904357595223111811343086335034528574094004387256613124951193184915292003509628472091295531511395104751945018096160559495041599398186561587848674282067620844256696332854428405307991617670149220610785760311915548144079922175898487585038285498114598477989771672883664156424331892395223831987951139751289517435276276193100307040173504237213766537042100335396677222707380232761262608394386665278040994362925874498070247455446264741012946112455315194554945275812921278221382965341195326464624078735521221986713103408981548498449728199163876506458209042295786961143312960298866870721307919320352291885954544648018712640444994979230185979288135053572372307753601322333155454849887270858826482747272604976194016441414436203270323159858949373237973991195372248595556952668879727436926117137030797236725406201119313026285592692353869703165868029554487789208789807512698923999014856715819153524072382683505452498612307018038757887661390975466476512282315633745124480753447651921904555073030739659520455180720696076041489295417667956299976502833260528378307129694369972966741439171056539436865108817835081280157589773263863504451279526536756469841720872520427427350454095377093722496075178972642716533397801807642841912769974659208766587378621511380557215147476838754758155558234850521160762727930049066033015613508883038812814793183140534713294759275401674586395105094454949361081667305685156225404430170371260501278413531775139372555109407669930110341597754253723381069897262474304901912238558531195352867729605690572381858454352371120601647593830133572074190961208805371569263913594122636027650292994256165929505393771921314913254231309960910248208768922162680597493814446917936899476005212448468254939975479681797134876218794383403732305374161293889469930385123701588677930318115482454697214309426427951749250546161022185184799538021107283470330271191984107107934732610951320041788807261499767668313294508747961620308252541563095285062120633980975308314294767442343813824839593046258342331530002037257649559660801774610773685651398991158737508948082714647129335962882877568359719421432520937091371757012895115802683243484573533611158827620913884329348260690398441796780717341676302578035695630212196870596467358258160287322308216989833039417072877645274229271253114277511296732940364638664577061515702643505082576700729423663707597994973875073619842932817391461254691992269750055334874521352992023827035909133080768695875545803840676587324681101589664685791383544663173563876412934724243184657715442607968012868468283356404102365026307123001430321904149923657316410089722396038530271931502757669134122757021885828699976777494974332180539137368559685345891954665656015664572611889859168219702727011063266459012681699108663580782062258347028397316021441334814151962715624112748880849623597066290921195884010722913985961793817618677008362248870956309326683725314459628552545768554619185842366086920479146862785432869137267409875311489448421754932554729427747600167779509549467897543531066408042249204364599242595806956194326411622283620351045051073950866588470016805265289128910050675497248880412947511770392467856872486726308455159451845161259604454202791706325329721950144700376080967815693676309405292594805910416702109710271086754748329015517249044837557364793370706621553386408560116973026168297675683361102823455037668878465380810858283861064608835477522089846389770404550228862550245436380870805097814033244879596466019175413921528504221102086189386033400699555696110453585938105215957750494128807861156736589199671349007447110647068976401314623191361428675644430768042484280276691574582175343944792719556772136616321674299532355663427444695688133617015141640041227810438022145130817732444390912523095873472028799535186618651412977581630877734243384643750155585393271131725556744313184881142909920900657892653844503650149590816129090777326098046354644932143603405881024218596638417526082210698692931899194531131295753356888382879861845269834659863913441755255575633195727588413654652173010562039862246915616946356270433726152346306710330371918097711859770800714093570969993469420343250768772941413054360081017344625735413371189209825113910384926685184451032286027466108630383059552543587652147064591690812387737994496409047130520451571014611265512392800642363918142890078781204591294266053325944234300108335110534690184528972290256368835789124761211338461278287221153877680242262379893859783620342443957154970866381316074250137224735781660877618921826055049457494076360235245103889970223341974903662079921477788695152145978687665500021119438985481880647570181235710359476451004330486778620016344271382792026783274718320675322856936640835652408851150159018487154692134111181053374604272185516709262272522004937349043897796474605883891831372168112878074101840839336887818392423183193204503965147574681702100663836230496133855216642214485442433574770446690869290397743543681677631188909512926722824289956115074145672466202529779331988292381461821652309733178221710061120233744832270935415763060859158299303020619942795758249703672211064880490957522339963101981229624852680053736293443124497023506191427173283850179768991761291900129301144895263719154059029105799122982931506026996689335976334458736924038484302872515890962783690921919691527365396547977823263535652239093893742817161371720198195031401588807128897173539532197777866761134052732488112741441076311060548136923957201506935858263347448350694366584084163077238585549048054366857597626024753040007935276073299664821192793044793560368689905627460617892843427049430924538605978087681186330645797883900303394365401239708825185384295216463126786067124466863267150751918122224479869768659470599428901338882756456711811429861453095552652625377535249272788458007393066994809914528659544587065188714977173198246940947090457795114896965377224805326943430978169106428464138641669795370916389646947712032568763035901123355500969083803460009247592246250123909821444363293498179330994738586083420033644895828110906667756794679594454782064074793691290086671833773461149922411110695588282729616898377102135649362861213299943208746454645482902912324580227469070965067484964866157564153282297066118135253330011637487212511627067846052652877694559591119299476505646803497939516902266644128453721526122167183939323272608156570639430761404527202526093858208688636882312005110864943940575106712622162288580845010317583534411471126453630621496841037786515478391875955329521700940524270315745408230449001967207383688264207692580974418624648711129433232817926626762800368210833694200046337739263890767205992304061222575805214465042167945977435704386390001474138719233748666296640864461505583336510795184486811115155867637433406052820408483377305581517501708135864461856381077735310380212313398590385157268432445046148491254201919057618377121142956588100227943289419295613543887010188871801566178586184464027750854275967774049333190143668101048155410022949520673264314942608314921045371346062959971053994403152213639639149913482569003272806512669373115254051277931547653626762094842058470163247821395737714766875194668309878249804783601186683677040199175370048129606116714226592032238751306257783553602599386531803944227755679395611084102388697098192756039185823182790279525091767759802742915227975185523449668059497325930840614058540363300063201825323480880519141474011457407110065147569841190139921467691781432957316954402266577908433418296499705231367713791625838445261446162228259780556224091019487080645611045545771790403794625589727089623171730592347365712928556951220442089186746956114351135552117704327712411095761640228947249710850322051349768111479039249547918470955232391075318156415251493126938447222465031831377990700794009954924601082313566156518086782225086555380747634738107718464698069255584312193776099603635874680650998637654860006781787016049859799785546610605101562840533215005856003116315369834937828489272347041515126274796956539202423162517054042362081963369309614774255300469949135789749869991195448665917053825051295971385908212128206623821710101901488856126835963221860865846274988151833386883239717266206218167076688835410629954816800459605646953295339421017390111882034163097933536719486754704088883508784747819498138212273106760391632575744772353588879559638046877129644123982021094078997773982162707131144274821766078872810392750963287082520050531621752042726834795186689562104828932675431136638508931952970450673478742666819477648816804463849760582261636964570389370779570926609517972891935456150880416323468228760029837869400133804372190706599634024384519155871188737857735286660044622695029151289465559096149630276905959083636819521099502676084524676898229098174004260504468866567911201060949179041439343155651445101161618290260483771729142181493914415371885387036661367252016983358504808024275975233082930221390133740319641634389931788614889236824250692047233956831943481943000023138859248474801162624012271523018738185650741244117380711940116189865077366222868179046137282082204957558296290338015179489774756820969957528074289567807553463117473364414760354500103185343679461785704137974849646962607472766926437864650418137252389217940728692340585758886809913276734510082488881810765284587209812001511996457507076625542526765881842380411111100839993105053969919592458123797548461623716496587801145368320877148705221276303974508987363407940109893500127813560422305947641597512017143660660888253526036068140350683720825595320824768341553644063335997049011355077764212402543068252300917400918174544185580662729605361202359388789299100937002180663750602890036575158553275659433052350299174717043107702678663859718378836706451005095013957912442858736579263266817508926949264480749902012185572432594901365184285477010115977253901501786150038656442307423050944471787050995270333930292315078912443463577391577652184021708821879688653511666047065471370695299274301657029771961204965248960300132737327214697135594203470211795270623216084973792229652055952684687218759694487366866902114144862974198034514182858668492173239817406206613119738167269581645269826264587326732735902289412016674926586814947035625669348370224198579629510414718671544652143391586151862605814621729333643932207780757395376768988528889662400610888000540650017116635136759186762937914073856254149158268955765279365744421394196085513820930503770794434942751071207248524229433358881770012276041682571560808794530178393398997596671808538564005377102630137681852303520405907564904503090289557848504655739340347833860926395912241260914358903206114544848122709383671997208691370768850529716345736815830936488444801252577354291485010153433106185874664555135757221046867208333856503776634654686569662501760995589478722239212569956449786161263197334663769062256692226678850711646789964375422140305018252374438559394334136622349785173438743041859323332761419021106891961260790871700370908243550926424495188455376570521585783174811144593762133883727341497758409244024253346822049803834341544602351720926709561299963297885299247760946640606894072691328462667397585744687184083053612923390515926489492361731090591534568571567826973105857354236092936404027387930005229624427426940039611055389498987144033768716821826452596037676478737286953039222793010074055310464086462443825929190617856811171617038674510753668623335460832583073923285997485112892636287762965082236895419364391569773552581425414730393346881177678996370937758457264429602450323273358275636379344738577472169567529953204402711727202557510014537364365622696636420748970463186039787415320330948776612939124293545383453191105524624310872362968252140866673744746686711627862662566253292993570791717604364969295446228401714949301391530589748919249899681963910708184721411913437422080350472136805581118775657218422318966804778859882940593510612521694189350091467731322504276260659435261142475446763833771777996555022388540033079462875857409807763807319544832041794263170174799038849129365072886615104446680893270717314095837736318964125603972979348441991612288176736596154783882667518362101312226853287083286649769755593126350644140254195128205114509282453405474003130317252222851365466903579482222508130810097826870965411664072288318563522418099658599873355946386994463972135852027514054055818543249646710866106846489436094241868341065797269473884281950978888210993552613122520442282213363516394972680986429773944397388804719752533694055967212096092158250460146031525787601751604785460760546762305287595773848469505707110293015018483922905541654908745497449742313435770699251533408720443321656175623285333975231457288080089145265625064623949862748091645207153740332208116107406795535184896616324079165111268639399102538690763033752001314924247281370349433627223314832718274380413306465116156271492102418983683539509961723740770447500581287148243570533449772602685900893359207705955418009638421184909505961607385078624341156964509422103805456994826112907760363405456343475860598364189491243812251140515470471832565223914062553318595085217270312934774885900671986515589363114867269148640158857238576721616630697243772087786695447895447520109954156737042907008489739570442169452060265469921888150880097900946958607527751087246642590657813249004513781082776291214692929451172709630188957098064347351074466479517619527760909888024049429069533224301029595246052887726327208360728888777570711412300735395930664394533321299306838133155419922108484462426459805592956809320719258574070388417895797214180726330689628372171473368193323393520763619532391111429887424190602478388449612983511131181935375258748518777833132633740594456726164468297340715785895280380796010089435783061639447044020722681917482210764895708633021624999217498968320882794935260651448400927926036711091929402188055303350535667235275713863917692929318245145238507204645609591477972561204193344460626815409709822633726660520831860315489042829719120706491860348675648170660384345191401290089057786790760789883908897702008642259764509706909019794595936899249740786456818045422103604916999328060807221173043586114648934047757423741484197294180833364839193021604628262632994079011154276190734371052964326777178683762288200486246455588604311789800034755784145820561090306802730883936948539803039966359297273669925670679701269343263849574585173427055799809680108318358692139590499980974885462106776176771747014911906819824385343146763654449987678443467501188464976615051912438702366268151717108206952298851484648182922498812159646131963025339451107541096357265479825933303647681556030427836383615231504460719801259551353360880743333259503913385638196348362020689623591695240641828852180669124541374317441540744817145502483066182883051261382162290758171513075186240366374516521621611567626014441823148188880490388595183934285046149141519212467112966194417009585590832546443468024462252027951220599112512815554954198043967784867384804029674350080197226005171653512605666476099552790104778493588621553152308342004384071345181159317146523945911375308052009097104977238400534096129386241248286679180977680466638218287674229441433683910925386646446493952080208330040884286044775790231995905207545474007106658613481172543323328696251641655351172380325943456885695165427453379111350910270520914022618418365885928435036671872213401435851597029625479234638172449890892358134973160104062789437475412216705594027222677547938326364050794224318890586092736273340618169680555250016105820998162231373655264291211947379758331014384015700896376942080618053835112150426711205521651809321521990817723389931261237305040561530979168099147061669980447935318749494022268130661192045218895051993605989763770637871160869996807686084495416738320665212618473288145662283994956732290581881853829041559928920467333210950745643485679690126659480387625766575424870018589762584533801706254155830083034411822270598088543828772850784957093066337003378120585268344729155359056834558273283461347626050941047479279382283009839136136555568580392325044806290021144306681471856405457902223958105562756746066390312248842396887941685988989586131342713682761315902952426904195079081667063077265375499776965206380626385035907455352026986944802022727855285236626633696057801688585178155203272714978642591131773053464118271014433017027385427650937417152357849019153895518862273591887726862419144160062864523489542189332273220548961621671216478553825642703944137530646671520647567234937695336025739468329899746175569576406086584236834744559145271479853513656599549891714150783715697593729198792663350923816177296002106940065216130554774759207220767751639721246126145756408700955625960467942153790195380318544499325483465878358631744261199455607849831771793237699543293079249971943565824240435685410023292334602836683197423453233550216141650753406192960402863262442697387356389422486444008962686803962130535517442048760750767960311413942018397487073893076840430127262849640133010873197703140604749106423587784177104803731204539679579610974052450704394642633749998081233833483213989083170631387299944904975164371142011869963907803271728706225378463880616182080221591336466739090078309884929515180901702407910863750500911235649974818390446554621358244050623951378637038303389538240117852552155551840022846369019000133079668885681332373952781083827142997438632332825252419312056028634703926483407649950307058560126863881455711062100681883903371641623953173459654228706581362619492702406535588319359007900496374334756149971153133036588012720786209892219846263271282843328989476618519459211483509232828523745676639783638979363384478161733175503686616700327963250658737279816671076419658842297180313629566404618069576043488978980449063978224642769116839459934236136809799755237809485683807294428203652856383816954852134108048503365598085048451757010349538995745674327734714474240129788742894736147443535630237697206989695656316347370516283053321721070060453870079748998320280858294116377306984030647168266483120920115373307054907786386815488899137065554042255127992208451471189403288195339697604040413958716587828340881716543549211647028285596607982459787961965224357621998208854656801772796450207308768154027679906054949995540211075470961434802618028426194428660309460179218983092209393161410596257575706104165701121684381416514184268758098265188592427768555484356043935117517139832965510810073868902664004822692508638497586069629775125393697741170244498825714680870326869354135477136251417227009598628818413453095263651672440404305517806935247727653113476241352412104870530598112344950309925309147092844087581656533776553085020992297273125742071495121828166776803127202186251864802970499843394185262528538947369765208731272092683676959085124525710663407045511787952205268694014600346078699211558582569799406771324487331608628445578386472295242304113375599979015300196181418360621906081396702061359308645525742112726640962237076364612857636805069655558369695086851780604981470277767116484850669311041538916351476087475768757601635601606376555292737937991873242831708922476365116726617848622418485836365481179335670812259101982596074393667749090638856692528985964972574141339733705106840997271574500461910311226269226985719471696525911915742972621682397481278330795824052895708142856334448405781518313978172376230920990338950541771176044854528823791685018819655654227178859288857592185924779930600584514518547699581845448388760604888004001152575767758305376385574362288905798874894021309193709826753214317060615911659863435221445836315810744167255572110451699661056734216582139510364796197723381907986286842852575843055250993097553739017432227074610562121214535432769014928316821109100763587543045294175299104911924610078446112018957232595788813656638441683315236510323449123434720581201117756462966990168022016969872262522301348333305427989372698250931009618168516045818544407542096996240173275640516127097845794612825392695951977623263292895239978089830276652641394646062282880459609224085394484139432322333822454286828117725220341243392575301369637547280538574634633219149433154873709076306335484477295774012385153177968388608435381530277577939227265682015054459532965361114329706925931113679430687672342295959738974179709002149510315318890533069615349719627141430795544591263405671144462421024231182364035835354012605127041857160904321854178973733014333233484038166962608071594416512092353787159817539408280203412541917112157091269158475903954995071922871332178086872591253046421757804111374128998627890355162425332376237660132133338096430849754427292126599870399934272840811247008884555780870619427537566504998095504186161499772364238553792871740034436685161569548639327988237070436938959493257182077255597859851578430434457413131040728982360620164652561639194991357863467425689542284237489482155273642731470337301811042992172503560835260930171590798750559322447095133474161932264867135698619563531030244627297100665844158797187192742759016244030475959986167956123997657553176617556728719133623150017898275445191840797463936691160057937336854868283669787280960849449632567702595206426433713414956409822410144107488253419358590240919961103065702856537935643706443898625132400977816830301461607123360616276260867189187413467048503946977702644882799155805585113599301820535944694475221116658600661858309576116120257219198144059686496752410733098950030290357093239451287040840742136418998307816866551157057821178313778706961440751376669780117741659665060579920688798751750863708565404343278646983035134182221496231948998315244920526143982716322607775606530710597950454492765463076824950691303714073632636995929621799723228373726289190904790813260546823931552240080433599136970694762780284451220803662705618737959245271265853711393585804813329108526825675382882427720403347214285287491092549778883388557076757562414317199056153663688392530216678052341737532096693685977497450165312478278126693366444120573380636003166771498488412558018850182413816815050876548736695319344226396609907349394136123328647526801008722757417532642917336915802530053951834515269365707730303593398510247411677987609924828974807136992884466263884588444199957300049277876152716547897441707060639887021269477372170876877657927052381282016026221207763893288155294470282388132624581290959733403959984130439271249438816995173478082429801162645801334114700230431932570162751548107796874957894349524050697893487314817451353858462384968762590729932846345600186839252572591154623544480938001763083909312453783439477381724370371082532442963081411933378746154996554460379521110741585664286964045320071202004508879307119622780180479427220055199313772173080840695134797107468024922211895910442147685205080802708229061385049342556418994860684177628803332767027210060121385673395586459379779768387264095170476217781807851316645130433227461703353029938156941458886345236276768288149693941420530460297192142791176699122885012351451219486571798574555791358143435045614740554489636050560213855281311054866435323232963824632243167335126651023607088805517768460987597712368841382465897120029230960678218795826586792708684635936607375495357854888671397829663057407872211464462292728195888560584163698397054963889018552673885727184857989079301546346893388405140637827690746660583865494469457114268664517696591792495192137400605475193803127623645441387102717481866919244152218732546585409908957477662191815928390802015662915942668909243879885045870160776051022600866352676239205563898623526824086831649030784056846128457767892924570177745980010641489267576246375264567812960357051792471553131257235975005197612293388606481298334491843863154388841038023980213650273838887153676072741159889110915869087589364275719139324470810571862054786431348619844361013310820735303522548939650200757826489168261254488523463793130246318095092062710835339760018524400914841559571585628042497525235992296779536650460846976537638253853442113208507257260985424455363923519785716752205065276971648367327091497082328924865239974348566303361012055957906322048487426483638020687852302815787547032479895229524430006536213307742985900019056953956303854142341592067835860598193186284568107354400917848619639787450650981552731934894790014659174651545972716605045954719574534346919219943670705781729219637639735399586479822332376744406915250293705694411820589773606525670139091918147451430620059913588660928182557849165559606815758536033419168655198202898983953282811881920922421074075709330927213410288724616149126800859988922993745999220894066708372740854365712075239268620388162521205225530038790097738772963475292767896317426639978682511711619270346162914420622792012616429872734379982284972853458039229989961773830404884369952415179646663691341938706700537870277406196157403210436599662875761328769571403676895921450249879978134307416482666294720082874252668854397112446779148734116290373180217008061703924821989419608249882210737280112957433882446380474298144410703739635426242329154924117860265434553016836261834394641720203443142480454449056894327374385017239190838676084764384160068086655899370025877796472103305101697762050095367428417764040684654946312488888895515265183210829017494302181735197572172046558718965425820601345912809624631345704476276468467253266219789337643327693844428716251702978811930277268784958147803301870952328878195393763096954165956612547380253802935226631452034321488611462440338549337025674828194890385123309377042665595342158989260970891091800660361550230237721318264734271204524461206884486149682144421934067627136233754605730731706497421709665259871119129642873821870623094038543960790105341058983995803584309636777345426447127065278530220453050960243082122081296102420761716147597503883356252022787526500828835213589385936468075489284739883280216598232641550148465029291235843355394153898931380566974297832134248319379768230087524847899690464811845796246674373120589905350206520275646488569111637345691877089031295678012805775152830992008965585538269621920685197163100234319003594259525474462614733954363974598724955313383700242598218893259194414749640713338074768782451827385954203757168729283261017618614247023806101535828209018040878070512323677208788681263211143851101305471878507114083071209512610976134521465172687901293067249889416349522172008460216940300581910910898410536727204453753198208016326472973093901877387357612990948462225781053754822021392334110014427383707273288785162239191821487028355701231554275384240102844477890258275444713282827782771543959461303698920295879053335164541767386815118987574503485646440440794028379764165661699277654449783416293075300792660822334680626933414591805125523177605527226176276700088604731298441649271498013328396822414682930337674780220308608602568948204333265932364649657966878099862414380625809656467362234879110076196670080122153464588033448486046596413963551987208041539482930913521121789510208775275289634904569090593671549213090823391474353670098594581669438570695992234937540316203810688110389701671384756893592132017068771486476762102544351581690482133911760605494403304614151206489797109165845305860519869746925651156995692722477727403106958083242862104400123623718166906927018243497409098313644574584637589980508216893892306549557114026562751557873004956900526630017712261701945330657149218982052990757428094203629525149080453649714557496027789368759735393947652150253846540380538708243325359023475305909622008682431031780698882221703621423596729745705235912329622039643955196276726613666520649672705369340449033538092213800994800289122207586688947603621648450683234600250546236843158855967465093590677596585403101142483984049140170947386998891124284517601473963550337628175064474633768358987573507125231832602509889045938139627088330296970100839114490548597744878224418939623294698126388827373825616550281253737045078528412774646583548727413207782422705323454557178251053888597888253373548894184216046044882967466167605892700699453299556560814162173927501859420539034055983294873487914278708835243642226648996002859437730863257349861394246477344701307200437267005862308623577780552826926745508426003867052298324000459722100225378473219559849167096834128195704400113507494996366213069923360536772314944297997797258007132457595630354340533621084472368528771739659228540975014051054058073515089621362001696815664277560053177466105315231973966786262098798786078884809333330714481441227646507844929287552331383963063919991876592245649161745065763120929116261406088152126166510314607032402118604799334579598815737002144234771430958374221639496923213923535551512529089999474381087439453782342184637601434776717189743778594052998535340432764011574718175060114818744500433175677432400335668188416700133471135542776702185436313321532604198423105921998307475895553987472413420207098257392856866300626554315396415033231029794895393881657499287002745196324267810471449299739407567778803234908682488855364922703583221261641446511370130237482770706642049543010134351144417515595350713642610506253494947686689788802953815245349274480190939983154700991710129841918281295220292114247520907008058989338156591246033550006780940266238861002843064889395606488330531537433440907656687289635208851662221877444603669297055533012217604867355789258734487506099438017918569222916132777783822732911326495657064952999018388570609787429945205226931940832922599434044562129889522237439543432343680743215215435528241072150071232270948441075329726665599130677067592182072318059318618103919494716133758233390704114520360527000665817215064104261933166211324861339910635184251838461271835089300060070241661216481458382153998568061582378301167054662046137139436839028768307982206321513328057037430934876990658673178905765499490046608714153082849380593613159848157509056986050899100499253792212036512248473983564181569744847742233487486826192947591484105235168343402185170244633529813073692051063219215419235982554247894675441040976220213408101844006854661222291738197221538303556500714523265704860304883933376703961079854118364527394342749081382165132614690264233223102048534803412696457320775229755886261472835802274102460605909090920041447502880053105700836055681316905777250926913870542058007047014044421142048438031739013172575616581955063021566400799320545561169871917736073566133806049159748840211646489293599538053382330807721046961520946531039192093371610620197740545465840225861544542249588722002504332211964156926699248565801809609787636202207640105192288951655606373770044970858107316640960923801387613748414414857941800953408889506767368125663345964099130871859539646327320298608050932192194602909924031541273587198893109754536054430581664172961615192993743049412428349741005266898382615641260227204366894122537340051614734974163136427411673226202095325657573923433477741283021136270538108899769389637130602086093193294956061762494968861220461383061971484970233243201893517750654888752537979390610513706427881186270366558897228060406109068568359465810063167216052298162981764826563815865647604040073184059978152360663883091198583266817603408468170465994891537278429353922574948728226552014258593240389431057291657530244724409839872924373006645519165138744449882316819962976841236107427659833221302320180069896608526240353061002035502080342379695822159576131561053084796215676494992649188082438569613746981935040943126982403743503803907773615599000214804432156743014033238359801820315372326394090823270001210576958818784186461737368191609207507009404639450168644839945643943139809061670009456807429111391645916781941927534876129169440938951210709201237166449298456369638187274409739355294675225725675503228029623941667578747616166126003931792643873977683012569521353045939647009645200041648263246781601606788237108541338768223875205195982230588516738596392014352706708300080018285119713161052089732996176143923854895438100691252261606698289948369662370127766646202299898281668563997840573832762149191859263434656941426286491337242109697454740195468062931977279618119554462833295850684878453901597238225437371646626669156000059228068709584619530244017572939246727754876855309274040792322672321351413431654611050483126966046847145691451323929675785120326810712352737782468794319404157139355020292923729548889256107860214373265744434872681065625031954745781559146306249609826559063935718637866407504170740284717172059057722812079472597187197020577482840591832565699699725499967053764960553033050484870210049270577140598445145772003364992222514040687019848840289224827258576745401803627507953707538353088504587804632969874673549748938722204803588786456805603372027503841126313339279748392493264056082676935819126614456687325544502948634902621485336777808649571888987988839431568317689406042414610488885083465813912598618351090781539899488987682594440203975804180553781652713860645580788807827355538245549249991642233824649186340555495760177420216044866863407551714408982954551703165742084981748462814586920644511446266673630248793951635024593866806693312626505083330777783410555324160035841048378929311784546077788597829720903947427904364202424341771350713771325999474340827613729681654381333926007862894610525652330848386082108286784008319799355219989275067557230014457321191060415305885933898303472737223056255712451679499423626342950944864994460766183632232634756106962406880884395637017685069663546898685799330167698759419979951570510380292465171493225041151729167202475187091051025030624735548347390133585077445819396308081285886146758617705327492396290870291806868638796868326894052157284774145980765812459423162934746918230601919305920787265618662804410105415927028225673003463595150898325657800803227931272190818958422506682307635232396830571571224589852777226080442789307226421233380535556204336202661974665862941977209174282409647591975671529807514042249246814699033751711856480108593782060770836068247617968764587181341587499329693019036841567383442265188508414785572442044453927294077592471648450150192365625169596808378352286842908109833819941239343341155049491395501596298659731178864781617750528730055071772196195012436088302011872917640782281369593723257851490432457663466061324931916557699029800100926182840643738910291546125744802958968643634040496699101252220384126330187604011616638639127774763214376860870954117114906060346590360221988087071195683970825231172458376588194234864972023291176853482898668915168317029891010036403114798039210343171485060026279498472822647440642609713957651527288420754666285688411689903392662466580780448389927729945892720171184442025114752004216601255072082414267663640474015569706685668546135878615518522067569934632742460400855379295483956917382995691769678956885482506912902135479950283405592715916596677695870536530656194250964370050991216926028066889632821947705146380964826731146684215871638407513687353481267667844829282258590892002600252317760376935254378313202093568910943825711763076230017784419176792828035973459487895618603399381369300798442940520786480689344256347727054339955443184449773435630713245710954745194777670741868282688834445101024178288502975688104803224391353524543877509246117361316611932578563005378454120567913828701009467363794217278258302361475998113868701212070075999628248060662714989814066141997612155777328579975836494235676145185303465365273288713517700157468205717118371421833161352823094526022258596767164981649191241060675636874856115306354205614988429963552077858870696988624905226008292863843339187118132747328458031134207122601713841874330022589037402537771355674087706186025728973722586940528455421311631320505843203199798471353732986215072324499422945316601160988415477400942706627393110556276102761071298520658048850908387677325554722545677079739929656679290587554408083079627546352776327007718990664092569723407398495067835475234889752526295599317092870391263769169292235817615282831683229507859463440158390867344110394226496520180658147050229931286762078081094227714449048532671326022323002584717681656407201178167750478151855572812811274691272119516516013796652751126011755019095471500314467545671758319236298058111760056467420388267365129777605230631087896497687098503619353183474917197903872781812720023008091653378204593649926449607650114567379677654777552105805909378803964753759755721048081147662662717842005408808459572604110344791966887357999733229570280937219970423509007966960910444411700826743173656551509936773544588335398427571047550446042692651166797824831400971580442579734761693171041736006269792901772485670384030457676929519113557148721096506948932703128658103511926776018427906771120476675659199338257129403076783088434426786641329297192734604549271083991984419178284393091303053940349311341401415843767565826891772626740714939794997730159487095992897985900998434511031681187347768034072986691829579825896433056738587826963433724366658745828305363488550784692543063841071412205801930661667636115728453214970037864564520683481873092640133912045453288969481256537932023110245548571207856488930864785450649259328398367932611891685548904336611902195123053250618524562154754144160706596538500498807229792457660900474105204943832837656715651356804833293832724335639367785100210445881328448711757702502890415727914023288982148552131006735439419085769065216700450766763137508239526693573971496554682983264067229604743438456908725702246429078581190336537139359956421712536101016513535230161462090642135154288878024151371987541274356061385475377463435489796387469959767777814252354105573920117508993056652158200246233398719715056381578781447326496531857125433753184217277825975950401442859887163860105765106737567139496295677772984454396334111497835828350606120291512478303439036220461959034782704771764737979396055125152265072202907705755920205034889658804060778053559849597637525921801785023125540187378469218227255756738081116906462625510778043763144923589048885017582418336598949014566890952134819055278454720778281453604799168605125871359558517248265583981346705961258623854425497780124763770233797558033416971391798462614961563564584543658795368864994228876656858710486799253211016160774113961471924423355818811633577426967759332822069238111168964728242448901309899340530332736255799762074725328007011380090664239880689315539516111996281397527914628456142006623049562731557548383196631084167492437954033697725126132138595761814914479375852374743039161300234376087021869661286815522704183137175939402017687546466222027279814371336277952280216056660703019840313515085763413501393499296427997450415273077759435564873147282575166577382969898967221962422836792380462837308644173431575960518539980256990400863289910776990741207816916898369500808257048425819596229158232654284017660983073346381790058060350592882426061539507984448115539430497669111868313957043430214588821902088134288599932458171531252899027001034639745441272892639874962611682786702341671126118251360762872285692523148677841228530224827670944994888780960963449885677091318337913523548417525864778073576766247755722939823595952847671356513026253018573457316395544693115470645075659970203768293081831819666127955312138627780323096556584247504209919375880240206585704789439069865348100110988738342798001374189976568639521037445480518827392888161634297589904379001066538201469414669772848539437509470155688599498039343093400164147629307263472035177776331320007407553164357328377129695049474424575789483517695845924139788322568199370564980518617137692826275274170560448442188101107379056059878361668188643944946260909667037516216554555021275842053758286572566173701250945395146003562924721448962586670123882520312636538694273852903068497706819467412287371705593547721523166789104852364832843558177195879111484602337053724456014334586165100236833066158939784059931688485330616463148506125949387128913000116304501502658984374400720274848516280699726288596981896532545670655958254861873272269927341226277835177378866906027810133326955798292428125819850259261182283242823736049029659319230748265094138475432986218772616047814156013833223344435491433483509757722375483962957591066493232755882688906684783827199505149017132712837810210572451606513998009089625036377419202223911494956351418849350910963420031434848662136690631839988900971883090732793855644068079763717294613857317410101101648140699853134360081300125612965144242642333470788154309256483554996190081786810219046767555359530188704224191109463983689772464555240010043619808129270696317387966585310631419149538754996513089191055677003174135987316750582230163990048221285160115686402470675420622010691695223459779519622511278299820441955071175524633710054161963922482633059851552813904653090708995505546307611773455200945526827740329642116832810370602890159028962997049552201772770840258709448092873550643443978434066114885861025916155369343145942046432903408635294967464571054153863350337301847424631424857021295788379097709612032238008199456310543724191023164079196709106473535880924755372140646078080531061105936582638151001688510612623020906200188365881161037393967471219615610515374123912197910096818739824049534980284476486600160263475741412666437817619834879171371779801074946387383339853738667637367004030905720074738122929063573507062665539539162214184812816628929577706723096571351848646021234977894059561200209030893647564771621934615418703902206083064807069309050733888046197901633319468170112400353405836053690624231692005698872880337299217336559394280973223628636686635179529632012360930695748238811855670406625182988854447727239768433284005806512449792847227564720554335650766134348168822079525576408164287179981885065791799061119351585923648664468655464822550462916507975323862513097432257798313792767252134953785665925494582323839111667018034281647604417857117758802635108962857238876072306935882609667894707078053393540363631024087516799300203981040361069366417002570240513721105299685834132446250736362151372525628096440318021793267979752786846320626715758662795235815290156241347606464682668903485054013907498722574599385687604859415270837894739916112962446512106621285452934699745429957724636851726352236215556315210465077135586273067927571162733967821188555052469670283478677325101925725421390727206122649172076011275177279483479101246724945694626890964765567965670053084577807620337808552897458706767280239142244232095123624798946304166257266533045982613052123952343280496018612204074328855148363944546929210266612326450107800272778953245810589052172118681189658799304787119165923826264831131263375386749343152160100845887967243916914756620900149008545443089846777622143511883344753495289097714539158897384447791944702487331977071673965505749395231132660108892743915467622571981757308652695513044920106486417771614284327095038751048611038269082842428136567751582028387529320810453617531274141787258697572953353836543333848564368793076333451009884447393454107428321050866101118057677539572037862249234388834662561942300270736337473247388042190546426833926271475909272115290954751290480901980024447012125847832246672304177404023831782817659507216223572830601344225526286118256078558018855737900319368514654302104023242542561466040882420465399195353624077127257467238159800614882857423652578542678620583785917255685098386200400307170475954764550378081163952483802613989672901080203721192214256752485935587888462004594393197300963288249351555279929473692607755301406267721098378807936277675825195061917913988041098814877309170741838078671279371635860223367289577595891630688793616205165827870186096130248767717823332194041742790410453212200961657037630872701030880701693517652882341961666974099898888459241996136634235297320329194926390326471115872138395970254523364000359719692181584659666881705215719990807333672486522616181887483448268840502593058442994160769381564777676272397131841689240182695831859734617447613175583766815165022015334377008564978695705972061380356824209489827493452861536599176778419110622581411463052171452493022533919489115387967297822042684605413153721924909162883323649376973609238843939577304409400293413411864106714855669550698497565210060983124736013488583396931034576820045260107941999571505240074267598819819738477662461646394143723568237325697832111131335331228445662124209311245910566878428359436932542943171656556093184912932487689646715893017610463229385825241064062241978678125801771627752238584931042530936008461729785587123707932836211335457948876062957625011395202719321261254932677342028847662817150378888278018999547826272686298188714726907930885274261582074477489128492554364987947740417582376719304417067092340081933142042209350529832622358971239831448205431738862456236777497933547521298650885609232873998822246616295045670077124580168776407961594413507002947053888479103406451755908652056181446229527523183932497475532220188911106718321655278168150832387764583947554374917773352246051798619733819409631198012182267244572419175231034116952198364231542374518883716893087206697003220342624716664649756704725727688692366436385079953289055105479923839597336863699823996060161075544069320114929301371445091419779345546495241345174657001282450233461857155699858581902649180166032039676266448633232942219376457225850838933590167870924363296885964922733234990279001632901237218198390359458838930376981904347905246749456829045125654398325729531277669279798744692819099584957946853610991603314277181600616019927379087982015655086883725589520342440247578593635737286324558435126521679111032243128907553573725925027819609619635908861118293652502679825881043103323968803557265610723410472281767851522464570401558633988427310066312528176186025146655123043066698153199330466566045956057607664188309181142997999147792985530661249291657273227007469219925523727636203084738626197269465845522373236770016013558810192117402966445847951232196913679317020264812606003867820405844619895353160518424117962310462195537622029782193801507740483049404771971891939154043717423937830464245756722887014699792750294856125581841043429426478102159410740551584127360386626384663336154321124339010447183113243518862045066581263832418093539753177863131589659117101124236869952488537006287275502416692704512671394800967564193864723196882694260003885731180048943767672191183308960786100720733748824607834966567961947635079571170101323990124054552967427201784230257930525382294920428039107270116938811179086556130091286039954625280062160199088242190343837477630678830935708016058301147518955891605203040866258451775889105139375149969481113448535005480100786218526829323817330734165807720728866300554569982631762770540546891939795632333523444322508200269691416427551438928874506523660265569299008079053248193304237386514035722856699259071079942568172851259703769897916170180407050881624070868317339691658606643366293201002942497714307147447286576574042324295635530943510633674636731467661431937190260485331720598100015506975647340311851552228480724211229963501603155950019938038271096286729054276511142937455859626858887943360515432557973314141502407566428295182740191523374383143642201344752746297496403596347559916943175314981762656839006172757044832065118035094324073092736927887705363785621103727117223244663721719403648384491798468326341053202760309434429374991380173552112281747927633500941188802187975871472593363659835336024096441142228467122579737977573200491172155103463042574032638441552295053731814207783719966546260435263757828982238921519495599330264999789887825913487801043776745609691555928388687533139907080876756045294074618097100000282922627099759405240423167711740417837993527650904389024448364445782277416045452931564275340959260643273308683321276450223253229979925502470157183108468347811946907922741116633085604894719656863280927918325452002399984328973697469735390240415518837582617968414252569896149421863043201072727180316602199913328377954265804875485958631532435053600074972176201732746807993467730902227234349394677680799905616599866036658108104007834882103587357938033170906205953535407292176739966564454563505906227333008877529211780411954692918929462619872270517810377756517963886130287344224835082958462959033010234606753090736099454874604810329605753896662637086383944802430578209388492929141838586966727736386405139371988737277184104128846122163386580648745695141976774273076867133758761861188341502011333812595562630049660215479532427853278992750089814550556639019129086225237521947219013333681996773235647337243647150231549246491876594709692750689010020705578423984031039236177316466889214481019882951737429388958167341627579413776720726334815798336466013773228209967097742111264122749070260039358452854509062200731916605232291614044904239537473116850388109229811351544720779535089196862318276856036967947188401334726300390370160164386339660761278058857349831650834412390160877077858442451637199574007547635130870631966931090430873180197921105183385835162575826149912268197427645908688147774139179504703148460220028042486188463339295742083160330255513879760695159138365306869641772753738728161459864440306727989442565273905919548834751690714254031909191934622892027063474027065146769035238793840623454378605569197170478689123103216737033710352588494564824666012871765045612872610165979324772087388924048005501841366754713170373900112541641766977968628334790389655823760304178265716993620938740520557906980173689231733646413000271640243355524961607590777390117330148227954090708528981968938126768100745796787060006444672503069163578022456663626193882791151235376448152579943470815614865054597188985139141851939708967916692365935246781862307877969378588466936841906417786017503951083705671857574295055113582796110834526148104081940666959871595470680547715729054051901719568759050205186591548636846029706938532370062924012398041804605813492765910326952924497538951582543562267502672076448969545303818343794857303662606287600868377440130230316457446138446372660128137180540564131247004309497867217115897034169945614464690628591282284373798913366484886373639122136209387666208323052954598100250292973068131415555626683032272524312618147221467469447939700982477604895234719319045808254217074167081748493854868081698587424848888564392935743469525067328940003882175506689536534459202515640897919412842093805779631585914322831472471850479024406471699752865312401894677925042649942006673778394892314614239080597445163617056160449130521029494869699006438487586801309517839271385034367932497466124809333005316921284765790193501878895775543498710699882747850341233951183587624728415173024858273038215808047076786485541169734698843578794020335167015847956139683994267500483626853841213971615402822471406177839033265785829526434826439327648732582263461719782107485377710200573820417518741510046178572680173371994972680516412918937590187237345077184633654243696059869639413766581160333448717322458954217063055159830717341237233267865353118842884842411284762001322760414378260992244160575406262698541213158413695440366634474279420330025071411709311030265145900283738926418617914040568583701402234617199767108976881127258672562820404580848760155703269362302350260599858532126440525231412828808383975892005108633298815153642880472916599411324259855730562978223814859499108920103782153672169968891720784572827373742451734093587295590086299768349956125867361592180757847371778288360816322881622100518076250358107440265778230852711191076460902674765061795965330137242073563511939876299828189332386045607116406082832337251649827558689298648045809443573019409228401872574591245945155200268564683228205893298145617130294072113251306403520013076910844344425981412438253104942367885575496450583330387671665054478046751230071680594612439055500500989645021666049857154490836385627360436826467681149745646041439767209852453920953105490611663778649690972199337886347762335869075927849612558530706669446704734925197527028548778115650123456277588381216514045195362587448462645993235175379131181626293537844119910937006151379364949164556471635344719550623657258166510417934567435013587721340979134841437112699101859146266223828820910768470826912178918657169320603065243722681176980585177839901623996562638374941572537892141306595717247185387600790193480269105576452108289240570503153230857520524022060542005538863878067607218217590677758653071269930919976082286435773003878484813149354612460527681184387603315541764016093174028059954677244683471337229715549370844700005924891735289433153818312808346985099376893721531264373079912341556547030205212897499457462875148852572332196902929756920917917465069581675432043752728757152582499976477560250806291101023072846804515192694435394283183175538665959921789719952136843611443376833535540939693474721821235965338805867040648128270439009399331009170086493700899088537483886031243469553684752272069145972918939713098063032212302966716973839372694650886586770695329102698803918059410290455237450654211295073690424822551393639690919771813390604151108175626893468344824938919121653790371280806980318988644274770444691736683347397635112027120843157975209133650956061932743178438776244265977200481385866218209977237985171764879337301241108154806087379023887179996609817995187137555717722677374636334401398974423171926103104296353048677812112190643452133363985422177290772288822989117464791625567828456474538797515349549724400395276620494113720980221644328490702098385331744103062252172525456557886145243957555935104686398592599791990600628974158795867361093883879329409263524516025187312957276348294328750154050055658738499729638594999444159956239262933803113285917665046092825449235948725375664755438155754455736151953177992609399110516855362237967532571651139134937340365767941196899499076697263809189492150877435221831634852479145830055289402982263342286458361654110981091393867015125650535017541761983498898171308217946916884002654767384902470635630632522896739123877315988851702816847976813817221162131014075558425771853312437801260849131393866795169911448582153887242159090628021521579693453692032264736831507134288175666015893600245823208498060718777521653023455942300758337908106673924779673079002851950208218624145211602266694951157542703291546768538898180717242298727416979639244000423990922594328077049462687549217814349062234350665333601280745926993431041665075856415983364096557178458026459045253009778950410924781664340810626193933103729028034179823807622054763556290467872369444237689997609066207144939504932055879732775129839706033055286526483333140286984720640996164807040416938803331147806625337523796326987929954412403157048008529655866554285665104489747043082318814035030699229376971662822408013520562129733339951717698784243509895043680162937300263545082506364776725457540217086690368109482573219383361486285710968287895471727723811993005195615589353044035658646193089364044684385402458797633669988376757133334919036526954092109873712087956462449725305389833462954205035418797459759509723169454191847455322083721427928747404283943473340209696297615238215473568288258990378810780535668484435363187014915725864004882186081638732945698323544482446369027537518030212347459367984263727171548250420220737752075177090101525968020286434503762853009044564060593197106878837984710757334449214632350404856996936104312970458302114970189505226344158264521399925909963352217789693527573788610584691971598343805208953855433022377584554530569012641221782004810527796123913229265484698559471871916406893790037809048517826956943120353177834047798025237306664120543697185360972869802271902028543996394601453714091096700578351975577654433315126168761280165333594746902929123342042166122708847104690809233315778218315168706570211550067324309222034439244094503298360903067568918883618296954216696608241983445764164092434776095885415387923801614023487235668705733026334856423664598365081772742288401372037130060816251620328350527572711801462483997066897108907368357973185855430362650589342098573846045049111989698937475885807793368462345142084295069338556575411249202480203299178123853844406578950662787915322826104499690273358906996484549994351053575543854032071685700943238608526150884604882408302056884421983297179512325481182935258444826774818404126900885326353920497307367235451514208356250504299462406883182515106907581379222117287755387034308596088245037902702413247550227103080086658463236341103095381453577327804635236695477354768931477413866058115978138951132118090740967781693636983423653896371851155885922261889697225074670794771865730654620630432928479082668364019402549608542726446278741823876405802369965933943073153219073123956645199689891566291166079477427322241053216069888621155841194118167431174559581958395460088002717707203983044384480327978830995719986161576784491478862142430058000661593973284660296954988715088914636745169413185126430079785404285793107890447750827940504736739523367779901261227848000398313021877537791357651323366894426923485514880589705218431308542235064781044541190937285162395238709433597828212434165124276964354071834981133598124430640390156098071641061463892612088871279137381261664034635763281009984554805804824987757127434442408604109721915482743218476614263507280565316768100701107633029122351707917785592186326443376435443858375830674464242129674657002762787787915584021349519815050729284929214290759531594078641976249388500185339428810646683574040018099229959640459953478491132132140803909639464990824284326372052864655389795697657150487080801803152498151394401475746183192328453866421145583427873943114631119785336966279939699284012393782470248935985080750526344983713452108895299650323220382541786212810159577449562420771930173120831929128072734422657305303540723959620152006457287188528252377075409035216383091073765572409806593869898558313619817557812934980263442677850644742307108004525382026040804884213809360777381406409524488616861529076129008380844021288765229487274143684014703610027123471277747748444854784964587267572450596319998569293085644707504185844701523130804964686255919557764698807689933975652374097970134662145566151890494287355054428790531410097612549596453303584191472261958998922692292056028395410756903987058215983918408675895881985700159363183017416150563567060085695030879921857417696294886156353221425807314462874633648020853470447992302449296390300913004686269868470707648321004285686624084057412410655740499873059107087524921355206670716743502438302505272403102776100396681648228603314432720788368753835420742880540630637077115789918734145063695082626544622964548728156377699194301376475059624532663303600833469096700549512525288794889842721474399341216928618952264161237673202192146822404181277831248251747207793325925362288214985615914556731255122412766865766409120031546570777116821230444465010468741405222519987341885290706233600759068247598682340602905500179486584554854705800070699340335901695558082539120228906208480109655064827957002275598805272919887278832232325999011124956921386419638272098651154772450320013714274648747884428089124998995820238717435998464048466175256770124635803636509132352598734751952939262755074356039671938194541842533857523066488700131622958274942038527673968640750728968767619186029469775807518785593943490211263141099450914122014873967793491016780792915365088516016425729294109632216146895153753726861682628970916062567111596238100196512349354952520925347006574145365816677994481067958515449368834127244322772474914815769405573132305329207951919025424246412613384944830932633664930105712899416603234768805798923387779977418605992797024209501623806239168808500068972346199869975558827785930905353875167937943807024761636549037608056269212152330102664834916195982098552546259392832565889252261657125814256153687237794037601864600310575312942122553805326223629004456707532982039151860661801518648451635771019672108964361132518615086137038534195496170702942698837669815882592088874373172342713815237496087955895342957079082947809107327024559315084478845665622483313615258171693971407098415096741293032515998329586561182053240371390273150284962036938613055030778440382162951997180387714347532559517085471218237579015016432634330838873914560255475050208083876955200803981142341006943436325478275435330367734031691080023121293169419703680322425649744087884616057569879272132556750775201033431882508789260898701635642116835379073527092281810953134299608085092204293604962659029981293770817371628456480223135412250105955123267182578986272822442897991885606428575666394786727083238859012505922605544895648817583497339201876567842131826927906138047899599094230734563180136252025503813598832865166759018160108959172921088752390392401335824310687995100981210466210843187640353587288924361974118539215763434126527109221740640498257455009522195441974803943680822787652999777865630422770333510505658605705717027683698543946471535316936780011704604037337225972654258675204542086248245085959499700813767830377167817141640973737690248584608441144366799087114862527938588984491602391896431990484555825301623690820549864411491103219202134455034450901027970462977034811186895828046082553383349799508834840182997550610153318653861651726832196197600175751540122500333392271183690023946470990769262281731596577028816202160172495565648051910449791452849264981974229846875530006655106712179510207372992328633852297072831060743434374092444959050285000486536155230474377560456909244765872060541392710758607815383119021313886140089250097242873203410223002702552260962350442749992955732585475976651886140848750894095614999580807183776207056750483312649245478012774947772857605368813166655067330761518894887726929907270047849754397687038552430707487173092427364375834976786475292534739022280422711660727428872119515956423183990552566676358747247798173243000292878689249900055502346808857471631077891428553267410798631571581142722926386514301124167140298404448405187886949359836812978521095504125870806096644103486467745730554159137784093780069429821489807706528963417466924182575147346825709239643708902998385857167719083716426997079067671494405371202149770134707277606776183505982073644791873915531580866070045796543103132407094663658011172674979585635288636780334114423813537793338783711407211247175157405238266587808224763790079083304639146027538325813291736809244912911916410564038415516112824129989183362585030613590497345531816184571974107164953220071806046056716815517863915753003146965949053107819217996578989922912041155422450337361055831054220590642987986154341846152610592948550044680573733582754158633766556323991544756275842494049505517451520109289413242995749582884282125978414042221568311624615386943383198191134956016904116764915429383785829667070484596526940854292780732326162702233255267864375211083425935273202080057713847070925516435642070434571351741548630589283020864574989387495365562606321904209400352491193318748253597306474719581680029747828533869206008768173495373121913745365616076098709495420214209720052331001444855124272260162530866880519325032921934472703454467158810723367813646538307036950310976062959208288902852682522146183783119235394798950349634673459979110912781339349993443655283477029355838459785791917267892435403335936864677267936890851116975397008264756234607052073737132275799295510179002521279203584950603119159344186319734612883014874494617722762318847329799498286913843277855128406918357467135243529403867018481726406690951266466980936216448749275705706136453816401297787530351219027733507405206907437810199323261020783777362876149828936069051576110950410134007243974158404179519457342644185507246565910672913703848820293335502878939239668072310292999666773519130645731474969421379460560650495161534580077787456660770486989292546253617279658001792452831954164302742787624170056624212957956021162209998189240922426609463052963400685331045993513397856936242423285399415258727024257188762556624701168855043023767534627121101767683700478791005130354071854510780842585474268546644655907552933050077470089059952238814309091010046773913358211575149715439450611004518989604526414442798229120065634102295733334455030649692638965472645168325389113201198996590147698514433021113758965423534633649296805889836070573243860179931614693861763057717062485514932047879607592214447646947510929069819635122199400591727256534448828182985416750152466110790348774464695760699310816469609876617520495962534991557872652404111177715222831234973657171471101014759375814655024694165729575530651619584021709589411191093495895415247445223106016043834977204932774404450582821900277008330869516292009725269394148597982067746472149726694580973167553357226796589097171444352189874841820350984857549079095472034820910827251106842299420015156187649663272810860382106697790697720980201771325880321199838710535756003070011137076455402208582188946460370784659584731908568376710099392528348531947967664598697250677001995299432754123161301267697454205124007163749841310281467804649124744131013585428840912408964661310259441827138024145319992290338106603166714218691203709412011903798646144009588616792823512766730921948566359610076431969974657506881461452336635497493319057145676973618132502849415386021385767061280685107536728315901649931688486535832940635795169048535635190066369386149279273896796779169861137704591111619766554963369189569941599861229734443143125477068696191119572738563645800334127511582163706902424681658879207594628576684928637443376411647619374120355440778969645252898170198103032012903824301724496807943876527349037542593962287575709917363143570304337107902134619314762519962968287408409023363209786881821496498107596700505301758332562888151701302816455166207262563287615598742600142679687876198736147345062304023319721613774071702896067433124183969934733602410787303379507060099007795944752214970110167345775566164940414132607651509491180826742852572039169718097054225187124930288111731089385357833510347459108173383772612962947012887112440962672070404881406436706204691694198944973356344320595344195057568496820996943194109313520380969960611230896461772923403202364219603087957200810912136818272938170106369070508896764346142646179573272819202243231517853939238444731060342450586941229518042947828475831273363326471462685100624216696421320670084324935006573264416277378559430967292621537993834853604189644863257504330387286084138039743448339973572580610192734181225983228001440657684014681922378042428222350580236584380839248883350352939883343922594986425734283381801246270276586427882894559183839723850564266660883431295680836157340306037305275876405733802066139140268581355548065867263054896036834054547924110066346266332626682918948690862619792769444238872013735204477711662435781184147823291929695865830778054661370639857642526791384321218491746538176653795418237284513214237605897682696001312476494826248495068977065027966282741072713690457764010482950698376514376605175047266278735696904824768850725653290723564043889616146265152444624603002227026469703861054851455914824853122486719583663651008754140391452388899949417465870088398822298104913022234280212232102594155522506095518361164097326879576635970641603360317569342170434692014791358355260915452646046124717307127335090461114902152752887706424768412716518797717209556145996905188972322217666292967624827386337305614637311049899642761058642046086919870983236225660227691240722521813467136852440764111575546041276905651740670156163266060934740347123441980143353932570221512174156468019828408718325341751693231426457579262927250740748716305524099743688810955863651022760825662910557500156608816706815279920009331895409756538297243403296863345553379568507494820219660305737372798965167560590535791113255889481937150917667349940952342443629193074635094806179673216300091867636543670756091145063941337491426834976531489070365550558104467267396679289290344521652406161146720231304108554782505639814039589121810294176463984612985560795769829958266390689306394333682471221791706499661576944200656458651134539763580385930863148795224694988870448161178975312080167381303052454153931124427087707070780989113232687948905796070768035936655719516455779370226649859682621884743899405028877065161032843656667350813982787566766137370195915493190109445235549457223466394648631484796417650921565247497653807921249030504714599857725512693372493922662596661714245914176652039152199138618198183817270031159546240327411827011112675550444608644846138828015745494522762910684945248319955716479524371903002112247934283335676961149299089570116950532805392058639398366107899930316902680361089198935065433108648192787940121656320209505868649656330893180784477037856658367683841366636149157987729732728703585392426184604242657226920619472682102029105407524151746023167963359621178161702106632898768378713000901279709426426936289297135172870670872352860587754428622135503760617294639150952167666966969181705962359771995609819426289858455694712089189845344532104648283035575137829053652219420366508253059076499316096926111151992056706191521642057789970237428526284527698875713740961418960572883925990786334132670619290840736743531722750704091424073494359205629398056398767633864837259858349879184195489821858843849833164503058278528785809594190950318445163076172929028365024835864575872371866675579722759473387132149779037746262150604534280077392481231176465386691072884241428376184261007726241541453423716779085290122854723941660694681990361075993238185300028282447878539445461066229873103448914699484898719559815660629929065927955086135272706617498577264647373700934374939809259280939218041739981026661086022451535521778061379718236555350026611900491335049039780420913205737653304427850431137660159458242694957266219974402899320757939344776890719040008308011414470059856592657518140729070382010724981547678702411414608378379868111999719401841050780172286865249108462166120307163860224822139814600049161477070714115151964138760903279978156205659577187782165770925460941779729973683454136496338496310976542552243552979038197643114724207759775778320913849990740374988699020991923405679542225969753469099047400084321434305148212104302200312839360992601739307981276857590171597903540995475372818297939963275205168030751276315508200485564330890372363148334712745246946877688094296722133514929018482309611540811100700085092099057322977196376051559583565949379263535620293302207636825145160767913797121042427684990643219574123858761890825995539132446981004580323889216440012042005048307756612957374319587852729186517435426096723306966109849109619298972386976261199983153458009347070973000795361095488848835838140202740016512782437671274869948668587887232769857079768829305473417429144787937857606601411271667875733396937758921323782997423287982611053884664068233918712978211153147317786499450532229797917232328181749249955708925980736175808868331353172031147620295334782429892889291483858881217200846837557760872796343634235530803718215726737608345668527416978996193378870207257113360268525494761528069011361015007746346549880200273413976733374625898558284268841878455840140968409000623657499181193462283822863424848892470840508279452713812052776653670327567423154131078249446742727210151857493204866865578980279800629093553350378072236923280333120774666774615847597140383962631153516519553292608190769775759881545174783927280457057767284092637987532183595322176981755097003662008986690370560927789679670552482448292056642933849227080072230178727683079503135552161923040440901614052255297151428114338836345724061438875003185517091386328278404038224778884995788577995920454927200581003175318257139166767683481550872164292391764401088084712902756419207788607469963729612724848358339437283148137498793997233287628462829131576047876843564253851034657135346381514360233348101364138781240088312837439901246812194249373925148157014998147551215016145009578495006638377952483117045269042759808986345280262977842135254718120666474030197646561795877660443435751439200949857830380247393015802861996839015255026412245216038315720633857617038957485055522831925163080193806892345542663268409012848786512460958389412244427552923231255293053002020329488305061324814537698844235574704482212425807837174204692962971527986419171413505746298515595319931277931778222543448584424731882739271242678173866043412917416487558468844117086505355839164153222196855221662587738534446212898506523776253008966571258917379389337325492240796057128991223240443348004398125525412197655263537392111034137213340280123784904482200676913048921421743571073441690279760430393644535034322203330682484356406142223894843206784135137559375933267341959087165756111356817964053127976601643552791542869868099747908724524376228417060680543729526379398971598574920644305522666026069303502046597025232815617061075328803604538236450470858174320549343675281030502864346993941944683701104888084021294795143511488097760086074006629042724287252608972196830378906781344679622741870869508155857445667483788020157043503091370075437674422703003620789867265092026532416999918625748689659644388414240740896443642012948159643433397147669924691817790195964000571809329297447933231925644823816045609528504315414567547315583551613832266601756848555578026859991861393808808874152562892646578572990891656553396354478180319218518636608775775298820317405250739336668333647033825608875511807324330141823057037109322567281935952836174547779270166503088485140966087129521632258146465543951822119118189255058530416609899772312420781224319643949946751791315196353917117855960341276925906852732285751161485172404539645737225226494972618586552843616590056108058376934759820631267206037944826815354707897733094114665354044846357641982351124583333595430753001880646517242044054670336125527184541125842706160181131722929393914697025396383914597206157200764317956089964198075178816666501753110299721081015707579268066132088947301944697167192342930467942001430631484573087694140086990936043630649128839656301570153638568623259582706547579117719894852297883498359531507161266790326605605585233193655792218356765346965078481517864534797182160691644040447723284783857966085405995195018917013083420498669291037811115177829926800501930951046701758219198976297420696070638637054648217875583280159025262685884035594755264448448385285208193919380315838970560564196663916364287683249793032322006880203093170376968373269434457818384356802044574961938744718571548835210103135909959108939455788024371523464188580924640213305151380205368665704071214169562763546884633585629422633715336893225030529953757634688702705214482779295634073135479946855476173564184357305968709018452722898592608481408999879152359714259310880463596116050281706681079302348303094136775775929517076519251503641793829019361694296799976561043379015405079120597599857098764199483635184139344337760585143160792955190134334405160524953603116140709924813809567929393030604603258069964253588175648623492126304848523382452039280715691144902871097620727541532043191973349997375273332325425833629441055551909455859304020466259972682481517968229351155746943876536684756244206189831906534779622471228388213433510601427609634470218999790977115034159291181532185292895409332803781790214011664204117381997878206707519716400108350052313626558402287265260789879277388005855072308472208346120282352470108782414650949926084310043277472820571434381950505223794570167201910593717689007673016567201243974044090364353648920458447117317634855265955023631480588537985354343003673384436917160243718381124238753344585887478819148750360870004756902859583608849853913849906226404986286629016582846718721114427372899735837014832132578252995149825016635116220365335054076654726936725702904327841968763642709056183170408530658256560908800913571208832090029332739326446058552639563964776974728922690529643536014078218932960030984187372782912197062299869894278594982152538603198628729698709626587665286007657382462931127572089375394270580569750651464326160016207028435899656180052129277688569904672932880293666453269300623139125911719625349990483960226420883259322092477563368999998046521555072091057370618162230970952756563033049154908048394677971666436602679155282793275153740622346178891608001017290270124753240772200187020546189441544878210378525776105228004000698390913495005702377376925218258241984495461534502711492177499248732345073122635886953668646614066362666176853771993521526977603187787431638294240224293718254276138419055158596007199219313174706828264328771324394908863018441516836894918292778541350550251168546828460721443985013909029956943916573837295275976137431597753553606821876203338868613465090847616923974719898374537540931640215101912547805663433185458058292565265763145651288991673657427143399047842431556617887768270323585733445234997643114133622279443846910063041274371524041499738302257049267070181535422093735312611538568647879035713966894818321533161337598220789640903934460949117494216558562159673603231192673682740548084726739408311987404344147873069637369106668227855788013093693057905453624096038844271467466605695066369666112392660606557150847425809759103078650225092359811762189220489769721519777331397604539973658042693090723544393334033932048832490229079014667083406677847660310684373956896070576232023995554433481555084471418371002846764745182406598660708791841066064694831581173916352257450585835302629731415529508040156279977183492027051906013185685912245675595862825430266611987531746035844805082246269441284598132668105118776064919957825651749813909077398375018684042369121806188306942316635869049049887964852302877388125983208555453083736146996018303303857637164734138279859803702914061577163139657442458000453852325553779553798652416556343487916104266477524560945017240612084506260953586831484204146382935010139159588812955362525075542072037280286799119425936717307816494698003726837744364636272870074019165640315346085921531359686660238637083032881985567922942806126039503610434367847501304713925445283992557059282851543429116148052977470777162275314709748197982703791078087420244799913562958898823997645369554419368023425086134978845931742029763893479237712603658573152349626161165110583597240701358942447865993235513564691625662301660465338698100000184777511432342465262890616987914700685758028196718863543655727448990502061221579827355295662344587205822923091620066818980417609608993524001128790140564988775619999008626344706364033299710220756160755205234535561913912534141952335402090810372630325696051307814682175003579627838087725197412563928688888083512456106566066522254650494000458135969420254594322614184528110938652414283711066950310614148688801604325468384887175022825725511293513525611736204717352501809727354604925350670973015768570763896155978579477422656835480095333152939718270305958611911109691402249461639820937531362162901054131084241065293047961931095819947846795599834684137054444692927294573996526906845931749835152937067192934721565472547736999504824680671688554467985249689116691095446249208821142532313331336698047865058877303075007859844640762962275843098561550624015270429842704864326190099677966747246613477395375788355576369388529776646993488403961677582959971205421017337427178329892213164621938271383502644974925196258585951728712205494016541044669020112471021205744922986383527638077030839780145199598366162160826827405108188456616776479018002178463991021838216993070005844719146486317888400158771765388904545610471270284255096315080391005146696120190877324696455220467247652050435130197398924164743795474468854469116674996650082184412680068057898091448814405101978380476400306600229848431060033986299331528510697941370616522421662701419585983322905759002046209346853251149449713075622775389477125707506867511240444354393786150869498301367892811995896326103797971419575103371878612328927844611026256446573935230575746206171925004320121412326618283612509966078497359770673044014984684913830680359898896975771859038718324597347524713912110190855154655385257602866120048752205880182368931587766901520491620919952738337219028326833211266955764619923158027085223275867515086731430658801999023666805019700729936603552609584457213313317945121474719874841748203628131049807139860144888859326807730888599945405320410519942716116781172349529165682314205000717888756187715100874420687483376385275370120160815795878472899312047874242788114505732634823885367721190091015785483872918051714742512901150512456584369395104703768922857459761495887601930054906401850444970222887600744741009328550078268970698602914615310018768167900113194820282633562452559309435791237014904401075967940915875162367031401375881873476394247899473721716334095983335483776278860093456194199435848787943015618556531579551870578117465767533533550803320144086955720456488017183140709675306956552603455631099087451265827885315817004741299512697335853108650135313251852058449251190549915219491505729088735842405127325118281459802658989007231228663801561190029108638957643506788616237897764735871230078093787975320545513426744316508345254313277389177768821646848697028535658403553652501791002197417709188502651776126806795966801444820138569060940428560168887538449033172770571571215368471651913341728052570337723170569459203644772933946104645503762055744282946495036510149349291978490965778205645128400448504009858255114245703438025344689611693678383472022228742843551357237689817355893483960421909346384093833518213022255782163544914487883522248141048333473772981276543705610301895918225286876682274083975764306518055927234943718657374527527440720755182404647273431625151275183680712564945984962025616195829977590662053215079933846677006222483289048309892473210750217829152182388504134717298151140309980233423730841808476378043922419791660079241505505626724982727484022376595152326221107145426322580239603411763341239432251522171827268287502888636715561245535268957370282942129043179569113007380855419773287721996215226918976784414036364994248764612887780219831202177497998032964743067230386610724005889561285357770790597464910229662678301760523283931211809658851720869779225498750480832971373056449133468755563624167411627382363745760454615180116222134997281288632684885108541790753085392969143070615207374787451937873748526030937029526434050303328874087613220298990221710169711847913118834842538693384951179596936130492593066511693679841283676515464256692743293714969985897798201006266111455360425333077001387916961530513691590474375828330925844178778297132046302861247395403086676082211525604390152293879537310340946113697281247555073153477544157535505963809393445723877429841121610318607933056216039461031712217753024209901054937670708434701673421603239715837298303963799803132429378806743879733322799276734883948432322479949737913828411854933147486288214408785949998018544871177913307373129921127887269009277943408042253649397437006096149992843372103340930840119936557495039670960377608381517806413104841141310733139277394322249689288636290008720884707054120905995914939341024788876052911907159648166798964827788431251021581586167746812025557598102206960230356066516262970748777587428400414489161244153126271643081951644057975724305608544640127834108220011708382879330649124986087157453984932887958193108088229300622011272536372044483666338523509463944814017891772189800994767615119723520209090220181167479210658263876468507164516643062359648922300357356332521945243627961285536328985873212754836197617868337200022651202363506049897117091326220101822497065563891963911349876068221719158180277031119637223343128058682750315804284149607648206806711895886279876163841660330566257415276021041348261858017490084802894774881797176023030624587869174247977687563006697246062470313935492827694905138141256799100358058035696529409785669774017866226821264096888947429444152927872500697217090660566433854746134211091080190127216026244057722116213888344357281916381871633612874597285817348228237001358089837108397102359092424043315275263030154385733606468418283230414605501509864297137851495961065417847146722880594023805583838626329838599988483609873467512864308658428578256496647165528343308176654141550993343023654790856722055973090222771889830350931511138850020424932093683939606183235462385047442549053747723732197563767718092672033272653069655311026238922240774598891034813366030433316267619034693645835864763201513572138535643125892326402224756802561857222072888774427594467315513908452862833144757549885539419396056273965383761469685063802336602695705044717768315273750968734007630320294321372020728339673471330980617004435243677145322620270406276827353087249855783341352558220326083459968497155199294141179156797126537410512377029588639404144271202762743093570277228931932121869570854854397144295563588644176987464738746609489720186131534886714042770792774638972673982619225420807990223276114465641491419022179233039033260261954014249906863517840305179423999875731932096667681847541938444470130311037306120390310109083735310514982011349465948314847751579909443961870513149136805699573130876343926857605666676620970877926022094061629807475509643915076374062104492042502137037705454167608768559778153280339594157383143381950714969005007879359948090864672720059879795651926154491400161916305741343001764373074691929790138887135730900639453449490635947767057134769671512817483654988302762611965724772353645418044465605261544737275243701803199763787028186112783232058123106618316174713704639206457970322962227417686518242976513860529918376620912797445711672203365973072651708654506112421848223527488760079369070877745393188612283702447346000334376026682358869949915016401548080488441808310590689532770186767885296275308747473633305519850812282408495840437031265543873364941674960912018002246657982877755767179793136889922099819025427150963164574954102889818186150044402726596211416677722262032422090512310540721662109577540985337883361500552813978643429983988492260432342075291116814083704584576965132771525592309540674292304936776684421277570617809615555015295095570115673001203043698734794311284162697825481799244141568595316933097150860196738397543199378565876358245400194731951023573402153794557813164844718593547694202727121328256461287969620256936298136122259452139141059215608508684905923905670683126005250074906185311447409098980728210726836245347789449998390494214594283851226917255874771001871732864065880746510666934691419790809990714022281859715001781023393824545953490265757338622843272216694274583044958384917493799202921266150526104151382587350413217834786157626015803915114728411663453399721453524756576096048793117837424357197750179103082048117373327012762406703883386400448633786560773277483370850686840252955193154267542673421516149136592505074745725811440145021862579967423445672813725269500414466492383550742536645754387858699669019487994903915375933709712283450214483637434917057980690306406116733043435645121366924636202739700720182829348841576873874054989918210576224511134596292184870182657515076490417115536143487707793330640849768021026235890464006889906344649879805634513821032846134221072715945324593627221460587748495038125731567922422938987503280109151359223797660547544980924240342611161526454041069647858695129179377247808633951296240448795345502276828086937951558986466994626087588022735025841198163768936419974037885173393033575548085783146276160075153125384015926700069460159627338368382670355007794244352829383640149174300556929747391940532112430620443398538234359526474000108195920257092495204870778019529973549660640691145424631290212639109981474504095176415095011987535198831085957200257433823846653632489993354293950150988826675718080634303135529589230543610401481547692465433133765923099625490079007625055796025900904682775919813009000500852270064979602675742859431583716658981610512633918428547533065285830355490833653543284727956762734126178836598259358633055280864327209918536881923537499435586259679061160113948164706522033367498095890838978281797376854362171310873995097010282687724787776122154978301249451131020895948427378676288907633219240902267075504639606570825109796320255384227131176490834869351943967646288496099122930863297219083533518644910622732002638161404217943763653434880116672623857454853351111247008283190108649412672333079684358964139132342722189850894012764763499165770390106997097649649838943736186568685110630909458041095371536098053886156191627472701854513367404022802651434782965528887283675701554656146603166671242407121943932965083322968149475582341522290727713236908894358639530315816662844377578314281712797299953029656974026030814389812775917070958650509973220498748752684146870364357632571145580150069167880694929913165245987732004513948252764944020252901014588291729795233550254746468750647053253284499561930514996525938422114622961903475094926889927194647706238730856898761325817631666259430814133797293102945451963451331263491904709107334855063967695646649777125426549655963179694330323077894872838399503567606703810900530863010589202280187378772403700829995915460067048158933622267069312128099623202337693415764205578686513597347306527776289448688653078031785125819374985498705409536060195140463443814767906091759572308092367515320148554451551780650715985149995517142365350307501131793161792841797595950898328572688398546787250991051761717538774864420614077112090479103482530786479950379594476193633383035304711281561918804685203892830910925752274163367642986906654576751123943835447470089660262314716166262264953535441662574935287416818810801223627100353675016881617918482765903794094299138331088127335014078010428072146112309425248340933396102023151976438885026161812048442667154121995824396018929843327982743150282666218704843344008648572323573219233434541773515824909447839872507882067609448052288545062869345747007022583707089043515606536522966147484915087214579723587631310521357318846951146914151669056288234500282125634326853066089386121906712043707903993998488030415587080870171432023454878648099008504515713813743639432117834807689981325520864165200435651782479150588568846544856860674646243142398403366683847652713368715326183766288023945782970216091525672414803009575825178510429063818729592836055521271767724922059754330890365655700132951803728406369409410867558523988865105641999140537763498074989038784468899286894431101986482953647318588793717768381948698204158877003104580887858694931542934346984076812173156863058118314776862984390543530025904106627401102305754486838845909478317466431035595627809525755684544927414850080641560007777232759810325272116221898804416718108175786181859171249374336452723671351846952275133803873366757237319962812138898688081065231457151169893036671686004747566150097693158658160798381733438157008981965653941683417799101928553496716942570449269434115035482033974683746464669200709051907896539760721453940246267582059174274252956725295833378806890495125589750135782135937765299934384244161810962846678313577345265022285455894915824549586988678135992250092893530149518903141381542435400309052416497597295483899139770070303733561373127740360954271375014644405043118831277546990958169708950999367405145632843987882887534371886211015250690641541688331809316574502179268414853256532075542304016831400006752777077089635587367682396034030396783292708264242744111662901968716196847494139494636856222256894357356657597992456057983018728242487706273373317822457350889665884364480842597693594426910758644710576865248587663538388226025596099397719949791938490052554078206062077068858192006547838307508658990334143319516664533754780762538132384794278369140665286612716819192455577977608020360620616007872878538889275137135022974406652669931016984903371118719279760796134543223983097404440596451086346045365188551639538343092747048806120734761969468890576826618191618355591112000883144173298578998020228837506698301549906429464291351875949816835133772704474753366736582120706999144615929713669560366097080913081622061052775036119825962634013036845258685224082169710351999664832262033295608331485474655943499665762775425513287810956323869617084192475450673054726882626992096543740852104109534005097075981933108055836122893938699866387455134095586590308117951933988006766197381205503441583262305366575421444167755731390216568405843559794899512265616967413084228035924233563629125066610882949266375582780512519341355379084441786771010233897197390428806407777792736796806516698482795270865770143868241100773349802173775469682243009299809479848953789132180789155551218656625264646564905444932306784330230909306080140671507849501922470028237902869187625408450954894402084117897011202155451766341912489805898815652510958493212567000227811274375872617518358667259680870740982174231412714713911036352289260628446216158943900870600448048839485975356174387486787893825626798169402531548105372579975348588443107175124864527809838833805751504529549052005330772377881499417831845546858406907847078740203319255037471804445836290719075726552879525321890970169266949752616358758897322864086933098980028928909754276215593701857835837198189952965355576104159285934239651573529177832773519587712952839555050513286118794778417043960394796905643129474164244143967448673549184820947146566580405616238020025792936627251476254167536077616334294614110882147936652210204214070807452163240170094713928994657821415311399003432886091634946640300503979193625009492215624188248777878852687208598475845790550128690509338176094886047279161003560887615014192033542122043100623702673454050809096853982669065860009636055444520292784887936424895834247847214792926225334374536793542066548799604204958365389197016784293866878969615978800137484969551909322400046134429095871809382641926001799318334561619817184226041222525285641001315726278575284836811545028454671236090268902191050127947737496465237667397197644819279927021898448916475076522464808437294836229014323817510211049331699921603385459661634278836061518126687205393030534799472283673509659781809956656250924331395860310645970066557774558043978520209277532715967993331428574345933905795148545165537691101074044881244654680273143755747440952457352162207604228988008902499173707008602173202753829718490528440719122589050543239361290061393509608106200158544509355239167930216197904386340404940779375258975603280306143551724602120487867237337254694532060059746566975623270043576390919773670027636149963189829241592515967708742489584699038293175148377826397754445746424462381025250133463354056417814828546219690927998466163068909149267042682901103762980289834834755417303111761810378193104876173969616005832051220977825415454105678447206075246054741415746922869694124472450178461046574815639648813825174317018422002472219895075364194849328143672881624718742201775054308977112788465898580196834602148267133434288981438238452796561959677016613431553874208827178750046769016133998853208113952278001013167045718669793670317075833040324564184549098554830553774188259868083372540293217276263395105690786422205407518451147861774526546605432318868220638376599205817028575070746145807850411394041768498177790954252911596810731051341522055930651657755521421976836767123812124357852842036404742947195020658151052901924554000392779378356805446301184829868003486184024901483057868916320865441068654198765497625428880500852670167882641519568363157332422627781360307622500403179877516316878682074768638792472902327520579133842075983439814502902665691495339454769308016014053377461646285847429626291946345098021134575025435051660110029817071901938757905174243965604603870100264783126412565725916535598090708400713040873264968745056304045422789044952000052050868834085798745628452857871737099059581640307945323326449255237499412860242435458605462733618252915682057867616515396391014071701087930038646492796315209475667690077606659460279504842341618191196938528762372988610115432269383783729126321263477847926930972254234491742228766070885292786117205280737662153147903590101828003814941876041206759800377782280797050126264747680308120073401790441784407436653140245168638725238690018696836764703651363446899153597202878153260317586804137441898306955039001283185780378437197335806165813819625090610228908562447898328597226459775312970377285121513280883259902752474650629641269390801731234487642719418329277016261423430172505503639704496534627501229815854406548050826820209377012504855219916451415621681109322136624658845722518387374229269741819073945847050786397334747907874816703219457876602621808833542482731859084076884855916136743824770822533205293274111459750983580749437699279527714946323373079296499880345369782394835005214396125898130842291132568237714021126286401364766159186420396768177839444380772254952979956486497443139040465054626531861238685507995829256650125569968390499298832470113170813688359114121185984228460104126552022742075201171414734947286666450653198768055000256675748476265974148098556972374090078730714451879633820334701437965223669120064640912742224410542950575663068391825217965404599959526752621283927713024872897365240268578015892067959403606246213402745617615201753175460200375098640902340767698695858215908401875635591489967620710680382592304716367432254508979590439111144297911023781153209167156752613834970981576178306064665647932175737662946677854739703166819165291795705094635802414630296868645330414775155491038212545833260486967633334378269632839872505004209679584805528694645532025031076248398750925262018575999860210496034944875979936084319735716941008841375632137227765146751677082344179021705174409011440771526986487793787618780670465231859655185859888309669969536374810284068617141849286943916901337384431022300298254267471385533418519693265405344394588467063229929589074186342241324419131654669158037601879946913205449182562401088664308956444629093924304851097532433828900548151716779930226532816736918812426817367516863083557591826138061617755428620944557195267179504816338824800675674149145706920672737936560535754105048194328923324966300110995545675516067784407570942393839112106691628474286878033443386021832510151391673541513544752621646073498513171670892748848573894250487830526902095253379019888743689902548294876567247059169410667746646467530620179780681062374096937679566399751664383464218964225492437925030256607514480464854428568946119600740823808510284333791778599579499938518441431495958305999006151468810765195228856186600089437693014552173477017135058900690706623486719516811164423148921481981481639659629663386612971639832824326568727891271957523113171180049124489777807970642433310049039390538804041831744997957226534158389031271718557597406232417048898285287018142573504313083279682274176503066346430208060438657687357320429969768577680416809821813879077661741608083005623450258342442484222438209857076686594213376905699389201410607161955181895779387348267903761778686432602418542739066312824903248909062683464108511058380289028794000806821578874593282917353088866537702277082769525670157575037923980224059648675101201843521614865162792514814720124530967181377991432605346501951309287728472687234818378960349204531442145874324680648845713099909281292090832241767071109117415257529733026989530198081202046413632929395974044403893433821773740202131164334893408517490482211705325265900849612332312895307305721075117940119606692924623504290959626456932057821568890749854654363979912752770582771208816901742791182680814492337663520850929727524283433812263095660205626900895574371492571340006664953983964855273638862497467823987367702823499349620157908672670385767886266407682165743607784349507854674780447701282655509863508772121172152675895468531905148255608334200184643216249092647307306426882656793743801799575533315949833627508537218453502134719424812413463728661030520355228200606738911780825162443155516739232106228869152828500071685044507119724179353615466391920356965576519391584580555797297761283770387945332577730086732823927729307955191713493279755329802188553667180117700560385823613056099740439806776447403406805005261625066284694669811189545422632434052207796886696020004215354914105734069770967200425679051021944602318500603851463193993958377148902823930838575574117190044479405337057874575294344775443980264382977182231233571127009566977593550306843144744578815162792671004603017581992291086931833259143758265844653895134722543207217319249607128583979293599100178820409311614097068176074335522583370752293145541560720581865790835229927602633253492232132636245978952276197176522747064773813538433754975855338508267222673772286698131147489906280995034066282561588577256747630952281277674856312682972574734743933145735619701013373972749027511438308753274274916127945974720370421967057025722912573818194263987822545309392644144224587788789566630320814200392541172664869253607814762904020267947294506352714060971681671264015489795523678098498634963150897874742473114090383911750318969202237770992127182270567651287396615035980020265536898282954109401117855827686768244105613401698844690837755361493738880508726007152484846132568476696653224837753765746218528155115790924498314993692128278220893890322815476917665534789850235318329714103885620806723389974243031315604992675520617676714263568356785948389710196646105066281293745579252596506156850338392574464048661024909408048775450800909366219888477619219306657746627430822211386172882182794820979697942912099665614219059828758604035577610341144733428765185555996964284529014656909032004094417238031141326880958834315031967544626526247688210590211795249492699941075498550095583655039091875704455005588098413428289301446853066467025361740732314275752965074189123999314904433102980891048658256274199996142848330957735589972027271094370067304103238046120058512654776759864646137526797745591476807164897527793375442203195569060725472561277076942008630429956048606508097757289417333360120084094120037914291874448464997245756179557542948675543770854725163253922694334122596915894122569417429907662202453591522681759211207480273517992517497652406209443700972066288059135106607853351181450359406573992197011200965804472173017530609265488005078492332070737644233212477757425315621818447361241041264457311917498903317561036146780798946972316881078607146822647359642387661285284777188676920063196246757155963388384102894760102047028129703851262071438388764168456061209816191082070120428063145848561502467526767079793343951618091310396708983566937429843256266829549478873984603002071453795309561354838637645922125689422641703280241330361759663591865105173878460670436816241050072200175183982567640677543992251067308143073886497862627198467218821168198074590362193179957703225836037851503363787309249477621875304315372628098254630436263952149315068678713666572763085576569957203752196709438420151637619769158488267247701924932047901253437968832724873591776946226495442762540707724626575612682712589222460948249591063268476930997489484194575089169007567753497058630645592253571246573540614743063592564807423201138178182996095795483642409310852628157366548250512667554584837946175040878052516565151908448879376868235694375906208728365051143637471562871640525766791562160864644180409259998653003802776533016192053953438499435686428480372266994672892879158445683734441624263358421775104137501772209948321740428352435104652053536455704513443274032026960729505497017362293701527491579343625160474391939402164740284652731294218629844868221877664188159784848408094192849651861278880939005263915953311205315545935365800002124867661517336944781641667304009238943349118815017417163175874862875146797741173563585876660608209718304893500464477218267016052809519893881412517879269990519633440005153957620742833311358237365564431587248279023787066833952939716734717473342104889407188527622948923325456441523789498550605816128680258580502553976067483956224587554535535437121242458024310034674341407981365206215637243832330334686658657585711838764999342004057610460042612021296555004727562683898611861977248969692930978770086689639257145533476207405104208189684186855733221903108473763779856707039750813372533307524587897446111003668611702677287656071714822557602471903389009284004843997769475446602097542120458602511582468693964552133920311410162608661390734622815480950998573225352749038110625771879491728927863606581433773268106940649377074822962992666507142219198722668459230123730133937958571848155148166727735828867074324179581327959765281247911529715455161075151152783563587891516472166229967110095806760333296753509502878017519516214148804837865648580021889640149118916492688265684133800260636776801799902183021732353126621330905892903012277922646973257680048965396589122509298592607068092661130195403018938399282682703478766691046724768859328948087051259977298488986510084857928229139268323672676279657400617580529441964033150795034981700393587681726958973757004663869636990583308189853365468245038413433228614450219378824049747100717437701644154252150808529656540771512849593100421769464221642271391865420005837299838392417492127424486918047451518642977414204429033463992098853040152150935625222641802877220398385814789838616601201763668324225405156310264177476459466795141769604004021841866337823194587264614257919404702739147693744817188421435818299489356655177238701566591451092605294232723127238546732426882122004662333767345883937576489111146873794238508829883247462330640028936038666089554070401454761696102854079925900777297782800411281534860735613566906762139882413758959423221176195820791281765353960248766861320908740754002114783592878400071838544111082904643348760166042321949936217677887494685348610254736386516496756578689204779030157512561360461268308756698617529916093219620361132790719348579260576007087258330324594827553312383199771343865024981550341907980514044777598917653932743098276505001370552189800804145058305292089593510314408264530190798562730497056693330355191462769221189435915634866281195298033292847142056668436485532794599732437234600902172345494848117209310580095942648746716069066299976978811866917591537685972052058668545173528373078288983919498534506366416726814602763434099830280138873473131135541555198056549431956121150784022314823322615335678971003165993560509792967370330214732338458615407200692275208330160952183650841614692809919315406251919371526554539894385017246292931077530843563892977255403232752759278433931840772319929338069726295291322047809721863023951245167187629877387376707935662810277825581296231144660293705457982997039502397704270800467977510747702866555346699110901918891661919984501037873366779524705171288492950840748116255011618616405686938479636064520333273501150234108616201668538618135817948736573897774696763178558738023913663377020851192947391303113205332656140712850035417182572696091874878244719553778899519594178077315786880312055909558351271538292714404227061489120450650227171431809714652752035665017717134316071211529074573783987865704432125385319920039661079520436178952913359441659936695401536349829540926599124452805419004764687590139447241369723853325725657170396798234834105798947516664524435667415245509503167437705129378640426706906629374800955535061935634102342895565213008493446081985282243278684687002238357878341312575774630995129881617373851639231310966316904745798396763482022217865114440866142724178304024889519134551459332640705050964970146696469217518849871485052083474153044201060849869880560863845651734053855261452255121102953438182689895802188840654341584859297710590425030370651879794648368288919933899446284351492199179635947651734077527531976923850674344026573155734968544294555738762960060659097794518976680442819344758058336771705559971406129582392843886628532987471386621637577292521518854092847813635274407653792219429116529550224549823359539339073044863586515892790232081694275913361920853954311923790726853460535340005279449429341671009580219769586600450070788716614644675018283336659258805658620674734149824809082304154826319225579474130703071422094968149634071564994323141228077940432440269662728027620747506277982644015344304215458206206714809525674883829794646597728118020680351334979973384914289134962337975808750645573789931574293578808463454988873052286269527234370499805275334483867534580266617260052662908266025080840302702651020316639326919316844625495360661628051969944087326570856850729009993101447591199800223910327681011357017354183998178312758685688442226789695384567540736080130950460699456662481694072813420668677340196352597524123856558854778761745285293525727694108807664242568787367618274572436789470360722834557569029394596415572686679832392342596622124757777780358795301884785985288878094463735610932386527763370109091148111288302931280033831491683364089488206672879021238727125184288178146726117356757599406389974321234060290744742878013289362732342577504431856910892759012763113814847103483269831960796063171801385285427225730054343183353230836203298176097094902049802377647355924985448783860296219804840302318517927173420995950444123486407474693951261801862124232275218702356911648697509425565469311733566050875145936187404700542599930518673789062301316746145267612845468447146393724169767827546474790423839650398446754259446196178021068475302467343563211267151978057009516713890009173753538654407214533444564999076473742544998773467232055103471321439098384362954738968032852872159815454989587923875885046735721659263774610304704684547339231777073224586513053385589433276651645144395101794270999140974291418714691959511501867190581793134489975072047762001899640131753311937779523586404238162590214381306098531588854932015391783191468715876564864768643036899015987592385481386410409474814364664789511791807362069820326610741692460221867703993583299374692369345532954032130511709074286009999200893713675797575836515782457511857945844431920762470999055164747123181805514325738531208867679051754058297325377478902881415027857326608197449405682141990084064223223095167799072461137997897247253987842063294233416882472467987791075522500086309524950882319694652450976394090208960643160278170113232461808984185297319525006134208879784531105537822353279841671102336996383797854099889149653487097709548181704567666838604551769302083372618972844360672148862116835109162558586257703534359968888100771358900985772173252682683398848432272272578181220046071309852380675833031112145039248026366102221710793424991630322971109061543844863612690923858673396780250941213608144030054543283110013627721859058565295307778658175702418058298324487600479287765545143190972625338721406931266451870352123842963987690628599102826804590765154112015631245356124830306735687338997362782012385512978808433089021038902655800492371141323433710832318665603398331794022549041823043372945153847948119253067833825775025882413006388758445933171803353049047773741500658237255194480920823371235369466757584511054954096794176340341424899202859532913172180088828630260416195395386315881127791362569509581336026996696044747546468511779067095806467676556037310671087799695412743709869572098334964182287314889335776943407423215814075760715115397811111767070796987465178212611314273196304673396264795768125381729687025012214092015211043822369828765045796024563441927697137101527695356234343241224991448000912828102599374241628621177176332670393221624022415662688417447026797225037808120838862061530432934597114576569310558819857872485607565915877367420206175904982384567579150703795484686394110232785622255892019099088644888357401549938041343928095768678551619590534363919041507634442621736017158642620979986245297001601794580134284115380672471738754385496043333923937662805551705056567341925258941919270329429680098001298711986785971487292125487858736353585812195391061650342525517829992802097633688790370135882204895247097159908517612488040088265219973383327055058092454522066437336976577927819453225314897156321231412897817878386757141958742678631110954695509623917982121521794085343210176591237993319714516213903780927975987793065552363669616652599592968959071298712451367851345285005811828776091629659641349735361375525761478648433665189019407825937736979413522736815815752651754126513272032441966471158217513866681412983521213911634408847892971172847104771999445587865685808631561601957094898077786147924522022036757616699708136655906681395733134517697356707693167652905012378548080108901593825039027233354607717477104303256759229576457687809656049711983103840451223330162797496697570723172827134611782025567952744360199099924940522869357030603199003903953887975443013909503649492707151853516561460300415344789456311016961130045671210750610002219006924674427306556597180723144389462353395336423004332987195920191298149738265402003672412210869609394636027986592427703659375314523958102576763674309930411586347067995998630639115324239529079066973320644426350474281744615652572776823375063719008186432921881856770263233171978303507515719426146901056203273162147824451309582068982564934250042566896169474578454968374466306516570053216202154012150378296200094935064644750347358254627675771344142190265189670577521669380765885422996928982280641797848843935008650981357916488646078729595490380078085235111026234404882429292676538047396854308743940990374285175583274079703606923213415444245225416405042738272030271078746783069666682031260069971520677781747405801955999060398729733103379591200330922544417984800964614306847086988162458336786937892807171323026974858544706026437306804852372575417274220668229205106607154006014533582395410989920627888125872084627817176994318052075052421207747484212875620939636923850453267738505125423209983956988953469195333994396372873451953507575845509469138086522504420690501906164679399691595506877084182401751378512477262227366809472215554513261871423071673223400924096686707955253813904984340953446079755053924252316865224588698162843810642091432463093782058435716009760856893336469537907285132983052079656579619618467488928279443472609089684023665032976441796028018859565920242037612353423100843692176748649439092503456054822302988979635438372301626064122030660045172480657763441256141123246300086021207377507555727574348836400644163662047522072233850738423848200464587488561307473754538994272669798634084477369703157686340441286845274088757353078532960389598576321021584593700860544647551193741578145608195080286345181424630839366926101824400035075924221140290826245708880565736095850894049026777548791460028254613719385195424682889144231486072046030608625761892100040462039007380119863351274285920759282282345537992337659110795269735106022501261366443663688738817666131840405391233878462121174927496340525334821379778659891052586876159318203841694321456593773423040457572854172498625250114623158722366939695143749817652682222841649778232446039477934809417365611479426944935109413400962480361048373149395005037369756965856249037287136358052391880873065762049617355154165317105393982148959593175028525759061253367841828108053189256713499003010714114183908901540254109739111944774474903071828400543295517959534077963009023067172216599632750352794048659827783763105568137310770910157046290048290692968663712491308014805732110416920005331014164574645389229033714836917461776167741487550314900492515774093906780561588385973492532171871739182480388649029659878981536706687006963850754916000737312733428615448927595347909015469089479968130543962306158200732053009437369777074354018323408755880823885260775627553361661137656227015175380657925074486368571542801125080351460159473252962229930303166380791335480475040900965561115428650046152016089306342971358145866175887830811728074672061481709384296838290681964254122528996216581592025243313592948582925463029093184957480491533615280265991760168059237495147161884878107470506013045475648000504584388487312479195288334717125604442075588328826494816268568803653719167304604212728534641041910600466127515191282913422949484695213951404773655704235719815075111961878931090939704788909409282907049478990505367200924404387815383342641366376070910777860741841169888355863473157206579430759541645325538078925095137774564684014559186194621411571934239338836050324186030111694065274604788810263003105703590624823482518621564784851601580908373124065907514453019566695920823975235496148991103930830416692201748170626509558366275509788961616294370074477996058490198681685124589406855544642493950820283991062077461284814650725716764876186309420245259390167285089522630456862104971753756333265719183114591804462450620093390750495512749845291225884285675633189941191283626901452231449954344886185852525205066403683651962888926860562226807656848866672874696025148231895022587507702598296308945048042635630608821198493011866106769982982222761319539735003782886143964188734451379767589806422610286782701392421179796609804162637458401154301359704994203767839217637592389877173454397881976765485569909102771290510002902181489285928823426209306671462079781403508625599105239973347464662263228335631150177222135220015577207833225424769400126593791881900858522264278021029308935001643639899380810912067099339339399978662434438691930239339196997572983934660965653322120059409370869819728039934094917788408740854052981681961501828300162693865339345670111380842024149939589274681902569864064464567934383331194716711724080968311206401305101468416052940640231011662821772405427063977513190818951081222066034918807379227914350483412102595441240830500064615810045826161173754427167518995534508578400889076633557312333584003265621599085602138279614805228039330764259197004941257211102467086554739916318243769388191614999620159376787676024063487424564685379138056115319549192182568809077752320598904642888573319411812821539024786510037937304230809675218199387630990155372299596773794029373608816077901494490359468185594621401742428718769773304706057827936836905490283086246321295496715622568804241418295057848134445999881552631044774976282028953509180782898377009419432680865361465280464124291032081068833651470553434603932294678417872736464379828446328740963113505966380876852970345833009490351100788347195576267835501037890309425823796470983266395868173650360336474673127263473201227935206380097641513759277904145677661957296804883898690278874229126611067462321391230943265734252120606817680674994201222291828588755526842437142861619971260024188191595525653207212720944956375185966172482634472710877678345028605570998058709772919019103888431698464303170614805819280486529290395963765959898162375287195245551844960108972410520120930237368142457250526812777332485801135918457230484250836051830377394782030583471347214056101791119303296576566524612605958859854709514011830737721734220488564485666430885161837692525503975344266361272172290478375758157275960404394706259174635335229199448552584400278109390292897599103163025446736047116700070457129674458694650234575854595552786186120888657991264070917304701164635098562580716266092004835693525299155427751115778028823632980471223045904943612920502881550233354082937855224740970397219368191144124131847092298080391404310543278558571275420006120958812112301538007012834029505048995387210288193584186500636828795476325838108864868427747531425198271363541992153857345375423896160565012994798325837122793609109164643033150223661775542241194935466954064480174239196405043433330346618169862622144391730296133514510817815300765007093766590320525076926645079670813878910721649892477658913293890647419703994173922593450207617846199655420218833453772356081690462964832228789960361693074699879013162820445229026579160533958212299230746749591272097014990559318039660431025574842327575731219292646102198780871438607735706913450580147030357360976350290146304265786820630676091375595785480366938879682690558599686154681071813065259343326962108142179521585299003630320731103443325409798172151051011424495341254947311442959680992723538597948588763183106728681036974313105967470441847551788717311891214909287207938471860657869414247421124567877161623384611687651345413365481721125613958658602807179326604465514034986865771334193304204168766458805939956019289598697873611075420932002089631673933486692978073279151186588216128294597621722691547705003380038448605012266552612665347222474824225690612403643289386699977664692873984736174042400214712412336762136093451806251632332706221512202788777182494954578293742402742206294196685914907427918200605662334730680699912861323186926521307977834592673856068931088683808412596607851897547492225548080103468713156944722717721210320644670927738514549287165065128592056132231848871077931346263338464936071940005167167955364351291133307543647037101257276590647648654676636849420705541829136438194972074649133672914044542152653542699170356230264729718156880830325646557543253744695647092507761797196005856900641439686977727968801334749315471600969786717088407704010217789440850005451527785556051458168931948936058760275595005540296745483885666626145603069403560180276575431402284148546692919769812055919435634298890018084433414353940180846678346012594425852718968742895055672639225632284438927956123607874215293519888422194898733752791059149272933717515798593495755491282970500685248086158153815613348019910216706966984115820384437146503900914756831131559455848227273491096344425551918265202200036800907157496031974719342811395183452681426591248645814826024508554091207651761137809385042994314292320749191347910921510964929115892210521492224138715350067842620024997850375720295922378004286659175306311770472391908554831796811762118028795724602479114520548021434457321117346356910781712579041145533626333648015455527682624667665907099293060015392759567300896865471935313799895503914231913870257284457951820431889139371438226640575667538063954838496588258461811008331932781949105588734181616104634703016992364682831149466913009313667817075706242335170226675863387674928032907475134939664464467945239693112005972712906305697582376032605154996090785156075473549827527397934462706646917816967722549932089700563149791462775898326840318846011633868642839356867012283148810125019904668909610971290387914095430509685907489638157626075610385052305145697397717503091098667947980246827901158217955441668709359740674691945633008977948967438895244107410574690232185199325366944889582240782979897119297903801877913778449505317974015559538816584116619775727289739501108256562137214883040822951725308423847160002264172043370591841504360761622236280872044840108384375318586888390218791395794659938431692051768600001167545955835471567508191966064774285780317687349172789958696942513575713958618239158386767645315791033085341253590421858326781957657152855114147390695076090473134191461410802860993815759663581068270163978110544851968079234949397178418850016219119273658587974856230955914678017879862761884327690471280136808051867792915928573247772771924587745555284351240741262018903129534178511737747994612176021742230643897170428066788944771917615500341581147533405050096911628343184444917954623370616889428416630887436480712270202604474684922694338920806785735078741487609387293892260969635489891912333527291852244844504727624446917256353494187141444167637530995894462807931783129926862503546589557528128207357305796028138786733659511764283130915559875793283758440896011849841046090067027249997255174698922986408728968439366782846544242449202434803684377689373670028320324914852699391463465364415790465876251100089620372249854297802668706177394504578911036389864934174878414938777384608895824327804700871107743056321342987074272004013757428879229422047740306980204948011852425512076024976576641076017691400712690812946647738385813509100070497346480600534080352842486228744427693242599471699554415290081920412343073950393981071637617168604932559918651879447610630089267162428658165584372637885847557909822611246010904259072173228372725706940679387023077774224148747017428492311459396703794470860980108794540070753875215705744252340335335308373839381293968119037002283555460061296944910710529720568145752319033542519108700422973563278287756026261357244077385850965755575612684094435759728584779318153277195586443818230181534502244919360805637815107263436009478589077504942275738120789054476972702973004662398046948036625376159325060232004723892171545688167925217463714646865425678407090083496045085690007179001934636594562193365636758348354435063358363501652676988706747613634181291317223698516552604181718883552951365376312466067766584070288801151302150921433245458712526269490505882704363171315559935923281262186102641958144963668168147569574552488326904553201180646178393010758742665514020358553532819850474470934737388228182265996785575978166105723289261086179800172249863204846121458368222880836740494032345672084194561660650974525335970817604386184202012112387718635230381022205934740647512715156282183668772805700810588503491774914107600081150316461765401747657599378995182918107350163079584405708331233974486512505838414633446666327412276333660613699980716340387327727852433796264817159749661160006647801833302724039139864871899838599631431187131143131438313493575243044912897214887608434367214661217168083242545310656024776932145371270304354539670531399197123457981030738074397865546454559104239959778786281506377256995888411857817329202553481812877767216883351451594400528925564226693394377191397022263865056294921404525585193620863970414165927892429356388063969187383831026789522251754929599824160312843148642372589899419192887547690781762162345203350170457935388414443273867328587800080410870131790581673490710707983906739283769722121859684589555858816630084288094370410861176440529198590981512598181662705796389982605474268664644698694152283665150475783275578778943012793034852395044166390940758607987226170590029009081007167877860736575429357214082328355225840754148103931781459028818328071644099458850861341625528772261928771164302619162081341220692194827969385839455654115684318619350419290639086046664617492768205963811300985024272928592748710973959893809359707265602712136965179180246896686401528234075985065667147285402675406416617516338254895779750269415544102626106495009477940938133530182192571378605503745712980858994463006276757579746492244592381464843398575736025863950312500850648842180084572765958346983803220519377259628298402775826384006355726458110901653480973168898429737427009140142187068697673205023625411965524149853136184267577190033736472000387097468543527232673031478193053474381770552243897043786091220050584423851360356886450494141270270507194616983514201241640842056508581321904420535569326968173629570346896842251737581650050058086147945435009722088505408364481100422807413497659990738866794608525279589270501560974360663413984986851364162773167714059537729643043292862656872769627895058315245388376554920022602648778383971126806043902236754317449491827052759552931693516668669454319581146650392193723213275895024894049166077332660104773886014957369581724170014951572033354054730434040979873706187860215567020441770880907794990678701459112815666530513178153774746280300450295186054950573248794225727338819873819937359098352517534140685787544084633788015973500043957329016285661146888599941940971698254786795618317769334264480817529391352011700146502802838552737005195486752131054028854619404273277674259606470912861921100250898829749124951787000394025280602224095003809154460271926290107604067777125441904737970252242299312659374846409045816270527399913017239109596000388881325321014003669533972446093952042699272760460317510073233979225016188871389897596241314387850232857404085873351670098612487784775061577218741816537999801181422909775701311292648702116463725913350273836229400927170211785350368450084736489190399838743844238231173785638154080545160335453248313629991209510890261520462940941971629368987506889034091432441564661316182529905237911921105261534025360377366008566058668854702324072781960640279827314658676066752031842169123055365827553570834603138134490244283451705820923113774279643103835518736842370994049768035989865897154100077575746073113548108541381322363363235855188779971207864616458960458665285433723241366329735982308999594808489568055923622252783015750595603035169517087762961197566030628338904610456777959586794586633232120985129725541763697258848760007770689810825770828090062324382409460066125313935805985774695368670272937936682029904785044271457413289751147659308554973832935231320816281120724432264752938035527936760482917716411726058909594831162419068689424772498322184540862635259252173697296365046186557741033428799908831945407332589876279111500603095101327820471563922686480813027137032679991806817057339640946446019446753693169044894233700249115149199775229308283983570902821864300837125808416753889615342384660549692810666349584535875306153273548883847119028787047079729869114604094757597902519889960448525066780302741025003371733993645379523965156883165133643788362595820948778970368909115859085157432780960498098949121420028182395240413824086395279685728411120367508193718497832493683166415933358961311664487996292137501986109182847992423582321991845990280322121594026937464228565289057772810062890747396115796262671171160110054574972558854551311191628802287633266901376607057122895589152902185460965126808793716781746722073999469288955244603665179078162699272059165470461976353612228298768343135396080486234358417934884466559877682626825487978195343804329074023429642452279604708622233665730499399365007337250707157592335178653591102210286897644522437057495353219734218620843325400296113064966377188026132376329504738551271329289233138018350862279739049923957399396925914245904722201798049537254064088817476795139929803402273804611440093373629016995102819306751648857280445522647578107837469750533053612339436019035831312705966414203851968164114602664545841255485709983947234636004915980760869601378030186507110715521118787928081343668343405515349104336982044774428786759146617542458165993915658773117838993820186664653449459717089320660498222691210879086277272155432666825211433316499925908974697666000934203621417979876992956839424892737466062825424716201261374979691355741682752833104984330851594885448474961636573997829872117695799680090934960068004999585970456844454681165318437900604400989338860144008141517750322899809739541209304220028666723500893990918148189139904150060961459729588942025595807027561817178750127477529003689507720103147335295075377607677576377113262980023357645824417651018820822108105032051932845022069081583874531929334096930875012385431100843412585511465368481155869886701126638682990854875384566842129771924660735118975683414756531369569704216886306136993345063745739952392015859574439051561331265572341339530068693753624749433568217651561048878076189316315507785127572396791782684329331862969397208433494046918035913935140077364860248468121202056600272966067911338059955900237781787789092088731119124416184534970663433741847394253615232550660510023628728459037606932148127342197566145775622693885320788963886728483908605847249992831924698245685743506483029058759406076376159360382508294136187185243749132181353403155260082063144669715428350765988989979062037429735737330258994594149585421238573511097734130670081978492427948301964052689920111586952254079818523833736952840799245316605322392369769363927159176120281773345822178067812139288959539295631658593128488665968704385530899107937908550769237210130267594638497496516122205788715149510307716668650163873475810073217762221854381517012737808527508111259608297290132450571881610288181685474113422600057129856653555496165791606043084133515626159260829889100675615193414425601343851207225284298142668500194900212712727092672265674577039932235732910905050554040818833077981844737523088774172622070172328471132031874727146782189349273766035311012528909158744924136494523687514597827872716790112487439801113317227787571866247092823616289194844088086574264571392289270252180680217813600061153376970250314663498228753394566009615378749391549308985183271877991296271749461088450168562596634164908000838337111879981465534261946741846404653004479177109955832073899601674694315498206974973131100643714746167439697564351470327374235082041157205693002402493707016728000982849656706878065622079182851057469242346512227116237082847911325990748278670307333524211766968034933672694181145894614515265110218278614054335972252463796185984753647844823370828110018539132007404773882546867738558905304555891372081288363879153697370245393601803825509535344247930130577011564916253342674394130540857887438469182982270015727456896547857815408045975105379054503522243673157398443264090974937037937895483044772544714312419597918066908870761610490661574792297243352527199093287200326937586201330882081949316538423386224372448337677509885575750033715708621321124497176023068936378481569006302972832186600871173120786786988020165648577331217079219459018706206301771057669440761221843559533269638882057144562914588936517529020880931643196190433425115222646623691072500792172341917416275583929871759318577819579087047638678268809938706928306117133254631370962612988563879606025043081927889633546482540897598033713545711875535431075358309860326631131077825527524296263305458067839255038181996713113273660184572697015262122924916839678088252009720753579749159056921757902310328196574284512167250320628565980561429383672721564705177036925394937117124476061456075435164110293495246447201031436461322266745616885730158128500796891516790294233471349035765861662434249932822020215123127657734498808216020402828661546013065266930787432533076096063435838217476048586753226047426626785701343891296987545278655503512071285822140468744218670871617368541018249803075437093891737445688207841548023033604388963159546264108897689832631508107724073342409909253158219907971848327223470330737696275181856375100554531973717109693304023829202752052938986028776302395181131277167374873983502088183581904246224221570036538797690620366260929825637164610006798171389356873652048156546759037420672597221972259857964184961538700220364759240187937568502049813079322753317753576393690984294412272528146481118536703461259502336683670600304964614750222658395862928530122820297659127558170885711384294094774748339505888774683744979103837800632235685193112870141698118583512073845515840541559772807434203365238644716275766361529682759387037032883161516857933692004036097494137806496491514552148515372661877991021147542312415823829657160704493579101220142754530581279382690017095332311714292806752457570483957486783386648068841000865205355998977761084806093324051283517317266300092472068844817164471978327430332433576120724683337134280890719217829070407186052618902204418994950859861620172968474416991492929539461929656969445920713669725968899127540770643475465673927258827479715928128419021062987137496278805309934481561603740587752270951300554318190398664335764019763488037091740150162157943300923178940306959811238826735899965817615283314313950800091518529834941484513653400495042334858979832825485941380890696716349741039060351175918298342696306798064310080118702706666179183065782399013636005554499271042351019887846073109227823475967186542741006880285722249933824158349428842195688359143112581690104995715622886309912566317602246223219034370563627386765076460373982011033568165207313326056057054653634776971816123322199864721764141059103427015501856501341392648157325623837153213289763404640291428103433874026036528359065517457147847263802173798349409130707541442093347720081505489494319877252077779597014968150011835438450019007890811788588896632831339749800199610430877924714759265014873360288567323282400440728940138460181695194178133482679634619172089590581870254421812229662600781356385116909278904720613331988793800330370497313031244775972717964144596764814563719851349405096372779583208673377943234247629749250320664303597422924532975511294981589960801324070470839361683317956646111453233442495289921316404917101368018222300727466981991192444251090611926864347775270789147961409504861820839493493378339869520022018618371749704481671819403235764541051997736527441033789579422899544441077021520448188652053605161674381151331297572176166797343781144057134568271486124993673137030824988579959656427768264862871819677851241630070981768134235125442690684114828761632138204184762020212275250947327363139928940760520175173756587998739314823798927338426594253718308111260307766713169728055014459414532859097696129197090394022275366827106880778333888214622001463968709974154550018555401977571629156262957672639010468323917032766112547073821202762513851710469677730537078696098246742448569246363845407017497340919618569512964546209481792364147113457118965233362056593606560445670916948051193626707046618491219756619839117201139746670912728168396883962719426513332553031416219804603490999734413269129299525943841801153867699060792122061131358625707922824419014991086358994469073273700506905574417434832830914795672998595167415534570411264435027095852665127192980410073809640853208424219928272229583575119126574288231902369187880723417961862908633316282693060431398590631594138912471794626706238409727832738423537311873489258754669426957093450294764518139049734515558428258397486631542684778123029401668858273450441964703806531100727089714853710023738743789213912683377772627464769156164685354999329052997035958664644965515551907235458351181339200701714796710048115985692518780622988194322207164288421087883616560249877655584802695397761400553467110412954710327701979798522308691911849366783949519834874168042239646720108280955832367091239992655722168453164224073200238448722112005559201150670207754503068833761027771461990424119155227224572206476588173407599234442325684514045858015433761379192966129051669594168302290727497318674018761926380119936871135856143062077487908106870500193530938957151869600089359913175531132295459743355906937079444651413741149967511760981063700607194267541995763535377894578744860359221667062575988429098455485957442382305982599047122752784246538492737838745757945547736413264537068500875447841190587438266695161417458136758240566158978252805507809253466160630433002132817233353429357317977272734255308724450907903526350642065397699381838638194086905786410464671654035146862091439249843920802819974643734709224523152401450058777031928339253839000608505220709694410040540028268204440147331008129457263149197774631459753710176823406479084835716177411424160993986121242268831118544469372618139417310775675455839594355439154574103490394810863568147207654153899053262338044758227239231093041643852142105291613826619816974510330020408754579291231070000007690358016961546221949632505629804949388787290283771596989872114750862420041359615650788620639227237081448474695605191437248482371688876556673361847402657296049993055709457805277566630061731314027790223693448114993805659998706311275327563224124859032886416286970138486678370636623149211918587300612665056086312746424740094293821318701143479011515350873381514746584940420367308429095154388587306471263655251469897763620449071196570762853063297385371987036429124208930929174809383419063889850160303516536932232367297740613343131492323400721454192215483830700157918308127957155604324534239961382226242675494205513836091454848414925506101695917561534748499559835559800681112124358250342598449307185944387017410646894363628086856332634451184678739324624811256750052832125855830509830270498053878385026167129950346673566227266692235688108297455197266533363683589699976765920574391712388349934882031483016183146738066996647829575143951449947791414650306487476986371722220788770994038883957228761500113158145479233708164442610370174642675843328481711679102787888734065616619911945827737126253643492360812855887576700583520479780555081187640462952710979981161697689451766237111005091692059028779829159779141205655577747071322776736744774362810272551758122330590142562319094876983147984951272606396812673099944910491963923077164690484192098010330883774959932913915290418428925378699665841076408405820161327034601873071206519775702423379249755461067155862923399800656430534198282819775329103695748616126045652246166672570252027085006548097315185001884147117748205182323644268829533805193175219544571131769638459019686486835375115845203754197989590964296509827652731079644644692948847181302214191633836146532635813209269637667967724542076660738134356639597138722743995280100704946204828693824114611076370666531636807353830987854457919055688498715487911902383400188538979276041360727831801937805478288751879272113846650516379623255712736741710658412271901969599145641324494667456469761107270537693432358921334443680486238665616816460442067607355352757786015774238335984044993651302545266110077678948106636339537970696456154532096122129694135381222329982919717930292923006479743211423592890566856790204417246983996059593278555414554177473684326456181513519988371559049087473447398999985878159069507411578964883448312219546539511974558124525381859490138532516080201627957239692444795645737146065290909597184719223518100830942629396382345957146689653200450711504553094030236757682129914387702912437056752252445246567967876447509507296575379358046610818678737933750769881353154505678794424563640957208266696569731394425903901311514278152740043775682985059561009713501391650882871000490884023381929253128788416113181999827865702154597937139979457834963398688084679639689806710666224566959408904509079268872330143984368874995097525253949602709791440512454186058798997638300293018798613248598812248584122993096459726667670267672343324462335596961404658351158863906975318870085511905816415849038648344621687386976341293886760089051024778985698861131789747673925655716399891775269090901539992282048286921521221268090394251385060687624357508919467466093505538800170337311627845684640538605124923577970767932983405670638862301420972439158600830304113292548467773286957576032967147486779167999895361777687251616214348105874032013422272676806435612699768723337678872196762956307375038934895206023218207695491119210084207193853998707964781214092242204219419513526681214201842995698369071276511412851974849460073007358478418507304845588157714480393651544498035439528268281994749088290242252053664802440210243400947903965712066825381284576335266649371237740664262016531894783709281627646729900277300792911634170876915097870319832961174792257589251977695703848033304307352660242816953468689027910059801690400624292725345988640638471352658868561503951888510767984323784065759860865406889698317948979744263583515636641575546123771093886370699860751295167424334634235912165743383667738337830050500282520107445050115567108609722466122327622766323348083427219369487358197805544582546906655353615598951935128910818124799028419134467115989942208934297222306115829952387851939459011615849226755364642078325651726163293516777425502426551183546961352378924944833402850434960279702738215641888945240379869916571888005968425724461657027717449045704024299847459588737086030410008086760093529133225944402075584346740525918632279215368369872245047630582556123990155789425260394229323567798710609537988256102739064264403688484973139491085027361055779744213833933460012837254399292980975875527614771074135849319734373029643896607624398153369850083130055081052364888409329625672627804585079571039090693599687539204801085654988928771383475135319356266573167018185975033613297639363587806630326053142900953088181623844590742731197858775399329464688250542395662242154915401393672194190573681375846307043831291967511459031014364137563085718975171020571432086759623419810756782498038028233069118507847369687978463957560362659001453237869832792335229272986283772721585741265812051648736135827564074885714023589993762839894243896195819738329475564387211597738025768590262861421634307936357132412429168611893923607891782449540371491984298791270058553804660096111923797183887910916021635972840200266047520724472634117905300372630631794679613875903588348460733612482706198523389149260803635186096954470930186771052291465252290536197019832783715850630490824236509979694339536171183714815835525367464280699664455559053303298243914748571557297478045966385228881900969787625177107670017950060406262212303478215256284627387376871696370584431629472431556850861953081265990407242837087503512174772033196354311425480265778678330643009049838164251811681113142079203057027164768550869629618873970664445948505229522009839480511097742362936766034597785182398972981846775861885256187506103691855644104555078872869405060293518855618113640696042629459578498945648205476667921092173430790252887956107252173480222912708204814334169242100370169724527023161207041981420357751246970330942158150671991529424147431043383384599357299326882425928071072178309505013054444265366451617866005637684405178349757071361050157175575468102402187261306731642140470419695125310438102723566751004805100421854021479736505662581039371444027643923549590251707793169414601904774741027738231693145233143105252387592141224934353677611431138589727613053522562466648743598288196011359127908115243951488808482806585829255472679144721690811610162095506017985961214799134879417838950633275640105552542811414500905618703657267101045311241297213111111660204692268277060402019385788039685685508020679137395877717996144526636470145155224419787148683187974897243085367035113712178127513696546449811865542994030519856415934580298884932703923539330928462477349701891653771756614324056783953873498638630222395653482652913953607781950354518569729885702702105605913975365313402252370649333427322078960210327209965572708575949402346272466160828849273604772143806940648083525193629538727343827917913458765949343549948913239401435207093487754949637219981572007191015832754369996137477815448393284838673106723311872667052307289596663061960165987894257503276879429335328310844072085029307384497003102257682466677648090570817987054509704754923967904990680113196183036133571432929175643591831248200112280797436626808597980877156731960437961063245839200135543475600268350428357224397722847165049647006688409543469504084828103596291390015824375893248446683616762112390741092622237944606974855167821173792169222569854202534898317956283166084369334649574317998144903283699469452758601913410574800927936653196363266769847823434960541730066088015414992158894095806910450779079437592552407350272403087353744244286647092449712316896294394571531054932538951935568695330291232651503318562653094042227403251106793137893116661359172396784331785655432246115072003185371242875883896171856171567147738094317548237088444242140153368241417578020581352544797844002400520210880089453617974747554190914855832376387162881882745752165774893308180841293763149302378264353960019091105165681764398043313476408717490077680511303904359351489358056890376458071546034777744860078741541657788419843672007306794108235255300931931830988698656027543965581037956408711717523938109850394078093655325438125912421729682965378550626475244318330795328155165983195752377916734165793469767334174555495095371253270469880465131382386328605558261678404307399244991638049437524202775309941236052925486490342223269537558695317468624820050066349587713883874392035539501831218606077171542256694986761196848336862190953193963519667082622744272991037103876620132640518992473390355367294193274945481551126348436413702223404081551083400521350752724246565986636090915306701796190245550486821577223213355854257451198508119665185001572039165130019306742451246663789783652167113970093145406603886827521544786027731410052905352641484188319323668065215881653744584840523787451285207177841943905078551420017727724658545898855434505694623314087794336530481262708484828278389657455160028684656323108628238267786494539948695847459131161555068185896788724361358511251588340063681097359248076059545799889826066368053404620844055947035518586695956835876993062862013051370788682839921742900592567849440625447933931634728082145182053350923544015054636764895515325345963906349308593592506941241249306778441025030886411484237555692107270553463527781051487625009320621712877512196297304040128659308236310165852063122316254666212668399463143253169424496676830085331264730781965645023628514254915464233554672495114617042192694956975847038287826930030437243939551677144582981083095895772182033672914202622248685767338431713986571103416273198846846245513799053686428768427549229584252039559561934517756058810686781528319682027286632356659146150697131959849584026251710251886628926941344345785387778080114653380667015714506908337298088837824497243723948499851323433592040528093451184252026097660950526937492766882672836901869918101476711639621949185490401984837949650408924423846461928480877122618806963474767308645927737682706910191089605986128183772199800508350616959353591901292749643302690707294871411985135461932069990276913406806166475503485092757285682200317290981656886378296123567790976017644894592708644802961095641327892146940609680566928649496756421283133244754995406338838259983121914259038902018233292338808989162423474559300794024756116528883357461764030398484244130504729141747277456518672873602962494044553233885793337756393385745443850086863829885072501342622304321354076886501127422957714377261464543673397822258655673345998176095111198494300359451036768879209010305827747740374905249448349437104384236069589317303341549720607071913780605218406691641291260746676908226696598425657813068133109771549483650525532308565504817626326236214011201169438197779283040375844579185860580465333729773164487702807900410153107918982787161413130516534148559636528981274410566986168450140722484956902909354647896591012691913456861053857777557399941749591944915145680041284645641861017086284394702786605184168116256967585700724018577217546886949373025656048588161088128592597901952965061774773345315437495354688650997726844586526848813852609963526000309766049723266706411676434743173545370361508117729213719202980206725679945631530413603530114227597549230766099409710915831315350164429810102919945161738460810360857426465076939509221507613863884047675554274804308129397298438649754770782409286192918663690661240864873568101230696075028918353750913036187692258303517414161239059598004243845398396455065576099919663586932038593676238154035895342037514472802703508880166405798779214417629646788445430034481101333191000172540612964320025876763516862857901105618208789581388006044368656327399498986399101175275209481703228457017245289080122147589160219068741212479075210438044703559699732013693288081672772537859209856232991995540099563046636198903445408978634648134823992900959088446345915024539130756431298559423464797656832113470544455568178792461836715241385272253265778388131890750165305105320788773961641670817450383754897351340633726935958073097454438022771096336023850519666616318583293001791673744302667963178597796999034483349195541767221530820106274400981106083143543243320071739218948695473775208325939772806956032925581805901208610198894696903165195536329275799297266237629967004989332439243643965301953097504910432174029153664190544524455551254312786865486161658892196676377892444320639728771972187940985013929978880183287752539319680262103736023274149272510427848959278980249605285613551789926298432778174418044656941586017543161523031730993505033522358444374674030956091929332063592367027317097206536133981718959734239715840971308887639202918978653551961745588035629476069095555312629977959717585378362726924261244447818299135728474665884622632425192579919589663652724571492940439593368653080786679344104434003217346391052064535020219252007099624635792731844400779799422799859213331533301083323658090691610236445923294879596522048855998374103498556835837514100624148392311961847761095981329501244107203679465789925134243041806137962988423453323028434317329541537481897006354604763270626435115204159498908660877579407288973900730968180833484427372830812450935349625234479335360393639863228623910007038292044080475973850855782632200309075334591367737233970745454189118812588839976331842373387786857529190908358616673538565239917856438871586490217822118867497123361820354178055447566014139844970184489747969148749433266066429348068748538913574140645618495282311847209640832636408765095525543182171263216479058431161093571672125890248201214843191449772566912707255578260480924768194404874583479895915200761024154060930879624121905430145266957735178465362238127582381045717516587703055537056289128002381071390915944279225140411751897523659505631792364654936631910666567116336733086190720410507534482114642578923118770322230061425062685772420635309070018150739516273261525352606429565525869900704044925027598484246782001674554528963105076564397242528836789574596615173776055763950867961004849535528904500603644978295269213679054789600135844573639340108872302338374802293886248712175093278971295126188249313820777579769138737123922563242249362450526338585947944334050187516696873263338336304906166167334987176116127953697229146676370636107505112825169215638907169222641573264503916472038240481575459339809044518943372074046942063598135447402385752248035247929725094866654161598724035057926041088795706027076000501223413914894403117748113336119199711073569070171454916333190512582877329503552580374588185463015745772088031785102615763224114345201795523763292779257257944726259155593871125098408650434458672649394962421325795759484107376925836595868511962086370070060536098574647510889825872534893428083362436659133159410696162240769058171231451123418754452831394956808364733365230628262184573842210691203354050955328588532809438733721275147877025219191137957639303603151269389291729207179447200807740810417369608277428525111865418259777527472091234181576418128988652841477742362019069423972408317695308300904686046198210579725353250569202842757191428564854335757554747150291921030529692014845731716058189381882696278514111788197659212351921049204030090346409759414337965247201130560497728559711308204630000616171001108086686122461655375401791422297835517944196316238626058936344269031882592774469451448725073208032040245402053916888488338130189558262467494632478884404732687027527354009966881638070825847095974493725334691085611203731730989710412199276916296637619697685415860254550352107287990048062032396657799740557766005557577127520519034368404775118226288845608776217995423843536897713786805957897785170196012075441312729497587693458837571933571653297522098448270485109273846954638364001159151993266959658836499987338542517339697231379426984134287215945717372173594071088778327094446696420323001867315814352809483405712125073247971623822819164298726512467246084709012474938621729017272701475204309987432871565751645764175022483270162788098114377191331784538561893750702313498243761825103127162612434802116562906326589442797320133086408315497139269919896443276712491895693315391152757506168463771213178569451064574570642759516688279189940222158935996196566199472996292465248972293892956879570857486089427343322393126026174656216819076282874865628480520500532830419221447449170530792584241148110517348038162642073626163669623262390065620578380050601524849783520372560103909454390060077597901121040484206740546499174000774798231135850101209845300872546487990092812255258236009385631794843957333729636906085463625307790387705469463133974240257491131193866830267375257667899813616647068604306089632101779973488256878260822025807960933342116050755504382384298058876901143093559470038791534400198603241383292812247139352326919023340108529413276143684530117994822765385999519754075024306824926195619512054542532403732681279462927995312590916509366117138271737290293173469521722507473582460312469457354794466553105452495389840884403510628910690969789065424658940797121461301540012945064022985204470664622097290095663304837910783658474181763918111345697537808102082099641022962039194208956296169888928686102414601865110864442308941047596161435325271792968090545692606028751787506127324949055685762170102562120932717561346453505752330932312018308388945584556981579533564166343170850549998907096056263309738894254570094316183860810139288847238499459171105060554462446805990461747242547254935490849120747850490361046288147029809721939267461697603066858448279454745594353808254860950068180948811306572938142830947588257568934613051004949692519563763735140014835517565419652834320225934899424661725056084166227262371139775750027316669150781289676726280516688650129164352935237626609840147369961601496506658455617645801368270399767710763492820981577652778837868826083479400153677431144634399247858485186631036364125702386663789920255977736551132284357625646573313116936214488255545329892563297167253499080771944322914696634306915474329983237280126210172889909649491662579422326400855652491819422021261104490143973374804660599223142834711658505444968291219203497061884539729098864722759813195946472328022899619292188543141121260294756360906012493446357975604525452939012630102669787936433291188811610920215583681093053381343353211664346942755450128846480422116886597458857669190557870613835190665545828291067327158662994278946166500855939826288063231422473721618058992586573241521938727938696959117447364038086608251287610332984652172987286398162398767190222253312325633927054572720883795406034097047327276574258855368311077489254654852441104058676356253659905041004475984820295682907355559642287644517577247410115285783326343565589732392433913592098076513707744028843981754141012392580554001642177192982329824798802788758054169084710428390750138426539905151702369649270860645196238830367433259648928228158727366981092245115755238873565636239519362765503468871320126171404061882483741210044441595444222023165876785907224950255307126754544521634204987195796485854288828608119178652704776513531054867387545017322506793091358712333123439901611883255545952379690128286214628812787982947707589360425673521338373560458197194631985240936343015218972409813609730238811390464975696585472499652402950341573270855861413528364770829665404551827880070286712686950567062750798554627866710850557872071001806325829706491988728748830536370604538648090985221802611427060406756582947622572541552920922938961957856277727707397446233201138965230618762096095342734505031622196851561680797569656581750315391841036718887056657635721494326568837351023421767249250475404228424864075960288746004103875537681540421786625154077959318737112208675898537018863949494185318902617970132725536216251172179273941097035053383313173050672328213703647216284901987589549154582627866317598565476995362648482801425449982079522747414976673488199057635287426042389088836375747358286632893814934557608936621372519030351013198372628856553149335167451085148661320495209028892887119177215517866552473272282242751694311711665499985324798167320713868655406544006964455941202835813938232585732546164490293459759777342497426685943642862921599681387886091657667176867959678543598336308307715427149681138500089987589574475969861064239526323718260927749527702278205776317086605816815353761553394648874431729310589909321264277041051167379434495727762498147453240007569274613081277365567792783068347531350102675814353662275119218524236465829314467219746889283261875314108053501763300319236000030445922467242628005411631107262790205364674759043493334853543635969217873958238825124202317053956228309215807701559611118746717072234151932646025793703214798694964230624256058071853676286762906027082656552636336640485293451541204569484676253618211856280862389695699580969520739450183365794723897166491588939820520445851025914110190655486704505616829452346385365259166198255329562376457388079231370592972989713612285544164010394166521853757180331801975962446169248347763207112411452482672615721444016122027527743291211589558534009348647119050462219149906839710978037694149115490679477013362727558068770828114242687808482309445525878038751346725637522881992300744536094464965434667751636655660499511489257465278397952564650706721427680854420970885946265907283886259128103511569855997906696032778366195433561605205229818011565391031380593357505900577704062558743414446823103756268029353487391008872890613757134127520560384674314179393162044099737086913603942916131807023294744447058949552711928261353877130819061856423385282984720736277408556604223629878813771102549517905018073255949247539947708441415504935119860482505323672432563884384850600091030431295585839332278977340126021355422363447083956769325997596451572162060042168883362645850090005461869916659176775708000947851588233683188747875951542182601837840498659942427738838430019055453984971952165791608254139720010279681694197152549101128396781668218577543007039783532380613284535189796974973952187479354212263063012375417987520578350671718876123545083072731836977685240499433954763061926689455692743509346023698694511434439222144448726728163759045588065060412892631775858918143855068939998864873106789368398615096416575847590302920634288913450119275653112132731616910009956789001772221603543673897414778903279697257413405082759403866618513931722672191374007223934950941889989076741018427206886347986972164623278352874014571908110004633120220897395093614514574949142662966109997366107423826390536100445406805888585879118314736595039135162182571262715233795869435481006087437589180822992191292950650483346707578539716114850679734200871632635311780922089212378187377529814874906039646000578034632860121675923644936845760139723203724889955297936834935283059270455983924002738285340585016663276525493142395481488064343165221176447913892488156892572546860453939562295970643170504061855580193700213406508302618476613058867646898645532904493097209335450538558004529602586394951689444698864005107038891952817041858980235458274777784969875809581184031867994522188012275089712087878075366152269427367379091855148310967317486504711502536059167993480553465603898655011254331083104755733733464086927951260097719124450631160102270985937944292784674037532493284323719195422043824154962599632645000171556225647066320916604522711978976940670321063211021959721544063992124814358538326357599957340205500746979652819203897192962459269661797984673860783897941882795554085174165165685079246718105292710837983109786726455226801142189206723486369042013715845332089291200125818795527320889611443712611291872930637223246394576988483907384240843067340540193530050215057646266169203631400816791786029393731875904449753526961195709137576182607830570456252897887000361355318265385284072315035415104665085327739009137330130793561081655863792213595383245470041305620646413893430526547260598718739999710225159773090951734406583886407481411542736717398902619950486443458456301498892581949986973569401086108827318358767262208708715641453341090808147047850257127844756786034133110211852375161467790520744393471924575934574726996131726491681958981263194011721891746300001696501747031803402382229548972770810122448733839998193792707309629144971348365785553804820138645611476586644602405943323498757599156107410165393893900297439321525854003480955672710339473718641822843899565787064839049783241736756563588490978195109347915682755809650548947083424050424428356624912612836796983111838809660505393832521762988664783977836008365132019328118153446472750259002995368748548844859297827170547107664466816308539445502864591915522429710445827344589734863732999934698737782793905707097908115077901117352599170135684621558012774951610086638138188375895666421572254605635957987636902377489598021728976728329718831803072753022794154829797657370910184183751788130762627660498776985859467241864695640633012474018706233071781054831754414569516401545059202587158426954025719038616728443904328766433874815109707980789497137188781568105757861079527412723889364456349347031615568256623691110028659401073926848147498906913839284762608138864511427641736095595613130110731552006072914471801054459861990679209424346232180132352411359033242682742748225207764667257413621303860058436968612028418462541696785499356222030362214587870806597163015333429149616634921678923945601573139124923597824857805772096776754060799018450421252816819427843919251908215956146043394819611993771650684721545610996159093127710445681928234242827707981661179181660666502056273977246761119759408510488024179318506387281208393406040827413929684961523578524143352078472141574102776374360870817605541547505304280129280485922647270340405020795697496266519770683105528278580097099299558947467747564612828660303489758909688660299277861988855097522386795652599768240204409101883324294487250702842277780939393149826576614683911926956223530010142357348038513268839766762626827540821919187173023635731483414025389261422170673338285048791522769346410001607223413165653982941196401348905132764350238176081295589537837656577820748655103085126475791035575285250475155388467326472041529962522760904200928162969017134690103310715182479583506235969337497335373536948845874564394702574391689586848283649980635457022443470156983451235682492542775112656135286616684758703316968990560281352433919443507769377201977243159710632534278953996027194752733518810606898184736546469207534839518539621237238656781087837744381711045107513017685951327661760675644146368351948505924065989447209898640841372651666840417446058728148965949090994029200896022450573109766658995080295173686970585635893551217199747896507055459069314949808553237805782378282956557249055104479729569407612145968628451702783017837389922021212415770283202891983296546343478776356875208363266390274137171866268128781299485168397856603338907180312309798933881876996978259562478701500061610412570514978643755167789574868593939522874654863026026070821518624104743699450800430471909953729762123210439407500759907714880091822317330617925100384439757326948397522238873386296977939577843879927104886170461674235079001379617679449756848936453856425434436039554476378725688497175197760266882986185660033758287237535509452933983479290821508631945866228627234067238335575139301600077217587047207623145380192281394412603788152631610396438312191359942728751135976815366670132825373951221152094624425235536569826396347034962368164365215303931113553884171663319725946645623819570856436914442263384008775912061444789832858184542165452761315222580374172276240946323008562783868144989599914637917727266919951808029839985104856065359938920374565009458658843719458353375110197345328765182502407430720627490464678298370272870028703464203020334376499607246619299472211643588271792654692404182414443087926833120007178633531720228386703431517402220246920416020681336521513701765211750705930346692768288233231135940415684090949429643262819102222892510593203245182587576761759205282867302489292395928787544013805422971602237716242898459302184836528151630294456465775531527851860092347426619663880350130118648690689508966853554335905314240397245935822909520475009885250684332297766139812788835959885203522203061363525006756541333466135224635412649121282480336632569299247498476971945431100333141614698979223712674276971206659121198285804323016640726697734942106759531352133936820825465024474209296873321953734964027902641888963782316336551310456081782506970838699530032395398371658304502408117357177452146717504291955930042287993953076208522498950057192945264432412276235220925112812001904867662643433093589797386076908092748229438912437339647182646677271135684854007373686586303461713440303769830008088509864314655466894849001008929807436441394530067027501836897431805960138839148845344671919385905317417856792224197252277014865188924663613971106460717896947649265080706420423501124137518699263181427427226599551998951211223009098548671227103540614138644435599612839857590535403078589703017624336699309291670818016449144958625090943653034697477633161646196655639337930097793673153249755212876206323479651923836627732509583238438091237146528612161270972111898676500770987956193572512123746697329610906781049522273920178970235769204819707800472702006008023629334616125303238234456501778993415148469016901583201454779501183377369721715370650936494859580222919481593354050314197395868842923092429985834611454537400528296045032712946021435746706549505908633669943360903913642986283811726619176306544611176268814350372432128496694314553289956942636045303787643000364150771407764670758609059994717434968215825613526435779399322677171372168652637155129538973067318024766517644454245084010008006269308185713645114950861252399012827525349369718252814157122290728189085686124042980385513717569809495233250068038846845444192633018678833568028253843538652188203083864677446718711829806865250710999177066230353602045243240738160066694039404052700530600752948984040777222166856602593920969490242463005330402756965440228885746918336793379062583098732664753539129106273553765723148117405707832545860431889041744285481142027517761675878427636918990736025978158303812374913608605253482784039521921346826881050661408641814140899885311016456169293669354354084096003501080831262941377103268916878184415482015202779134741483785383317065641537694558771044418545807979296433998238549700276992399645559604999110975744364609031603865889081212148990513734814297806372199947924461998173819484310763521926387914352632143307898016154708911301533613870851489691946705971568997325230804961256505228730557037934976475959091922150687972674021049068444716156798849773406610366986303916746195167227179615580198097130086846798528671206681657623224558195059088063648715397877303608003600208616364282575961784320012676454162032749044504657582799598604160677123169036800935565337107392464387295311839522468341829673211383373679812911109654866662622736536340948701395130359756245316777740938897786318889171112060593502811967948254242622226735658988201262354575885406926790068945514872653053920226945593615861794937530022403569865328840752578626081791578454542509941355855034075709999313782131828033227431347021664585953832550413611054488963922506378205918976201078590562739573246843510636614817332328822608314995359491286983616177345844716293919461349318055665760609124349558058920525169227993541912779737956337175013819272297925960883880132968029124940362602124900566260184730017636795012820779712027685940127431639943567017090600433839810613479263496052853496275404544102517088213645083590683556462970988032333652267132207941456758488933001768711479101462779226845261073306865699853837353012748084055950577996641453084822373573013691752157585389632934283760347377721352004217378225656281802637736373859268780236456307236292038251451264193660877880229331889110180048447537365674924535692406866295487443024941527622188928780040265290224545573374604949320919994259523413225618181241737944803257479518736662684812441083241511504849732749467543989963460363511446652951347433799479410677773850251122023634226392420742669355683926687850982398145710245162504046894459493032522882406497685800987034340683705825923725219926008968240290311176559552704865283029511568143926042659890518511186955831736523185656150920074630814446294984016346327127450655358958452671546105415238214445297628125703292479542589886133266179806171343335500016896624333254305079788616657498331301271428755118374197552076691386080819929034953839518341540903701133875456151143941302210478854927225851764158766644454631243448002929204764755038500446066076985110509889998192173894298989794196129528894609539396708065803746094125831440585562763834729418337106147700754076758186452582755623225390306564959795619667462132842886579490990990675484674161668870965657547983813719097709643159220902230284486869162262071918343134263539688661911299668825832113810307289242029480156357458815007955224269971456838885586442737054048040914572885491699836519810189233082246473564470650507553175279613688017312316168822866758698360495779532523353390146826462012553764013773754479860483720018687041256218408676226487130026126795227392528079198934522490191804410450387973062633493565744185089180175026690344510874547801592503671597592324460481228973148081331367003295514326843598643003518859571783541672461968570724100289434632291830124440631263011078621936022947551672831774083406596380250153404953846431061422464369888301056416577474234463329777024375633766206747402047317890827757384222356821582472666601298826294864319335671329943893654078852187546935841635533531460229743159850073600300139835205569321413860388688920787464751864175518427640989370579444348903181481494892851499399687355505843014087442528217613893437437791409908129158822188507959264379129965872929663971087727292052678472638660463466523074731431277980165282530442903619986822127457950693960606654360136044089778242024483004055746968997327237854749720205741950453252492663481385409179915371014266746483514822006471546462919258185880126678750307539355911936301703009592755421725194963714405880264388785045326232693370043006182784610326135759521092417710422427666772241542678681348106307531469647293087207262186583176170138183124590739884621726601194020783641873790454092397142790445682770547660966189388463041482418616695204884093895713929907797005107886490304697837604622823220186952858101299836508924194471902640500545578699698801827847887121512911498182896145689334926469339229251112559960332734172947390798259546530677904091770766003885848182308147226800840544259156754651443688333885195594303919168193098456861326839970523707624561587302257074878824353269338554932088809666025677457492073766002221007242324051689907487829493356626402544699136576656944578907248457604086808313276801043754036317842678080412124179328019836709584824149099276028156181387432046445512309270249866705222311478473882916624242574507630674194827782659507982056155071251705070720153648609547235658872492088003393928669312071837420698349893077880578949542593626088044516858673645906657524694136684916741847335685415097948958957949621906454950888023296688366813984775433388638630033959478894721027683283664225489920358342525212205635609154270392658368045929810200704308701325511975390132217067328251364370779707653303082932247272223563795151798036230554398112582247187989407049799666681708146350041273878551944536046396020807688962259199596188741318008609471114264967187224102986687041880959364211333533493731354013577610485802228574616959781706690081385809166534178450628218665072254045840330425629457589744115313361135833939493860173794382770784272732143442092429093511549586465713111998754282425115469613018824655805862793344477451919916617762413863210282600427872488938493473993240146735336067477337764262868264429332146420537031528337736364940959155889411736373707218544917376199738126944292899805122485924362629125572691530663716733295361064417044581938109871433742028455803119080261552400760692051642758261744008252167688826286991021852840408325695324365509646215965768460021606308502423659274438542283882782868892010900379416368217009957669031306173806184053804376424150578298036677618200270765184685786596471091839051954485244831778486434295925261121808013237983142621572350157455818339802116948907599326783276891160440183414669658250779154460786291217338438425960405533568682317282048432392777420736261552995267375590230311053179441152368452082114667815130054370687537268639411312381755187865153985465047009229144582598003766857447255060592240534398197815298529094324737397960936733256958811064898619651502254514077456397125323384926077406825188175597100046025390802605372762698623080940890973382317986416305032547646686339269861857721940345764888623624521970097755869068809364165640056195866212301391393895959727455073452825176445781618979083289390800412625939207639607657798673395737841971457236223536604232739260519484712599966035600249863860089054958406700162079795923984678426513848708947202394214006122677116917199321152839521382370351374611004733631783045539469084294955799031477911119010090818183161909807376000423244298973157788954317833617480064539346394247585178017695117566082710961514409154304451492920735810479787884151090493044707818064044988476082292537999311512698151275913395688955902941060363491978268948271204794239526729675153743708488845862494400080906227324544032349261775777023560926927964299669093964056856983147731374060143450014384610064328683869847786361061026806125103537750949803547593944395805448116337661922665898722946535876495312349463957341472171182860225789678672416375482647498978030146681326018853031919656006276226560368599407341458689665490638597923414439582028345444084099688288952779916092078585521885561513588807300294553036731912865136518199301444575069030953270376042474130998596096353926791947169542242496218869972278828371535144089804792091065644253107141307347727541780260451497133563103821344081203239052483882098644432619722196797329243407051499849940883869213070270793698813854019795468236518223290112112647797169728840063022880058412658052604624782436863094892130518911450486635551855084129046315381661433962211721896917118726246276774703030477494345689925578624451826154530599492606412459607933936285632488125954814506819222429378276982942851879378827287425267407634150202957248168484883166197198455475623308054718092210353363246515974550520707386085500157987316259991166332329966629334077425012116863837554683532303124150781826611078665877024733925466586550976219744870671212051295028041211329612241163999253673886057224566764866857571364235875083023279484413858463370750310523840740672892883939329155228522918639404243523792464630730242737334072285245963431598516674783450750078855088589335615111397362983778005926897704323669401511926760499720823224481439357307434828659634775047260785132350763330905480731835615888011298624219540955341725334396818821370028837784886273232184920780168306176562910794104923166628625937953457745045391748897413155477266812275069840487949182959843184017617250952812522959559065785286245870138921364309388223015341973121198103729169461093927868883605916517383818275896232792750296550301578866989575131829803158530065308072016404465613718278932609881223341196760049357785343879560540000395484296964470796179107054790723252695135915713807872196916858483149372315630291229242023672274230985795970487561442961054477153229822151334799195288419776657452828182493390306245651088824476803245968445033364494253760553232326986865775003485511799818547144128453843879485368128183476441661541231441921590534355905194028447085401406622529306473980099502621917119580264920898024491294157638115679281391127005027837395912182485060599717145708299841201620645451907284498745879196169233932479155949729231419817950780515333639312706392761968064818847492910821434604073671061338356538883145610769974673530991064256012890429068305038103305630961955391196885209743573593143431237791531143320434824355349893495602322074562635955558863699907195931513174217206342930398626711847926619626992908962817169148169044382393002228279350435810796043342336888495420732339525424662693670224904733642787399657490663235585864104154228762831229323566836089718081438793564259436999053244191959050772240189772918103173016667102409508524672442125361479038085425606899524412402508154134996787357030520372552231397929708235660977844165390866711948496817305223732048490421338142227664041260974479018383200082482298325055860234852202537704770430391176818644548053571283582102169136601400864636186130643362046717648089115362398914220048384504707793424533245206380506936766855737961601315561481060468922547678402483797751879043032367357718468320789239547507302385212118618238678005979761685130841053588380437348566049084957814826778852970492330759841931156981393750597140659125060777903302192370067972294388721599860621535623283103135331282490549098155845063618695182685099599397160936780734978311772152067753600087828690541728264444454262734324435048193832207356492480792002280576841304815745987676937575932694442826568213116959200699124667410589062848972879994455577412865882358232662238855629278154616624915694243553694898303768006101665224815410108891148019536920122467032364350427107102108327338791755097537209040160851829441393224299235303103125912006986315378556979862815593141066122372918212437380391735902108426511737698862405130901497323250130736015952868379366682408902398683830193187682150792293274671841269785170154889288757437073082187197219458512931001747517975186811260922945564371987623332091611463544968958972228853034322918224435850965842648664912087358939419052778485790998398275003354558920670535329764393046249392938085988262440974908174455781500788745131978292134183822397839473963982805647567651178274687262311511979569950115714065724985513339439162736900613350997172534739769304127925179817697293131114677759479975594338609124599930669961397989904266079904647333679462954427791143421239088160548016097150348302564606129719003055262520039678594548343605187307076601771708609565170470401376973275161795789010789245252595596810096746463001779716236983340789744271970896117587649920273901314490561120131593346375501805314986983790557758716110276627191483615740977714054693981920911042269178219239134643518339285307428299139495315094228734573651504731894207647134941991225868062743498040051543367497170082052304473760265096296273341301686478618855861389083954725032960245152938301988462431915284195702949330053999834332988185851046261928675906590981035451315953931009921699119084388312317751950808966756804116759590742349416208021817235968968990564196318524234661058267969268554314594715638610206785798830933204933816518403941339125704382794020193926640692222904345438282736891872075734740256011101040998756392233572994532698074097937370201627225034952179047755772701997322158104274068964817129972916401794711440085162694511973161004461024808976878468230122184564766739624754803524114959380679218369627816177419542265713628103284170999242382452424538162419116017455392348679035952019395881905716581587104857691196717001419753832984969314402196722790214978191121030593580641391184768629898626376280842008980740267834388029923073691492934177889453560636841876189010804459140463511097853563926184213328060852625287479284571455723550614303759484721777735686204138869015773550141416840630035511510448885156520786132348100918224166470905037286180494251969695223405687908004840323816907468050580267971978693194499481074822242570808096481876772372284502284008102357466043259303311547284957202305168830191311512894180241043534265958344037358713785905289325756608549636349009527934886181526399925670261289839254072256969033780374592434510152415655457677460070732606472913971098938523342946448026127682554972762190017201268065101018510730653642051609178282733145437287022702319035786781551673666359597011879708022625996524822939311198731859729356775534591492286714502200306392526351439127969550438883266097912360572130627585000228573902670680736047098775891809875962626596951732832065760959102020263574497987603993006310420057152915225883513643829611742985312907865098874336672503976865902877811608668214756905444830739867146818114755217892130452262840069594877115440965187259147503045530713788863694320165721571793045097077577259997856461357609588789430245118616052916898738449725439309965784018484214890907560341265076042942544287484158706623280759057431376412910303433326946356481380548027999651285561865935413040577303347294491968126887680289054426829269502304976986074047218773136280513940684700145970299873464342436588798746129061917355281113421526196268895048559871781425730731536156026258606788573652202471373214467776096884671334684770987474750837021825262581313435382284231963392247359536813669965226012920081228336902619946737763004137490432594947548690313251488533316843424587799372920574851937017584472554761326897780571461270105174986325165198375048104451485368562905395565719815453606451890082685283212889010719510721625960210316672027216196112402127433770247639946990306374256226863523094537887054015032812503581739739392751820699006301354810898604892425917262350144887846689607981375354619533436217449777017413290497084599660699615625394974591186318654467383884476633685386754454367264586409598505004319981358736756640693231995636873673692904603540678358438986775388759088602383070982553742799234710040445846475811906096735256450995619902423704723428186021783381908815494680807954726815528606209447659426958484092619822669310414935645084739364166566473769356507669571753958506186321741226602652266258301238890363737001773470396457279831554473490961813763581848043123853581867360614693227219970338296876246825042217583696037940267375296791556404805784152350202816795913841467074631033804562552965741207353441807855267206454492937837893052979341988320205229667814260974890741438226724902986475402764319677154010881165112287461282748655608643312506951082131256431407813250373616390063301780227069765561993429359171995631060077483736713778548672961640996687105344632969618489366375223514109711934184393961175076354922244783232109110039348980076359276217003069961286647752418545846970083269797339961779667233969617626722159924496180914862902918554556972687169419820733072929432014616272855760400437235318053583311106502201488786968222318539736790025256010070401183263105942005599962982745129716560275917304124002491331564293880369946920380056263690331072960823753397222515905261569059957886699645680411650420581700360541488473260070786870372152586196989138642200912172342153555736622980655665234845651594722422777340209287945980496414394108806910785142784557655930878083869704904384827960787844549936658369317712395331800564029299208743538237349785207760138627488501508724584573009331233928236709276787161777358927992920146888573694488026633839395685432274475874162397277759112433577477022516535150687461186981580732953885764170287939013358194986065843594876240466642994056603814766953179032529507480603541344814337006709714617586230585721549289272203158358062567990624023607617345656307617807752107690906735498726484313840583771814531591903980786254042309271928479313753949296879545167104230072783200037839736976600836775067874331052919664049634628951055935570972991889853943169263137528882765634411331637199541131107802966007338668390745139105057028214020706100105615045221546482412126882877423287839333694148275272822160597833047061358007195411976874073898474885609243379825146743911721120661689371211717951529157077588211491299294047035377516180358266677413422080780817082120125023822406026739721944997714787664161734506701645348872832379623729332882736085320224050292010077194696264352901544147316198610594118367644573913246620055451084368845773575557699668419478729338210114491243184448472883396213532574632923492473825021924724467692383142736932686194057555268997800486757567077497349018559477918750264043348647069707489448371456253283237363340438558013412010208658258430657860490362873180461910552667972855934765088216089059652537974126617101259616868395105956506497799274676300406918743278704684405479399390463175449916966022843104204153999397653487661988443590286675958763971634322990681905750182356590096776091783848295839569837693739556602404923260730464924998279422592494546667845389344850869683465421289590521255267777009757375337234823333341446971555588525874498995736329272645722249555596424344724510448645453611892647911031017452037939575901380478446883277867235603040973353796965579158883346421986890739788605149691638063925502382257025678560563676941664100705291708407307698077518360800820424014423325406339457961477621289474180897706422419455024081241791409176808607133310210008591719632823773117221163881203513573906483498687578747731307634187623914817385853369804052718840588450023472845348615582061330949457764154369526069307142703714519875441949631489382053292435994383284886821902120147269754572450340193909438165345585800680171062973780173422005860802156401249191542240796729818708709399258616544405695182540827506908655898453172253215536576620551408961881029099396996000413247576951773364676978340962066873269969651309067616807071962515363787004312735273005898580625733102575949269070829157306424692314152805529928412655295398054076850345900755769815583328087071667044367675773642200446381836001511170665854103668264719164032022535793738981269172357012491562039819587810986155278763679788395417325114801463664567980936666922532830791515809723432059116200220364775984999583559254453583967605777286577201537919631106749934619797835155890908785428859168817226258054601283581571899587848728267766371607644969755846407570676853312584774244525274980439878291385822287979369843259795139849298423665550950612936037526974491711620050218001528383216144149003352505405646178748652437130455307871590483646111714323986823361475107838557667621436028185204558958168325889982075332248901200870219476566576631197667718376550235428966339577438227881837526330079541364392263444457996343651682916256751003962415814871369499488401392494123847875463313544814786363649028864708808014060764358880906682444437806948311312436689435834096816534693312787303502894050412851075501685117535064515854387141293418603622639949361653950504156962959452539643252226090585460541585623479812022168646347338962089637618076967150119407943811796328972285325743985598944000057820933965914980154404529635749881291823310769390790938280623024481561340222667072593977513974254408877799758139407783104194755289759698121150385543741520125000185770762878446561609541018611237758077127265695477990505171896835474181424606698647251503934807959833514763311731057961998022423681981642523116942734455163441768743717876383723392002831520882180638253513442207345716955243876177213079550212987646439159914296387574247009725137673160444010671526653404641021399063855258919738840472044729159037345725976535306555317020189476282909970486534009120316588433219794237421466840962777333775249854411020250996318750459643826010599038507578237616139404383357471911910940004680639175824448143716328277745616281228152100894800916235322399864534536652039044005308441453407420446454247173717242039504923254131710081132062949829274807243886528035992332812076953261832006416497263866890227782251895567977790717516276030325434028793249633432062470621193500317648213202675772130353386053892073005134624891473073581062081644619887348633188962396510327587606147247551559105257710812514089757714260596912167712100194054053830265417931222942078939147357768959420508663577459589402898390680622702642612622388781661471714140483019081407952879454390336022616106198982474466113047931133535770463814030651818147464452147675978561965067634640255354818590679671215150674053531262631971693840500486993177582778346053268530759571090698759154620541086498040422298147153908637124890462870451428349436528224937024007214048174254567170513829042356271980024646140858971931621634955645188636622572678081066751403284185785383693065312055241715943878353818713241231664874771548340097762528671673663224271388978172304629279423886109631802247754683279749716141756897987059926904550664805302427786956348059050884852703894596863320462729884767458178071286170910912545665999783451962140894499970579205021188839029209955160921944651867670894133979101369589169954881181843026030193702709951987006618913292501144402217450167488597681374655394418052900718404207351423021801643977664211301713747443728961906889855884168725753300417974080516650966809234831156075964929447698487275383180646145834289217872327016098681625700291382938034869545421402488504832705115672115968366520345767520588819833683178232742712382256041172619702502181241131635327737373108788795952917293293560837752744628530009651750436582567702005720071331334617934684017634654596456336728897500133557928078595426620605562961530718490057125097095250546418436488844654389362827039561890723691312074746572839723949293600920981844202090494937653082277288391344331010924416069482392378504691477956308091781427777034255094663284482480197347978860987735848299454698296062886201751642641113777512761979835404605067888271075261324510241137898989156603716662112540489031771152200283821819941420773281134684864704489147799324821958644883614801074079426279293720092683972090201074907401071762765154069106678928350896163805490753975690187547102301391557252680799069024421530847987736440976571304485852834543161857257346207650783557466606401169656161917623462693277179089048954416275790894337445505735276026696913925938871998435040020673696286660247567655702323942080335639101819297096850936856733337716990393703213846941331811750257618971625954035086582891427304032339154493580306483152527473709113526972846597705263333779213459429394362481565266330662162159730644332426816993310949887732444453451004214584470206438469152747989129845843021826538648216481139233488937683686103517168232942097472476135491742411369762418428653008937810994616178206561934084543274146802514649236491052878588201569902981099920876118471929026661616769809029120907852052480660355249045074149152918894254502992890674170729303252515400162810292656818188737657834694547720842711175272212466764964893792766988857319820501121518516845436115443403610299392795848127782500760418079801974557249628529583068899172704978468453857729741246165933136290921213147818039218094780842145403400233037705612367022657117572519628590110976586108181291094796156780650592127450586324698236341075101207645199083340124998200750250289588393700539813522542474071313828572725001330688984871323382836723480759537255826260321139398349961491040020571212184518489100255652773840440519119657034902690908161760197990075932913006265615616842697274382356960910490591660472350040258789453763628244013716462795849550152637857271735977346488309361843660299724727128221080206698320711293789510170830410008427608495759876877532912394969830605097373177470488989954773677718611241864920224227786763879865971822815686237008683291597932896998010293162142971849232661564890761572958692017267314092203901417933005712284042145292566589049495314336944848620380294652716297776833711804562505906682829011141811650693605323196046311093930295628434808088460980218014064335737165366150828581409522784535671267279214603405045383222951476994667004210079032792065183792637953434460614334230548166314208020511557036013410095917496123077182540718070620591800847336429569527320292595161773662346750390224803379464750158555881984810779333394125662619862502689981736271829263463129804718798140958566789493042249197110632648913340123591141169707693291225571141266995744635963944205008140392093602221276944096340306790721634460566706759311299809910604925765449191224657100929611139162169849614488646624403163049168373814026186286166624940900653221516564898427366611988089516398685142797947152286462135025097024761126520746969101540294100514296228030101932228605280702830523868621275325109859742344699935231314848527552513802161921956721440307788201723028916933921401935526433551077576673100412611618521192732229101591290666412067972037802603442240423535623772336646753710595726055641809904197590550080437444680806885008792234083379601902499454240002140820340203558133360548514639142931430691844618544909211290737412166817480208109337018738096386323341739866529904754379912276822733811670412668935601634006944402704079728627939900313838311686690471488670076655514278010907057377106194815288413061012102293043337524212675519074444085117107298086082556379594362717498464582191440296981147363110064531122932644055463755796654673504182363614835873723274128190031246638390230498796545397855593918767670234370032688719238323383575749205964694029231896018644499727317770999941874869976446697440582445421151554898859826442953727689295122719272436739980350631286387192698816537086339034904665340376715407629193783987512025923783338316340453256339887987935435777972469244891581264691998602591736952009999895171698099071989165601206196416174822255148210028488794601393626844502878207443600591735810902497534395446444005964880681913911139932325323687464895260960139220088566859812128147930600406680177825550677934849901453553361226958089386308359128418439951201649673803840191128516071099392830153456157282489446779439978177531130897863472022857910854739933381390493034514155236094241703954498948520318177191025431901152798547763342827496486742476223634439578011144827336366467847444773288512859120449178791731434407621983235211135940854915217826988767260646944323157196808663007404663307443270728945832961108511729148985939811427670030452493150323604575839560229884823921632967166486342776997299680567929592986550450547540518906853976605893428827428257664979594353208840789549376046557282958316741893504924598837741209760467227996313030739545160761844975349088302835108064515216392693763232948717409442016020199871373067774877609048297785130394367639592380711065342148088326946589710200816568665255077970744917872923682131811753782059216980298742116287400604781473159177033361059079505266609388787552486104736503346542532072537209173481264294272218695607144128006889231668928315285941930598832737888625191823388127980559000279579236404921094854468623947563738265023607261281939842209121937026660292642142657384206068300707484311588575716262402202439308390900732022148125961361866059435326750581338403961034067882446753178363931021848394234720476157139764881615876433931957679423732287340183465774822643148725935036911733921731627153618950868487540895226393094989796619101809809397467036167435905269067071405573363128197728386010499417054917924638148625828382047486424960432764451283277217656670640738595114466517885609770590691663568931280439153037420029858482536261546150860856044357619010330624123476453511323973531250722932675754142301653955010270266709396411589297081326084745341545807105938959091454201382749810074908837964898327675649105034238846335511852476710295620125932795524279729797130209612706705957700308409175189033404750157479204600224591515292464212531785519555499578736892286662016939193251171108212454312801124339374322998899651346019592311817724307520144854340010924206794172348134099118793606154795058621348224675293325673305846756528722088346495378368834067254904611923603645946011072798002008617866848929902161485781076804251596569573830019495598912071353696118166280091114402142314153500536589629581527411124453025508292011610511348734062116026287242112646484328301828007167553471505351889440095491580823765804222708813289840794318194475796309719317252441177933259104492020661456763601568499743007201143934925599204347634401847288167236013897340784767907544201148950955509938478233978329220436091469182216594158194362568899878975359355758615502499569772473296531576210329633749804769039353126350817573273108720675652001916412951915515170294622991463967610125481930785752113234213591154990718464397704090245324929663096288087700592219118292023829272686052967913047791135849666648478615298639185121124549739835761856286513270250613230181082401017905776087767917569262011863916085094142269689793327010243689895332457725036126987550946209762183699313250217758005345465429575398546007514849370810799389440547415814353147687605175027006466999491715272888037269283779651617285483053833115480707973303605597956281537458976989220686287902540918042375203900588026509112819124297645777909610296291854751089124901265574961547283868995846010927309946023644728651028648181047862899855448981350783625218170521228570416730224212119369808244172897422667043429464104234882827318677650549752285741921663722513677612254314633843247372000868867152479549196448770145539907008226402883567667508080515053791342768790916475770700055495355268058505644833837658251452014055817596049548710420214093919849057093489846253294350009827908914965068597995632432624382085724843675953487951336435189454727431923850272996712033552237541338250049218325473913913305730366805215905003458627944620452667683545359600042012242889134068574872147603425396041741222113666175464230366287012595852711026091492228507431681275434702411100267832997019890114423523685118164676419566016978064971767047047140660279996900003148424977956954247158390227993944415418068417237796486503139998032342757001404501360019460793843787787382876597266176898692586031955427296936811988479647717187258207485349330141761891093795033214138305810152464596282811738908855661494123758923529134970923561707880105528412386383539658464782972125775205408309501988290903503229900298734518903203366541110965382312368339253983472485692314874901395073978038252582722179846729002040359546033277716948323403894132251764742744539502617543973146845014477108647947075273136673119567679392075913082666344595747277798608605132013012931868576697072250808742907089390320320261205294861920219571019991207207514276683315896436287740197031144077096890345558317110942152372380033355373914993387216591939747524851660668037893203160138013450371964113025571710609158895076212832178311714054899896571746495899937542463213079689187702408560927156783802082521495847730198255471904631752773239466116550832123635676618177371417164339447261816451116356135478100579434849751323570433189537099166370778398353619090632472607068612887341746152524831409796516813113772311650888782392055515677157057287945267698519561949513078527029974521556796145219158051507285275099487978760793249902626829988340376440536812071464072939599912985114340965794633564636483105192929837919878988914457395713799970609913755105099122576040082770109744887409345276376667349249732092883386387563917117393285220666257420151830524466045403016074901958807847542232002773769485677396931652698855441308410542936263283219506169890214637920866371449582049860837703171025719496477752050553492778227618140685679574973044833905929488342864985292106469722096573807688191873119890076848684263115900060448256433603889627112289741179940952386342048206437592974851590538585768794019239685906943856126120885612612797277944050663705998508151361318389011778596318900821676964725853636047644957862578635923634624849986596099973119047964282097635745725432841945419416035812981301255532748649887243739575772024235837259863422407575264386890969884096089264654173212835625877704263907817289925191385761909594615557247374040732097070007786307684780978088442323585626533427093564077685992939654189493018026626472315264862969131000859350135065838209530331794773283525271118191995621045075838785645296313993724562507467907960184718657289772432052778001724521083764450417048810058744898570987268828905661764668586531222136564120729748442300597562941490727801636659298296192056523604836726585617793079007709945837948547450450559594408796844540759797751938836216545343885920904277814501777740889453558947471356805107771872890949344202477667776218823958121949189218069374792351065812062877545690102089503334691294812824905559482870125954834678696451849757049278754177138829618173535172920140622795680228111661421496634440342475234690298344703160155394721854011919859026764060000398972871560544492737750971198331479812797686825937118278990364180967160644462824782371704226189905675399543195458697520269362181966013489216109017722666541836440144073308097223802443798404113724765225761821095039564871767691028478704119072184455709253272299879218035242781153982119182448721995747660242768754130075342724760038182750417774760146586342971552022901476375470984617404849310131141342190515927806870343296577345655640805567578309046013150571146270816428830759339673271737234114328977062587183217690111392066987050497707601811203341154333725007798059850123693228346421315662128997056398697813687678398986585266018833199670797854622160734914159379954164378191919514894032076492256718100575123474297078988729774506323062080733646566676511886214838155539624183016469856584699099411017044940979685888644455801208444111424863601577011459431089871884299612110890530017414733636196367052608086382504197546681704478928274693790196418811755393932291553191126010852772916491160612680264915425859931461567152879199203640619264808449411997586707613588240614508481745663534110365083225848800602813275200608108631017436647899250838499328247290853713051606417147788591565269633359836206506110143129180853656018367943607040961891120187441935940680788270099812711165580566583369192150400507160012510815390132700645350367338854913496498657449453119346268724617193404293129890741893842123549215058949986690985329825536216449324232037133576602192123297096470238532802825529685849734272418468698990708873069168396522737700947267507189568298767088479614471881955013466807803473964462375759222494981016338793322337339628866915491638801440849929026275707647654508405823502128260179012104121630460293171144608149800294569480546829988488378571605922839885389978254081720226517019080376388780938385619461995881819976422254943481421341051393147063373916964099907259253791881938648942707393996229479349150186862770757553017107567031584130427289477004656947469224630934129854071446410335181913164242239167024187762767440131689212405155136193109109548048320067650794129671115186679178415260931563496941285054366824230570023020374199149087685246591892354762828294252777360119600758955507846397203616269169963455648978744087498588199379107515633164039693782332025353324430017652444748919527571035308751727730615137006833925654373642656300924084211349929060979830297220173028405033535578472859748321336873113489621906895485994099121903770410886836026959033411201723841966504794861473150668427637256416409132835876161074113615731927765306504599840133442487491808403108828325143021575950063899540159059809051789493060064741938536724445592075312263801836365444359734733875012669158854084659900271443259861404240415915194318170875542839372851105482169802993465342442289902486926575817551650918205231659556694945445555361769648811454446374725542577489563300683815864773336538488107506190438964376848802712510903460481917758370942975761779928466845953168810838545957216036553301392863652125858749868786294571684414675281491032023401141687339477774185346017038329802706084672814488918389780428282291150953353608614512739740218046065193373690034306684568711194679312623653378137811254041106350265395309446667881914304445475674542325455448284409196069489833265352525195100579192480371115366323213372428980327966204938582344937085399204318461946942011586687890222662965193317087602178436713978659467207278640526883118337086822786706782435018823604560517771006491940630910272419619438407991431584326314642100866318669541792695621645995946420528328354398031070487088189039955292636438798197074684985187044902916252983426607726062639541710505380919693135840304904198468321494748880194468715956080735128672009401446101162799202008700473330469742761749555075462974222436495338460960608886115945903128496313795998157269182402908304880417511013954541324327270861959275770634492217559731182951350000309005331036293805921169766281644694223595409394342571823760078289836068790787717787484612963214648087373688900312888111213554113340129727113881856793638086322424784268692437444970491219263423783372162589179557082747589597388838596492182073991904062630171814299864104377187533389160169672640328855655401668764049614182303301975262265901532072662678446550087286049236295400872970853628139799072525836602408182564886262398020447240717240180719056985614101249005789138759469101547307126453849742037831708149590703259063215700476709653201677743047002461387678920532224642857569708127688644492753502685277062245938926611851832832201706229048350736684238357017558870731653323487473548440040165177355933974726711500443835349208697058038493539537698263298347591161126409819687738862289875022239610608294430407574284449456454762014039761174706523295942880810516823278238075139583183721071110272559348419315716301142083450940609003377334201573930773699702568992926158711220690290185683729135763354377328438207602089895846254853849376250342482363052317292958305882066036888595411671717183869011732395071054882644335431694855128293282964690090359167542592718544271138349878259083186599432814016797711023601668411374841245824715311287361595513710746958917950953724855508898916484556225031549239319142369912376305438945693848703561231679530242219342431048096696887378305364944014944718139974155362477767331270450757561040030031436892739629604945908769806201540792864477573379193962630492437508832061998699865505619578967522700868328758542178463690357257092054696154722925212469958445658324715232959374709510845011866649961030711934122204438490997666685797903911367406521705744779780164440130661295736343187427672334669133227951600992226909166186583627743179363792069178309024381544259180126552259138411196485407616357393863787904542330559874663147305088013168855756373998872021686910149134136227071280200242644445501888945402703074756431497243750053953097797294817603517852920155598992037158869540674060874380493635438116191062014964533875965786588698535218549657753544672435910761416090182651160019850603230312068193282679256402677291663828223415628679027838434808749893544176852162869112399510865976954992668571212375839282665809420422071656682084975206060857097655942424703049746462741560238416905793865329169808087635534278115017187934545703631240630128757893429957887906591283700543108696854056092435355434933233933298465301365075245571098004784808737696133802007460808477140369358800837929988031745717285387850794308742419516583218811480346237548718734722967063257887138397700314189137468993296264293268404981126175698726007883964663725837190611297997035385922118830525737329291991233876703616005904360022608816719920277268959293330609460349058347582135314754553041723834622060384642959758520643209769315087797064884021274720796270636292937647178795467462526755603776716518180853062068392437537732480858177854782232815596432324605323885330034796129022014469408770508197073627893095673485197819386940677666638513950832361667597198583482460464816002843636182826907310894863079515308225482354374169405452380953162578432682148895388722796218136307223368360762442146866639758806165820488355185067733039306684072128943181025168916876637103938202046384899773675763478945163397154841238751200514024272220408253867600080854668074992661102986119984785007148760620475229485060910558292732211922156897972500086589876609760558556062811358025634659120315877968708822862873449625666304898505701539274548559180394790357342168840831015151964286031523136892902101326343376490303182504731256863811925724678017212012500943585624309906711439198065566036621294603623526662941479281794903301528944326967328136758794565845592062274353707620127147435362109505498755543495357027030688998340615037464116646217802772724228393889936941533660243247647002694905441555507456325742497244067618270292224582683837889656622452894453498937124968712712979114582153167192572460790622872196701935050493496301946127048753771727511565025561585296989016348936279127474666736137534641370351780676575775934842315543757737775715088595190157578237820182022744267122998369199070092849590889367326864997534856744670382593839739480372486038708203589507358381651432892912786897411152881250320095899305333558239380815861054145410839924755300800503854708533505145312651250864117429883988848871460230952216994533310504661511646831824528942597602507771689488507281946910618770036029905428224065404003491865878541594728137305965780249412706470215177010947680868613598775925533956531835129157777905396365811135534617809734651460728993627411963618139008384516445127275492489283524514830725959085736064288534000114119028157096217056139535746847914196170794230342952793162603182718679453812036076895094609903429479889592548990105799198358179192310072331799423133883508603393741646933544833949761426195746958691273923870781869412685455185064405610044563604372714144355670308011753908307524443058672486859317226748581269278977256837172274795307162940436014540418839037787787231285474703402547527910846626605152739543086070433988859816018334417438556312205961473397807319340327950158108600450435430036844870490553552167894456672148986476204932690106749840350771721285526603530266403452059129023204712569999854514294405253636658602644330810992626349629597511766115341569619582416429691381775539335182218644750003747763209056302716828989343886569561931429661652752014853757061348186312704685576539333802004509014528938107786217656690160877727116542084275209183267753208914216907532604037646476132208516694762640591480556960561647972626258975401986534531680684021280427672948915275207269423473569353867314294842791471140971117134933025779945176542728530556131139441908117293446929660202026908541892781211201462933010398893717341851379943110108563078780817194983604531495276671685148206615866559838894752739467436437008721995550188255372219821509433634872712929700252294757933638823596049838829817399422337476192825693191309157677141278056421407459803307396389717263457343736219286491532991390522228716256967125230467220940677681177580418668370479244828366991793636439803690920953299522839347292599239520218799604740421952016467516428277560524699982758096911209531998065628813896985752489711910852774801076084772453148311279086272876052603106853182371192813600089718011837646391820167247061371071963470127316196841398737023565531999667353771943490500030871287509878910460719470820661154441599836954987861508772817182789777329503606807432002546415345355804690833204979996000368787226565610466942276677814763482979706411923419760618761921824896902394182180144814679588711970856746612579726907847202523244864012227471246781091539829286264491437557389407473485548979919091289070726007219355795464481957382649187890136316536888414344193761292248803999651590538471742089377476820683042848774792456247311052717982532721472576663754585436491119064371843610069402193637753845249610966974092711472949085218627954635776242062498345747320243860986288652551562583397052666869705778150377219710184359581201434141866085810329996299698417474244483862688353196446150407159394112496241652345075400057924842468015192075638685662550465931825956849730826278146561994344307469735861815731832227690383606437787456720957789484888985298900413866335113313953569960256067632841770689676703305411685053202346666874263137488535144919108711187587596130845409441222423742915475715091772498516359858648129322551094698110868307680644896315249369163287309170363221149394864836958490451398791962722867215037460893919213573001773728532630954112606718501716080399040984732970511971361436461769431948650069229900642427678588889525085568906500758845153566573766225236292091894645630242503677091737833350639848647049462249975722902913202534327753819890853355199323901062824547536966829669263142517272598471945866365526251750572411350905320950809393472759933106589358330637049446118134049505451274992401491831424301853081516760837281043801612076208544527863813028913305665247490493309236203395490269053257201586803026273173658472311557530986182805185996165829056875232283546397262796717913665682518583435391293026670329370177673461242379009847757929793498106323755165269863749166714883710090616835174441389062003835829706141811345817482191553165616742487412732929254516456141561118926301554658868441960529795194392873477479220013546430105193976107510480195581956589846152040358631370107386770477521509527984281677400225654230141747333881623622089890940386077456447722393864785390432001945190837642006744604381912031218637262164940025704064640586360841825781585424062761870131934206615396551195533684925861746809952011981633668577937678391695819634248360643972477310289686325947243699913908067459762720719617582743760413215331378569910701116241480849966384530264970637568912059091173638781034932388370097488047727307327755904345151007599011458875867707409314093946558746742805653007898379078703372429099293040986619528111579408372211031947489395959169087102762958663979453895532612450557000746038448713830704316329378920618616116518025732489655476936918183829359853870008710541317580062969616931164791167409799681386679552691429224801312391450496041909763398172825185142247772055342074369065907818061610839034975418416180121489847516717369174159211276153504978232604679100061100329086999754714909215568210399627072188821875500514991989793695407985006290638305181459145391164351263866069841299079535362808193454978901661134907891130022115175356983512374504710357903181760802812278622358353121919739858022802434081532345141872069527863643060696582341136553573437739189522369160592179999132708771348439438956763396271706768157329093673157027816628878258005413484745339593363612020282650605240048516469930200730901075480481001128356896738840316212908079935745509154517254391387687422251498615143681885576436337706912878139868781626053696250944887940442445583754664936106736640052295202355483962024628106957236150166231454350031420888735893225351600713968246644057326593608531270594678616814451322609810698622270268948699493392000573027577356198212214954230962536598711241700923540817298128220747455355956610400145878485713455442483475716762025668340862246948379614879921078923844854124340105539532864471272461239458863617649321460834384831673235963779912075658530995785578830009785416117046640307706214212641768140591273568022906487583685874136036333849829163184465663128706884079661995554921914329564662392301284804942249456359190639377185062845698406154004545764749331794268615948247873436473712140229617412757507660703341209001185861368245549499460527653649761256856162352091921816403183402199901084485453908015568490943426005339403811846207255309670802912937726926889861650783455943209151929735758526596275231624584198502476236307155415130945826921336526553988691872396896620808813708505113819476534591126089048704628176403832293094474867183589224642410181077310282974542225602587212447046828169688736229127502084423393838006430328395424758141141936740692888186043009426465533150121521977371162403106857443767931806425645494228971633021056449423750701535456198957917792861005233862255396481677176410985272815276108409644450853323427691428780558277387009205844455305555072743474524122712733687908692523606968871963226918727254438584646959583143298242678975230131178355704167913354974340944757346455940119928384366095577849236201801145566950318224140123429944475894368058735150104813807240902614957919505543622377189499770876281401921140612945162465473107101827647160834538753139382657162204898585240888483220178926355586098150912509739287253169996240498097292875011905077625495768896276772230505884625376573225836848655085789303420666463717368464618773768758910947029017690838485386911266805997396844932850102450641306758280012583199923351358087065463302731015870128008454605742751267557450975725498868296920924059268379136720030871703476973703788809233228721131156415858794280985495344043217430348556064504461660573891323790084228746448540342292792008482098812086282065067585414464762957551000878322303550903419854416041067619554982116209223511675844098744355357185486372180112109720195283801817560660049920913082161940622103860771863635726908931402342773078965377034626946906135566122363167111376554337634001420441684770084796386678844573335291107345043425693003506826607096282987965729807314283191326695441431913158903909907573937598909907026139399578261282426630234020406119273991114294407786742121071441722939773125518523364420572670174124337980698984303049791780011951799638917675116948572806121037033456575776598775083463351578455898285474659797969630955912596643580176316904373716385859198624847345738676462608299687395344093533008546793398170624687795612728759327534065994351624142930844529271838760415053972948028479696133083154140317691344151780574542830147709432991061222376093488347208675989343374585425466795401719727446703996786669036231458274486838369970701109852213698033673183531504922734643058909850306620068622951745676683904639476050054237619032977767876883738625973126239701382315504282786388262742843477477728549155751556015196909432035608665018744320023995209864408218833103992254692282933396642357500069020361496867536916739506293379741300740375242268977386316440663913519476876544417705689829681460756701980272701961281110507577501825181224845316418427025529881156055579352993145045202964181048308776961457597853593271805273208643129021333213830142692767864006141878986479700709240667130635701750870509109347610082274435382818402695451797758552872842310673632548106408118613929163385204098895130454925600452580915345679020636545035205597095142670482921795090432823594112938520044189698463008345861533415527166936972366003680696014402895546171700120157137279221618857773143177780739008708738012690873492527754064638863885528794441877257717092393912637330159598496728989640871388415628552618494475266274216430611438796664300927055658751562569679142944006702438275908359391090545416396997297404126374007391167694632462443886914387510316913413422106194014649912435600020830418204614696033472824133288201089392061985800288913139706376091140314826321680992905201402424150755104447883351453640832810517865787632956649431650689501408645047114425586292616449827102174671617699560155190624094157243170297356378991341194473187974002288322364583355727837816077563179192526909597493009461437857190177949716807455255946730929371683472145484472885943462591410870922180730370426961478915046748865972894373228972216946149185164473958911505144164427513896967007519730636093454647784102555186917870198855738686925171503766854949723804350087977987128733119062381883208512523561123863521592495066219249529467678174516540644777692591008697815666308082225598146531826668028035116147363286609180675078851105179459350423573612173122491087127463818490348870752089306742224930922887284895734794625211056401369303533640727396982378430571212809937855325397507864308182411166573819496241466245049455530195079420038672894557433566912563951902607746019725094445083911986877326300452406871964853651551842158295108929269225733143410519526725829985096532796093263129314925690450933377524803780779064132357967393078475856262505277742571462175225002224723530224164102549587737800068529816278544971317503503768838823426906117756134116001623956921574930022969667453838235528190597334435573782663133165698794999398597697913075568138303500011088264555103437436162849400790209415376053346345019043149367325557542776364435924564543476023868308710775909499708903772336755936290208899347847199120532162556162035381387211085119430377004524019853787237997697492186366102205884338031599736559925271470583677472980801542540596334725624202394171244440705226321470625242013308558160130857316116324790221656818768384424573908162353601911836489619055771259315620515224223061160279663376441953691894876196745479565658126176002227993468485173852665675025466337053346989066450174724717650915133417315970154273565817818860328026852452040440002201121006269999933045742980899050846888431768055291318463556620519494565444027599342824216764818505523453145869201363543400073405743250217305086303056374057851861812458438895412551101373462014279652931780815730471994110773752545398597871807058235907251901687697235216243340245490277569086402156584194683528591993805834090822767109951324393369800426217562583161803027271965209940826087005378244538463493524852337861280191770395610715763505259192809236839201112060995158057993080053223987308525409965003106583342087526829337945492696007526697666391483588727284208587007618112376013681775133092647732715069677118721857227229683814817975903916083566034351714908077058732703715354921632166429788006428833043053727791571849285944534514796372940846836756820744411052581458785993837962843383896186629052097300008752526295792038994194616771056234646281785695471129130255754764931557033695741879693282895627546967110536524086379827414859380270027248145817259595544998988581810981231652849974527874862954091386878911204455664744615675070492646640942801261480974729132154409023601897658574880082982228268892727572638178934918111281787216038185088100916068897056432070913917449837309307671169342714098274005574791107956681536125858703794163411034488626110620415804439256945127234677489371990529987649116240774829626665087699014143830207509173629042467918036443116183048023606562243151954728353977946344534712889852939771241931128639082325675943370484592159024220387774404332724505979029126115517776339598138792564963271575714512437380179416789257049568467405736477400408311535740622739499044914233458657242247291362671958705424382826445452711226647173526820658003094787587739385265636862335948126079022166090361398133811766480672975677744771370991555549936554094938832663177698996111106679814148419021954838022778673157806154901161043573664070265980132520305349525122237540048289729020872250281408474942922760754808920283282826829047759035726690878904707860910162569608883506525448718527099805272649742370717610680905522512335017569914817034221161987009129350209155191846497302375194940654104731489064603592908116498328876220283578644160456077033793121013498467549997352157634916207656674546840866021087274588099476093439200169917964439423692547924035406062073392542344670710681430679762492275499777916841512323297819459680707755004949547176053000682155974641271854612519606481520814269407883104994914786608088434827112709260289916346190881354154591880781766660836181586276013573899594529242295642207446997570189824529987933330520869367186861670322529169488295644208998326576046427044187438940477520288370122713882542313452098208488207297352400464702821806015780259496404116985911951555283285581686350671321462172671887254711251743069430074633041495208457452867937539860168168051263684823845846045024051103266178437600610778405018336688452214226502753829301127135742794291853628060235113632637631346609089374701680049849796870041851962941445564611335321414596724156255136956886630771544052520930785655489617053896509361028698683480468003618019463698991358306624561969455799508812909159168472692898647140700486986373475092455724658221488410818912482571001830026411376803266010116741095759456463938573067380781698475933455125308737961982432330840223649441466469077750624903032442000477450685128408710021543217559856485110739969482842371072824953960927296397583771675509896036003277688841062009930206042628189915327528946420697468192755475102180644486824864225517445491701375003026535646577098746760633526670544012499095985978078796148415250060934262649075594340064143956913866691954212754867221329085047084220770487879179397654357665902977722676351093745415091888488707234061717589356443172663273836889526119483882846159438576194323723461580762518958507193215867181397758477112172990532198968426405579113180550085024918966291945694784609738231871839439144257108657381387635016322820301696736503352278520254305174020080675632580098368871355072778218986841038596371917299672806059754644145165374291661355396609306977142061603285395182587178723066616990449590452174745347475014307344684051785695319571004646372616144274729393277160362215029496077616300255584401905102629900785393893525311007893392754500276882993555811573338773673985371363850616126856536509030925474830379436974012772972838898442305018548696670195682433019693742852362883938419362371051180996086690648162605993590303158883321229919935253059070025268246334323434887111879454266921131277995734569658831759817584953697881141064938682981389231843921323201123381620923147860663745441275493242724990415110480316396327811784845201506149758050960311468208565655158333103384444418240934050024175053240609383532736916510566824660402977651136049395172486687919526090889610673586375909777625274273698823762738254109737742263073537055167687981234650080760589906911039598201893766439699286052316419871018625292290732306581772085211096912497543055878944004726990913351930980822602026470319100235109194383239752823794576673296300552763002875477052573053134567635561421240059686137296793680151302637114106033318405129655773025840418825800392369970804317257371365971153876682621438260157659378487235030087380106654052364370706559745704941100680921453346725185278213732931162445821311566658142259307447410460979715078517303483783447953001214942716122806234769606083967999561581569706430560401066460474538025082815284375102793578164393907011640629648783682576587306648114342194188598718612718194585996385693515462161632025621332421028017805217053575064989733976449848611483650487935218412779397317372252692148876104994449853211784866906925837676720424032823143259637106104535980114902850101586412324474059283496191724230209581262636828603888398945109730187646173661508771405806786629603756908019405154637136063570636514560891770876801364092438846640744148464514992672202168188364871959325465002755945239042455203369914217351475362592576146402859922294042532075723441387634375585606943974588010211735976135880857929942884953407230837743943477867750309345509159787785940443062520195295064738481908412718745560298541062842638168011728510356904148968093901402017523473649340226502130094111137707688564986440858265949231312090548865403073879034088037578519890313275033262167919015246266742160297661008925092320587333178749703916632349967418259440264116434078565196595658309693318881756102243292295773606307576100059841548525814789655951088625496379474214834611816470215967234037916663825990842726037983268310650221025336182434419392603075747995440055498262377564923260140022035137898071962519873860357371309353378858352143401768499791173008967010357164582090164226759958792592987589890425220511485359964484642283749321524305440602206083776234370227972409413469015196597200925000370170810896301346009312990248764795745646097897729851850352574180950733939465448723592835830721587628215791457533830269439151903739046935578672620396504736590856002827870337322922578272425963568386268441450816698735769869805060729259871625700800512744121613500000164711497270966438502353579626093025093318833442614915319433291667824082729171142865864106789163351597174118139764010954219675097618014853450215966271380015788761305251093335741980860049791997706479013911792585420147369266123883159400825428151311348276834444038177597313322209576689303876535517723298795938185059988306259465012807344442543062494077261099375471834145087376119006113119864328989092940892003165135336678999844271142888079639990875865180211481225048433196734479503269965389017825428076537006150606363277395788377638862306828805185761354602361834022456606652878538708403258410780081417076606158444593223060943453380597321222942154899455280566892360955172648554703590366364592013271308136521980555706149552963490492752032781541184882842345779293110633576817242329557895702485561932860799224436998256301032051910130380552282480411338394487513890344016524483255053699987689539841796379704968005283670932408634572716492571846742908146760226845402476675509701910547313157723712650684681249662335028633165904172068527523072321810458917334072475671045839200122008582318530512692544476624895289867268683967028876327989027602071898082289709478216739101670328639731874914387062604641154514770024297978271645024211175373316807135086306637013942627331487395345295850097525109499488011030207007119837417417035246478869507646797516577774540731543717320273239151406094413912864534734678321373058062498915300008098856695604331406361793658501204760586452313141746543630424365497980204901666615108646658532609872432582773401706722573169904369938546978449926176431498202314537757830502514747320096882018165752700387921270932294846224103753921662738600269748346610228932937267809226640645193788411912952742930758900260146492116350487455012164273756636611826467403832769948949527534706956171415350523888751050622595691375452876913622811007977255430340931842249505992905721402746415854779880949827351740413400508325570441321066686351580777922827660838106020649244798648410524097811221043165753817621716558514270264594063398641654718518660805106334328641850627602015788237699497945675008819804974224679491334519014212876592042303583992468301682581327245025802603923139199601805733755472747010399280518784914034886726129194314185270152357315067026936373396380600734041881822491263335701846588368381206054010342098875063665915038851386894660795253527565709303728190025386668481244754412961300660657072744074294294161421310354938665731944202762946563919045213988107416680984174034231034996358690259071939956934181550479496484943161022763650974609184367063030860183917494678019632423913989720613915535214253463525571405999816489831442055218901599632690245319891165718830830184762694912185858000284473619377022440499159054401751222732673400768707917157916220746204261046880031916395374825649838897984209515773290661586950061647377923168087479709795440503779990282506885599962326376092449750764650027319625983130706501074398037552585919666703340677045647028926439602515864522637763482335214498078424123389152477896132066047277060687209288236514468875765105467214530040807070606597014405879601418820734575893856203452087402022329417533812708236402077093687998083330668498679323855617997059322034349043770521523595208597645417184764744857415264915351617758430164647863367896322200839083197885531027044974864172707145604464091338771323222781092911817315444975344282435201770918230726126402962520345065276790371479600086618594094887561054041964918837163206890122326789838898498471871090759733248711054405404591987243124455333218726252179921277321417043807906950061091043930447629013210412746671165631257936918783242349925313715921865211022268396977714964406942183600658591864036832269157259076097312820255838372680527249246920734390500680178849261486263809770219350814655016280347799387750893421555820800522727480790888996443110340218939084420362483005184899694568937388666699901980652355419887542675525532574869063764919435562555422833796594556074677119855541298353895299092558051095875597830511272413293735181253951513454002164042128208524441567027549945057969250450806209686908317180141874149534430977055593391838693953989032079567362749979021323522060839363905474595349640154865896619463280529182869140834785425444525234675521090587433452043596116091854925838860839759026941653378753338143540645313534457665284930813611102735355353229341421020896883145334356675832802706139360930780206946920596821862840966214442822171712972573528981199935813115924130925479226262537276379089207458581799173806724676153445382825139864314526900442318615205631330556856764797314522624776627169065488737108461746090269423282823422234709196124698661825905286807534672551830874954174672545364456793192638187635624474139230902784743467242095445211322218856603887527122193435339796901791677962137143687631601223235862518001052352295076515185437700360981736823499941053048634789204047586432642107055469170620948522632629622770363672822801510058225676927496834011567994230118386976975271170648832278088918972527335088118462484077627252230855349719819791472410446395963485280520991981210071604844362811525390859255605931143643053868063031678713024540503941622425096496428730382977383825709759540424084773205966245380523547336045382424037615829233170663628872546334400309774194195868268966476306977350645574757150676660637053730276061023741541620287478189537268458865309165504234639980996617591437784296808453459776055225106431099493499483118188832626804423508044495525905687375807651136033089819190827552261416572195899990789084847000646382348252925146432651554934697647730525742031709434246407871476747322691315010838656096802821774113272375915102936929735105672946871041253323873014533351742107472674188341417197196437769019294212325536951306017064438910781437956381322331991386048496619726463379446775853002309897991804071620178469892141533870323318163131384691154351388882537229790004358791228514238183862458070520260937124534905680932546467950185233273898400838025317296707234692400637073797950432927353596412104493686006245785981771543774817480426308467476894201610347126421709443201930465987782071808231501955616850652139002352154266677599594722843606871503057114158505744282126661851787906297055749597677869426011240102312445401720942522565437808903002566158852852457806844829018239485120354345071943559214859347732605575038543993857111416943390125689513088490763643451160799701320903974028260996134426643591421722530624420444534760496251527421716045780964199405630943436363937722172722898382145804630159265118422914493924636453458420029846664131311537039019980272100354899444891175714905729308478188989382445693558363978154997498653558380931712605981608962334605140174767330562513905188125538317993812834349318132724635564413401856101737369196876459361846722200162898486814388759306325289418872360971440371988082716882198012182554945729367838523111089607057868787360207310638140658652280538701460305753229082705334723617219668820651110113120802043514650658386622749223207015167255431022331214878412615068633770896141849102622041320505526426133899826671099658976201174852877136247697260966047533571235733210414518277058360951406693227761050600197334943868639368775941675789011791918481009549018216801937957605465945068069970629640771126321015088998477711353729659255895368729877963612017061165128825150986916141730504114707846915388090007166257770085742164391689944850300258407998121243551036049590409523766726733469024805729213775771586497239833648093233990818964596476634261328678543598342659273320251579519887051125436411339689376828846566472788296006179860592147259168532904341330096011578326758265460785599193243853331124725834123966373071125018690053681012678834949211829875485838140507182011612040113981649995248158026465991661708484095912926178570839304117442669684048237017380750353468120719581327233205864046587760344751804061385524422214451817195650795702664338727266589424167276402799101835865261687544965439647009868158738292287813932180773509187919359705158773856143758084558393260054060303043051415152414990339346859497799130409252816515350135231901281358471483898445066867033190204542339456381587221421672816633293226446771073602127289638877448053010880571524710298637441042023358189952073090505127317962371370697866558951428295578742804476084750102047353267835818397697135629623055748420876636290651259106181933254253209901087742951702730974369534804682534241384391941896143347756834097173889544929236455065629170504933676391349017005952017203326544799974185315053666743340587283271767708502201434929422793379449350192633487334027120145733114215020890158357478307194878696296828125834977302679698109281115187669182335644760884487596068685261734748077432083822859201893101354595598698393202642707536517113468991225581827459443340920186945057368455538928059291751661533276728597122595808550196545077088136545867754840316371168249923754547924950235278083660611192984648319070804266370405112018897325641248260922464889791348784871154704986985897719493745577792413259063190357266149167689701996780779213097836159796472578802065227987827297426920475028256509866487484786027153390195429016946805659307286475704421408276023250775371082363486535764162755771925171243536137017219100811896942755455527949400203150118320918855874543859064903560632784612947144347300375920669442523066917443252075029665106553555156559965754137475983574441649263269529982056690933096311065289585984518868960335545577272049247174577874798765658585605732182592837348324859927581491339318974832424121055919031160508194778595908586306454238866532914197848372411985983147075029570306013008009724592200226178531312972292950204320882928490452567301273950902031997426938593659837234298837660153368941219332978230343442418042335691037573105582878028728304221843841788901574819521320049650789665400790387489545022585577138654377703890788870162430630903557256021433191761389863871381399322672206882025175446670153980591479942610921442897951454679852779423433663367962499786889516669651581620460773242616747558337967432997182511203405626326116640463992137678323341190024794644032820952915213842145725606648700059036610303936026123926451946410167504174706333018583088869364424787363814477681216091227376489621971673815026161229089904833861454794949228274465985038085226540462864456144359114635849774780389493712433866223706734601867227494050052522438004864963843876687824227251221714402609755493890522936315508785334577513586212333124334457725526029120935863739455335707528699239969274059889328148615407354425628903810485340825577295346178128969507764308832178727752003940923589899915717585560937236420461918537830193918464406002935319070884265273697720930880691033568302052084857968881597803281882200340700213428764084812706780719286906833865750904316386100816049388082333772561615260652314473396970545909305318560072198029062806988729877388364158032510495904144255516974028471961495055138253665721818180349728123900831611442577099685506168128839689295488650188780600850660137309371288687298524495061860386758066018961073780721247139529438081192260687772630469936511796122654260545406668283080888906467963630388637568704424860580592082190574586588231347669397938439994249417926192263391750872165854762036740043505758214620159232020878697033112166476147779801961756418624558475442385055572272837105847742125846518716685882288493291387839987300283872832304843842197845851672939141731841993371935312631810556460639389154997617025541111998724698904940510706597318549923140669833681494950159431291453875869017047421435971585413280294281966462793440712452490527223930941904565707878704434994857468289159977422716885549563822105394013445885902944861371979022629221405568344564151258785448363917826545376009226714272910436330780296870752095757102590471843443775959414669339225032130010104822325973575065531863050197160124517496986734225455983600213640052480588466745782824671300459110750413890858076309575278320483631809811325198569037305481628270486736285081498438769364049799173211275430044046617287184909328406010572597543599785356263672312198973666312943789528030349817057181090037642466187490406194518034012176751422339348625901594292286311125736985364138685285376034542770784158938751247470861404707386334518063249084259231917955785838956213305383929899772687868044120314520803985429068212353666947436398723318277241415103315590170867223945701855158978056696505406892601509380763763785135122888748478798096668339197398153861524377137851181345830733481556241445945933848754119867089060461035530664055423220121523666346142391350093621785677908829615765306660981985990850352503762940090399851373211056542029083305935849029679036967586620214477467066787598902487972582697855675942311482235987423589637982629708046577210069847254126698525742355083297897615868521391851092446621348138936541532876439501245302018276236499995531807673407283503064546291796288927828204043669294432645716550434141199577483001911329525756173562867485322752731305901073404963865184419195993071843414645499240452427160737478834635534322878391282548028476251090554546859289342683995791110085144704052643052404219958491586391717779894577252922451316487583618725341109447774113358423312485389627311924730675857765023476799859087678852607378555466281405990927073571706799577451562564505397015767743064680096542705376100359588434185673917985652371904431699504210045395509608419391887546239497795398626672522178667198505647152009935588064098581248484483520500435325258612972187621577984330602557754389850031147361639751788004345408950116837876955857023251277868053198522832831010392605556383540535829955073696536819498738466764098364896771563185009713115921604699057645427879787338618091582153410736190110912685035180949549557149339875163700943366087243176811905146802053314831150351468892145173847458063321505610921319525021538073044246264152885612771603312825257047681409548840712051667199360952404654010930395730145052153418654954419352193943422650884394806887708857643767009463886960305167437272964503653341350598707105626979423141769994962899201434174333333099383749768519831318326765885556414328290213045903811102460744500124350647212463757019514358308669088404488884481248024347571355918095474522466141098608149539770885508802418640601428268048688043069206252894616812940901278835386475116458888572955624158007810350830097175337646174265053599401639935586337498542178321509686933295996434298155570486970810348526441637641462896894104793996530015162508806393864792966599913615785235824538398832067455709085555267891563172491706508999556517697571233902520334863056941372643366665353105116920142401317025836978163303213957577682801888956701219695948263488338701688675552125784410160265846916663169106502814414841150182877694039794397704843882213109286019598288843758024838007803422951078055259537812431285713122477246627391713371394245040210323805309026214393729107058376649710301197012236493232338655570723985908925062707371771862707373544559144468415002850213950294874999851915619364867186761772159730346648227205048680042582337366081788045182699969192136295765110110515292969044664954890027414875400557885137811967086706062962332785733529197447360540407417264728275841215643781301219635006144724073682448947483354326383335611287177106479419566814531373070204878528026979810563808542145815963840802305897577543772667937760116701254317123345461999456452931432819094313224038738311051250763524333331564810459665989548643070096145633531288264972550652355852594301922031748223642698821791063312418193415255634450171060266015147947503850889273408622388211540466836808111384124402201898813305513248156949024599884714510322058790349515509928577881685000242275067493336631593355738386828649260926570359837529234977670355753054000356280681563832492697336386511068261069577064938765103269109365563639577861337690713896482023179346692908933682450159158190091257004728674577103455574662964274653464421816991576013820533919491553009449746285005411961770151874162778523117348729656597094881309960940520091500214179218632802315188678839325263913711316591527129493134424728133852929743602028503123492446465159171092110982554243825425256332166730575000633759266051942775251586034711281844360662954450433094350698214152373022814386330218988890920306223455176390312342204512791643880263323492809991606365621360592983168456681128805232176896819017238759807012886883927827514283299335756749781807673152980031972956866736788786455748418457338694838268701648451736723164619290818069274236560923183108574112976237317110381756331086322248217337514174533394626650743945936326390374886029241532750934412284976200627246021995012526491090853094605599224871077836432393214159661336226564499684792001469086853764564158938177625941215666210831970049266841621040712718401759252126859509662550057503328765730705038564814708213986799524866400179115328042014002031567680364144253342319648735584297745769612748435139376379060297117196133329503030406136343310904317132182961453124548536480538365138656663032379554278964254052522685207925138230440465107807858581832924822645977526596071721009385322832746255900002984496593008926578075217331460514081688964742868850328201335285033133400282536112057201156070036712693765621468438979902667520444711854992637524404852440297739845427344926163680615601071878914841414243858660449257996167096066353133957374908540306859633824716801550409677325007978350562332323452035233843650543311730022576686348869295609650421200074393730632510881968354131781610669984156601284024628054921729298719833590170658937055791377422976141086245120274325802911857177608342883807228933378133768803447841572868816349762934426485673703620106329987120422026546622843876693609231722472791454829580099958064613938843017676135937328845545770815674617251355133081695044937550482969627279134139449494141826676136772380430324996487622780049731812587360483270875773182611461246442247374894496629824082276293622749259120076089443137166047346727440310616492593062530231711978085958556443917445485136143005578361635589945711581023512804309089792797171444034667685994941331655573417908837126113527915537134115872874219603911671091027790794542175655008808599486939876331676628738040804488950904301279825009848901304013558583811234123122291869445917152532964576842535463867080420229653780065841186047783161043547371767630762744314563612366582942904817290411958469259609170835446200317883038553476404074635251486151244727610602383636597449007319809578897335817716409011429343193430632795578573952974598345115119649029187864214175105776078805288979187017029801575656037535301742649493045193539542670493429640196962446823493294883555116358762393394529112709439828298939656838156651675477678692129751635092370524594433344080802701451137691630782115819593790008776646346036114374022501232221772296685530949347663475649447430798679762223716119234134098975864812236101293517351842633839870328719314527518148519422678156884556640213030434396017846030564719116846010039852032623717683829540726068842310420435197246297526496966681763544714488810823598526422294573472856284932597347927799059790402219488957463157853183511673098204453116304698373099932931133812346981334698011430175636221375864188577453122169471505475947034136998156441292783198595705197890066178099954763840390115668550670599164886801367975923749185681189666547364840994456644168006133757657451910441705422471354630948852557326595091192933516753519059583804523284399691873238029213027498190546895460497265807432213177795595556090483927697789614398344185001138000088282430062087275576771306213332435351245580322764721986018889914518886993909436991176877687667218821796744135246722251120319889064496985430599144089541688413555511818897387874449008207402502645064954609184299252850723055618869275593020367224151920068697180130269950988407049983677663184476927616310291054681234158132244832345314761468317435744417212556617367620845058417659960021172324036505082477027319641621691607243099529468809363508026224657262098341565629029930011973917246761994263212197002654775147301387706146610432000334176592436297119893486138565146945269580515015714643567049241619214431045734922127433728845210194846024518652438265276905772557052501528417963752209012338204611367834483507554251263600161116636856658732974703852309561966742956862538890107804232291157472666137912081533288896505215506755924235249337358011282596996288083751174929977636632347997280328123456986805317920238349523221655277337314694635043116705365900145308084785644601791955813670450908139695387713009810825931868129113465884371398090898034490224858915226358999621071620965513922572181248892602997657209469179332322216246137096165137812576228984383258907609987544498601275331222398379611028710897020154184363534458532227815282686119887639413622821208114899302625574523141678104931269790488517960536777184029126524821032649924720296009402491568384194221558315562388918081290722360040191426200179788535422092510247298982767837380353633460818915474274067132032077346183738927559624082652418003812010111384537696687991937001165504633219547767503344209154567011142867776830550345744012459447159503439235070827603585992106559534932045700036117538644943136207911766751217117107827064333736856619462393043651440467647610663657387226394993085117111285010220311488634802092303634118143541044882941123480601714377832221082136681880081613902977939686256993508984239767423130270292460937011215031147337303031579536989105648214999317399755817063084387102940939314251308139159943484403717250471384801750166977275948552844181930874619497458322354327126960380243218617555892607464610344379588267820112200137653001231233276495176305716511697142877273875390887410780927731790068044625017670259541040822704799234832397162759431437927266014395087729508195623271994981196754134463448093489864604329769470916149350290456514425701444853828477314707500827986763824156889677690369089067375140284533796220737384556687269703238763843771279364651202967172637740822860823035660103517727833749164709264893347711141688127854023871443268032508033852572345238975601845582902365636315331827280116217289989354951306212695786779481629340049475801937929147330478036297513890184287536222299969123551886055903135057912064325512661208837964696951070117675367316411883435351057193173112992608465059443804159155472257403401812161763325864015934398579639479263691028136320803757630698869481331829361385729215026574410328317753962840052730727533841828821163699825911219394869998183135068413863439176896071333370253164665301980864026733667466398807414199297932668394069960336777704060028333100320616037656851279603072532437780190726264632484325321218565121955865957640802509827425050697522756251831706110984235636094677490911475763808034171959946989345400423655000692912034914433403270083171681021014476987506417301669254705784963656761160079919939303846374310340940148986736621031926576189691481860372627942682655193410975570431385252587563501074351650189757729222786835873120347706546613174932367324626752770527039049132346282178753608443879340830754026539539367889457889143884794934410324872683106228237010994250726107951038105895992971253608256298700703483197681500798898401511244822862116006224180940864757705720341721403104394810211803823328872431024043980656814567125907165749062685647093461796919869400177436467025113196718627501118762140778813634656346420887967495853505060679206211041636766381933961145520258289667833735199567604092038449201892592324122778391343821095783644164173343996070985107249297657030217986944535701356493558255653612282767595725813645700737764588315943011994574302727564924288900796793249942707019112154271775834678653285224576090694127946189098004626515579687830320767139924012227282066116473756828475771558969609491071688698884675354010993967867397672794306935623523551384614859617553735981213810763140583628531185907970883976836742580653758209477122556709483692293556303311114798616020355159800804485060033223209908364877087074541970539918105748774466251001406986990379374500983794291639090975958521382596736822480362904837913451963385428496488147902935022696902933956989860914657559616471045647554272656463899278880613956494297099859509406060844904057789896652811000721682113409048070607020336112914995961404338316343324740300700789285278266577529215024806024197284901887338057733029349002693407795506706398352477526419214735898874797385820851928571994168766455798914536613473033186596187420489719044644157448015547172013741198497143743959615159854442226497230389660322693607724250549162262701536801163163135211550989389200581304046585866693528792147840156965242784678571689829095335319227447652635143947118931300597358636036871138274469728408697205958411629092457217388092886922199656616803535443337830832339273141204163668610738973911924335154759371731368053739577697972609191546984777103410108043415709716969952872079463248329295626707390414761547501524749199194211515443035975358882760840472840871034908771604948152252895746599738467086824974314457435264969860727079347090288087096945759337120525807226978098836809331839887432941984574485486943277729455411521632744347429377913079245949206334777710375408487587294089833944089792882109650449132255211269089027725656268333126398956184411077494626108542180957673185829377501288213984959122079291487240532464955356990912158534835725004673142756864435644366858048375430594419165392789287973807153044154964353444799491391581614448265907424627552344173788190370957721503771245054106788749384892574184710058958785447435988524985185974471285565376413093317758595469302394664916067452152891575683660604997839060425076782010575324410357888945674898448781229090422363352646854654329539003438839471044373192101474150717260165604415141590901112341222244267576646172042081210523850360462401799204156724748698316020087926234251001951697797157647531280098423811729950289078497842068391392332301842456629120553787072720078592463053873635150303276584128269962168531827023007805975137506421035476888600414998934908028543651951833569198335954744200873025074336197137202478378633737781949050859841544307433923441483221590561517542961444281625909570661779513877853934669862693053415749232979698898289676033252437146742465114290247698639043648918472025993591392053911926833453449635007617025792113298702797234859850537262393062096399509738863352604821828920428319774552800897571804439102373448659564653035697766111634688560559822333846337248523977725759066355027077863387717155057999378450079785608986868283413467163081370602268326765201399273287419225705033420564599731030431706253800110116819518562597202051589851479945847162041393584557395895702422191845846682929973197830222317609008741121360481204804101402732782203587992899272207714140907358004306653404606042420013627175715609219583739323832828373351141646279961454155557439126341643597350704822741512223082349902628014316670103290228524338990297840991545050205976236215192161670988513861087942866637750881542410839589415009819473674603053472144596313485851918668841457230364393826280914033471484528172365935336796599166241968677268124717451530370665230248872756584654704863365912109433115036488079726720824170300654528489259198091130850588368038147590316268782090437174004131304090566049589771494653516041451215881447177461977501294889593513351497239770006455994748990931180217009356961877266007033812685256264859240299394108619996080055925483025663537681641746933328164023152971181784084995376524241152945079213916338764681020122446575872073642161374216745317678406046856640816858834275591939560237758945963413803103334953960256062516391373235711920379463841631410456186381358140500129558667647250006057072007258762152461791197994305142153727110910160406377192382676175511645008421533834199855469715427173254913577655449698729335692106342124680462253863522017074962860529784833072040017932665799947561628249195843247935904177964370631547230453809978266604407819936087786958787336152856162204842285015985402868761245497260798526123087089946650119226029471244627448206431188344516751811856404338596168645646375152042332485421224728670683655234005029851090239194648517619031407212500716368283150398287401938084872771855547512467880050139769089884928726682997653217906531983390399344275850200768752197013606992915987829140390145730676621245331968410403796228970385677886907462148836856126578931890918159428642801988283175602772117702268385124178382029837652574567809194962027893466731194830524577558282926984763114193518319266639459714453581816967431619856453315695483712590676593979666503989491655729711345271301367897708828642736306671504857010085540262951284750924328988115279067780624892628621733658644335240488581047982413894760452656897196778738490104688384963967179009025374274584562735640175545305151597356260246065789510314884641324425307385149905992633977047160693634794824247328637309167215369654651379738050694633351950682745616058259333459504299964574537748610382272913162676267681756081262868463704030032805483616971582506597309605967752117123689348714246083406999380938724784703229837987463407101254252849107429442998607303544842656857408493946393140933796722895647143422129752662702826399871293592561089071865327399148952025363336560918014486784881001706035550444612317057972819528843971353851634731439365271878637214991027364046488084601521147190744792148102302976652774446442746912554481949203181390424739671689520824397390739177890722772458221569405387345524386005911868567062116942187870261277796193523812915430720653826008158957611519790139860265351791457635739637694040270303552236222523156170135578105206241538500810943420117215743877539289794246665285538639886434410204951031278579559572794115387130056132373717403749321168088726360096358163509838422690128167788308644837747507763205829793731879254571954802904566622321444096943564332252655341529981290685358908061891084298439759439477295945534560955049804536966227782242492181422590986110287814200373652847998248082236414956103764476274975072885989576539073632812768666245732623856804750690028792157214769790445090051959431577503801976658842173600945222694772730673633847427916176894274097279814974003659053178748311318339333368936544628432205186074660261630650973764746851255641691188935822477495942082836028355369512678460040735196400769190048973174914090415322114489679864292126959852646046112294695037466570377031271773481289018229773081796544510645497892692116060821804145720933431299921005714618035292604333530417482347078575455324699598529732117243431858822807051999297148033203045748537849089329671015143780985537371622377676086938933345938366111933869634598322191030424185997517692402667362912523875333167956693393565709595713913734061808016990559654166329516774337053286644020946997962140016483150743453362290690170260730590285733011421935889341610341784501450528459524644102558240626060303695093953221297050741305969439208902972615028187965382742555509410037041419745151094060930771169375089477360334790815220773158747338586597616651695095051346724183618824493488797335624293547799384291904640115104088520212654142923509454703590204371898570788734997384543130280153393602397587663542601539050714281194743031196072734717125436347623297124113372672302221755795519565343669898986214444680507241419944619359476637544229809986770500794795212653369334375003314032124354803983159525883218306099282196692740532741264310959762503155354516535938415365111546347079330685958471005781458672092478711537529741211793160967479832705943085634837901657782491705544131049847326443750080914001389868000069173327791361049707673353315666861136665856407415891703207680221526862755296680919561533643387496470147731105626328836064936090456961816151951819442847562899020536037937640405974062493660913402282230192195189477836896273010519790111309433532537898227957422074694080748918761367040993689087206906213333587712938752980331730672001441612436128679285495351477058270607021691768375546491823327155600968622642819848588289677563122598797950071278450759146709565798820644408189209128824229053637430105760427102117215980692223541877127282495480434759311369258144013234812354100814166793371546307370184717679514622477326689835699210280864334667467164358573548000776867804017004674322571190776872773935296265553081221230783113619738883493585596620264271487830440382668117567674803155895915835770084654104049173383201629418957102531442693300752241371244260885256673694520828292177579218159860779571505396922303894802416029038294584672255880632817930140979437597403346906963597283140294637880022555720290069823570072163878883750886093144611460115730732807061242965641011031325028075698764754247482010500657968778689235990397129083581241719782651917489568984022132183561307204643501934150450276126492764128562387128018873579696019811778897284797240638766026590723901387832812492547874680742122198715522995476016992661197050984623525191451712643698197040837064329133124634237835374052459745814041043849218243487231459386003988449935793029475411298211808706079632832882674049459826793403945026965883399228597494929266268628009813165106126928156762054980257627251255606983339946274463840784187461777831784582911157161151181158709364624199703865176208540219367256383973787431599294217529506492978460884433806159593210255354100902842177096575928341776406815102884575512315160719783450806355963781414322385778466725510362621895683076780432075676253357703035286721414908481460901292876148420361133524475754614391031361794180622928288900691424982159374097203714657735027639463818290118137157565216599452513994686546447941340261039189204063406481035025398316197856091956070596230239726072227953187702200543110860280336266290784342929855327302755634683266370376521437841300977799151494685320961091009267138783700993747438930168221376226770697485547486586829900429986224520554778598079581242257442635920881445171753306272322504962769711048338105687038861691899977692515316318880786769116005424723485194238884670033306109186860932618457905643451589438664448094848020045903865465827037426434239069148954173563072212276002552772981719387457775137426096475007927271498613452862013428495950821829280356707135098972179647882514187632244699064289036245292093400120721225248571384270377055055910278434465114807867865540339898853480615831615318775956418875952334238280239895050279360648429989269765776429811605151596744533813964951221504087802012235837034974218597723325718873362789820957850917094752247282790341638572468766029529034951488791624655172309512768902978068998390445830161163583896318678067558144163011902618140809661959695841890602289191514964742522581178700652937059364749129243378357416296422984259168152928233696245452184662866683186591113546920424377348563534243079005848430505431244195716220799300616188146265157463479609943393445893195770772309646982403261830439231774278663457949885636318230960881799088254068180266967431378760277708260685949366763682265025338109525389310167521104100633355323749509920124779399481591029005097867726280832787388258628242585262207887299299509275487742175954142130131177036053797208542088330363318414195463543382832934397516208048897670182686175714682169859254566821190295711266191610049342845874515824872014566338140990636838969596567152718053361011075109048858595226110062737817270996017400738903903869476886490891541693968659205962342701523230444613140844270624570857248820800868113093787023291331598833198851234175332037704193450298487854343746592318677877908287095885448654806064986201558978777174237048278086703219868627056864679151114669034114549611732616855512940196661121524399077479061356231046665191138322303416142764855106084873408711501154251849850203997028318930084936384492506074242802792100545736324192460516257051997533879523987699775827137328210745811239214526953539000425461166328086718999334569591859888281051908967325130854379612244583130249065338929200008559644902283584930831252279539031847351533459236103419524171592506867782369884870173740454359769778238358644185826734636770665309356875792940614507899188265311580916329194949862441753655527538389708062913602427874621847629439772073747829732657947273255238133622433364865815748615792118788637600216532179356690195531552707135160722010012157172964048600886748834652710233984123240030027020611767233490419445667118884164138685480898052267629529985204993853884675963641546385408220116190947533455329362244348959503085292952006390410312002411912661417171550687445915387891929094741401662630925820595290911565479040934564108842523766326416300433999665465940334730563876339013687783950240258803288450034917797431273547220315500966096435141157396955660209819973506277406791494583332402207410541378014406326716669047547867866842857576641630656946707177910358253473470980765397837611414569644046764743892355803680616741086026161784130644947633116214580980614735054204404705916709712938563448661011494959286790447518408655316077153090636952364853180156027547994707671188411765232217967359532510376480836170053034629824747611862813441748240158450025035276833072874824669313200420039066227295937882431601581858094399058169760774390105369251663267150518816349222236653927142187972619113589058535028259884195707958939398692685114094051409769736788155504861655411808032929491497306119852582197292286849484278129040562409087792325371157084397524778494116480947099742223903287128892643869078714558017509824100345756264662621005879849134109701769837356037079397005007305263694477483846156971418837984140854822171862130112504081114144508656968515522012891407108965855909230714480635653153422835578056667887231400507065442360465871427763734876680922029148290057093455134215726920855167812305810112694220618626421362949576136399534338752294334753011319095572695470456286002836019507191654485427529748615149264061721147064648019446329831205392319770896255335535027003748295993589514466403484988292795638938762117790596822253398839672764954461914535680204244330588113465861982561432565445160386234000237993562199007370778551617278497162383165293228700628278407147071155609837869435920818397427279031020334236694824846861367462484849685117909008169663878668877705425340897189536739486311240950109141222163742095290263565736115857195149476427377922238607589487196533625738297179715423378768558331795115882742825934844992353277320478775569553688594439280363548789184621096778164050404396636502905007378231110849164408160054033509332621141471707853808427535002517508159283546363275662070328914739429090394304672153995735079096910305801929115996784400512416387578723705717026541834136234106104463943540067019507706727488542884822262917339355581296684726492146238563556557867714927575605282841224930190408939534004820562778805285073118415419566294067626027717672467467953806480241052735643902704560708041591199946157647472524744159884457457249116135823779186835999630836792085178641679158480358748566666034518308363876313210607703896593209145861101799734253476924839051484833584170873086688245219440196348322971706712338021243982698566018889095938862235437554867824629115139355398412130826193342512672133591219596623110548161975272935966355467304070126029746356490350288699814923482935889345921485955145753272106609285847826865246130677966987766665798502251881331801147044518919852853150386336697940637971811761998282017207605672396548612925642924068129354471528030015933733768031349008021443376770337589228731316385907325719670843182793534530348321045407668016296192887431092035788871349403527785154944936134282917025282628317001469638401353442437435401599680433946561056381246486075967026023880324711184214967329478435198075476536483215105159196094769938643386167630346607866160277799559779322158384881743491515916242455050875868559538400373756672071691694681868072149390733189139300411661693815238647369599984860291853750178713889994637849973437520045834884314829073201069443689459744745621963152897137527466873398271114420843560062643356372924774616412631182753263637624389008915261241539502208427456018880785955418333187156925057597130105914953610329506989529430475738316256357475073740504841774487734652616889365962655219663869637986694278857778231332580368422047538717009101190013778894056130916729904910726233847676735563306143780622433035151695745905752255432671552749947845885702720558379123596022220363088823883367156489424009239578356200862443375858826230595452353685732497573220765859178512380382371168424353715065424821280319495673972335487985336371373144636597460472019528682930661768589591876795844635252358744970570046973937067255675580481469161949661608923200985832202721349356253989186916296345505225057223201493139340405380208125296609382404829206677820169581389964593849319039347308522733271454710068589719441400274527985907737174154368824637929429775707649747390078920817003689128992311734155913623327233432121458407719687177122116722175235826050070416641718410667875700102797955436818197207092039862169494224284052292643624351796395293554645714969540251599398636358796164544357431898330797736688429684408743574532446433800530871893488539925226397379615852251091400352346648424515634721671369686275812118448807719286739233605228781142938429510856103144477905771672138481814580944374532286402378076475001362739237226457562553198371614461998013687963766685087135195515527767899982406538307783183318476316492185523542417225675181613318960329007223087838354032548506543167682023707021966243116583369919566287686512151577276386275671323164533232905544552615632281229107424904472183877771571240414809490763143928525020748548908211928353618262529340737908326878078554000977465342040068204556251159353003409090789927945967767562169356773800825092852570695219893781340129531923998896706566354869578141318047519468967470533443132861061295114446345047160578286496310021021934829788387603137837333799500928993481229966793966291758168747488296230533651165894053664743448409867439199827627866264000761424643273142979557463264549373506408971313654675037521015355938899160111944710858134477950529758564850202348277177161421539160827382510878329087558285780502750217753407158877271186845345829773235618784577354890115106678009875014657735014288345147809812831791568788176126863836431198385152288385856437938305030480338470633290245367381331187029975278687350237378794920236378142968584556756713064335731684413179054213279762242126641950504697621067303936386147713966785762304276219879618865120371861555579601628506925600526209994824739993764995603890616282660992654511721880690130361139969004975710407743789607518165655614029851708242833927537003628180672175562052390276916584426181484053780237297373494235266517573937761118853085397535997610987661652183905396325964803833663082511675965341562142864930770830649049363242388254589946448349918338783681262685385261296215454916414350195485589024795537409915012418945024692815354256698824182446856292557994718472639131464144518138199688182352738080223089477856812726649112067798597221218305162171223430575598065568848051940712785135600215510303054535808077452371020144402076061254334491711343476042584428770959880172951073090544649563005417760674399530083188723118752668625798489621167037324841325559065991751723196691352994242333783585008147000675542840323073583042481277409127579996581670088110194008937381268093780463837870566016901196063629493619910206941706507602547569137747809300013055274609781878330440614707732663648436920006639327562851414914808304413353904267109158283659635690557103331115028457263666862407723126645413874137170953026517889307507076312448228658798618955853269746170007789696549212317972836999083321452309576489587736520051669948506857553240920823237843245801237897663227891249190413585558305559636056837741099912028632019269796292957304262951765235847830882227559758585652715420641241168946707426824663349413969880561335720067741261911152595431817088665279496005837978797405955391174615056203624922424872568096608139465080194482417456791379658437473126420949646764164720824298211898327701481564158626165249481811906228980968537393528109697076159824418896104691336319645279266286167700690430105954679763246507956738261615213992662862123124229156926529750106935000910679300674808041728998565918774083557014110363635656729503958094787912330628694746631269751363218627573740923265060248778421652163431213846644622337044596206646754077352709923319767625431792869529870185255063826707216296570530475054328407526435192084821661813991715037488786543192670344449479225967502462105194306737085240738199084423812968549411210454821460694837223382909106903365081153153544544220806922570735345727899195297610713102307038490905737601524860188191720685378445053257628976432063660500861427238585585781625742736022274765015254310162940398998929744232901379278652149024993916534257949195907704896701787524626520050813478061396640512652752664768732709693069404612093128500679959181679064456551129540557886300852982094909043662673993873231773206255919261690072682609991530165206189128638302296032892433648739644133445034620365326415820062136857242288434051910898434857010113436679201251181518309204260871855056284973073129841187330972637805955030045331150451369440864779154488309813986347730109747166734101102031489921554566047224859743009784364592517539794323981693530145369659194719558667018620587885793233648498866008341179843515058435502228630555705922284381533125879730104907025420899003106203080880775319990588263108174359072429486815691301028926125053843098555590399719426010357343101955162858024537266231849532112678726277394709914669602124124885413565310916107469915118628198751158968072282077507177056988228074127815550995871850742108321835250727063439710543166643121876154986198394824366261461519491839645489658334955541320790483438724513000560602736491149798144535020223937575438219728697144585573105762817288218343104785856262381928912494632948071734135222065011746607313102200521386809330296384966072810207808426182318721294604478091848829712875128734383461435143001782434294937558917889075741731609053379851017291559606269016986141307134081367488863831581246782966906726470880394214751864040454453015973637999352806740659890390970739213680366123116913300945916507223255790841964151324074440355836825579895493737992482377548636225521842008440250268515788023873010320331823048998446287844391668158943397698539316915349661339601055603194173443799403089086093300952453678640736208977010913106157632288160340331643654897652082818066287224337349798750925461619681773423039380903842992191754966370840879191812905282447642020455242484722972664971757993533337227976675473736084632271451042022553843035551030664201126115320486001679127276005372701163959517993821616470704933997333540307747578314602907210596933022304414011671088287196389151758436751315528107776825506500390325332460797236611288561852192030042727163017516900892169333901313402931231004645133320079275723426179142767302828190522052530320776132446390560927521780284146590377529826812259454448573799745374381269903059209215752883824628832990963419415100227523123204366250468169883901402419084213634150164684518544172542977628547199801700254097224971649127414941059189208204295681409594299854416041274738238830164536530986021036157695065312132675425030713070628119751350952858746335425358050714403719205180578673726730423433361375558286094627192022548424051907973853855311799824059082710080265977000936471831062353467743319057603752130778889908103297793878296255102654798261464776957230197452690061634284697979345785720165498397529278307324936754723825607588495981517414127049402278420405754624708712696257707061095992566076010253411335023947351422622831090441878948410867634620629433623306271894901979607978032686654425097129850406213476087208385614688285397134722054095009259865739648981041588535860906895303122714784955319542152381717368324089119534577983875463316767371480647823932873730617166614949574558646200965074849200777831189196101494158951152069650430063787086481995757725346809762152682935401470015820301306642525069686639711684121441158139836700554790673504703999340222853909114523579964888619083118307729748017018461149305767492473540215930967574800717859116789449483809284111780306234440666214602124833870183156390047852485789656784699473783824176180618138828842639648780409896817961915536851256505677219258642259283944319636302885229953790910960833392993032276705232718298958879124417219888380044922043718216684094352067052591693087025648864652636712533165497148530368402333339126101625210403954037196324406355779628874217386382737303749632711544950962383146434359334668762847383321542665293059895229289889534812518016460016776937464313819293181134411488636020893129955020852704234247780154441769078538129934802277633034031703593295393814503326061232828063504162898771645456099218175774586880958164891738247686863530377909477410965195638801733528498850462295602266124408167531833471225911833770469550899967507560026564540178091935729253474404061739421598304580136871872811349979216844835757638929864927888484107951920680588000453103139065198790265058947269120376328361172623203487022446162193701990950067619000031042816510059077846800401415213106718575802021521260922695314078049182694300868867938193233698957003316996326822285108585716307191874601334715452056526320895020190509986354146663399036858078431063885556642251635930745241038890934868424054894479363668471139688936592137239775314120217822782454567829807728926096160982707101309167335038108242042331526434127921390161063993285027200567585854124275750153093987389483684290061401973280554711285207616050623780982789352184192325734933777576384977222275366132958218063031272934445602171619548956462080585234699373694141081903646148185796046035108011703342416297489993785839333512682729353963123857532560130976450198960747355937088574791518805995595879106374235657823151973431958840850326094049981342682739842497537368820564283059361148284918128090219172605932988488776188306854092517922033927459376890848535642695018954260901662506642259257136556125108733861198515130895962391149583964924051759637086520547736926470234956553532073205722585971461960344616377551451374621139335424694198270679881813619289115281478451197787399692659239637357769509036746899408293091790683773701332628700154091356274072602169450448281013093901772678873268313055212128669482133259029238374175380827818831120134682251215615787773131656272299334828675193668675250050226205933854766130487762484090170298501703702085014581894964112150820776316999678964028596005152378456915175991772821880648985146235184636805256955925168709605886727556721905154532557581795540606673561481377345051961863226318185573694377868821124002473948678175980444516043787890434403670727702595688932833455353173694611802435413449852859837645976477427683740484934164227096216025892902332010356278625588752773838623592942141170201265235793972865814812681679411258582913207416599716122463197188224541974186097158619603827181027863952882089677483187863243221241510423187701273594314261436401660223763934792240826903365650388825250276046215020640443329473301807454471520913645508808262012526156612744854639956887054500151369594297578362535042444785899682927435092168558213120172060819654839505042907230720453734822205814890963587456793806870502815561182237652106894611046136695442149492906628203533862443901763699026634763105908047469091900053059064950302415300355427209406318939791972883828787106274652875772376247562180432639318491542539924698205860696300120284983282037506534648521428126503460879519593323742570224388561431322693267965484044521786799968107833503343801544990093289464337859786712484259333797802162535624379795731224694835177830947893182982074908061110206004102552757509429982201801415112098852572442962583567112403932306335301205147396754959296290168133625094155320405572827935069483779874466040551624086849897715319439359416199993224291128025778700229218790705293161863791224979794585721924576813602155151821311952595168820738605581759143572839510253893369665025387742381373077962031481344840121404595983205040970473199688289469340501939228634435088103010309839365665318529041668976877751452788385968352998436238305805297813962714570244478204971430980136232973028427491378041355931457689931242916681475996290039321330728851645724877157534063151270102854222296413017427185290519595369501582901870957315014462293023191634838051359084256008328229405447111038152464077644824414366374808844326816872576274365822824467764210045715529250649278418216380928635569468252973660839753143847693599726810881622011952600516134876442345024882330857245414328938858090401078611088964340840861294371129566053661291963132784278598440035896900218130870776103299762971596757827161166001716550693723146994984629837787768821535617467863455041135284916753459390662838940884976816891571775852959570684505779647214666946786586430526776925426393653437687040980577193769924269818595275469951495232296608767357088204872081814815588583149872266893809348203994528604627950148744962065652743344603654869089056839209877555130666724056496725053050698095637829378914957577706373905633294409434867688661928047598881633787180149667232345793455644392904322259975427090570476787662106398739614035653693470174178484879268068799661628925573205697567109219950577691674245657499041039357365762458655193396648836333786115872110222505437358232045802549033715492327466554509967464445920042992744095941966367141168053033873686231760804701326954136981915492582739061132426484846693499648735140620725601384740917331936865069995084279696397026805511801783324952136713310466401452472099849587235971859240710334125178598654872958236450040304700856924598054801044804692392223849895065976732212581053460152562507839095579476065910457438627488687394237247946835170463739020474117225546602454657651722567745505478412934491707586570327517884362146185732514140810795180749510599411626913760719793930843562595237450045727179904767704089517529989729003156081338758405664117678788236634740161934605337975852613375247745210986822317816456499482024856314206494081369966961445694638052643986883638394763349704737800755174181525890768387642620896965584423037686774910498466561946036591196612422956389654509856141757745912874245797512743194700607810040243951706257052396544002740863879128674768172330420056209912766450762011839268726331443168499106169930388998004425684881955767484243996016149113931257803480116407303997079631599351884577883093010638467612154781852420036356575224472348921963614702398454199024019547377485730219496557282828410211103587025941883292492286995916871559680984642215423240401702544259542294250653931982214498207074827088643554491549703369256252541885121800026880237026690527322532204463353909031810479605806287158953986048284092015963497513557584692351203413815275913550272987573471701670774632188539283629491421745850522324915160193869368784146789042781984725828479569186853928845749937285866690753515364322547746053929937475255505742563723174896885726600547503767310844892812548809578324136593869328719754804845781255773773091277403655774798117791861720583605389332028786385110132776834170465139378891717927743200060804758700747210458502097076049323531122824192908847311404703237882613587878963932419534511632909699670871160205517220996094644845946450092070451868469724687102863523053018805851492989454847746188017028562532741520387476271685689078556959624413809670874722940242748056174012805299802733242636056929173232628766666388118572525337815014380894395250526604199075835597668080784470162949210515908550050484860420811932575692874932683468690082950417183436675873809457140806598717769096567396942347544948962939790553781459223651425280152277140329365981483403726023307761722043319752635160259818427765149322713986280154749910941848879908556835550064663370477310432646700685243553036187061949141806788816230464203547999836523225226290845514145230305596980262657381640130744005222521724867130294242578993061184153628929132534683313592606286909865187810784996208890836452274602773918825829117149633940061413282919483916452667142524395802204286874574148850541012856890864193544613390830496195661890695600764569709897282392324963884127034759850282174976425329390981658029418641838452726601707873861955862644445222318614944325245151971312043517333696423240830170316325403310750759693127341158583612767135883716150535673793322355255252522087019299403836192811472269143072834074347742463075055383577233033680928464503766872092922309655005004131403596162947280455915319668927602910660470086517879291331215424082427115006499035004474405155315529396784820576456273572498987097195933454924353872947013027230045014524540826137007766057683701342917418342058179942599993052735826430863586651834843494594663117120603485968258149304345839553440224621652246967833563173395819428276062938746067434924638705162054610368464941958936942786793269495623484038758569903439904745065348330144401666662566155189122726795386465582599331503815824586422803148448781321592225084994520512206776018230267191082549454484616462621046734448336624440536127192784110743565309628330538192273888620922259137436257359474394237931535874705416284913358145743094416482362773366706819705622384942885509513722426777875589837556732010936231586209301256271777774141362813536943890658902597067591360261274488411563672885824510128979305206865558882930139843353386080900502599677360227268390423273781928309952005790588388588194279947530420398802522069096152079501778335325985466278744256868198279262400966309385308882025041452000694076355125324429757032343833251481424518047556379868048579077156803249065163244748599823528843729652876261646586052875931545347802030639350987152390520243519423493648197168581695918588655465934015573809179642489655742623993786463337567389474559411792372886224193628415533294768021867354950384200042478691111128915596822333436715861422596781742863839522012080306076529339492975243812803093093378234539364373361400741398111147303368697014177087576302109539099851037476279739806713963871668114985613364622252496462051301959078883177182669164356057191843775047375980432165333712984914324834761149514415946918657917117377107425287067986976395626825558342392953526484473452914143008995197321336172951440519523446281672021496722841227202394594334144835784303401718814714015860338811161606611407096418252664340785913093196094832456467387686912729406047760182424308829383799836521196377620492024597112685406109656890022445391002055362555047554597576476727430193686870680058855831565452774769461228901656069025714876053354313419368489639832235580833001828206322297183043749030949954234568081350323971256473601665620267329792639590503978485632247164384472919321602779787982451997262122779918050684426736902249566204089163152126808241165325829542958180772943677383393771635556680539151008628905951210790930757050873916853672323766860118368794045818174776689840424974699942321718210926463338714661581413865067225634281796376867145197833074368407164757580910137098082068007729260746661994968321180171838664204755809764900109958319967908384876286444009380848039806172256357193626269334776891966060674681115027990558509862538116585277893621147678497644847247132782603291416642092960474698377456244289764578138993172329353214896167885008560716750897253813884114155909237490787858397170168175062618303889207260573175636837400493527749943563553897760167273016827238642843623044751367080126802927182959799714459453115026432895721942196372506584553603068009019351617613634037115641741094113226982133938569682621301271004286882939515089093499132812023783811249685728706691951240944113804944229030901186347316773821507338815313000890806925490993436365177715429621158282657322508997142427885321489587737860117294635258529400583515676890894110786804626030267319077388475700518256681497030444806871329055890444425193679055823706236532816920347084164120977591429513204638893953363039641841332590646931239418667459303464763054081266333023940414922146571908186731528067992963304680026364496952163099888424029055860122935118420931926079826733075188147644612122621349600477674598308744213042028820175628465075546695293002324803600211761448683693784875202443569705799062223499917643962624993992420449066802154507073086974031860503089066022022456595704664344105957251997293318631150539512479602957506171957873084817689867700812489083343636516451858550083948106156475111277734172010031296807662473678846947258446851806994254306326018765581561962768820085844386915582294045254314945248985085836451541461852975613576825980843325017142452428707575238257337009959062793216398321805861239787253849214155085923051568618482146810200351572460520355255513510392370326460894486786609943719749196553364258554979715086377522877103595196487018468945183326250853383910789269298806628648665301153775030420228058367985231666859166880058309537752358866830907213866662561808565174379355776940952302381424770807779659856024474703598883197177745183644511524328152865280290583942594814940117877271518727983420507607577677140672043020465812934835333949450781203295758225651739635984881023151840471164792095528425367625515021823554782622347240968752571326845857628341672114738364520719152460651666778312598013869817901940605762970223432869244277456819751873897294304130896356299755189473495399301354177775940251265134630670498722061543273066062104235552622473807413870166185394677980576304048042776877293214872498744088581143579983446220990640694712789476784672656299874185496957709407818609806178571349224489108897895051797214503304428633440227904951133925323883922557097767969737774095034951731847324447263908302804902781968547924580486202996761772950305107133516229006134628019020995459603548865057552790111215011257069831246059456252800353708546471060630338588946447063588654794815767893565463001088294161161803454269439401742653012945539595879983605795581547676518524995583690087786652255541811755603622354077744288060883513290511647597381628166135111524400831850658964684971272828742317332072309538906431518155544584716192098651242258654720705551493190304237156143575281039972880972403711987604587497978919207466002223845063744053725313416679627559313035521526047714377898932344622145512235901273460476695788748357469424958267649686925318757876148406711858442774187158039182386103517059101416560328504727428417087815100468704359693411308164865536957369724220805235229204553275541544938030596097776583954147134809037368910822233764242758992958870145116800188306284624581375304818556598086106125692128998421100593315163770352183386546311916684361301674197633029560697551004935749091630785067676794829718008404115577572626086616466730346155516463143051977694381726863646011475198118004069353910629676451056915659280693565443088279795414346827681687283877183459785220216618541337113728060500878898366046928500304570313471095754527753862669910863934846822554896930598876206612051461172483929414727780437352064364854916549436384056610125560835981487047257801428208479858546685302637107922208791574617233152880575466422576832153732487907874780751847574923240284290840353724969101631952260934964762481953914273324774165288912579323998389256492797836695043090078807247055046761397010813792598545304474535680438062567555936044920147848850001811871997052565995265921049417494135647805938382081200934777973489624522476705992348889702462093454461405310986274466478131470362449270448417591308139973714535057671585568037352985250067237263428397348212813391711089691122152828716530864530155839841613551798670434872858693752258846470593133146017510785694450799835723660416855246606640840972358091187613540830260672904650479796311306843130644114066974803941959332340472520209920956680852693518664417039547256017495653135156638157766974829028265960215934701866321688505145645194328285945302865449723614958457766372958687169487656894669253094583286595313081427521223730693951050052873493326173967802543206557643066267106636094252455700819686776803505661317611707171677941203045531478389202386938069240192856609161382564347933049014569260723349197939202104296164220721193645136286869090296678405402078089940019376091147661243382647689474240019947856743249290666383697333927430870493952643494748896647272104436819436015602668325348619063007653477448399530563211417196451971950867092548005984043697202847212703291319631344139150031729222527882113673531050275291807501374444219243123295930510089321339735892975218355459666423595591224382166166270910703268986925238984511073885512654148876641091882801433887274731629360587828158515486745258103096545829355576809772519615990308375883472367339832906616297941552814990874597273522416695961167086620426694938744911169909535390497361298066736838980319961829188230405807983964513986026140859667942026946943292760014847541219526446488808462850818497897348656215554990278233583275720627137670658785881209360665895659953125291972364485507692563430008807233428688155901431890798705972695139787530452919458911906459677741779811415901477660421679023688737184702488838685602381054887815914089779659896455208737282904467190288134958022723156856609724612546016613390207615407093973171260194936824653213739235464554270597231309994935000703367419105039700577898455709443097346336690227301283855478441115424916174206043486885389162601490131016609116976198558462012085616662277775487009074299995748109582459212752499637633236176272183321559020714073649476290485282569006241221841899139427148090181640457480595996319752001921629094465132380262359060135862248492388477413153736574588174445048775696812903031611734274038763190886461117052060970147701491779006166667227826971237755933628798507233669629177133305070091805337481457300434471576577270541110431078359418972930611837505338420219750864528041172979971180670325012547448335349057578972710072029085389842318458774543679225660198735000597510902199491352121991263611368931778254053031054146385360066008469946548579448546852029565445166674887916189401441299379404945448163907734999234601262991909803849510641666826960688495939696442009987254147214998560340791758971411478492639056325447507983147286164127864025049310154450369217400947496146238516323472611455024124983681732422469396678893438202436421640347945002344220214165867596755316087119237564749832877648945866110413174397304099643180661251177041915436708939707986160365892163412848956203972332138725210574486966059427432801667009392449548316296174893116522591489800427658438463822347706983374337940838726901751057155844872131955001526109745747919707991116945782033811554380069547312029104230665364245131430850397239707544861952619477571888023559957673872247186051096491484204522475495249065758326503444504620257724532069074278127389487982246802070266777159007830218136013504673395743375774363231884924559926078456432076659959406580902461006604423313680564490116209671842251941176635811191148862973449983314134552855232245755833217827179012203633237044122334991737511445355779752665424257705961712318213200134659312662213391734868321572217704795516492023880513254304560326664739579940875915508363886205106545407581528396348552074248940188584463579881407455610982478128297310833117658857176078435413253201746092538242405299330393347692219950482299944986199294150113418971281768464177816190651220857170507641578244125400620980517638437050327982739501890170883430188953145199521633325584433709947913118748352690397183183713965157119716364920124920954216804623142779943760464851381167378166030887477159773149821641542625077299514442451933761495629370219874533642982608373826282285833025584429249484928199497796997159145223367357546613729593226707046262160855134788925057121178273516650421922962841218274454943837769163087619352254286335179239813532010274788801090233768928157273772306358879123884996578481768739600051757365332876827584805024658074969810395168957198809601407492229052139398677186537682073688481768629701115783703129873921729999953736243359735814689342947341376646949148174621024635356331108859583668659055868620410233298856115368150162675575297725599793927787586055236155606822626485464458847921036811285810551007395810636130765975972163277903937271980010852172405622346831916853550864690540992586457640862192467363962974002313198409820548443914557009852644048773251752000044811741436829442264256132733814485199818503710610295729705045685739477749751728427380969091844387868496492736192951414859309045838900730513254807516111528378834288956126994254065196268389128189767127570257422709466053430157786318138980686511090023353200021675748463014744742761948427409055157328866016558890194423425029966917053145927172359225086322799433298707708221989747140199011806977976436809963452929532809257296709470782071154798717494423241214861332900616607068126496829251828249712294625104026850169652926553299682267911528978924542019046138441021027433272961515924976549304158255272003709560459277259859023983402898633161676915372149956930166661370482304600839262020259671293259271269496353206026838733134461811239451216584745221747566913071600162889595220006760320795824334937142926132325462949405765957383766011499067481216061314922140989230051123648161854293060313421192359372375749989892568888156709144516665243977013347217888061752924474782762733887227957665393363865222020748944296026266618559964100987152431749436210533909770995868927909184782620138133828438542699203245527300002135144299602285254369215192323984108177937122099915442159576437417284804543700364816185263474513491148071244603397520796689050131771298953091054891158995363086452149569933220694560433498926139025353816695129469112406308876140149243992748778544291676145277036075237468290993179868727498872513559726251324551939960820158003528873646051614581949895475044986378482763184305090682898107274931671593683672235198352108864630263889419699913091672775548354615095956253009805315168890195521977034891531231728824805526251567891271857393375339758730365584566508012737283056544757367568151170399060041935832701394411349379648640394858334402946990766757061985913010150820008461935330126715634452162061609981967636392124399802251749667012328097913215966444313474472951586864760313756478997900387727165068999914567508800956880433701928770617683825197195680437521615483234718715228625961801210610383626907020467582794285731260831999162974282133350355241460176129241859701027706529420975741279716567827638549729255058696219495344732263746070303888603596311276731438116236756047329550452965617281662678735836848755056944121669431968409068597247303635143348666155034547444338016547572538474870568911574443314869485668867866739168923061988470431687838806217321758677047386021663352995713105282443712247027086883951104259652533003038593444711607430571265319096458430834572998038843809095975573761326154791966545759899014070974430708538348525185362034876557703299163517177770003528844330519558422952166436399530711966123338805105680228859444119814608452771529232441984244351190288659606117911812914461148380005051007109074965982424032604904623956106577168689672672705462210587223368279831443392511748651295666945093095046143602079521782059685550269756175998101144950615304475390240824238767930461502667374695772526220751963847739616595945757709181170723607630319031792063831429199725061752181098519627887899103784000328170271208851877630072353009290743742424804308916270825523212084850972149812069031477301618650910173326205753585912537198083197157356381635137717399076202241000370176022398265659434014559660989135482203424135795176354536257217104461506941466152697112624827368047925116385235954952065465491814495316805023134714001771644227875183996632495812016231041261348726995230338889680679841174898924440878686210215020249483136091808617424406130428088429896903705412121238528040826343406576705043548793415111637719979134916458929327217885447874961580048418959106935698143881400484734244037336781502378945238433120520319181871704711866016127455348499536974672704766513350922909860332280469490275305019697441911668037098535087753952965183250225917922028262340598897885311184267226401912445782416911602275114178462280579369268125882157652483006004394975638103679690809389773077549716831986882819436855078268985486342432967664523546509244505473054514732539721645699488068606079846522133087991934573349423455217877643406141434326520853905606947290177126366101073762595700010337241694923550625161137771662997036703016328813874433063258466053157225200040229949584995661907995165929478799767954869940623711131359322926783513040431219458782476641967209834741092836984390389111620967074734437972752111101409571923201253113267148104390005225734839539204051566642814806945679702991583056578549959286227226426326744093202837187153329230029094055702349806058462001399482889941228320334465553332038516912680471845941530980529275631146590037927218173429443206555575430280963478399875444148462712623602892955349207812286351460785751084206621961478328516513981825017448331038608800733670551178693591498085245576467545709945577317815701849520863421574675771128715422081072038358226397166789951642888205268202599733036927761752847585740033002920854194852698698039981390576448429219450219482163908851326619821036015143792896423817668728485991033421971725680938376950002894381122263731032228751801232878203343913174529535911960877878267873019300880388140292698067568314397431246475210546738034076602421147770052747184427230614014514117522747780043266296574285322002522867181453019843632010650616200748319781193046278985870213561538065173461494200177452059145887876925903557821593269301390725184476403790899606725167233041113836551506889285041539824472394487929014540956156988123251829086520702362556995101577335109240665042064298519214671003635489279869918341840408827593710943070818969560338306839055792115601940315596338538096577148213117423486841001765571198528675178594015932970145860963608648937095525454354185229777906823773012648372138774660106044655653537195380884750777735940878060546398562010851062641007282971638610680173098267672693519526356534204726437061038224035098781014661803624762896979870575902670896572646967958588508639754338426171978861786768629601463153426900092181511930382930651558820092793379364468239616518758661496759842401913554407611807579526793614742233035949177170507313911633155506365162157698992461913705127438784055611265562330170980648973718289415890023710714429723137091032778588676020102867721572244900352698467779823032713641927371097967845037539563336502105765050183745169566512505232598463963302856725457775067611881790066656355186976139287791646869756167286066313098796955758233205519829649210289384453147831902579994090389604579958447095786182586579891192685195388306354712563199340932745395193716452092023945268860752431014367632160347104146732002444772454724971911760277985232415308828679882104070538557989363734126306999726477864914188878374055953974725287351234039426560042180706338111758042595870980678464978221231578661617055827786044255911243613784726963148158106405978870646104243323123746243053374660965756346594086190031498909369990118672760305522104640783239676002871956508331579256560996766206737279949989064277579225686519362892150374322815399178174443328207841946018393452869998256128162318748261485247364230701539120114501064761180707601318189896424087243914839283661795715342651484852343266733792194206186241100204436198373433685707255709188153878133251833810896977865511159462949320126597985023926854702220910307193894528813691306844697198594821025536772668087648672457450817485207573510496087841900077004012114842180572328536804384626971057139699924504789828754708100127554350308459825956620227386119435964804573969608847346451490991026176487415989903432536964798756147383686014843817649032511418699226619250306609431003688135705223647826886781812061062913334194555533001160270672514062588119586356846975948840242592740766250553540096377252568771502807377043056800491896685327398737007699355023708187316798770559702499157555522196020972869219848482686184685292106674719035591335641476768299861163754123383511650295870510833125357966887280562819282272338025287713629628387376670772749124301666161668381305107594704999652734382446054772315657438867948367433430285040714982147321454585219061324213147315588940307564242970238872430353571399280422394672447334043451111493525670605597374310202792216197931418052989338818323771323488346243988352935639336552628807354786765467058862709477647975165075214535693783515622820827882684753837417245518376974471678228073510601816680899256860544898727967177578764265873494352028915169257031959129790634239160235035087452490841149334133843725665677687986489691251556246141385168852149704155753121451853801644032046691468643621532921834153136737414792095436816641690457234317321187500538459882909947323363263851497258349402057975662263510447737732422234342859468897357332968858295193019397899768921143395133717258834900823217898826215624672044580777085381824978177803403095367052459450458221234105953214102663773713864229378444886929968031602384166036021533910847526133108373085520642481133360446131819483730103358191716401072221170738480858199264354443656119664731736089276579188450093427069083166206080447320932496249966200883381233862529640134121842672723684493633824551198663744534555142207666899107917097178140030946550169412151574022481773336433480580278691518492635174640017610893541116911270665548951362124135738498817018483914304695545148160143862109828273220935396641614422889221166291891601719897886934446444576227780650254795460330692281213862100007484487870029838780218783177963766423678524922577548289190815545832466663678391039506068820493131275599239887496767645176437066780511175758975366899676515855044582025447835572539755711516498512693370589397196809049966419029766400459776400429835092516082624732993217777643219992509647877289780873384015566019108570829767038646774953108742993114752211566847443478176930628422018402685780481585448408720033131714157538446907933877286491721421716697240430593705614049720211394908416546895335347933090386100990388819002910785110716020154656865922783050616099415656321686029610886300947457002468429825338929681859548822231743433746045852396752897259602922715527098445657746530465130708144462780148422699966153854864063514471143729110596725241593585345599533178803183352895745189931850137843884064275278300573122988556165699523698256836091450939824297967473390758469597862684203098968943217238785818169281311496467118304436901735315772837786993445260465669485289740813834850175795331865481109512839484147870908378762226783498525763909778795378950218967421933613032945815350144966896515152836317751215361846909596898361326309743858417998894660584820174396729280687962688700744781073665937234534589350523014478012786005849500141857912633039328730331194002222155484210509215936360578625412477571365580552592510837565747246488386699898348881773924053523660251577545942923687100094233032738098799391108299504098450367934029445327757899387707705738212385103685537231967817131005477645781117519494546869927153003568691079034509665723816435878315723675670784855685641876620620655323067806202500097179397342368316692011778740648973383456521351599533501811311931540835392672001148189771104104895499010675507026546142540919308100019624602214173617156876066588812644663765934921823723270896217477461427666735045684964765963661219909903449311343096284826578103441839494765984193524485510719465413376416048435458893576750492021102448630448248447071258453088261384016442662331879898454333167546896848935793347589651212105385644998725874583449811106508101823042712439583553688471949364445487562218747833875278181338677055982043692376591295838373121180783716887457321331780986316558351902435800692634713789676202214786869378580440738315249893241599064369083702866320066429389434746960220284063063839720441957386033457202416689319448969120913301810056075360761504865280258559151299461391169331281108986968790318194503602246552489862595246675339596345100160017625792519384731822722918977428978618467052053104058998514583993594530466506781132554781927450163146672260349633886569272935759051889244351602614697023946136566029471575772396494841727335140186577590992312039881243457552899144583469022549282996966256309736567220832764679013391148020904349693079836796775915263621178361826059270863901443212610753622579644296107448560639855864220598302073087189860326160767953257684538777688104189896482095389726665770153181734597755558367265407011551486411297211455358283225251752251624074269798838656144242521039315564585361254380562742846255977833367684606884227553691724333554403966811113666900350299514456959474447431784838308811531943562518139933753958422101967772427579903597736774100499245067754235083758805045166608741715528573616700871284959732104002153322213168192113400118490930682275221522099997065179804931123197469348975644094145623030272283609556500795138059334377284630976641020095682526211068141623250887588296489351464011796955740087535687352491892572221448839916507070109758439336644809088373859172450417099288444121904246886181812714015745058256468983690261693735881615792959286432060114421377202857155045223847408803735172339230072390441270037536613966521348175619879271473384166286582127326024160317140934256088083651189236207324660952061389043532965153067298486483884713278429366080880878059897173045896285621035626663489788610618840859220126504617945674132268396854601484276838517281255779388299043458332228708723045769073208672879550493776950664480328823169326473570619345079653643267207443266399742516631132005282379831912107217700686307421373571406871063659566350619831553315124469818392851883872137813486258778577358493787854622984940488211381046046752010821844357281256445416478973262186437598190231217857444785510528217307698764942060535213730162140324459246011045717281844981165262311892513391459967162096397760839997160328731064866120059314934119170440236146247241473891775660515022400123245236845539377197160693460548921962227630987590680544469145749796117425570654160868619171731971064288920942332608784791797933880696028471347736496142407410613308014010184621140699525322553833267851586453856389184455109479842330318842708862719342243711450541097754160330529802305906854807528097769618145093136963199796935973614283382110750038733286876046526724460739147378611886691241339907462415753578512943157600959709717714584581467418850074578669391049861679683040925237963439822868414716763460558284703695049747385491972649213568721365313713594253693464196737876416650878931186174634809652552628911803667426108074460569746924513256978689549934359134563535289889720572783798280864768902127464784279411142913824364409712017352493551409521456809804360238881713987073337602499624198605806259793157676089539368365678138953219249903347655048154758582712147172438606220283435087978446981184785129929945872765771230871476833717676114314717637645100964507232530265429030047547349711892781793838696662036072239818940966925285987340749161448628023227527862278107824201522821239518362715800425459648674040410694831580787081386355315655128558109857051433935747646154822650500627930525539104604009325597249958073887527576511212340391828294599445776913215038191814181648376972812617011648413383989368151863925979644369802876689082936657197253950038129982190750046409526041807064799633080872051356672034140042743011867493595949686777092884946204946363017275299658472859846241895867972164419303114410528250739616992135667596953060186707589287109713385180803782388936013244079858729109705074794711292819710116448543703620780920014543394118926849543150529725508538786409269384143027621085744823343747330723739530768457348522845683410713497951471079306395591159267747739510453335649293765152774450231667625083606392290658830532683935461578633266023723487513725133250931047911098227829560696920166214317679514568347819253073085568198338451929288472920625972418943297973743309271108966291661162963138295036815717117809686515329461229105982679056077899806256412999570019307142467454387531636359377696384714503602778069779497624539883276495486138299022784374187960684059996603050926935398659150309000335290843668653150869175039309270515193378813672973763123246522583858979869999637754342926200749275258753652053527355893786968337240008823065189156575028810710777027354076033956920095460545017972137729526094763209136570480474791603407338617090403993619210837569636915936903776420863372606192737999472816799736751147933848624293969630920919228623502776559501179311655110260420696940856659195126257829785687602214313459318097859328752458298918506246114960043169961271435229247006982446701477726867646905071260742371191320488503441331582557602192368321132623044456215145477486462069250702866817750897799184605552346829464109725880279824854564738677713178495856400375962973495139049365275388686632933401674783378533804610015093503131169323002375926352376048200897223723035830732144044477611186412887703635165178473859192312873809858613168300076008432172831172279897462421216678667498019261275824666795693296867939781044015281017561267673258010936622719305869595887001100216630616097933634081991833595785106274499135536527088468538664055988661205150265473466788252355702926233468240477952713303553094650776781465903039514446215205917073199639065898484380161229077064126288463795103583987389294684563207422491866943270921208633788235800219406439826994906834420495423155704282048355057704756901324027882187720629291101197281491408025864279469763471754498980528142054126155486920379175981476409424228689992777940003873647544056428021592813743092846317251851736285214197847403747259427146976001136868498381349552877155840031917282472326461731075697441794567794058236907952080942256688368389234286137687196203306923628413735963225983773542191880530950877847822480256203806407584628932037271019587470970914218741220632232714989059955318219036495257991729118831886437926607928367701791487724609211606424041801958116337193483043385492456234992108353296877564999057917928644679197029062160262609272359828034231333106996758288880381451201331030445359976509157858386289868379793648283984145456099076522015891232680408189659008029783428184342290608768288515636110224163855176930758255442661330670495481817301724151391676875249598624915361496061126370667538972251893415743177638596054762726001454989427063161018095972530189745929386034558115832461199202465328055510278633596345505510971989129347926615994086387255278507584953181413030329733953444335914786983430124911889984580313793047984083653609566814361969887511140363944835361278598147005744378836409727530566104137169127707901546729293313194983899382936343339339192272847411745227780487691058343102383672773393807057969588242174038572704314312776265463907171738172834742384291823050800968248026762102102955955332120002576141402905431902317796249730077719696749682945729371863972032601914234647861373659553070858554301409665474358591110180375870893949844835097563344590926264840382158347516598701066251788989864477822113775811456786203259772980433283418343687032107162629654688424318640728630624194767300723909644945969936778277672791740897121074684664573353081935445229208954184422033177904400303382995243051360535875465888948551104942067918254112342112099697526249959271314983283577819707440365344981916029092576207577744623453667743207922773248102582128501959949822770209901186623303131694231233415782525973937075342142632108398889650972227135510067761788693363504545258678938124290325070456781080720993592339120687454659024101203868394841704010998203360371968009860695358827403816264399573172936325675773637945773603857695213048525486340319075520860293568720869064000179456062995153195149425839767255304174297192396855019482772353978233891153558725814258253582662709215777145799917638198848874331804087412598714517915595532095750451509603778090266184876749823739757256281441035083461708158681386963529586283293344535845717103350408088847326536608718511835022670445737194860805276927598674971168954426679737270377379342123195925637704015023167180293058387016796339560049100221425002300275220308966418656239116501157402358672134601014321584939908154534214894612913959065495025659929274666767608755513130925877724949826260009676866333971694626543413415022370171365144550448950869424989452204161151649508623428616179415366239314371292700379361573126668938502263953566427818779442576764145027207780453132510883024433978815464869051529461758900533257024586851648569481457633687563861616266641870597204680939608606564690702901279409392012890565896072307949866960326831209031704144722892511990050035704418740162426729784401060110475817287869218977286511003292467769071416202920374901455303724759076127849183702781560732068333579157928854136952517541184995742676104695865653023530988083083163688052411402557517740681241201913126175862327733472851136910100990221187115853676068291805797486317092960996915693752415375780678824625382087755189639535972313745676829322858682362382525938278707991075003775261187685870769624935733629481788475514555732553764155192566981245614413174083334462895074330971027242237359300736146732210253908975888893818521445384733006758003452060712818587194355450244693652029649493107136281189876739801983159892561003117360311898606517372313585049423938181846105777242380556222048756337293839329924492522144176304400521542381337322149978236179422425827495091551796795499232705600289763438426605521180003002705728733429983664585804685621898524068200040710521419359992527275973193471667968404675394722791269009632620875922234785320036013653080261805530800939447391779919022803798128347966020545978912986864292025073415141209581325420238188603238619961742904048250130360941380669034807929950698526278121093974024315499945332677616765577703658410558886762820941377162773810155424104709517528101665714183171152234760663061095923386103865641176126603962267250824451836890077009438423377585784519226841369473537469053220065594259977485243897695504583528363268903486330793251468467657217059005459094407273082902557461176224215657008991016196383203351247458203421721014598476304774323971325726084804243905892172769000340023077173541558173647389764403750753692801979134469881605849183083530612042528347885163617514585877249982428997207781158911002834022230049005691053589368929505924760152910694943559322081653492648026183666279184888613242111534766094395739205996587172465313886814913944325418172597721734256097358653796378741606234137649412745222753749870823343157158991339568647400159504091415739767460371267491665338100656378654452956689305631733784725749414468433321263286443350103950820363008819456879944574808495428095853541698273680528163293638290226012974678331062091610376648182878335806006917730636901612774460726023536973667902680865593444713506920152875519059377427215765874675413129513177851061160577820506455567681533609962590869075731714218044505476119091049912649206039851396104039348208251170349392523201575013644870303504566668584352644665860222264546290633304150785441169903599576074712082196507710049487644473198435039223686815723571968893919841828400055218220906801838302938969890218172175110364572274653626369769492256191952908663416294269492437400728501808387547917205307224869238574364865932958038898747438205297974596197746120495446580488944258721737813818798060467760550264085021056919554019751672168932660961236366432853549404024461328676673829196065681318944292509268860847712524671963113255880392819838531786294660846144285676517126058557477306853790665858433507551673426465942630886714328692432299550090234228179912631791669807901994846662332201948204268840895793022771225610577453027841294991046390094720678753661175033824955496588287739223936100394055162436288294990767664355995374974544109995562094557468620130353649251391866188301333700459677118956083083998886541769796319728971211964742055589995200366238461697985268784660509365872946626064995741928252688404581453761860568495294050432486591555681948399718467528581966133973628537814532814269197607952933818667456800803263755321867283023089101099987975536953466723920461528066219825527796047304540588329572249837368164919244703557794143930246903855310857064932235168243367600515311147452317218343685209519696067568280738913101961215499458335326570696142989179728362556733419176919861497560591750583125169269313613446399989017711170356977775538717935903137982793189429857677771639928393236780893908770056736567742603659764624839386281071052567169748288017578265468481672860349355491450806038536776376203042892446418463119750131600154830365571170738543977752696682394263307716289138691248873135028178393881600196372691813258317444341227436614836598232929962205837332721480373041546037335516569822419516130418417731068446403173344858267824683782883967075567421912918333620239379806396569834832210140021647545891443059371061163752495011168372994563683948709138689195547466818164545530976666810661849100815732012420725532099787964674603496830210979674425406830533529985860040806614994727773734356759186269166570156428800668631860583450855056224216206577115981792673474354071827589295612944731187016125890223351788756432298684803668830053925729158377352308473149293324093397673019481426030547980174247498772046956336994522189685088783781947024263452280224356049727855878291454651219376421275259180572720954068719038460981262167099796190760934698413078724581473973491734422210294513558926858189443028706298056337328025344206440627451773837384433232017797906285343666944233963230512050309314200296534375581807653119697284173917782613337084956926055684030818467937390439352999615536121931578335382729953114494089686739150323944357351556243370867002770891210397103389207261460221712655548245222470355572411420030662575435868048744540960935092834787066500745967261862742040419206901190694239694373027873699802137707582209356004405431240756757966168872388925551021687442604372608600843691703764365859410783960660341301610834228949171666317654757766410366503946337969412297799301794505224447030503754528378727236124110271334941630243228914908276553688476118786931050047409508300152770954703799684162492134391849669013451507862669564299586575262290342149763586394611710175686133871588521729816197069961956021531205128686834671017384050187574696384351113686767316742392769435869839472479499255252252219162739122665218815900891952257918214823506351034869908960309972281076797820900994693246097652085199859881152180814524720853655226327826893899302632975901685925031840615310712420503491018466886186238312160653466785094290599159484756935601688235984718983151636835828668456486195523424511753907838722745168764624326513912106825302702680787402288370114665721565041156606054606300229377340679773858262539971219071325032791297975413061029903124674745384778044166884812723020560611344353976882164373919516159148565967264825528940182960985007039316877752411646741987135209123832427523149074836347975284082847919648389495892690347231084970920394643445349731860580940814955714271923704425554053639275901279325583499209046215941155001168396984341386887690206506268009942890470094645342477365591638010020561410093668757812433148476468751595253480181867478886108664103727868470243870342242409988255115002089105889204549592288365122207402745772178107520313962878849602958936613185604475679099501780832053928527174317383275137060117145748615669613787150983783760260315462215488200791868231462624002831051551135345115085880890267287464366635699386075588587207648908292415012727428392046841368901916710036392039941691129816084102367311241640844206223012660343434363782051423345832840487031144654961100241415280839016155497479201670177142986214578558931833816414948403138942383714035268965041824421248233825577743815063974668978461017889541989023816864866858089927015018637571425047473800972868804136657123289148138009702529946845574736316491910924600125470846198181615595538941624081599359309877583692788772211345789786197765896010567313108593918887048541361273709798055361955949802260810854017010161491769665444672452964334972028114572219310135287461242526302081263994657817253820280990474631346279031285215283983707829701902961524792337035176675445122575719985436123556251771098546163710007401890169839767207017572757736147999156923974142751770336425323328475716995341714864922675673882892359122588858887784641723865757093463455504581214596316246210966435047358557187639482756763218295984609973920956813779492295624454913876960630594667855281071941700853662919215717934357827209353637533678290453407950969762411852384909263665475607370097754594963797877921340875996989418282386214349477050703126875432825028483966368437831893955921933749524023653666089390877146252757048995195787095375914461624380084409607529515286794501236294570403359518773587462759379113110124423013033850284182057376586724971337327571971466039287482236167605605155232876874038248584332576982099592164446888506528357042692277981326735983737493258579830219046529324845063805417112638532952200075747852789443733877396290883444359664879058433197185287939653844338001143439555253535799113693293466195215911820740739467075666961968870807264899907029068760087906265030524845226688421350702154570695599686297948634577137525094490025008316352085707155327736595894546594790365491533665620986064841822658034724531567516807749891577974681770353884239499904251538552423686529331191620403982504657370104694134573347342592787486824474606593830375297009355416986834842883842488822471973587514981480713214708070408389304384453387097639878351249198126895016241063815322061770583001740619387543321338883107535808186817965598326229799232380571030099927352720661038138598861326973853530371909468979572400669641572928345402746311700765990074299836096819878462261493077050983040510778761497639215618377097883689648594344898550243549433125771428596045403419997087212944904036925291615046815581327462628535658955637361185845557380879705277552638384850996076047117159779159429910732006555489371229015269731157866533295142732281067673764907426198313810668366922678853699109997068452418289772653201685993552914225942622565417400972225357926289338788255011618285685281516158270658100995024346092337042033871450988043063189635581629586354498871392223722328784184484381055336820757662731587325418651628481319831852672581541444439104184676649013815463546204605801764362508158019652580851667836987280791094569810920272783686229287973476027282488175558550745755414105580618125033911686814098216096798534189536762094203252007468808080983115736057200858051939409681282321208855586302434344139310007758128318194363534620848904101869526763030418393065133855640877434506611419788400456655813480026766954137587969974869874682624795760726956850920110869403247493115187659566153617208063362118033496372660205355175176519333681140036963634084993545882229831992450250936924153858893800965972348139441141618533442694694754739720481536236067366336627458452761289119785380069920106203320336144376538721944979152586478363677728470175393676319144692649239093188532002400332431588328600553342080857153094769430619573260682368549497798285870717438948632967698803793622331013752613253991994579275249046889500605493286777508889087645936618379683305099200738591284791926215673884663509533642131723367968806948398933493321163008808269920085181424400549645727215723727530361713425118885898795407483904389809505538798908132636098936844358916348628830338537355376299572139202054243050566146552007925226070199331260090396489123462072033177244897949729747649418496013513246809011458585007505026760694440770923733653451450828400778897401455018881155612153737351226517544737024122828420708340716757643641889121271650935321570544098787398336913910681792362132306372677013342706443040993834052562791168817782140024808436133061910571755254473923491888860279684681514258587924062234637369823489512811156021895643215821008301133349139159309232012874443221145823886533858815757281763153846754186778666917878685906216782393079625656640559925035017499832766534401467347641999736376942269962465885596520764961742709622920460084269300626671964045016324651204929635304504565966738156641564284920321385277982218985935238080229833310511041765815533976985461242446183963637270758212529358885659812582321864769719043911710984619756036191950315728152064616092020504780034948675966316721738285853930622305030102887825425846597614059538038081858640770387165968046565152325942107254944020023518069352342227660444269147232686739684597125790572777432643540658067274506212280541671366659010550924924990919677917390034394440427011999157468416541009284054872645499504571795183278377663450345202652099099783711977529795237044356845653483640173245786852937218983907565079627905512531258457867435926721467938266150388880958599077118188987208552412639573348715752629612031594420756598701709792382280836472174772497647621127958491668287133753383809291286107290642747087164957441252368764690423013232747985784424445440572605097437435877203925851677509567601964215382472907829493099683587684851116799978276606816907268103837519282477902083245333739683198708159558234717559855036307383774247066720406835180231629218327277554571989703945613856072436514081982373407647891392577110721830589889912807886574797408408883394197598076767535990993424204153924779996410202887601993334782073636389024314567887979791641178498847708673243978835446563991260502732054823015349422023599742321024022910627889471599397081123066882146879073136878858743681475379398436788745445283199184713490206518832575249598636186540556589248508839589552048642332938134720978731003624919714643661701895960729258295206792219988409780564181531317410941078876991197390606870075954733504295599329584309070797475527059668646492041890197372751285253009804576478724288342934437459688124486335648885494899026360078143648150604274064910731435644186230860256550317890420720646389388392179116370578386258011157270871199583778375925737871787521336743472949385682132385004002216929295174842777463847500033858615929283925019477406319061909109493957084785251760364553339013653742548721346306371848399665957202037020433862819472133987008386432292248351446433992821930196978990780051528313083733426406059838663516845000599369597481022703174177445029460645107489145461361998864984999689250251372927885818792456633976254353414556150185308535749230751069066594472773438639762440253153501909947855897449019775475693850104115643656922884863554232482896377317685590819602389459447723891421492686144928035724394478149944432135538301834491775197656007950173357004560177749390918967624894716016968174330463070931873490504297019887422433279669694432104665229895148462519200108858647006093391101000735815345741031435439911039737175322654234086853655967161502906908739719898347941727751929880237176346871595618136482969715701513253146926747303634191013130340827548305819822260509823319857035743274336144898965588537056790269824380658554405720466087328954723458854400753870356074355679412795354717134179777219870346160688432221319043154780002187717036615131307736785806430280631908060844957636317365995034606284594565342361736289207072952358484211774211382175273215251443901243988975750993972639523558444448075027393380108924060853904024221583012389620462307429702060588921669280656650734574880851969634951024968303083204924560988919994067393079809792837027111118203242134797183340062868346743929506840256565540060042211209732238993074077227084384022913071025257223960209957723519656987992835254280315945693106022800916845350370510477292973920871269860494898165299628427963794983126918279293336912714307078227167694800500429574231455581035286680061852742546257054391310330854941202993662952548182605377245583088230805612655980327675976409408018651574092243147072845187430270567526240671472499266404417978153071991232011416955743893672409581774567465410611318990420867095004396993440367310193989016648251501755886398544239534331658852508402633578547824634214134546784135145764946049192574139943264192581505240734045608673745541013153079677359156164467959126276814884339860529540469431603879187257015209024456593998084229841616134081000937070329084293815281201121647838175155052113457080517256299400216167037319008832157547687717369312484306342241802361789485428226135807565715653970349052159028917133025385494126128632501354994317725179722857295102306421938208949665036915191371734839403294337333427768625365150768331112817313508440261167177094636663960465804534016681821220920425761069367063309587272807856332948535138528252610835779567387463113619972371720964635752507517161335668681915466640521745384548845507895308721793120390756427884846470375468772427110494586002655207566399584173207155159822027703437152726309277834466479718796077468124258757668465352730618366412134931602633697544230728285605641214046162434730021100373211856751708286909877197494808002966938813258338291882247249468975880720858552173726891511906260253784738122192519989381738162618393038017042429897504379432277655225410666418521518677478924843261469955077914072180287741215158006697169021096490715423231559043521872001834482686047626552294260622460172783247899675321454728865842667231288933073106021586299955698167636802832855085245663628068088953791682809588723694216962332626901422228831399521991386009788320520548439088985494005048829276608872843953692847466687106156201964820863729761821070190432691958636855036113311829927984748576625103607790613576506728183896935280067537332814777166340128387231226336139004399718898062826022169603296601921615484198621790992589993047132870376235757841949917011917750590046851776147589042392563317163291641246628643012437531702496135679979385074404478478961896158813599328484271309014416512935354471127340582038716223735785211576526322283268758866401728987249764780565298886988572496404125226370264876495868216191646162638756059362098814569042639558126633751644129436410331380048548960409517277386147204985855390941182003920223210367475842370190522238374654307358063636836435498857461871270518716626210518381998228793713757378686712085989299744072251617892833655972075587167379618056043942294076622246342852491910214630612538736013470560856636218264174852140086916935705410167016257267572282303948044767117055092414940897975188265785225202240299074736104231874994931775178042792209836703393112256046157616451545176386585375233061612915359875015782402227208408378241770402251595638077332947277748833565088049772310210102716850418150021675188049570442989569841124264027687596215127961764051685158679621799716593478288633094591335250961405950560906369319164098772683542619482695291725651849403055816099050735063085193949178903198693008231573023095840806132282380292205211907264976009804339807455159674065445903801079785586859577420263397464745198133316530342038850374113859502624551632175210728906514921404753042452297096504449842535029881505467685659060488249535112568941866901421570668060460110881410808554266645525241944489451762421286289586054222430668872032995006582113798048381932410570057895947904034925131810526499446205992392270546453276029632063107535663551109764848753845387249877602979714267540000822454160879175325776173280832977038478044836624460803549831659510677517572330073185923897165332656623089570498826175191588408841754756895710869329359745501257833333426140628821055918148423768418867534605712659003893768234386643938936271507209056725999785599254671072119188882506109703077979867394380506993853616321946787050717490916931645119933662508313423498962488689070536295613261293481681671189053875109177351359061066407466329119934987728944168648130145182751576729067389940038757098884432960706434775829513325154813941819749488037830653515072752150150717942255484926298692796204501984340428608472623382015417102523842978118612950727667071936749190212534053078786476735270811312380385869790811849451386856838254542357034001154970890714593628220909533548594039420515307077766108652380273040532706382246155774010649182690110194002655441824547237296975739874709731220776904463161837238803027903098999897328406806569070708507560872917744789173405971974049711279532012977029300126878261526513167179665138173093569906934330938420389637060665852845137420717422081369756544058084058948871696366950060928710649424171459015624572581093816885565223693863658480817531531972370932693321836912218703332528069769063032830524609625347131470974846289551802028613646277956330006416078826774539022164323221027656386453591551026485953960443538440598800911332249047104233606881892561677772601631572641005922948620752482181331147607452038447253308913910616260747114580302063408678869876145645253146172414680437017920979968353164452272350949419951758346789066344280612469381790920635258352925541668395063125925752177166564460452339331678357374427650222599619026515963014435489675847449083473254979385906180388836442796111891957821379119722871991582537444079890306094212907467989272564753409758838307905738943745682358729928936314603202305340479266368824306113167778038040626463997042055276053898831493028583944297737535545517663066362434409128900489555293643343053729232880168448063904104421920688001172027158074446303121832768478845306682998843988395408737152681692337955906185781097224457398779352693015851623414420329727214150111643518926085611209248199299754679196561820776224288344609828313333471808475204497034856036406350678120374322685340170040352743760293720507172089091175661977167498600229460664491936148706426041300071577084945487686344880701817743233184537866053094354868123378049622624463350866131529440849533703142964920328508829498762406096572250961636806391481516437959277409439684545378879012447990848148027143207214273093487477012557036733315149429116095771541875372210333431100055225792399272022099622982055296836164391608642448922978050819397699117295773129056974464989500812885712839435766580297732112623119588696648733695636825568413115318559205317741094857861981223875627421506951759086355104281223612721233084377583909057742104185275797063359096007360211819776540742366981384286714684942530493431213922207095927109314452800180664051566896965319888788470669320234327262503646956260937659320292009825293668379965972068282896494099602171452568474242325387919875116995657265128017691384897981345109787821033511358867946238918027185841702591849344244411804693731793213782462074858613938126414046670742613714452346745285572585088781049633175182773104912998069731555949797841383910155465627932401052865123070728675746403040620919737437379977556540123695603430051241047606748075654423926710975275834887646515555773186833484551083806154739042839134693298843087124283527828032366173161512689820040230898478875140752944204584710923119065775779263426202525444410733753715526429701409766405860552506379165832869314671059168745618629171614946079342521826194988392579938044439217910161792165739786136257265064574817531206024481033546922854770336346688660762806440493283472361307738637982615010107533118302079774648080881589314970727401181696088917886679304073945235841421940125870942965714705762635599610741389367543118432102805375064680287402762682267381606941387583745669025700068617965040813825549653109348714142614857373011598102506850640454841344866149545883972164505095082479980553822949507203373296999288779871197984283303037440465376430358775818283733126552237029651685752024437416317013393165616095395021332309058554635599158144337107254044190591334349085305033469105261142542455150897853335691494516705357364722646284306446844643279871440457573591590458264862151615962081023520322070410354576704862085065461810893975922415697207932315842567766913167138766437925148486562878128443989406162479566813409106064405216555856046794103711376293230512521807005663069123734944960726229297570394801682253490278793892521054856901165335507836159469232340399846154992016592737900516274371202664640056209982868789067672050702146251843925262071049417409384235519952273290639952476994048489149086261716276812700266923760789535962386209348798873974814388160312870764230354217117519302113878495649596321711225838199682399557201364197420200154221674325308160891891938218016938067825320437368958862373938566855158179548751639397913061442213234122871542294888023746257131369367218144059933282580731505820975106638779749876015400228702602910954534440961565102555913388486603117172398821008063030746806694372469765961693140901672977741284381863039265262299059678807196680235278279179928825536650956747203059940024311139213087794492003690739405937307186506607940561742777637458190075638447133226361602468285853915867700058454354545543218404596495665916759790830200314232221851009992792090415391563845009605369769081004422470354215946706316602423036075291577718973192381933452079415858058725086831437706861477686312363053732297295986162610367755968102697868605490921462775194063908041179952059655706480566475983478339770277340325645456226370922848698395363995907373678073563529082809368309300186160884522000122923893931387221526108487167819144955620999359244321552952198362498618856149728736687626556008939998281682523223637644431200280443171926220403521779378259090120375066693504362128941322732763450854326344402499759255165065122438875100546727274366188447937133256832685321585820066700934320766934986385554971685668788688931998113631208869922809806403213967373913915883182818013117196257772969906782040299054425879054576158316029814729109300789012936472771417845914597974769526164459084512031770667164894119870336833500818407225282823462201760691667975510955760339551809061662056847602929080486743656243074856259897176275099923106334080570552355278148057769172164234020867134503583335485883569215509943013701491728067323865634841255832914950053049472681707026803499283302840680705599605061982204521635996436243529850452420111430467084733902041198982550478490632523350315763133722545418065222318771357932850668155982607721586814394461082460442750159290062582183204663275772105291326428728121206734957807068171323934507673074925161153156504579263877877071638146266470734480378957584778205813838387152281041895063983585225103459784469852072855136210094831771617728350492112945612456825010615219458195595853195127478820883418541842684054716397908096682521739609138760162538924312776890464507470958905666003742163803835660686057234518239792730529999244509768526511728091892614437604327215270283630063444281359737045586754503106292198589718089309630953818328360113696015111242188992487741849089744154094264712238499120712419990606886598767444200948329322963709025422404145742359926415261520426911813298710856158395390008000955502743086767197446720097661583317573390758732925160775877464059326225477937195663171637943032776087536243239014891898014785980033692732143703018706516992776977233376716584091172027711243635504921469315209568674925457015277016313034492917728382636538537609938895390754869856874621551403034935616092452986277286838007066696565727290872815211784823150610180802325952141125471013359492067932009775778188288310925484469510500953755979839540343270272928572419618299287488987110786087673533052049421477979741132019366747776535454189106238226312582037544952394240455188331995494254941930430334420183129462592021599920710630554809779108843621966086082147227688206499919969090577412594077331446695851134558622805266246353523820143879672765620541813185603829013577628845873341236994148676589421376604335941435406112637620816590254811441513687318102935868697765099187398573459153117664038679264730499202991519136537485660267949203526262533641124239033691264068929542175390834504874880368212255666502915326160682243633644956347811594695451002710894367589818094248231290149591808042661476976991208749151299429406413895421527727945828657257973875563219573618245043289640270313830618887636613904062697741419094778283216227792749172237739285474983420290162527335687337414296394620995731623210074320819454042071703798414916540128178702111726870545359513788461788727188406850995122700693363749212360661738671530063814967993253157265232936654802635992133873134761963951942483029559185405493330803858406713169182457164804340351173537653652779910202685331770678964065935500745287643510395015997692529603999917939785456276916428883576913793093214919570867517980341061750118183619352716253417680323504467059709552522497657255569543684008081965458178036303229096265148574902881035901505586467045974029701686689467970122732117175432471029137137503063230383762459730787557249482320047498328362756887282622000896378053905878585316802745174538073293602179037184943097595223418932230503522987394072501393639847499975942117847411778577475521235994049469888022214990490948326972631355769411124459652808139856446317803897549701155849057321391192589107853122160975907007758596807640985218326091022554267384151113272525124613171513896558564461491808188123602842492231786474756694899572065523587997282257654866254075177414129980886936551421366850791224566901659173794902819786806066143282200497076544913938005498723412221876164535906559225761951802078363510506551835953026196727231018956280023718850680859848279241147839382216551960326205895858042121048855349711211388012048508183737111078546363693828660202560959100088990097290268962510642952394931740358394562418515423175116861025766671184787740917651146390424404971767685016817276958709774568922337915929415246744418479496191326670562797565058710013420594995886033510444151006518990556443869088533910865963364854790457586989955293953137568780981054551435781818740725737272256644643025344031032219540179050270729130808078053623820481465651498663433063071205279073955719539816910549120309416727433503404944969064697084647722931318376378058415100926461402084496524506180709833613076760853715885517628451569826684080361722552537630706259140908610131474352100900769765564893376881590217382590459870731377647868546949119432091517751491093990328951858958186760613119981394287974985775118142609580954922351472329625453900151344954890404206535608711479046525773115197808809497054837499882276402698248336846765649036264338800894109588711154317670780318236339566581217401004056260788252837796456811336836984618629674222999906170027993271898239875203203679337167090033919196531380724934072736399184022424975573037084402903806170303341021368320276244433314570451066744444087664549506906656877364791617563634277682077654601985707244356633845627693679963889038815169402479915115239534532513615972090680832311837185369684131684068882126317005093029176104196514012618286803528803304306420618546629209803852300789404105571724023488254631096396601711489090651833906959794521210593923366591072165914436969033814106939363611739199954705147067819640344354265061552775058339009614693430364590228200300179687068844607136417389489995495780962227971187556930703804445397753293881070028630061262607810331449674158311256830242523078072570164544337538889505923077517439880087140057888793904195177934778368917452075028734363845606884079263762016698305301436471278078482940400870307484561896280213227245786703429616914802424836057805817182738786638107805181434523501632906020778007498835557269274438078908858087930156059349029740995555374101981826494300004255859578531403188021275174442007199632629826365570455878347300370794431859461472566254657811708922117276064123173978557323025777646734666192893100139092067332479922403775405199649030818179988590874952980725938857037037907015333587510100557159174031475228122299371046994025812939002110459117275350978130864876225732947223416599151375421944868563150880533790382730054566129404099541079904149050361405684947785913769550928317532308655987395819246175759760391298479480864997160394703879579362570989979767200357212898095472991752585447273072882124275673837486788450492094027283505439962422580588217410176012931024573105910956581916808639291337147022895874512089176448482135415357276438398384511513853624777484942862854894922784033992025387558096230182887087085487259156949495868223206059542081336377662835211961990008346784366543830439558737436190246171891753129266912109300705100991934479253756792476807648139096999692084979212696145227342253228616534539655772220265279141495988627597397152058921721411872741830162686942314186344315202635861612128619495253679278994181937684178134072757116197990280668102270228285121647262920110661505155336747795647287336499152500533820560892571591032638909972495316818058850207711683138601339322394146378727786454417536676186255944453965650101624988730640938065359090721982129323666846981940221883910800790947080382991044447702688385640446977904379876436042000186828633414379726599805574203550856293128052583474727961915765437561996955337009848858575646141289449235329850307211798266690834290401808986647976205630388481356508527598666035786680331331513421405433377573394581406763186285777036675177245583022311552789074542726922380972523574324540043632111620306674601870646970363500735397068054403291763352502966117348754796066785816677513859379053998865529531451735823259608997152988741697551067576333398640422990032266683490371945556070853774138181728076892715326867915557214281045895811598943516122159240465640153451685457116298888854439160257236827647278147336295784446995203904863652002279971461201876714286726027211814860473205595791327887391422727667821795138768114177707404032855006786277841170353091395261257958184373813276490626052354833723582880446321847889998350360851135210726067619184465257553024058129454354492613575267135839227950454264259540889784253874469466090171840133975164389171346233498212020792640677470172585451199813502057414363817433599138367285927718900874860365295327070281498476464317469822219308751844519030959894700905212798083288488506922880440028977428024680223043922912011106719645100936582908536421791073876422834110558805432568329155098844624285576195185875603087909265190116787725157738354039389229062104859063329762937699159656246218143576464698588231035308419717623742528127072116825098594013952293542706514442158022519628823616967079288195785769262122972897302012860719784323659909540501037049767537406194671288119077718454184702320470790673941567732220051364789491564550595311726011821614197981221916690643164473113930967569587082085008064045844558113489486942195210785198283447027480519492003378315000099722583139115674771547811319135668217230807933243605183780937685327960376547145140432464639982904494972641008632445020580774518994803166243096650663921278784396900517460384144816425511163739914507678993033596616231354394641223975718079272053749149693830465649431114540291241466126292740782992729918055817954431917448378321488701776354237217043959171284862833912568964354787913312482371581082850602011237855322648856432469176054314140813178262818557043422388097874392059888201990933711021836571582335306854576161826499690438494759876584421246505501454039293587565052271693456090092294948661220262878572886105973024418987594307442541135123842593128895109140816066592277104009323693894411834920892508148280583294803535205762541746997420884685935181857239987561187860498974634795066649537313355775595310465608645217047879609056540316760411116708173986495944594325453363488574579376800058308868921633898535822065726437909430763227204305693818097882765850151195028022647015965666087989379010516290937890650136217346795402936680139811601871797463196125363008174956259599339666655757374805679131872016448028272338947609544678701280135142891561854087320427906914875567271148190260514202639858325376892340247917809550325094492769782672441629552501132717342204767602072343619769652348214003259664689041923338790974067889574594321007411564607487794871945408701822532365826398258036125107400511782908444346460184780285872006323240225784835037785108070216464907453078518926162501480514104799109088566542197609897550862009921475372136803017788086796674108605663682196382468075106769533300279807374363402880271803773116115179620872315699708885299168867269817238690329062987380585902130774069481952636149386944263702870891196668035666946993404127223597050881839943155313484213626226239425494428633369545244797130436841129818698960782920757992105587524867509352517744858277157671244357733432942264121688158938477682292021349843134388926363726874799188229531536219276488926590017518367997199389273139567184772592007101441358764260179072035469864608096643763542095188180063562157007804131794527225138508615552600140365932777057349285056788547530475492893175262450352352299807946006961624515508768441462330041317649576553049940130799303507429099921548301912270443874587110097770668598775560401738745231766013592209412908656813659693835520415410534455762148327372045712677161301232713484833241116450669988017208030334171068134598817623533680046516484051656206675900262018448381213995819800934608467963987182988694852774251692555077288469231258232700575624838527568560070578119464600767558941417679606314044064782685886864640123860313531068276679062054212220478710547824427999409574404050113914583886971284386498399848093719822346410745475152784362181363407150117600624906718981842982094067295655694742173518907887130756680856470043103629991768844968361003590632646818419353189214644888305650438552905552906798145995205140949162250897468720058742238991398848007814056552794494477926414444772022343254446325021167326136477303476215378404491784078912204406211838657406284969992256105178064037011925381217425314975758074887544545338150538940018561548774897817568043767850554727514412564358923614059577320628483996078424863041302910029697542588099724505648135842198797082817169046367046601261718483541580795009669566965706222964203258453679907248527011813575282862712695713256356644460954708025948645647828303990666199850804083344512025297042568450273051874009973988921686116060611773427678549734463528602257779366083536313749385245794232708354382692396579862516408454049027127040937481000356386834086405921160827660348603549024741976178436832750019657470915040450682328640247628044716427545886023154902797501743936598249421968575346002321740947578861213534773533562945364452091425356117517374661117880357670936276118188836243376860028264579410562422968929050808500161918921469879080213327379834581406526754422288288178589558480829866266354443918201068257364205984816522124520201064838171158920840817414002353548341371301149326241280145392597395955357241861779106276727487165661483047194459852481715005411903648783301064719932300871349554488705051068847212136611214118725597847378719598108284097026030521333043861139982359181242709476684349184195953879907407665714203112938215271078190281242890516550758096827835683709053352045359931117508581221667498751661718403551279169480431938059555030812397495904334074571739148144873279983723048459896373514846480094123526965964252315204236054465409268933526503457419377039961182999459555247864733862881933063774608448705072489826102300079826742137142731174152062794775578485679684731603870969010010829066260599724834346684625513945850743448166631812682087009802774612715808033181740784465510245176352863298035001856850772448802565108235557592776928350486675232547715991244986021073056660056145875125319336791013315402333974754960947552386965960613894214800072110742617383151079485003793743521539348413330903625535389726989673920516372817994758001226831001925732216392687436119691393406890971611649672452129106678432095146052867188616704670429518650320523808202771535515196486588543865076118760941973797091158924932988329362528785012515015685503796952213837798666943074994867595659374070084168128108075007509003385556822582373891950567120707471707259665655913790513057853036659661016306628846118093038318991352180154607993773136481521178670887262441172495341130391312548816592575078145522553203908497602075022824948868418624599062565173055561380863024681489274887635457078704409916616650873768976552404002106482801690637815782159881469062201529595794385086903777004695769524924215260094676504029610361871894585934603829298819483261380401693949373592193905125820323219017874559806759909514343483295967878366661754832855510336011520312020820179049542624676965520422265447006472841346877932562217860025830007659176988264497527117237321199846310782483674996338051103755377353043708633685517486592790682816189567330104732113567142211527299335830261987397979671649158850135994967480926447862267193638629668044960584431959724542034661139933301895020754742420366030042582490447603630458398683453834869065904900650809227216070985494311607288180845385975649942177120643924369555599016080924426952215802299467956776568752569447382497063587365791262852317370187786154400876891760235612942162915926680998004095160799575824426085333192396825074614745913244304274230153768224468120677844240282971642565542784054779743701185486860473105953433358727061681170288905393878809574207593562536956331160838162368922030958526621389951336710474217927205857306504594411551227770792468801273378219144283093059444298935565114066835452617606717425477068583435696325251941204704002793354093624403549734949912775307754666954359886976803395858743100317979778826244370833559504999798381392242117194189266096025132715859969524773860585425636919733753781422730655692081832000821214053102110404856903191359437076161466626365842095573916682730601555660753568701326665656217866424019480815227666660576027956630406992683275787308990872993409650691122537200202315237836818640926823216641191453626477701103150838076805326370177002953735272518140247711573229043805422919465850129539771146009836536840136909258586281585358920855906397493864055944145856490060164430269374596202352944671735238057253422219661731391228492439212487804327067483452386426221980745266788783306935909770016487434128723031991565922591283467142188172598149335817167450622217927786099482710126947662434845059701950556016015649023694255925591866665402224230512017656749458465436657001706823272745850340905690382921020537926194526912910464470904049770020074430152327722955196214365011703759658513094259167251578843949077296100161597352816015493357703447761057881905847463614490347803197741988548013149267778830038198131648212338098390164726873865064864163686050656299074603112052350635360197238813548318502919306391372466384569115451516967337877726256392469389709276697297840339808487967207707427002991323179829283295935388754650291719536683330721078817844071037766498178697871552669126815744732329247995837608335417325288490631108239635869027787385766415990261286991174902617686933526100913451912794141478622251626419105849655802355831538134793369534610377425493592450270242244181805457890055207899965096388474203690246110458918546312196000784848711826161868257230239954234713721012666432895829532669049173664819299546880121881924814797524348553531397316207997486259829866414150928866899745704485960869670433483338162430146241725484347916795495655358745103730044991224089678787937798085441641044918500745226767635364311446669285926081761924435122058180053754184263155122635202113821973065608215756781568807912272103528355599745022575729264992540908428717065521615662975966786633122948382937536204569114743051989538591683532914542757871377190827721796844420543112771966487999661458628215860326630235628195263363739688563656246146464883862936869118380683204570104752980842027816209280581079628291966377886407540126327338975162706869976390399822522142998559147157828725115740448635363327147651540342700642746723620713939185505596919884360799436199894877005218784962144258383376724776032842752434554302052989537317431812947747330548685289820878173100664906116196937446118725394417216274381555670203521218889655905759420127097344924846112175175876100425274342448281883793024309024477164040983953413224821836841723366367314837395659451065849185758678304229728500907043772347626750929893729446802145976198305888797982467064107258386857925822753440263184026070380087609380599320570079239164111987009175454893986587387791999593542578868899643313183780367099645671824623491988987223023014241870179482502432471056120296689653717472530835354980617894922229213762665857840872128053481471866808240252148637699671414549682679292658773653428498625696333274806676389905131265852034529948499745696703484769645542836517088179816179636521767038900838188071396192237985157126936406024713803826972167168473857574370370298230121055143032812412017448454620549487719857658263199293296776165884297152421739792666097710329673471246986680338903405079148610080989861177609662203544674718313890628353764911698618752320153117255002586974189519792349716973155615245521980656930879288267880282053171116610727117677797172983979386560431773920441166528106028827203896419046793372384212049775658877061082768295666570041368373034483445389370948294687848630714324187475795707442857439161938889916876338183280005154832892663276679051747161558218723319500647990563151399947067850867587811408685817588258249447037936855262912988001507858755563575710674714606044633537831743476209136301520163866593063334629839127233656861786713517472770230339874052890168741970823268237751816872031113339345821429861595446572542424553823954297765222549998357677084500792677371287588882631497951611865928877262616410973934301131608601795018147984216610146663792583880712654449328488806146637630994045945440475785411708748213646442981987263775873987247304274029865500870340036719146886512670377517702570110485583339266121437135167092886550023246531511324134448931620154041764530391114655403785871813630259807402696607792546857911456767200685182435832862213468283164999846002062446518336819596021360119356418021302941755763275997090774905701817137066635404996854678265815732496360792207532235043287547811481029546395554986723703030322837640915488621229013824990480203487752169272672549128503122728020876114342100856494048113369749183561687017516572891387618680470240153993506736736795147565703914668835371757974338775336825359159378449687507045707038651268319578421990754907272296590108832059645496002827223849633030570272382365825524462078240263602608071311109653491169445012436653078443192443518870726551880850084618427946797789672508541001240032681688266964167792838117948515747287613509122403836291447305097270985383977331668763453807365579143928149265852766328149416464919471344695329199509712249553906493072291023298806304918874884058452978664968721969211730799837522146480778209620826323969209826986472059241788075564221364054742004022812763048793008143864234721224927088636302503484268751531278355614930530221240662995779840019621424355418025215422591067097470354022663825503222971481703477875566919669899875717254389608854608501922794379247396636048979782574343885196757883417309338978712648073590162669396831895644769128778573975038942729021862837084304476580549202858097966487633719210401446677757907803867233509823098172498716822436873246837898929461391491633275330040767785568689789956971085622517777763047145938555486914690299518190444992005542174333804390377450135348962864897632580870479199999465354496127130687761690344838922366283572106966466110012732564909487256617068494019045997453439313632257326592215804161574244595310505923429441150965417558915714661056017872322584836551654216331244661917056681742249661976195829824061678409858304360796588764925531802572989993118552894528444540990243316725138923818318428864858680350724738689647441480536237604451943525609968701174146051398619130610175510541615122406844008151390304481687825878733134274831421853896637484572487048320323040981140670369801470216472797655389994303360237400910053531679641490783308733257582028111254782149627138150256152254025977553568324090490599049312898679511954487701669975780721447241878322312120775196992891562520988769041551834777144341701381061713831400949128067494377012748297299951591324835128120004954024361820628387574617606002402035820917012453788166598845465552790044031472053282784879196372050859309807500856455497833205419495327199811942048719816787402756483469825663582283282478414525401510416189866418357727089681269363099838665096803117696897645493263187233127410987995361568258301760902309979072829981998692303939126372580309140054047767988832390054485405059879839201898931100477873906286358087973618385819455824981182189432869209610178307689209415666180929459844289218369227001878301359614685607341144261678640205754648370593010558640570986980394796728266667133806577932398267398713607552886616695462241123527825761539581108017705811152987027230338103316985792256493910077046592050758518834621838820277815966115820835395601212616696348139873724156610890798684375138685628612304297204672885720168057020643986438253949327645720989690151229319146313196573298528819252835510332790462868104512540691632943879747042442726371880703505318516505805189505026672682339182026812682561348843043023370383277312656223926517153964566753194434762138243188089868748516241748626463116154210964724251677231745258087403438354970015606154020891185089980108685400899821505079960462739505832119247234678620792944965689007689985964661000784995312338973719063378015157307477127627185430070528812623182944550989522720060036882018385345765157564679389025139826287703679428309157622137546928762469198408549797530627178165311326635097445284442440771964298819797476173801881663807848209238355250759961265353576429946451273740988351501731613737900339602475292657224069305892057627553781263313311414879081393697455404681635481423223723478732112041562143713762787411383521428037225676181162505742712953503870766821707053809719770449428389881734641434092250972058490872890660114237479403280988807642362357235018067580764235017149614254517179517719813991899016938752340717140077461374563963040944659289502196320826888676203738438248935201070906457655329437764438611182604759782827044868506690219871200992824011219833234519524076771751995418864402520711073960938377886480261030524042462870035713391205903151172038394577308700636864077707241483781640938926007877439855553840887320545057819170476193524420092230928825847434389171886621899312888396708488138021613633184366092932482420933390080449094409266172685288453560450632042544840111604729207387523171591527209564711032818173655161077929838950573158573549575406932827928052329042431719584243787474654334342345294422382445877349308688818185584573949128756462402504391909545256492497891482820039759298733720085760953231208998302977703847711696186512146598859031531912342598846262354627168506754759840260167166612306218607429745328594156311261161268830547512860311016401063434010425815521541800595862252626356692375616842689202132927651585974993184140252486694616393609634540647073103482750962632904357562187165013502021893164222089562269068438014087372096270786879992275327085384870421586256036013931956100323836042428090381733472198891658884373122134622658963620473306820160492107617541789215476684141096271662415182002851745174027608325423496478060746134202799072012482313693187034527871225789584793575537731739142492004674514491060451554181864405452013792399039389757041289523876424323448878175231473410645995053526088493088590190171986143324394448761637334149329020487923854074015753678419941813434299809353107757395422201051800358901890824004447380464823075846608076816150401498703092493154545546640733309128806825239772971053219810363670318711118729489703054706989079325817962086047134679512041237065012921282230924521941226706625968348233716960774719205921095273483127446975426635388598364923517978351856916005170632508377292952893197558590866308476415160825135288288718060831056763237231904128977202796417758509131151386103975486113812128328617146665455588109159530548829606400985304946555097676899659245815658480606394729392994684305198176486027866789922632504134504673623260975998098196854589284993213120139176468936609485992425122596288102559731759928796025238702648587171868656700117404389552090778430725878348678237099136812113091834429009565522789902280172142834372199850351561442989755521501870920549661239416413965540196526992635306583910242787519320005939556424696571477833546463501759130403901750088512286841060542509668029522275812375801285330388042214694836890967851436068826467061606749965347067891022252653841342492411202556464722197495693846510342678422387837073472038389596679110299128216542453403979442470543195674632652328128308476870964554309957636211584727936093278645326051076803013487382861307610850987801625188189112921011286878291454432627833069023315968021352862780565630472507493230504048611512792406193936672064963755272954133656357507415987154693628054180397112270446069667346571329286028209727076235361121758235853995449071338214600745192329243882437060175693454379778351957350612897972337682582724284455735347926628634536020842890261423862436016814480046978704101834867303498834957722099911769887337280373712945122629494422329373212741333710201665608751163244352024333217556317860494888516142219383277863147781450430990670191850648635838680375984744450777938514736538025734950520466821962003181871044258159090984992716120170481827865150691603917734799337591396075221139028831708048935496059260253075067038228649039950337104964346570323832694961545407058141198169411894299322362160773601132446610683334678923235203596170211996184427770327929536831467990275282617085879999562045785770288331553127965222085762909456382942795124833447825565827194305173976455882669504786679081249781070959185217730139590377427375674208136211760318332037085394938815123506289686240023727445305920298676512080778171157577946263837597342097235101956959306916898616317334143869130143374443707572213590078855424811002319312562289468461423161673229930768360282875222958473217913419231662016273307920106186212622007388204299956167990165861983706824617634440786664241826964850365625592345931127540029843568334276256201718033609694028532705943958335123181077868796861340252014250466225244119032608050949505466450791165103175685619296753709547319450539279626991073442332197967228590708427414235955753167471635907775309334362589577883502999304211755049013352494750796251113278024209088015630495525420966185545548400695619184016234985077758457664013818657473499418336509261987534106194264829507125773126982647335385198273639555997651104860114402072017277117646369706405836715558697013480631267595155853480350272088182879371319182024131915649886723263524177660873306232396425189196211327304848757239972166834596651910697059960701770687320405759598634604404374073637278408050278806240573496272549725902765052987057057530966587208319886126570157814498647213957172383807510380346181522399117375946354974615194364386769754466637160364857261096458552124983733468735451055901355726567830210209998081401819167716375688618874620068500256214179654348935917127338859852016584272155954645318647908039765709360259977894026129940688250960381345896129835478375320395313870100864381672811586237028322466246572042049813836814895946893897772107743333276375438478549570792226391276047581257677962337309775726493158278178771105752521539918777761872255718025491617574114737020457178239807357344401504294663810848219051016565804847681791351347762501011776469811759021082484778938915849190075503411885956236491776398309661122265319498035327630721709809904005915130756272345819317238124056091700205748948061928855221923191334950494399666056713777484906997619377129461658923047823894618120482176148360448729792773538462591263555190600135359918971409019633438845819054372664774276441729646755833690333433526764988060146684151149527002555393451918464319636723303218257025247138057771818239961596559499000100212065100390379500957413204760624378567051066778363030495126602274282409104211381182539129594379539069175793041623303029551322383640500276386086476461676561270660130631816354440101893270781437050682683068466276880866711563309028221795138360027339009747233948709357268967748873941118856207376350216710435335127071737157852751980119574621149245759738864057266140959919843007203782551647776258833996685731730779927783033289703062302711250542213269734279206529320929162640996269286572487164980137278535844310029488053992649758263069461573786584665324347480317550079895221766500087826716364934116701460697765575361122271067325411165719254082960596804280706063174791554380553056127991661524072864888219466512523225137650652367446855212592069882858323056108489454527924400562832639378096543046268306183072833946251559191405440451571738446600058403169505440772850934675814198508882459449896087758742472826859788569504794823320618611873328806266267584000003364811206785862344824858911206680581184950107017721894744271610460808509566863833061367065913074292883558850613867584664012065871528231312975867232969220655919144257214833502454232438108267942216003641986206214278231104247757673276378812864466866389995293464336145240123170848726713225804354488656219428384782072066926987880427822258875487531218712897404472649784714277152336492362472369481023307865798785694045587513905142943011663152237252182463687603885448428135698594722665457388498762058376955761273692824488406770812512518966648026035598194127444097073715286298835698685872110701223105839855935101728632738250480430636424321984698430448192857081036895645243923787201148351680635219759401717331058249914407083076186646037446958353315287295891174174064412213183953357779269196907144499240057339279043585855211226598265733548397697252877659282246587849354418954530138019293862178899731271936102236971723699646094529730548536241054799983152769216323452770420924982602825150375106723239462716344094460797963640916164707173614711599983136486393504749926775359897434114254388680459491555967900944065371469665508930916953094929406176576777751634484026283787821500853132734957490118001436027847322745669732125195192614707705537734851642048784932416170588685000842058881482090565819895185433583556388561419430109903248890135539951416663022839517486945120121472898937518658482884950324356469028428728074521736668278227595452844652836103238372507808220014466834588342270564020648658802215837443644939021337494088675285374764302304969663956098563593080582952471490645933226465494351703511618532891097584192125813732189528117445870696612849126961724622191018517738954009727698371943387281559632967986507790399854133623601510085253091435085682897883915278696773292442785086011635994925502486974414725710709309743474707177891800440271058690346955798815945066809525562526174540994451474833175374607852826960574509028082060832102804926063689994643404843400196134341379503401870958451561725328106433630370703932139700072171465192919061897396840245883685483468987395063575890348574513312718378586219420871966769991841431603781451906921784521899093032933318824284589089356999593657894442271875409302407085092679267509229800118375983343346703242825536428771681698407316498537032454026192134509612507191367970216291472081741410615360657755473868826599237557373768247500902467416998788635560889394320849341667618200694743444308725016909639748380033770555337670250775022389943162511652892580553113567531230970439011166572352717187006853834885967929213043578634796167355384277745714222447666696303001787097263686948867051008658801282345349058264288396399810648738323739417525873480249839423490531931366237571574736369474060798238768972767886950349817928628136608715563070725095657677998990228287419293114043235564032654699099036373022688191475752586880305570699697429624087642334693882227983458744284971197658862652774814774336770430997910015652417584883236230516835055654295414771725259092054144683439985697866148991007737815105149186956244414211021878553013100858452956946527910553336399572225743619561820679877159817531833186582663421733284885759942063556002332885295484150124050157386779607683755980039614583235507911697006845087952634970786993944218561719275053182422351017141559354535738296329890534197707492488101465944124580152751672634766922500268893045747302587001526170620754558548781096331605794215958731480992283303534347436367578091327854364809720113555931845992035455973019485852747192217848144683417908296455064298259443528678322137785173514596080699302379735087250703340862756720440853104496701363860563651947502337968792853428740361056881319361422069422217522902310628051660599581532591508903595925459263146754747526461618406576468423467598765093311737162789680315876132133240672222223628280944838048661370708340468485545110950073040666580764439969410038243151094545622526734947283753455395194813759463816258803045118477872231807600522447921396217050036303339389718663630988877198772130244988930765279348658537235346770360953256955095786746116317630084647384636254233570022610350904061670800830645106550121468224106981663250178635450373899060677645737568869793535878752887598494587144114086375205410041028364033917341308492901147866038807002087754966098131235638642142753983984174212508211240116314622894335420707044366395099865895324870314735447278359938238900549296624870722948570656657594075119627928218547835429959703750861166723118952035121429512190325475035819026030378203299757734433041155461015659437798105113750401389571287383212198379841818071198337439383577993913287516362931874514014374140387447948392808778652523159848656541667373715123009170187483527478637348456118650573505083841904332454541840544148067557962619337226841865716379499229864367475505970758983033039744795250133867874444813611961644707619293001356825744978882795370212602361640514166807123415995754693584832425978085455546570997807809039835067754245485385933962307509885040937623965447263256046438283657153979254519615178590476455979829915363102335864678494982070726771976246753741863935558930536702991655983521111314825678931275605598857998419911134192400787762990467910069074410795496203035638541579578521680359981738280566557154877220039681186626966383455380685431598705780005769891879092361098807462209390060038865306632925195078666108989022767683452324285737492586013996392672275136447866267703030819886609169111474636610422250460313905197597357215455181343136433859843346484940968779758506214925859806874174586613675232009373721396014072971467405228306922819047373919633506643286707612662057529746285282507154547607972484018777130364928314950848342219492336525428836391709291147636474199714743754425351707205865331030246312818461984202304880490301019137366319082762177999894860702933812702867166982214300147304997771143049018259216241453969421243148528020491772736071047986051153524850720874822170881124178867884601234614351208204211476902002663004236390706713301411567311067867069786425022125053971772378224528393115295021288856266741626340141175558071617033017999634447920276644399746338670724684685556039889510630947531287725375493842457345301752280131970830288711184769824711049688105969187177676628301855441988984475970288811358232740728418182157286873568243509372296420590993718460942057730899221620628461451359196105694168042947931256555645583046787003035742541496039935568650899875194422586343124970298818230471737381667516193165410893879351102315338878766397339852070245752002843732052076952519250406379574473196283795002005222277312159677190555030006372137707393922796368181527789387010080315010874889914948266942388094393572422621421957027042980932913173048058288149033247775428681709197708675174580381782057557350778635840383704976902281119986036499889799927927389169559694290566070171062261989889888818015615027164618351907297971447131412662735369561183662077698521663816632646152642899944899243325049748575197272739691353766099756562879836373801684240266754439462152755255044302315587682575200259460411638504830703426886299518265918497948138224240481009333988050966515250807942389960522834747580333688287840195428542154782880737281184704279675269232108852168690440892278945521145419030577787801328524940023339802656071911521224948493004314952717459007675660770676559816798294751194682363827158119760388712798654585391978943444815801433171245997280033283480744265718372399201492570369812047555892589761390030866293920324987387840186592341141745024117010112789370721777379705035780771634947964165343439493509169101143256276467614311016077030716979001498279963285200408195883236746232886793604991084166765124894345079065262959930412626625465770920694946696623633386861922577295762802688799909980608504833135614937503866286393342801005168478433388176948914152492232645189025594938333406166648582981497504400261839850053042569108510836586795493837794059272185937757750688619656604782541630869188346025124087048556229004757448035656706267773358680027230274537788321856695616865711144452040076092788808226170838412247339093204446201633976126569311494983342038648197096129961921630251293399922261181179306397174062692124721731949405206505117369997690423550942904760787887251933141849938685159533320165392860960593489015369185102695522547047817781664767772039618311386726966063378167139408165575996171563295416836206586292729374346597896805037416421656425351850293809491835254686733175745196743021000791721501452256181346848279346369359073822676177951404463258964861184172440135513191519477540039499227062083705991621040493057088257763963878548391624346562260545646102607828947846517925880434055316270274933498690835240330612235075566562286269364559913388163729713203302495723320827291479698168019933358202549008001892543282618870817457763219709625050798956384419272239203327587571424012299231453361891327825596506347496842321860261977294290420056118813987780553118693179543844358243555438416946445885286883672158936908477350891562768252229716555360137130953000511798432229443142130864694114350375085272773924803697839821813381158463484562418885811976491215571453522721366352151826336546345812503058961706751129049143970204491386551720361710547545218349698536803699222271831179001851307916127286634595426859986041917660132452544226494899994551823997771635692089000855621789877145215128339619808412057687846700385600005246300147129330779570518159307195185502224943614245599810565107004674659079949446008212733010249537512409318810818136575454122671094878529671134384839925684046631747560478667905131151905655999198863071496516756542128036804947361448340568616708475643813254561525599721723435089009428817477666465829087008005685800865487659299069808373965190743820938269535294112223133943295881176886121433457396167482861491173142140711939508416608840816717300086186470627742474239154331028955066807567787165382916486051065937336336988415388280416523166479473922399776632728272429507433417458090691730978514856475937491619924179564131709926366054145667948050055827290101538546773011138731820426891958139918726743839917253708461533616928852135206317133166635545756844137493809731581971303471626987731552513509882400503795243361101018985881834990700652527870206621544385353987132148805155613833418709812482390715842937896215485033645001407978699465280562967443402415623819027965303447239254352931793899038803617308716645294709266193293850207420154501460574364138644037939799475726018486980550543416343866795698928498495673615672782919967371448647468073152317136279738579261534142102647482261628646014058692442230042151133461672302175660668691383086318207131753861731504490659138018832667109621243920416068614987851391904320085129971694833123299959710456849284016703564853464486039057156346143266152509650435236778007000251661871836688845733964108956152890594637808102409165657042013472016670504733105129168482553778452841056801801504969366710360492974777473596206648522172001730817126721556437238521497969715577317092304252416425766727555362426553730056416429360511979128803079800275416054318800609243948626439184582968464793259616745508665831907598942409245000473522178851566550838309431628796094086535864420010956823117867134325750130843466299224717246212618830259598115614557774548592193321419031190182937768580688577822904578362614518685541554437491170465697343295982776690005021393512715776194667571047575540949444191944499745826038340520892300380672082939677390841019625799574862632521179784874634266862683181204903791305655785569743640707764264426445486452480822470785778571107623779565314146666782099766165257959581792076313838753847070556063160407067897494078525220020793382951143992769348054394244126795259325225442258561809439913365263076860550142763279193647342661669958425107933650062228973469264085079140346462500372155223277968955413003146908855101958007108527304628290769618697930193939269180784223954054692181070907366363052014189182414623367922663079826402491763278119556554709087468272786535319276895344257217417756983265434127500501281613570472046514566592703624328499990142193548974967257910346259489843816211812651652845615037892448158988187192609691416748483947292651560889883925398519781322158144998155664543286714366384105923286413431109988539924262878313031823819439679179700107837360604566235826411926867141691306401209131000910660495765867924352811847759339966812821061414176412125903884636774856959641350635458737467109131094256978284466560774703490128095854156004666994794856397994631281942919541805444441141201368306686066392929894803479390964834975870093185896991368437342329125862138891665625112465296161318253639334104982146869255780015625090353907543358350043128283525154531104139154436286966139291063010304011502450140043746485205695433979972909252952962643101332238959275147713753643807538576150939724469465806481255886392221084602343901852938809147533316612756424664047063966997000125908799426816948501136033991085342869506738777337241529301066284794852632920434542629832794902615976088842035778520410912025100069116719602587064396963830468631136884684149011415799782829864917567484191295690080622406064675964353291313921892610518808566864508117992232744174264596982467732996415739273670571019657704846649260246768950494785129854760097518539310591875288361260248363925647295643620119193564083343731370130452456786441767095182269801916714449341446443570338039611876448470651364322711064569095562673407747547829846057174055069737082193468797493928347121462018948640449910335960536330017877577147052918715748294352694755403808866777935480602452007549206508957521962386151225802983464083620201626491824494659614017669951101708274631321919500274030118679419619719420065346152648796995479342563744951343478246152535501710139835853642211877079096328292100412332979356133519362011770993701170339503440951956009432621394585863731216179866363540036790164954337536064688252627268659636833885631177995199080013760833243751185222982192763597158170159742443951535373158353346939206769500043060233166953601610857619439853922323023558955233845008681935222774941077039479531537597461621813407059809834865156324710844106774133596389006138567738615502847468448587592676646335344592049865043255492484943660589571051107540900134642632989569149733514113609486816047798804439117001393130968575279357525249946893927860242104604731263197743217943402260333106936415175338542909488642088783355814566547388447783875185023740272167117671736299914033134611995754144420191942644171222994602437280036324598346499215271797897462214120997080698612931377600370252005468763249525200311406503046439901011251063976679228257852176591996275108328294299742229629366064992031237957250181647897421342403865972875417986305967922085567900780648684551241505242858820624776592787264155078763225048793634742829758338670372156900490638964429498634885102152039028987134384207425716934237736166907818656020622186348077043403954687154550778138929794141243311938678709962096333676096808158010498940786893930957520758666554678886171736011222943024021698852706672050007109966899599165300126810561149629676666677160909531729242449613153806848640552506103881988979580803399250962142090445124699753540595489899654521053876255691540551357655586621082663291426282181233237103418676360256906784157548692361835284270384234979272464925193011432894119477108982627188231139255213407747630881095277628452698184017811255342753676658918993884620860427168934732395440525400857430340798259894311343273145316837773324836590658389381851678766949693312535246746930967510290057743541092547317595927445033268017306891953588148668467146334526800819829070241564361003907490338191369325533192990366744681485121180840433155450347331151722658614448415033220965539663292407283860329204798571400333205474412041227046881842614952590856868335942864680807995685286279991506241509228152997695791212636232654596918077415119692829166057750295667374557818893106788769921934643823654315848468821994284362718268357396985980042990844929573096722729183037239417660011270698663846118565034876570306300325665978158288807195189007987588089812878536605723219776515161199560536116875496808033972556651528158788932917026011538195144657075511351926865897672311890616035825318680208698113704227768629769229423644185683726068952401072667626253167888745568616232779788862437493453115551196056157321887861604191392578731578608652227444532763409822687030839508824062315692651302353214197968636588286197795079297770038532327937871479175984753250615001472956610298581046891108283335145209357704840771997473768874144235261885595957799505774101602759846313058819178884308451322940459769372692972370161436592488056935692984106859825850291219079813460697019282826679655618516292397861665505811231281779902341308990171032569967503835134481573618531202929674841079493692415079920089982148344269466871354381077610119955764040219746271593187269888461801425308095475465171768126541812273788162230419559607644815863903530943010099378218173791534088991179773770981285775450045273669369334836572493044379873948176227271280930394623427022621194696184309967810947398649330057739749783549976246542282979947102325699628464127501909298743044928905277063890394270805788034741327660331252820071933028474927174261005050001155606584150537806367222447703522260253532647408614521703751663539173966057839122076211857553017106036267611079782679295656818900884558413830097480296332611354236090067328659463399615753944437904799544959483664315339863551384899580702484126924392929593563530704255779824141440394650058698827799461393720302191323046655264948973783129299948515666006823470711787912915781130587770716716299532834397587631189623097740320808639547634435757968129756388964628307849615007387268121956608115287231357582228302677790490902797306066079998054862175353387394688853078933873216336945136017383074868732564439915019342020947826616697978589335904313097546970005668216645015355672090481115471076766018781486523125947347705875269570925652890488779886549197769762346666254446831182188212438855479353986657720431209567997033396069392736240698814493070257786858663525078335492510609615031976185640847130676497548003960914073775268360067142490399003477700543087182909214085194838434270012755040203092550980908953579356729445039537633858592760108686728319691884208866436819804316798317400889466317266409236646239870384502072524802427439777648439571165240315158632717832304542453429069263124162578960136040217175988091597679930105262545367553520806291115722136167721584147967321930823015947713996098099481544276023469378376559092868396315908063934705406114203706003559694405347482713884074813842186296049548770409343882055024959353595570883421809313831073318161986052150026196621864565886247134818149526480456967667968414468848353279622301481898214367473194099583360045750206074723107900818812844867823248402353693382454924871516901667377027074053632373955176002550066165674892865604562992374400811384934469928406467228316040773326509378763879175393998063502724874700037682701824610611134078622817099346804311396540387178464453211878981246539736356775662664633306500533344663728618587558696200652149447899287686094605270590146601663715137989853876566266631752792347360491133678167908368296542968755546198239083004488397249975370470287925063920487669579702738682341193818168168666062375754292672439670151468357621878507497769787004056267887673187212957627602434401430248170579115936053962461068831278615788976068581640801518404775456104717105748107409210553902621522638487912016223404891876633935657113398012176741969749997213793890757277871106605051823010143331808564086507377658352003820469291124341298369089129795741916642982934771840355200739787145830608596573564678023407515473686556380302925646464431369343090109781011820544907240949233277059267825465171519646538134043928652658499743971361962188581148517151973528992307886975408207198389471857805821444527245470799189842725535745419683025257091048138156730766877480789930823992538730628816238830819110823107052300256295566748479828814845063901533366500510989854049042686349643780824651932978350093219866786346845034359775219316102902274131147379868494924935264027445537057299647784014798077135090404539532102793161258750036773129869641086339712868986816555685760395528811583045816777264566901575449487916364802271303439102979481989994302223950033255103927767863490922950652200342037460554190408515572662031815660802421755446514931419255481963943353939746120316245658488712157849162843324758888570320284363923749190944842920611062816766613384428454235373629987033237464992715705211930584610971614418139324923497784790372150470616039138949143752904052301530659660593239132621533128591630786226202168363786229901636891082474478361203863819756348482012902107484037927337019265199522123646253928865347858463140238854594220672159644395486459849428193957435981927123330888841627649991334088058911047317157234359663643874754710008036772913376411588317903687541798216715525158529541739259627602095430704076810434317346069955094230295445886157348724226711439660152833749859404160547094884622667407591565217768386940336006728389774966391381961816510742108128123112744684755275133922332882834080711522743139328803272912909617494994831054747186464760086767561463949970592765453241237954603427673089707388632802572405223854773954542092730015471215604906247979253433996875158203803855975503692579226641845173294793761702159742932965863067648930528985123309445458628553608862499633940985546586090731189666991569282234461104901673733102141857626302590061037710620025718575354644053483183668887944124854407394278262459147996123460811831976497572284058419860989565761715657895702715750821722717375317205424177483272641513886950863417651316942103310476556882635026737770804066950493881931614987688724165670191756543918781208611771546193143866993213428062144764458247146286881840233914210281752937330112697707864134540036002951315560400785099378730001533205680105861423669510586928265216547685244348513335695671004928524377571782545107978934864112458921276110803825418859849353282135859255072280346397067259796144457343220469099189564403016485679794587893128527835704216991122494353134021478140524904003688523610074716423076691617628168952841810229971318451649389742344880767061302803153801883634990962455784001808035658558729066538690811560198822511744264633814161628489113654117878209803034912637150922731785123987172206940366977765708949362945559590340741051273978220446733688806560447129979572371591080438743026407262909143979345617874214602146471475879639410777038540446319197523628928323650530000946596579384871077855810895905300846228559020578792349731003645256494954719791102729175478897915452182613479197031230642118348412490998419055347719845136956713709125387752492004260535635474622804090377759658508823216683398764654947663797408468524554551517568884950888796295765574484058024216368431200278894529170882157967311821852334067200111175249724737050875538346045473023146928934196218852443794668990408439456715464375842393080879864948060945475756544919051103387202247162840277528347010077811373825112062078770248543552176729460720693536203156199118621889836012717088572080997455934044941919094384902651610497763210807426578300609669923735751403153979451170316763656430448596692357414536725751979621338450490062010333701756347483184796507299562924214980987199090705757565131153463197659129130004361175332224383589972406684333031430244021923744052715397557005709556731628370873278965091569076455567796355166371309540439124522733465641029340011228100766483433904985953426377406362835540500651415473496521425030779688481287175735322393007356856228996261740226557730393634135648682710425988232449158021112456275907549053635632887394682969705913954904397404108344732725825965619415852525604766380804630846861726591337349546999844020368451688157343797458778462148821664064782811122448127086458974643420714560475253971682955663201905692996034330020961859969930165407769015494059727494697432084111864967184869426597704160092602629608653855873328407486548058746770189054861206013260472429032958873028804705944691823196078991495546491051329466206047178740597990668670735948583825897052464438791100966836991275133597215699017377759908390450126905881887399069047344105801840320297924759370254032090156154558126652877379601705607480185795221325824819491319933155919428320955430333427704492374050691391158718579108695163501401926628883077479476230547033932289938946645229185869181279013237810498712614704046970333924540721534612766554386412195524279452632672272618848884815665047777213019713512440079470498515070714305792911832023700390215225940861950544712581725633713712961054900212025820179863737647263457309103833410341795111474510646267891720141661934528893883710827712262023495435919627322903331220156798695346066516548889571016459662036871839403642892685295507893963581120916796705848799112552548089483675800344660598060170543550612488787669257275703401451293015716384490129362209948582771942551893068536418051330925361306924638113106180298789163295045296505768719995329523471576564707115433795963415597183491384820895841103930830806573348003320355131159656821646166041927969338822223449148391572984179476009696336896295657939087203147258469374747740403799725508729436403790912142168608667045937885808231578638088070489595840953016322688430591950312783040918686913815883450847864615281322618735199906372484137362238287976528795238441820601995985810272150033025367293751190582159956316345058897780074761566623027766575202122507775696682038363334841459788859115083350219038393385102083736077528223645971185870267094770428160372445424416928215440154469980710062380849579577208636510811996935273394071314488667299318666780685588536532071538136417789428826532383513949621623958411422589916355886746548635243580154771967968278461312944733720126715825612331322068466517363586133259692197201203947794153684071766077731020690772162970469894687456033880933915303580615645341089368544060998275296034600750402899481159473984493969260194031581672334002024438806302643553884402635218969195128766139313064145239703632436108028634251935779098624727587566596946833462657294609189613379530819087940032472019600879122162894536434583594325924161546499901779742284067234988593003473106707433180101890387806797694064440314196796951270927619966457372551398338245984841487436581660805734493323653737084452271083643309497040294934419955700957140612789541697976571890535526942638905239677794432412502798714814776244552289143236565054891978848155408184144839292577137776091083902036706009972897445863326671537235023243688626033614635707809228804387583521478899715215574796268175151811849062368525965857224081391399457294965562582167128254592929065681467742013539840861670317641668930984624718579054355662687703469109302809574046925307735733077731503611917395020579003190664974641727523795960176311340371248701327950894982620144215883632636713049804682296828849588174811941627297119735270526037426439198408599394689417578105628074040241615232056372700962918827113016555236107422006588667603181116892592284219159936922620767018171000020872357825078463287000004471500622344587878749102245381808204751224065613014314778238087728086654900804685720475707893996491049996877856931040855741530689736921208297174848457870817350510325815031646828124602909167206072062318006608880739321435920381888924193315319833492771477496847396520694742609643110941376858675005627922685071425187221871082342466752021689174109512416025084733627104271980577313180898633047846645120248380272565088488743314210454927448303582593559653820318108769311262667337122974751651965658798199589336715954254888228364967129815424788711880067835590311574596281203118780896777663623286057927771003794295487030206830478229133891755902340414070707555842657313063496869367095434339799587147445204890685344526810648625966946995303364761624384328300741493447971834262147795817163208699291511717032067768428744528804664787672227317329222380505456373283038705050671929120724869030787556295343319837186915513049288533329230364588603140862114805903118521094061126730196195590465051374304659038898210260686052754693413977209784574411343887830259352214124526090183470759578718619548629794532533927968315139546924154188795949826427901704855434569400582626609714019446184158129711655791918335732159685887341625005503080922531847895814082126100464480640359296961617562918927530779029816834107265394470079273688916566382500964453668016821537055379376921637483685643275282315139121535278386313925800963655969065581721147669201070166165210186034980855043127047843743296480311085589226498422020290102307483524907143350229613033843938179267744290459844604406031908895422411770871040570951515960807162405425443168437987039824826874516961976770878208566021337314098812548592062129347915739327856857107109724079198162017172354210868619314006962429888483210576529188171929448770400629855110064526633590249007100965091733804643794161111411503058205373292018817894731541777089331248137316299474425120910149203954502252139847620551257650419961519444165731370882246152001050509643644912443595408480046232422280307590438855682210685573924358786484632539911695145795382593040039390297315415034234123899407939520875059286758559033689634253061876258774541161258931631220791828412338668005210222995601334900727137894581439026510671633016186075973729132098163375847028853698245641828215042691836329607387968605019765355615516905222917192018531924301187105406826705052273397346651746981157846411242220670022579424658843394140251809166587868976858357527127127579495053211632740930889604863706991204757246291146976834717918029118286969883028580947210558625596599457714091828720188628553109168963095453134342460755610351227715097694414868771213762637666395751559058614997235982889553113557385222659790824802982428667171175377239255463575519105219065104181877486264354780220252981753098797189937650395865501877632721219574108275121183747999646326073362569308195886599180599044119096631329117558088355082242316395746035559027872950771308621906408016926085231762010727063118558689457267931451159739044102771092973119493438703878490922861618692589135919719538422294345822417879325096945633528656012118391629415306257640457449358911646074271455645256532866781907997316446738302330786224283825771127007292279624393921126944287296456612665348414360381369040851791804805352786470541670455477757333349106568211662055649032530996748736444554993414667821710395857407784795580092739528171646476296476364020177296964506487121719242518244164814923344429937666047615727297799719465582195705886895852824599187415721658904091869184297260682202560489157132799897104003042686285347074624446756638610691154951062907606539200763479971188905172583707440272843482062973237641872923052771033906393929420474959568828568904751549435423795427123384741772180558725605006859572553548077876141212979695995603445666049186012314250763148162859545896206527044739035580815269106038281214728262255527925888957808599641338436431713166677915966584472465378084487015850103725861079321856315884887801319313524775535304644817512195231286636194855187746562965142888686626842052702184087745344207797764411815727870110138179888963359471591101854270223821238033046900532400889901118604230905147040294953951978358601721467860711049087904365749242195166155603418433120142574217725895435093558731279103733010635967519510309661271215692058627267108490851563249159880540836163671838451701320350155602756501058448781840029391751396486592421716642557133479441511352636980776958172409584598468674018381275363315742569126939067400332107497460902913517150327922302596385844547083506076912093938702948449673746022960627898945598303131125878935690692290891257241204865714896655924588037979818935751061289891175637519607618780567554254730951646580433790005762675518534473825483519849017727692361338608141733445803017429937260978557474796035061602378844288197224017511155940190445019322763368637931015086330309202406820076786697221936749870265355451527866942263490690212783753654679804920829602346309892864629557434498611851053668517013661345382380392818119082411780317520650037546167088696225929181133441394969682901789899073828952467216242858103337942475682444127835197316218393491692226778803817628734260560219684667422325049545713594003055573043280084296252790987274283836523303773500642937270520407677412284924881860617905445339770548986439310108182952952577227707412673089541510503057487747362445351392108690459737958270562820172368503521445523709801302322155245952472173242905945322027174127036464239208776275309879810079511901378895603746527465960504560142192985938489890586162996994648164653170750109506023895877960993462851902489766470451656104597259316995421776583331563595038153741530495565827353012637532208045632373320083254702698943073238933524091166562135249210812147608183616374664927324770126915047074489439526861436369923092800251405802438620985892617480361288550260564105329992859438565542873049191060533919589173790391921048280848715513250074372574427085924847917793941507363423881321885867977064485022905034519505330218253003697688833885174202531355986788389149981831006869288125671805875592082065042278805811828504639159982610435963215035711142728073216557253813789042913854860456896970631398216030154355953079747579913150571792696159584390386737912442104996435058936315343855222787667410430592137994165727149023798324519314966721897011369938544558840708579546823698116818169511236423182485533439698431316261148783670251683331635826977029702231586666625771360810648622676664348824552864882565727786379133083267140809357903946051778256340194800310060481580174011331847291995972503658205113180354386426042130069903890527755634035288496609714022559135623510865619185522849283032281514133742508570863693133378095400184042816085422549520283079770969953109399397663294909436848547477726753801685380761387216057961269946061248355997265803716421997273089200106586693943900255929063651058049930117958508169508248499377741587411846201181466373311308053421263739362627390482400180576624531176711262113373870071106442410640284028971526180679145737819451725275693447315082907616513724225433009618494461133086953228170537462864836629305172011334145034591703853744622074589058127870481338874156285201794249468993629902309612660152506479127878351156267029058747254081349486604756407267118959751238649806574703352376455350316334779379313380160459746442932967334649657830526473319250821435090106651142152398520921810345441936473459980505763636069331341116128563506391669857500114408806821119427489692523811242029761147291088973423398786072196458746027981827178060758678702521090483235752635947544457839286702233623860778994087247498863407027596097468331498197554528133411529352151694497487697919479360355410360458497654515633098218598462934774788358611864212616986609806937128922754727121214648555085145632902680034210654975306129003589062778546899437953852795075256906667989621930829219828146124562010281320325399774124547375256399564518421791241516027703231811706696475159429129546799587545980579780429464313841866474521234743122735716241835406283199882917925908530556699760412476781124941282658089998298097027456582901094580966814086076223566215686943204351325853112055163751961495723467569658829016325149451303990501650777519160367504662090825029257809946271049493282996236379194616500622144116890990162072809214203890619633624480088386749450034031731452392747092506990614969678850553489219993126376604732385847981069004942021895670282598138357567255653403883325658197368743091222664713265234337201334303837141655874740194111175929985973425314328336673502369958946726259164394055965962790187395708727234349916290956270172076067442463325857564861456107958159690927985856847082583670904807865365553010695562885982797051257160635291094691729774093296558108989096581525790123927923469831769064353164515589740063209413660476981862068063810465959566410152736872393038342682541239548472423447404006893399024961127613035730098604884497884381769129665051871298454118740807648987983005735205374867622397572624597735667468723488898595011889859302570945164105794298037652183359627869415513849342938567663801833589166615628141021962445259463598203147115436766392826000627983948041339772381627288720969183154015505374848857305589533137101818995562086149811564710588601985655513392794122025726772822187219880102038899733778106022068546675697371370800370998498799214935009772261633599157455055104734052966882108650722249921232586072221531498502663458343936588195109170676447479290396934227926495338620897159837177073419663050248639096153898250254951428779052787786839759866081416242641326127732774040927549129815152136067573781468076071644632022526578563432864150237456552475484574893178384179663117515316055019664900790141808640588924326649648968538340245402291042513011707400051109182001484160172512732482188113841820388145041425987881437087481721496211226958248613159478767153854567787400891527218644574231949753033679898374959066791741127142009029002029571033908726242907984748808298702897570203093300041091515113011723676561304849990107302966480541082878173867472393792990754710659756160446338684959407051389995443082969072590306626242666670277559619714474749802429703230600788407215499073186705230852444875257201536623465945484444157647963172164341951207328809993832097769555056182907607667574662099040468035104617375562580935275910613296687432318478195126387235850364636535348861483875477218451458730421837105599291992776791228228006154864619658241953560599163386591619241191097823392749363568105503153558413032244216627819232997869608957781568823656086808277106049369713114119062856407213246626258441006509155841151929293516541868665675983691166569143255148835282366684666717545759150451708320387255527016548604986255989079658395211191905224607467868370013669045362100860606693717040470445514698100464911963636511531268391986854785630733217766871940088417269484281629376802777190244502896507882315471955579882625684936388155789692273526238481908149259821729249371686559445205179481550177012388350685254976533335210344323781142679602273210025743693944352261370053880198422324969502671909138146201162522757156611539411695655998451368921454786178155111555866149507890588610117783372653976700951350953147398328815663943830163869252432597071273800295131780615161419153293108736871844179494430519521161900297090955719509294988332303166629253627208380129050301758869235878017706704252215113594633748831075511096364538397546655062124368638184738102176410016072645599430546949482980684780273501182109709068575823634523450028419075520307681226481794590376471739882434051727141686306878212422605623603905802011751076802305722384275938393766415592628400441302211988987215437104721180005706276035208818794350596009467715743005786356987814844442277477898868178457194441368184982753178954048270156399829791393132222819350728875485475210507512428093044537858758567690402582755165758766556199521625853019603179476441834945242891639682963174954340314107757045196100610817039552325736666813485705826292102242182352641177287776692076428295873313303328623094943636771961968717002544840236517943013812587847052757046842265437763187798322254698303754660491527769130286659135491861973488447334440562404800299804645228688218422325891720227079455477921321436878585241467587447257496185625834694364193243284695729375525381754465352463905630178641812436268057701942960761249316221823990332201919645883296821709136031237429229281895588690565200133808581642986943562001797591705591338151446399159664521313906826522144058752298305452199349984213982865291590990143860447992943129749322929821534776464684286626539847397322900214567440619103369559610995575785638863564885679081139362786826018250548963913001030529506769242634007193765648632535575137248114538385066234469273180797314985435067667681061593158935740038823595274243344070927475868385054897004217583017199849420942395767283162205138818158780361674595733645765116650313240022987040598843117165249455980411650671798403598620524771970123430745130211535862112940870343539899924809477684914377827812349028575609591791118528509239531211627552046284880297988740611061487060151892354671297227717520050138152167136453809967975262332829087739783820463641073277873645028798579216985535753809218897306379578147058045759920874552843155193405807168245855753586129750477722571806229943833570581441636363208100554944668576094531911868426341614014831837479381204849030102495850247705777376185419231724823192809334614950361132578816211330890463019401165747230496118861884689043987211433756157465377332576401713584874151877798327268575808077784177597153621114416606240985856456419074674354705712479546772214550222550299765577313630511871654868951737175718147336324010529863174200438921305229366192588433852538647197915786013133539632940056138858128029545829288131369354347123075383152493282224783352975990187601937596948983554718611267446697341400371245080913783220653334350421403281749431668639231453270493523903121237387042642887109971782308344899238583433040754163404320585536368543770189560788618782532559094771788176888053970155350552816203025970614022808123026111202737692629121880287949824800601628608234109451261306950684548258560035468858087659224490468823045988470182933856733107818735985703843419878757334055614942532076035621727632797636538406542902695771293488131113437863017087503296852181079226468652388932569861027350538851669358804054806207905361436660578166286505818201998477930100947972304787954949063855981844108605354064785497060853523692362822925103860859864031478916966165427477593707288778899153345473982924411712313403701389105436412137945566465766852253441084909844878790406728610354672453553977991576777295258337844138667853503755386119294988922474171859075705203723257302863561342019051662840853545919686331305256963000980330907516202460653151484209539641757444434582321709256295304036515312480251699025034519525158196788165685287620848350077820822365508452368570716924574100522573569248243005858688360247475518434323646857845115014872299639064367886678142573490856069753438773553774214223039658874897875373503096943895450249023067378087578710587508385867096226997030130082938755923667424367061137068014828781513672507584654554702905156978957985246260580719636529487665554306410829843900411305426285989369955495747270322058374053145379241134975875035852659784440897268195251908009020414909448721768449513624709069026098389430340681145850071368083967779056194715985087792418829325881807705673838153103634312699148091246394513857894125484037316523035782551134873081468562846074376786927872536602979957122612372867345295994624284255922394572022475239893983129697615236140900671771871025128308330596256932714801263909982655293590300582424651685066671503228798105552893714793707912802746134505037680842639386933077715925852489599329060090808551443596073147974432506940812811196960300743585391010642511601840864747808471893093100764172260238139378721077962470560190577665007205087676466885290949592665582678518497582144481893331788864865841106207998244592857087383251541743046680884164242254201145139608653005036532745051804760115339739328912446553364484846780623218752176367207306236470678016237672233852182642674139978606611125440468663519140450573489384440336660782383239280709005434700011809637416895297489630905109511993450937955747871819882719677023072863585098484489984600238921506119612508114080618191596028845575839148132143974521702638401158528166045804210203866712293390487776477669786431476148722972408632046804354862126857593253455027672409154207140890093629302184438907005201824006608860825498291934012005475226509433572815713902900095454413083121394785515598112067164123898280677381501856752309401679801000480049831306977056366702822169887261475208354962235014570484409777094126483856677784911593684536513743957206388631942051857727255860745935219631193447825552662984243290492055128304097234674371209789805308909859056225838297897246209868307760621665532181117390073467443101907781504280476373142232216075561741094608511980529063451660671985983557141831435652206480026868946024469818725182442068373567428989751039230180485566389936674934984298496826261149985470571672285120472778370664408728851860437543144510744956344949668245694069462633489090405219176527831767120220751021167294068418322856994610958536392774353124965111884179360136447487756679806060014618349816588346848773396548191262848710697110312336032219559283865907086205841477255141493680230604758855254109930213159993907043127740976939997587623042734507791208619134899625799404349169419733385725340864018536929594638819342813579563530747902507467058212325944839445828667175396857235215142804935457776698003395351540341171909268579092285942344105266302103072679024053055029388632868610163757680216744316709869202260550996344095500943565452923419748093828003848500574099490868542687427536237182347077156098806158744460658138096519103912588844676776316641557366678808259391497261171087651300705324626222169964010132122036628869697394983304492504260275196062950621614525154176764412871468371811313509249097156618107020396756257233551677558188124591199408156133023992475396052625506426885345694218761518453166988161877183215599331732587904979700345757864431801769279037173640811332974663412231523439817322258857556179873936548296862947148312190261627040036635699149182966561317481242027281400897637760687348137639916828410032355173970991195440297088685160677417358120324562533811655056915326625569344357542596203051203644406006355503769467668606895908881135726595711158997100375362255472395471471664270565324460525400634689336773788330208567750658325948045498098550112224219478814136305110046072403986901065415789240838452129955685285171129631236695675696754192110759550913998321301429556662423393764947856238263836987869149445107943285419734098177993160282929258344435023275668203278104237204517016880269789254677112968690436664058309065873862154385139392818569463032835967189135033744882797251467924867339759835310839969948202006385420660618708239034206423893731376004757169093122110769637449355812703781647223219098652017919290322069673196732329822913818597312949178483676099417393640658548035566321107101791812793691894163760858308454563171713995946948495228118747273319575577643970952359919150723222192098217440963202944354341962842259878162270984032974882754279334964956482209116998172560311348249883043688700350159514957950798990125178725359697118635638750188366835652497895353418969380706521225397405674310998977615171173766803935568009841656436169847310287762450099980995291743704531626907374751240494807799572380152736096658431470694914021011733057266295262200477910467792167651202139920701598931002279853170800351356963622631045540806270846757689720135324047151168472269487373153990501251417792175122968051951815979611621706233616464088134341753825970607202137211718405735459160533062544974042741556101157086240298742536861701268277820756681331907097410276914591661385735418537904499025570440098693141365972155464583493374101634850572761834528779720238976687038283638717546310810134275923703274173766433853015277436672216044497035110971453390142194229584572342039568878931644148357251736462047341592811206360145646899158132214659739421664019270391301463538838150459187585651451166213423156140706496984010682429363643197841367415112581108515788501234313581956220494269708508016710278254517570934323018114918475250001879844036986636352528395350170289681207641809980724093985264640752342443581309637534168037950267547443740463724250010188231812077541587447214382986988379597241244892555799343264003352020789601213810271412834245636081212849763088722492344352124463229267007026006102199909913060020394934969260868219218823041423406510348696721192505748570902485099458647385596041000898940385049695819017153344674984571800939681140170251250669592155488674547823885195784002373610787283409285992814474286681385218938764060157616989661541993411513783182891291667409862254035533355411214834520610396235365845858941796602342783344286891668839005028592815734710869996041569600222093758173290190015939314852588255872396330348231233717424628400836237230080748018892629045611431140368242422104023531327926679002737945998801932354464778453719511316596226462885730903327556403566507152193350733502138636846456252558971550568293823296631055954732785579108629351447844464218984190719947239879511915068106004040589482490183187800082649385287027493174014904320317626426039112388077251902776779385585535921664585571533136081586784357066331962893381038048188130431156277756975894153436332770220246937242707436730876540249975319436810237775096631514680870362612015368775931340169686204766487178801596697862545619517407574239126787448740555006458588681528414957387426670248915242078993031214980837873101188646865274762395955372581695111136705675858846584233145317005572420636838824153115797064769877939028823086143981361469145395607778725722192011088424138301942009601307701017522394369696493847016350812058471155132986708923463847130534766171609130733658764011340083934839912718065816717344088176163107669511297811163866275250261525486077523144309737358784728723968745151050780850328359415526429624986934374197165048273010560035687180421057224474304265252665632210421210985052938200534418300938471093594629722140580817672624229618397475212474072839832627937284748151540033221036721388174148024385299632411668900613023168628810436018420210868619700527818566386486693655921898602813538863357696250622188959526817936163553707141622554517201037145917036353478521834835321997169268951442431801270753276761794543870417231749110418615727703983515044537728369065402634216360969722211378430672815472832809220805162743149060080391770339096596740992965031261858117394711088039449870150683096791251100799566108106452203114300000823280990215813758337985509007974301301990539357180764706899979966405427421783111994349685494868163632346893870202215934312407028721531262862320089360335042980265791179071785252972562189344870167650300272037412031774532128510530541993386276608710427093237284769443245701392884979430414909900098740825259361369963853008311445930606242691991148388397429702220871670967742237279261804083495852649925743585341947344987650851374292364309185436261110122728235084601691981064824261334652421303948593542559766941929623686458322556347169568644601233577383127486626346502078077834944753562584652205313959382834887278219422991796822987852756528572690262402975734252018636038563390055776407594202996358851356888356090619363563048651784957688113246691018043794242272035466158743176755360773382092288362838344544485404974568149715250594589819548411116897997547234225016501565274996169861823906347458396979406535708960401600864922865505092803273580900203627080178912609214049167744746565514436787127682498527872000043315184288657772867513755864707833054579260826643128377729390279593339630144175867922635529613218122886229259032959464359713505060731965443375769997115673167821046877962393761491861985184668269137471302576095895861386913593632416805716208825780098067459321154455601862190198975139490673653795935940181143241467468105170779117992709126469766078952792964913004374509175213086519560825394295503885126714359107741522392370963721868429502352931467688944355736932019973982659300366199079908485461383899360850278667295545924844258702965195193211998212402238340060486012945909738706343912178716203072825607915786192866468146057254990367781029859995979650758944416731114222346691774497682679231930383823169215991590682314089616782720532449547543609949039403433847904153820330910905429993324151564767982993629439003230719124866044827481665816184779520585562859582603169129417092709044810526203783959712915359683556272187162749691563692760097176809758950051576416503419110873709431707670240351691288244008068263958757282689401794192550850136181361252630249388294573917748488493532352424789866063799278126109373007157352464576702133211882165535099341316484012786816759522852033815989898792722757160524021769953312803356473726986462298588689128636321071940427325480890459116198026355252257126228118753961958265794946891304620112829924754776580829585737803355468040527961365780568538647857587314249688817332443162702479354134241399808550134480745565300691170649611421113440604444069567098728316089279437243073075339726935295352484131497312479157176889427926146009128630280498718490531791651861862666464651273330989778567638623739247973928391348595445056519761941098700794983774987787223295639998680280892928043983638634372427018343986802365105343429838154769315193010102472400466914231791150235651328159568902362819829319448492619962105422702552013211740073955579834321941303787550214533432770368781324266152151194704793947553295058520570137986667748534260974644628194033945004995170685291734326788827631139310986639737242131423098561378974383569964413802657466733525016992297989378378088095558659739897053580273049872020731755434252618540451324740819431883902793017033348213375979925745054822015708040624385108700803046353602458206902805759409885237245832731752369126995816846422962453343774131106693782444345924772478973751369839503153364636962287352221449529606983775543700644507040884149729055496271292325076860253695018681578169848870172269800260253268400829660402441743713380969278704079242291575865685815819422197386371320735424906926508957283320667610867354289900543384106716533774221713943900033919711989364459069749402016402574647003027462163043300648916535814949855116614494675665104647337850107608509020133866468553417820311960978048595668347220975339433126495961379270919648147884892652146405802695973521629189571872163754625764815802735475738149876473215988152979847046732112360944267668190753661883402449641551198360502819259411275898807357089325704467643178092096235980090765750179350889526133283049100710056441358596409684098405844620133488220997734506623545092681253338523867135571171172709725426922776316349363778501420765111288542383240487764529617328558068426090530980220718962541972725159101429069758736372696414897106451180497797991820087211650294302927680696659787084916661210500330738497721320676822363401885696994826700237773390855386734521358079518825727195319027352222367944315087379498492379895565000218433772289637507200853373303049080658937848831690765586740091877313584092614319583960084129061497884806453298716718397343467889454254829064803102341829387121586679515462345496860600654365028254420797109784370133128544364943008869326849499452248992075874859604724386927689291289010709056047109511375663015565016962243957162080883117101909800093047742329626633902970083263035223319216531595999819662675010123572069898702205473054681334827240427008508626652521433109730382253269805813632188958062021788958129080531393556889853640829874258060216133440442343338108312909942785722840181047369264204261937576634929055827375705050789553406259905611627928186234554595852165083901791749042523812913485573623513801920652392081056045055553755619022771869374238745082344444345531207649206466154610909145477767981111269183945508916061600565513410691914623259176757556973362419928818915987836955814588097862708385244007173611258632476986523253101037089054227999847639155980974853134860657728989322584905605969491300276754421035111746598239711485801705059952203138035136957117441321423789119576172690220375846967149091670727812295757080768179592378373879067650460181064275643020574479761598041129316979586046694816009911751436408907354520498540121922855239486218167005446168532804533638582203408649634928095641557963868726206002744782443349167182422851888316074996681342761678486279365835042452846596915304576488899436148939763721060535446219394215791950854668596094412498338924696698260927700846676728495468171969623889098804170656161135495737588950848940324126910845273350307569434084636918399591318628901710283460325795047210544009633112725704515135232912328165833925360605959398634850366156612095137079920975455614912162144731915075076603769142614681790818943741375162354380271154828387377571091931981531525534171654330725550581708454379755937353279296152094958373927226955647325159502359769011246262033546597424415770832687896060281165169517876477827581441455024354006552341269521744393643210100929807644496820217586050181951884857153152240869218749484281944867085475497164904487486745854725343291723455410639638585888009259400549857792819015038845006786846875145535547622812364556553658792997094456257514640036851602545292257922493475350249103209414839408547378363138984164421417466557833294458921155353813811744223381960337304699900563995813090276255624400337035473335313050031156899425001553365401321240095930119598733657151528453008257920793556347276361416260350296456273216090327204864562998931003357624050884946160597822530161121236982537042262243723381920086887849665574220025998628286920071653744351127055995629793884798627352826633291380048546765264882014060511269417966904189999751992865317917156234751206437796105126921946067494616445174972907125216610324507591557853321477779826801102410685677235587586078252731094862629622263306107125059864975297372295908965085275832416818930996317079472293476178160532143949203362182294251176667880326019288880178974449193056214090870430659363196901306990847918132375801216595753912767876299410854429081303551175693683198413484331999343035133932764746447236995206657129320128077614498630246386838910154542506378093694721709897757834350994773351162354644870621543815360095233198894494304024887275466585688468912169142026300082106581351083235941474730933446171493946964921786640530955482219893343158189129104392985219012580813376029994611498482312627889671222024039553120827564026286403193442371438982736825007679966970734434889766986371604687119842125497285085686205796834107353133671570898784480420500193060765266093433737879098664295971519441730965125273428644495642227078908917461286718274963743397091185340019925873423265102052397005650172899193808558658139160639834601625526576111880491293791740604172573156550547699263864797334415930978096524868955677367226655667734514559823985045232533699938102006435655210364238349654127426050323612299354515898781777759272813642781565970900719870518385232397512543843641067668616758535775607883053140959231639126261557379065487795669869194887896634737246966553650691437831025530521518262270910179815347560232241804746687508323343575856607587317038755653115440023800887292745197047339340682341496330611870516265485316905164528961060729154939890359575923082964713062650848312418313088453639623824121123913331902669510191819066201393198528959541329034597807054096651546472036170085255281986161250112978408094637794803598805762905671174834244383656488871825229035414236599443512042819533013836890761028276996050188859284627627801417833283955490590158398411010253395558657056743240239118267708742028698223512977152184700630042667831891735540306518996764820007269137596842471036963436553635749119786408113913432499305066531032706746079952222026175335197043699990681570210837678757577065850431662344954393188302162811633223763892528022150712794699653372082220796853042802127663946217473646241939583250355730685378815317062688104355296399064012636383114283190854743915702748554952429098052824269801870965967568148000323642872392794967712233421091755540573034125151420320023729539515792223949411396826342786426301875456054935186183087236888278094392406712384350059555658833584411231146240458222561850486791029015461865331255125773558910746763547683765069645187763452810470425973402288401287177795200527615645732115507718748351973283367580066942303247915194759701294051874856694528213739759205492117821090696004970340803786764439136944343202464148516016419469593603242076227243056858414441346303088506765813474458059132490090733786089785244264770878884120965481536387955049939403246737262624255883521918681796209379104662233679196361457438768339590282363466120912848113327655352582149799987672986212958097376028942577303581190328778370676069779663456947604623407250188270193815184211506551616419889600846657981746252479410205039653512867982869479087514014527047154136404938514187997940598524352119231867418520024771636950499125276170126052038792798199652878082214570879156144756609713040061202637794976357056364819507722405132434784145262220814324628081998074015596578491538143639753912348516339335032861421556737345068672394442085630401076410505211618266551799358078134157369224844214500352080998619899555714409140943356835438508513669284025359944500315245370781565181018218398052574015333654132666121371303716563828724658914461947970500172336208220558916407384605550450737776371398563640072725563965194848801120801039525110766833107839913244856712110858780667019344107127566253670723391787124060853557954153888490011366491467716814011410836864003471734259566884200078981166561073831804894646550404681560226098213248217053967781054244820116604092773853773153287168253413979797932272736375894806300388179732135297626749197723432538746654343216097979692531832540674762427210978717836849733185283638847517947253963207451761395355176649541984375483710112275115248740020369701520347560240808987042615636277142659153954360114179907192344676200687328914894475692321421548870892036380620338355635826603066734890196646524432105548355758151926353437908412122010653307878154810972899465578455126300121438622378927620629393055925977327573087465944499078767614095158267179590055465698500314237437939691680167983607942256471929403375756258241319258162997978219545781939146554957674928022153976565518818718694261452940240422048865657272593811731908577604509901849691689249522434132552472977938071879581439126536234924307825921766381203903644449857560213392529916753894110454017533261289697644775276625351118363666976569295702903660202523273492498962663020562718562471501926272094673832090346676529963835626636772786960337134549914715697257635844322711668378296126375357501192851512802576693929390478004520270943155734495868647141633609188271241955776111934048362650307289490166797375017286309000153098332410267635157794490307443508916960195011840657594949350269065673066140047518576098610478321293517226348984246614754868996686172979257332588800665738904126253174605388659426219869698916787410179805265294154481778820476271842892238238961572218931026193590498814827675033362956623673073346734103126485213646841264673836140216142484826157086575618268937252704268979922065700543163680861550187050560980208463807233779594433600399080809723681112450753903602898815462362961889554316181799613218005280587597372929523611896624378110394952077562026947154625251526154517343095162154363362151789202450834698983016713083231801342110549081068514005278315644663093605608845899061626330307904927879537208638301406770471312292495134142954551336861280015104977536223096907232128075740258973205553714122056085786403389688266136146955762782537978328588836256200929500585465445113989602446417451291689200557287559513148680025657539763897133381136970065862848919025632412008592888717446250767442326490366674336548677667966125197839945390413822510289347241523096607693340746318914805505590163067144609893212489179047126264377377466700853419213572086818422576142797513369822673421436693362094455610446982945100872322745869824989111420881369333932680414228999110306189243622471720028143961062078811258086243424443199921336774231154728782561924335245912031297089631148027258412690358211223523011683792067160708106462799495534214794552331508464397710719590447884179881395786902524129990919255580240219164837590331365007858742170653720925765070781294070998846709788668228615633881416781998342427710379631219183219286579331028808864611385673618285364529603831154656476232063894322063385118620499281365691813920649129162734812376746083024796842996918138728750936252158590863009971710484993327856643954887181619594522282268561814105027462458554596126626588757612009354331740520640855949487389649010120449948203109939058725979576406662936627633970798230265478657588075754063254313429330333123060789107207954871773271255405558952323720566805257121406413665838118441473128012112878329319431158593630605714723364480162638312207375345501756944902823483311884273533235406244612913824296857629446648437732674844317933386441969674828516026084554890371931432936571208857831944232740067490953843590717869110832413858760300065704546707172777375309673298893736129795041972054764489999223728081980438069683169557275360995372420165944545813127862017923044816538617907758489166351782651613206510308952726248670166614805170984599863669258282143068986764864870931543873212526106584242384204043110720671138729977191339168224016169900075438825442898963421960024285150151292602502084504557551120557393660607134369622514676446300525149198694594836902245134959120175486445016282738607857181738799818727186603483560321268709249465615991277451465708781980059698200454862814081399731228475922203605193183654441319141571361396291699717950589460129363963755267533876900609159157177746980175832731983687340735870842159974054447367664045775919268906274215216449000614762852910005167415155360385573092155481680148882500970660617104050033951786149461246762906084206244281449987207533714201510937193949292504647733719707683856611772692955809856192107846597680211141381666649201487739295083053584963933224586979273366358699961554544841553876270148842062694576122163608988808222796334039983292074242304725961550778918289642790962085860326574034845948709540394098390282409986257247480534280045518066961322555718149100653986006615559536187601869152952184269956511974990234351606748895946067224479966864968437430968175797698120614741703275489855625540162075513997847354321565107796839435371409584496717833804478870018867637828273176733806649397194950451449387539891439708580449359950289189422009400133256465251317730838968803370791266627756789352358038951550129988767717938353567235796198172493364316141396260024064787681793679943400859264193020311759225279112200746911875796720115169328075548422978316720657838189787479684987737576151538290275159299536491690194041758831644576719335353830808168375304041186047792992176547620412887613223015936974584441589782717924994322322729539706519234008223867489161364442220906418165511510769854172994415536024811489370545359166508008506210103096512647851458617086125998474767374606484609859181252077990634845226690282764997774881358777255771695338110141951919867862321416684839367149612538725994886940197588294384861335547880051929175358130227000876259179643382121743909888482001594834631590293023359040572761337108009090562192311634804137759754358797426722909893860573992710415078291362174160857333996998340401682789706528840015596452559036627508805336941107391564230000829396418378358865269776958590354343031909866523360472143002292472426186445661942893498513701528385525448347663370861714282578888676139062569520315967568225188981558190527813767093773347142577198689338072285841173959890363362267411026570463209539336014019461020079688567217693463338687395100648015077323101159654771422775554170668457943256843250461571018525129488923066350449903870825815288744072756417689451565458235699051751469825751971742245491637602770098170036012246462337204132717849186821285790423382329369147010199090371050252909195574894553359396564159252424611983588239529803148864365097975113992601387255807558302206842662231233683106406365610210454235168404088637150002564486085249421336755523642313581204788424981907835210155202139211609579737478111325986402349173361857173151821213748435876124906147434803554766392778313832752914730501383334678877999781543283933324195298289205556605832796442694355826695610650104084455354266323530028478732085663620029773473417297181889907149036946356038024874721565251938746411562731194501123261762901107438163656201830095594048069637702262809236437669002646616656771925329281010892689643394717030564970168627326878501459993029207388635035105307374836162918751567221530226351825273966031301262276532882183797589161081444681025645693564437926140045283005707864110337094029560211496173175799981202849339771975682068638614645674522202575047544003404295426111682493631825544933336161056226240649462407669638194652076716730477983408762788194077189906687675439431685582486891586547352334786312717717726421052831167730363915700468997397644857643208443167351491551745480310273111017248814149932878303911899567663569463960893055478374271340437862089111695820984945855500648646828576063095924835216711765948932252343572831216071334110017074492163976471698008579147609046976208789017427525319799336132759095601894187678370226429854428225195396011388423518317917412813820911869032479682297718673965969122199156997409343499417525603258186201587857698856537425979009712598703559892117704533157461652497593289899760948186154455145377321360756483984971237373534459566827133788640945506757132009939985725835853106418504194868749487192133925019754859535285557086201224677231553541753277254363328979097531882733249390434166948122196564037707172601886453025618577455977197857161696377158567212861824534332169916283395400555221591437493526102855704152339059480004079321875281837604509895005015033509082721583936242692360709073584252441386000719902563830952756460587119474825283064780552781313780057121371054883770467572865826010709700479241003522351133039925680287128352608850614191565808072932116255743482199479054041743348787086469765394430369156383741910392417403717488331525542360027243297554647339661660589338621313868956107194485736170504610034669325193640187187353265935729594002722470707931892170145918812867443501953403891583839522954682972369870323567330628837241824575023973213593113782096259598470861481053817886675683881531283591730975855635862233266088325732899884203645256486722642721234055378074802818456833135842731485822095663339925121841792312825765641370989729872730764760450202844930505392916548753700223484122205032860483336386893685343008135770205234966964782344496156251139337520915660673533073742283520724872018148301063401820886834671097235618994509428899393017402288570366783835818015593915547362665188836476036243644029284365550699042229658145638733155700514043858475765216558812814888345183015316345587355745259918028333906932496113147908574351412067836204432064570332510715543222098926705518283616357317491696458904506178239424077230081988199904098971534130397827258628643546998595221028876816749742308445123505341530882205411754536017792834539610815320822527833247466153975605105210621764016487343307953679050675641895273821390274738527537335844840756115798342057515573744256389768814502139133330381298404752306965480429585879455318255535503501727705737081432610232435710068074874833081080355012565402921059650320783131636731906966137793170503284720541323044216398387529880351012689613478852936809379091408942792128806197541818545476535218413981171987144451711311793866329240415045611166905860608186773828584704088120836159640172154718730043387740765798641153423445013918313022875878940121794160178941850196294435147449411638200101981841496964955656702140392640085609779220981562669729515398366635514768859074050804883274467000678348946463478180694211736726351561416288055665233459088532276292376582215683247714872987799814492866740286168976221680216578748675246727499668872754998567945168390565063049109532558853606197865751389521833831257312307937204016140662853130401188877211081349957313209502259488261804551318278722554262407363171471413937472623009894192279622453175886106577225715216279717236279305772409270244828157529184426879685653339146896811504600144727177977812474789812107315842621998542020039973725380428533822867416844702080535202647819053806516748761288515644515231414424420158272735528109302591936896035291486063151653282907147347268061584834716342011567262383852587789461895769007121649356191659149502065270825588829659867703315559691302158902696084136989378250881783464647074701324972228183515381185953923524906019977714231064284238526639894272375293865996811819900532730997943943570225955065750280370623687884830385597269231611123984804783998737851253833318932514365226754774474153601315754129986848701051403304216105225616030557894657160818730250499039200619580622173805877389429451638337170039414337884324123692040643996765038679315189243160937913926159625071684354017152137787682741692864779474179852632620133449218560189501853238774894127633686681863877009792001279803148319578548422819257096559149352845423324020895988669069558189134895319404278411060905979452113489048737581697251573630601138753265516985150182445170350135161666749592886966362066765420209380100674413457531941065551021433735831788504582666924886252251398001064231217878691615119089783184141670119345473102910593312163274560574285454454562810595362711698455323864737422807285739005890466920954591945396991931553013024059749920620243936709003912847676870908855311806487518808239754357550554091952577221999420139895152323610879115458908204043630546787057957860625213144176959799249139322063194749257203206913329738449575778356498840092499867139024888352025590344720819730836656133102778877092949211487221845653755196730772903024704999787971218070705980717546745045157862875582477953626569293619396511820900696422396591453114066230226192491558804644026111022172438069235095084048049266815075941893321010239915305255059317157032998763654462996343298694945309009165995998552538228296827906045879299901575194055060940059086392302698116983593930884809722963011105748898983001951349520092013449067347997517518304267803244905142416643741277577819246101202073469573420338521831346160221705730970722566040233763601613637653466484636694712156897478113350357036465584700885836286044067417323349702950726552659608457411044486461858924226004200233238967393221222240898939939512732884492665115148216451418444128851147693375253298622151668007326173950971288994927767278521598615168587280457108754738181044816771880563594573043015953632835742674589317881474180499673408366840380676782228711957972854612967019982952110759548387431214069435232500691346848879201269137451333684924442645040209234499122760423804016411111289272006370746725533792787368590731384984520409649126252541851669959852451977312040494138871883633466924161824125674389252164975275600105739311966423006688418093551382940907230478663489530574175331257641223034460628601951882360020181927556667511411293108673258166167466100436707526597264304266548771360407753140107549697222027625949619105610889091140862884263343603941974893564020654957078624771222347897091828225465537701531653676128708295898630075528822118449192662427693354488703980597673853701850867520404777710395132837666653746987511980643659916732594450453392809001459211322106799717571717379075423348673969577848673544012986325772457584184045404953586468276248928821274991488218469349923608848366258418878732772099086175601785748271865158372746106351980044810414085559231371262452992899013690081675660899942451878850862721860532942347864230076023421820170744870175152952458236256651183830863703438496721883485672541625305833286703219338826075722824297140349655633157479041570882396940618940834990810022899667886137290619317371464870053098453994448556811378601346145676413637679516697957487292675851643725686717868891727407795840245605353751868956425531187387690931022602252894159812000019770251511721283474057793588426268609328699503347588954317067441964697091312813521698687189370819400156173937882137650445900564420008366998258302658940895926778325721174050419056553758749937032158496945766661697046697802696446712153262860314000231640134192969326377645138546501789284226845613017856445989173273308014788271285361382045537178147094185228222581111523023124803716091946123813594587746466181792221812704718210290637591758818281224811395458849242858931376070300930846904589455186864871680474970637800243954704612242843602270536663989458358732127994834211776548640631680084204740278528849737478486597858843437236081682664618335070054531591498138246359619464432054212437731389202611600504173567698578465215556142472269296764429293662332961302345912765722967039210654821858260441985758937103064587080043407521855939900078277322725033890757980704563790517067724472379376326071048863442420751341528277127743983321740681045832021344947503156833939222712618126638620969589186852799816434144688528074220142237746588915788212302439952227306505121566543244724101717118458195166441583007150741697211531383702253816835681298315344944246760680965590184535284941866046927639151318013110516987818895492741102740198621378252996735443721699158234329830331108124891979715638596650184935050711685984510949999607125750606778532246597011208425347790379629697560850058032454240203511885344729694034293208097459279354944346289070041376716075693786468594531782326680977454924652741464165128699191379717656091271571858522376560730553577579751588363814888028714189793917443387853833262245634273812097552439991487216641534371802091016238378346450673550023229592325741129486939630417054515024068616719326738254151956307680740143335142359739371056723228136724074689307676291869062815000248144468213338424804435756461474842327528399608460912077136716858128498496548407859614632548975983775038927147262658163930817375064950613772932359971898864040891530465426194890454870055675787691381084438777546930322951392306798444367082732120274247815506083638910564098911743956317236892940314603019913933854529769668199611263589249081648424249159299950729359554861104537181384192102829702351496369293057213971404832162343177970818804182740671129867472572137924827296005882315995534274547507329034030222252641254765287226142844911447476130943077018791735014524593298123705520268051829280840627826972538769976272675249776502735149953063896483136096851201777862810491256952246429446874897215334064147773259047403763378764948736730619087679853725840255777405321490260986957574853390471349034736309274016822627077961710120118751039140784322913895100351707656135705078105823241837644329852483524091443017151857214739119063997032927816821155941174721118609517618142308751883086393334104559414053290083085732314428154848172621791775077833659794089942359270229094237768279827803992172833567918399136863694566934352434773624272446479309881836611498889144157300289307470167805485769123657881968712800053583008326122627434906245154379073682203909099347645612101120837275042634120680254983599103714012415156085390032437810074752452810478237816253713640967594677977542234612941581447456921629698352781246804452602642662465669374768136888312525902737811677011352274302322786682314468617043744051297068513287969489300002572720325468527752244786143292455243232697203969228857933858634955938186319155128559114918231993363999925509000041822019399366629044433098637724392679070357572232333966603285082230723876875411308080915956218965322147534578635533405308933672753534815651715654490684481505246244909204526877638149833233728919983870194607457852470398467681876618873427892709416568921810415347889405008232544038124332419203373201735253787387766708294312803598983505974743582987035259223509698829589440871638304703126592649351852746850488100998688920258654928560860403250264954779926822689346844559041146685665008577694019385591867818011900274205849382936791165962886497783502449270849795117846603662573940879668559174285322352495828310781919066005282280748391558006001820128290571168527343261208152729458418831930873448262119960862642461041198771443900261446601839460073456550438910104134635892654434643154064922064331690479083743343101946406424341407460810305396595875210823505256873688760436017336361284839734614568141778456630796495310932372368215677275178728347905802810276369959059110397299986808277529843674107662154691952665863551154546366463112367997494844561787672358100952323758047177681370946027199038947913332509337877193273960340366273431526511264746389986494468034088957849162428562971092675209161828402135805072452886209034148887555295387198358379100484740511960557136478235529541174604913452506653748732518385655676297428234105159728111678240876929718476958788974671948292407343653689299739090375238085940251245167221227330347424180394313319155725310502754112451498711657932272782023309093079102415596036822948849011339553969595076488107705865276610024452696325053332089515029828841158683733335248763653395182687935902331050403382198509148104635755174440798523687324740725375880539204298304620590716051273982660766870885043362481410060976833135841995370419429685752726210114812720642632127501776545423747305909897249889237342445885454898527848434269369885790380189956997640133188968880096765282794314655638084793398787329284821146708983030885200508403344263150672588990246514874272062324971219937443731636968659253054241726172489332450962346394034892549423951789542881418370229158451691032914820753891315721045993145840733389664409791371784733081156596378625611307488577511712350575815979330791265587655714953052281106187101440476669214035337484513297587544439708917779354191885011970834478415432205910421846968675262438094516185227589432623672705447108020236749823987573977222392367416092355800790120033840077109104381510380207840119893222835395151759216632146051950783669762419549072420105828744272630993727352822968256206738273922472572477145687759589660467695882867873487403735316109493042715648374580530547391421035469149987751937402574154044966016822744516377011775905764076611489906582246491812789736531748040989488330944770775920711976955851128096417650536092144789548467989644833611923347649368721877380812375106901623862299077501192558248968554472659038469241711126065488974141464803612775507531154212692104428225677468206932302808169887480701353300022619507687368328768481712861715539667774989361987533224616489365671478500209742367689590909123558931553742933322792235698632019981633636474500261216637661515137985339820794191910217541060889925587494540572069126739163714773056960933845793694803123267512476869376701079330767535209952145284422871925145216725317315607529101791797566865412860562226308004605740156634722419729217287280843565576193430163610845294760113341053784005105199384283818323800341984021053737598910561171158420022685294658410223141163464756171033102538443908304939349182501685021094445873458809840740534708977667511494555395646828071868145871072357943289272639970060138916825887328358563655498309872935742098685017549277543386711348503112139756211358264416780611772003332109499878451308541564352733770679705490911492540075588375524238549464678349488773510312279170236828389888986541088713626384917360894487334440146421866504190355026284832467272175711116300967825072940119272904485827581621737995507590920563661593320294802955353847589890439197413467708650706361815101438355985735379628361977702817224385030357053663521906229214305143107504049568775288637770998300286055639207209980338546750152545962091573741730102391282353737358352417061709712109704914244803203556939868142901094533525999894236604566039894345515772987256324527965982446409612141122300951868638960788061888896311234394709819750313046697778946294584838877223995392658299490091226142267600988341907540129234779446586609024213321396914879494272545492960324869906952775474367032583271728617928809951923715484969925784729931719871134302306796916177614929231182130466739205288251125581444907829936088908024783034640074736520176937743372700767297871819246432618642728106520354972807200348701851224963298852898554471828388894189466803333039874487401110543106764307446604477627329858926153935403919535603164482625427782291867988801141591342773969458111135388687025821465727224634301758292748850322809910075892239674739623389295524338289956560969945198863765437870999768559357924699694380754619208873632721793283958764810249952581356809139279198995713744279708662798292260756227917435616904464258645188126820705894980501760209980179381456689259650517206459392830736113285670682849156503933244295333414210409122937818481822181311240139166475058316841724974610333416569811972300076897571965115937662017961897060531121004597521552672831045496144368448539891845814346949911524590115600287502810903861279270180581964542972201566224747279904821756037196926756350775713998782120676280172450861726830615777572544365729815134859941176521550533270438897766610486122430673534901796173886226144417543178360590859795460800500592368576839133919234194113436551616226635637466551729400357401220281458115347769093098424850791085170790741128421143555593294226239019470582250788084574499108976614587408933487521143914621159860024610537736478416961730955420110806904581316196474099687110860320053316301512904961411827528746832799509266137308308987742198842383121339714157202053020249439450565051901210915037934013569265909474408378249433382357012715955771227463049227495169077559417350319290695493395401491747500061742097875217911563601012433998274675967867203555533978373288012271053699247205057074282402394890300562709628823131237510640713393569631363462094221233865564160107353271608734741345503837716393364720873624213719078317995425373812529271848654299750662364419604821190052299904641096785987226605342831631553160917178232634154279079730924526561962715839898195647519289355317879361996661954494482307892638237132090930355999392317879000573976034088096368154455941790274847677647367180675501500080862735216520871205661169137176442282440636493208159589624966443936080721618975228050275481192352184671468357968493172780406824954373517491302060343771081736248204126564725429498449183853813699828366794370691883226935393857554080482651933519733922196134670283534534490482742625380297092034103352867641845350665252658128198852225260073579112769371986137581530384108069540051439701616132612644373768552980853883838061394650687859648980609568645419353598092615157762546034310068882287401324926481271794020908994403519861722954468099284206645933331231138510376465856829278304406412773212117153413144493772507620007167333691163027855118721383684670839854277863829010909582221568121922149881255800382346717254023323846553828256334676910266967731653324183908475165112043806201348530233565445889887211564723314294791845640972618220323582917162078420545203631211225735958460739579830786365947447725663722449511932788080608800905706622458599299806137042483138233493043822950114411240384190170888673055874203359932510643479656531134744828327317141707604396997454342973379953767187774529128611264670138791400250807592568576111172629758415016767095928277627417198757932434401541821924574925087489587774375092635205815775465660061672045680311150178469042889074099225427670486111109524884889361276942785034857597160390184492596019637270377676057585910770806111668458359695784828873347094094728587526071475786218181289329559620769391464013626804386341612451081468348691320623934518617346910105876457033110706284427426188189374178984437846486125409086580160623347019269082246260638009538415161291037340111000576933896948207099362747662701281108945011696051319308477703656140747696821154248518235144778966668217222512145486660819833381749682228532283334438276474476961816876829297973605873759027033621245488063207959159110959905501064890531378425315248304791602323312190518850758499039764732565750903097159083499229481014077511849691673815461708217782766196941248078597419591181105018737305520273751337988169013714382208946586055222112354460501284693522516418350755589919813868123950807467978435658547232570438406872078700259445659023161787774409204398178300404404081938186059343630959526974313099125469986196418045295454530117037171241975572471141834876391571334213696577296655133733194586365257831288626709310140178869561444458299424974104177868575598819068853749019023815658470495165479300498380960070647249082893492184863033433066828615007921369458574835252399572713958906376382011946510242773082997754822868520936580981932846367355245281918011661061656418914645987152163036856927030757563542074269888285045704018601437092313466989442809797982667247627347522391234962355803236909746367174597323320055939070613477361223426318538388224987840639494673635389911489410838617860295845158759292220506406750065362201934797291035389730374508306109515293383762711485325373830638003786339708969760723854908225573961671082540871389912815728739805855818007825267138074895695247387402109910789467502664311185962872872193163090720637738705111962212598526405542537475453767013454504548939712001592714929631851403228767545444839155087872781445929322590071744121516882351657920280992668049205158246329663115449682811291049705563579181714968231766506977754704384184720790058776246348010206174883339237519298198728372755203422285424377861865861942783597660026260849302792119824130039014164604785080506370192399064441376621982746380501910925161152403953155189049194529296506680316186788540024244022942028763872213560100010061609534819610941824697571400533281065294850898590719059149350467316186728944584092368160059765788905294115969572320650500562028285825507524054657245210077332917722819344705485239959991892920065079318120309760734196954711068545809781311296252751320208007700373729986320135466888245933879859783317676771252728674888435362872063034812964837084507609050083328442699363373025261127896320775557222941149334044459796352828936120761948419778466999386369334892438307981942127104502561417733412270633651057476065665833299421136784688886459296650980282805969535459935386277862743949892867871316856198146845212095038004084854922213706687468408752557659819609792141955096873212121589359934452821314861139340501812149557257011489496448443924337037737704362625295189408742186864546416090262442766902642483702959324328636078007683321779100800897326401086333774786953221111614206724347498253231286365203497360720161605796515463963301468419725971938826965205972950847146879638427499071788153865751641207407381068870168642625763474553631248737881993553077438124977285290093241214280775255155767728421651822180069855830806456889672825209086713856406672093176551030143332823671707258548688488212083834626305454632792054830890253354343188157174135951381118897323752219035360619215396882979961587530988455935455367219790575973177491434624699898368972201850959449449486524598293231943541485871660595951973139802917931338996523276988602712502265465665189601746708710985681724013301815885930663591667818868703185093653938380621117100820193213637933541867613426105718144983964541054418132720641810526155011429601207342755035327087409400502944082864137427659953387304433402622881361789073418547694340221771021523133699723076016917116036659576361734301790240127383074448987521840215373835374633725034256470059140414707421563682506747741703877912477765418915471486158972005848844299250515964318224564101600030129891808501693805132905750242397085975226634312721991828994137287083534659579059728249259872730951956614185478039934467475367686269175948587382158343110815534065134267177685398217148085505532552171073645086898474368866028519210147089158554216767059894548410732522395338674082219388844955620154823305997674387543134160684043173665117628738531603711381832202325310072371860242743927615532895349213412468375834321389721812009181874661367666317700805912850591190252706732658779084540506538658020175093692826634992040926505976437200928227352628522677977900941703743546115282400016565757994419646018976689903982879645716970991168798292254204659045823137481690358098412975493980858421721779098594118150037730692251743943127937936957499622560158636624703567014895981055075682130503156500564535026157376393240081709037235040575236529094599226990277831934878816671986042538764288225420249379181663918571894813902866305602395055873634214911972440566205029479068607751029707804160625586647739072459699789728217332994325990838540636303080751742752508203216000728478290075223475086408872274461951471121439098268204677483029338289254430026754815155489448457683036032048359206538165954406974628391615807754488367217166249185583459567495873942546000116781324687334348697422176463335787449472608073362595556656348670770227949450279725065307847034395119976263361377541421340704610373376972891410139466062291406944295263062625149109555528960579769767793398767374056152497254431562583309809650404762687084939553338303378524587113505766792960194704508354003581744791062138560694191110663476259790025116944739225114155073789421016883495768141559948623105398410369976551969242667511042434570196926050485644788282621530061072579738350991512523906630120687016567230431344162569584999291977497109238025999481685012766203745220068428364683183512472412726758747953399571525223736328669881596299192446719200333690525079526378999058869100074500762764666091732713879025167212789053290346602475769812563658101726712801824761388092457633500017674594417072063688689428865476090978336108216548627781678323937994257737583707972489256403104387598344526551681828405026770283170421796965664597265770248268532049687332694079621956849375485615500466930939097220288975070284114387307438261300380727224166116935263832374883631580784846806024254383352278470871463467277135376317110552171175804863434948703418598973267880245346357949547671935897730804339651639854432577043548379306493986549224096470867393070685311467238609499149309285877900579445163751928132689394160444742439675967859312854160458839386741911250521414948750072989998130983592216344531701826846882211475014110645809037668525833355038522600031681417072095866431494298577079350139686981545450418290900569902023292625597352743329102449117027195444021449960401290383625210479253537976257459859165666403625441427440186951822843560472412532183952987662613879798440189718984810846139871935667086343133337427893207583043723365409832717553542442826624041931929399746207419229210282832370062127746060410275681069348178780790245270925662147747723495343091608429485463574193635519182149738962641019933811044083576810012466894313422999451032879739265303054859115068520951962034155258864667486564142715007821669791137435105785903160810343372707245529429884149832282182654340950324916186076209648933770353996413530554853061485006205436316653598521641689355745277138389605499730930732093525720670453179682846798221486188794535886378582594924587223367664005296481690903457072680880116387632110045135998427203974188748223783226278937030592025958531171912983109225444195098904115104098182338180211561250788380954432104657023670252739212548269620195098324576906411164091502730458683669831905383320065098615578997670601495910309791148335261858438476959627725211681066116765261588065744539103204404055814764504477943398901957710985514355976568259953255358143407318052098771063909480346856377547234230847937869425136502237936144970078830926122201557352280722117356663526562010553389166166885899683513339545811471155171973070980919131240187822076397409113322193876357329279944194379396912928113919644230522933545379386291340192139081234050330885239238917048747752328634906529850245137802785839207382590866364490013968909068768234997610155332364256850359897136920360222891743366902301764764231324508981133104732138232550836865612646376399956835136621489492223402056028746312328335296169220641780013858435361078038851676645526382481264169248851021280849001442956158517416241677986720029878227150727885558169466868082468695587575738107230778950819552292597063109882062231156636811959585451471188314467660377489204859217715838981312432076469850540775260405880594782828859391004263163742868518160103760915500668512430639733292159565113939844372264409771745239771068146260641986865651925232343392402774506527723422874952645651578026339548453521038648258725734467453257666589191482956288277187461637162335051030870396827700356332787758079735007821599040015411136569034944714095690393892123398864920198818778632734838311823267978976959739241553668995445013163127280191503188214971473461782895290282311716962436285920407212499163526647147470973729512127710595407801533389104735238685813724995266263673534654304196679350391900618877424301991258797694082133672845048573105456616959295048033458112299905553128139747336614252444660986820902757963933921388637379446347492984442231427941488300375676547471192496379209068912344465731418762836189911112312607752941727035152500100595566748704156237718159905089320653828625814195295991447950007365848550870770282824090127161129914681100028025825341801571396515538442685669061080730271596751910860796326902613388215816904753515952124493558827260931858695287477793716548411711105970304854731138438763627230553323407192656640402004240501644595536816724193799971879943302183622730271051243166823806727306452512520573459892422041005266425770471183913291408578185281509290548462624103939353370947493330665677350985158709198565544492332769823568861998653995072669043076744165742821754264439628724900124746935884006161988598285256818874451910226288594053964365034283599327773474430601296145191245751945003698281927323875246101452129017433957064937515345714361678108793380396941625052200882977076885178875918926174595202285129359263971520422326565816117467500519638767252723558587156178227931913644510968773328594658337287007764365380619664330213530506075567368840364438919690098282027963882624300432361120732734067286428810799875443386680602204151403872738831944200965576153538923817244096749755593826496534478722670372747506971765035416369069981294343447291768866723840983591808973128152744138805636936804207802217882843669703890876384632694065406408786138344820994608743842626081354608270533536660282472208187093294115020168679753613084761343562923158744138230701151225437256166545709725459813866248802607806630737311561438265595564646711625161354922146253194513877824222270916780936375103273850787841491569281306857480269662691411634867423868262779149923474694389231474875953027449504063947664538209957226562670246823216328361233634043736479012122623327701407248323849143130136797338368295716604535007040694818354165466957757005479894072367495962834458593295050422810659804395987015718354860320759188098097560518407630190421932846364486978137890038219218909700562366731808157652589593945476433339950872480608246206213303817837159384855986859516953909249202886990182315580568263668011079154865948735099544965055484933060191012748245364090724246877754466129040280755992995699008135692690017834123118023517121789499539763441193469708177175518891648150998187111841827862031548240973698587417077103280702713393216506328223575492270098619130652480557768923463481529877199407258350180654234671405270933078208586192438356150039836884967844554611747604922968377015241087998801136349190196597050135641489440562942445516090941450442250588200485934832285980069517899423528860887386458639343916437765582971652919094889626374232868868183815247123102943293426537796594503186062168778507543282878416564672241824094395702111277141066452535809182469410749423407068889712431680647238827452774187252839937544362142938351323270250397489518038369948495166825328108657367683541932857751048188945147361955818845202873641766230695419558112169834742123516917377434577845485796643760422372227694207573783785310789358592936767917650729693238369182565263804684388158832278640425370900610654236093136541800111961501720890645303821992267513877175272556205189515833504539859533144160331614409222146849884047443460264468025897654109448145836906973679762276585235134411243233541728434619045500196787920667078012891092290262603346162547930945219881274873342020774841683630958303541762904681656358021020772526709043042594011451229009720513199422705436987090400709689321859532912285530469893074721636454315315357456861535172227364327598362024728102981855993759921596004275066391578478478327399392478671921687031235624778774287197931771666748998305110962946876403254879151707452760131333763641361884449559559711080929729269018926115639715843293657933584108552077507126293672967271821102969826110523648909916328215957850259190711860266871646026681511026567731773436389108668564041806165148798373479987257901726221278806534785571164458398271459135907546370641255706228008191979466723579112387641503857948401405989818105489204230381667211270779462417742808738062033785630754403395689487437364693884023741972625317436213317513374406402962875270743169137013241804667822624976212652546116438322856198197324555728968192964316380000488550980389162524787458908082613694893745549939362462673488495441389341652790910973553993157058536661396156390237712184904904201354971526535716600630020995850727952753824687666560908803484198439033068072924493601381906992698941214833727086758341956146204836374818182435047208285300716224346517734784297137487716958323950026202437627817060838837766187482830175646868761760343439263643139956392912396486654863985694614940768892907738635322806094639725866725487976445854801809105151630946177987704826859784241498670037367284189394852726145766196158774315950843963492009065206242878834433155499796777407728454366847083528650524214650071682407944890169312967449343545823838424229839628999963504655408606369080590482028139257387190186761258177669872686302189913094734457053337990455360046796314634689419367059714993962183512365683352044429158727294593244532640577742559434830204147177255802087297493511483191898494858580880721960913716725592186250739632839964530972091142577101201585989538411287635514309735426786020657779529445792134568391889432392392267221664316624408265083713149992334525652549332510686408818209932380693659422913399048441560773625106672838311097060528160827618954594026885557770009041416479355316024201946218962278957813389748097190098923876979964822321752729493891323678568849880016445766259243136979531554915176542561076872479932440523576455965385981309046240033858021844272348457653922979915850405826813222369500382532234952303532076211997869925269876862381280609715963094405013797424292355184539231153531527727626113798841243479648960955509690822047327966058230388790011565027721863818736396503350899485949131064594238605015520760944638677228460428976293144676789910595329299046503000487755102382265406552389734044003614978577996956327405568631267722625723393799162167913231793453225393240734087074426620544394023106489414921094720230102288260046823877962802575928118472044514214556998683849575738303273949584230264091926452072400045518609018563614104563113782112613259527239200948286694248531513608973320460802941100606847897465048224728309105752392248055494282821310228136225106714432735144373862589994213021219561754928387864384660395109756519379369751662707744647561878688019210928995108784650846567809941663315619470226046960581546564435226145707721993773972341287561783474526734966694624987973274869468943837639950876249401058568845872040819894792782194731875249302643191693760930708367700107490195262560188831186611013775871032309355059415703593758274460557271808197889471784849048910693342264001696703190206224784732772264278039786434452070786695960472054887581350791011235260602449471820683812177299297250022490293235540655936516498841143937497036670577192457293609868247153206111512428790079094734546215099242229343581446095832701127366231434860384810270194696278517873405513260782732299748358329365325942086170612576859261717130542001323585017125051917480643027523857784641573334878305778823790371574713263964248171277992808507802762025801266853029985030926079453709389709124575166598337697847157199185718800527177675706620944001500390582581367139375375503356435585742457093541430387741086422903087880638861672030802607183328587342576240905569198144088019119748388537056276901840560928380891452339987567319703533404913040286152516811129904164498018016816244105295170158515289398519559130472211839526951459657836391024864932958533576708790004118732915706900332863498094345233702852336662638279658499968952286682597791143759407198975141710171717041184997576035185323906614674100421237065388525359425971669187746968057079856183901076843005714281220268284457499659227336000188479166427056829765778892671519957377974502365252637346222580552847044829575665348304436939019272222428952210670410356668983986882891102411925632894869915308641862058580500204454227491777441286137553750884801920502928009939765182283470568983924519636249860265205500403305363482838036993098178908198807683827425038755766522931868604943222376281516443141057239006712186194347878014621529448658549170566272498093589078197520120253727548886131986605395910664404672102764474146022863459749484166457899241816250105308195058431242578491544065687644279485076517873697954055447213000892428963093517436298845292631678660200615431950225192799793127528156935850405533496783135625103801746960769583435037647310824434972614176072736568270460545224819304504084243685031509743215066721758477566338819949728542218866154863110819767473715876364000051310051918435990545868199102319135846725342253902522503526261882298793349103424095321805310980468861440914295157369867343731293691561002534150991840828349456833377632435918882507641600971913941942858067628809656618699123350039013446995019529114436868021600417041261786483882426221949584700313912807676599650064912486575824608043217493493283278550383676101902654794997598933232933803268583140408275682750846542605144081048232348406380046972021134312353925895741167618400810454564067970899399597749188600313951355747222127157277069726944587982668363999404631789837722319396671519545345926727939550494598839297951665361609449040103901527186124107107249391522626260945823547846510206425498718405720859479779986165487351219778296741163833233763802019291383274282171811350431858989729390721252396883981595320266063067328170376175480725804344068633413489804508022435516368450355797142378667669186235042673765843037455422627987008264962274809290696592972179874456918721161676333783549609290612461124611491021740249183347153244643821948097589676158674363169712946464002092554976277379705507372837107068386742407984756417303196825596109863741714434573605381926189543555754428433261966757788418647713381695281133016604425569106887527939240573123046240106315536990011082830373272881549242080408718787564194039250799928433731331660646947379820492359778610310598667224322060193655694254221459064534518202949861897433280155703430092684721581859370131399626438724914250349377526915994969495034451081809704258857743035067659292140953771938655692988192463226983358886464875328485507896936691033446410794286130889114528003357447945736119767692715153356341253380386553859433680834106084833196255485351358781374233230770464682119519864439254755338510694595004951054196024574930196188160482040850619464931729787660253462480144570421443436487032101067836377349109322704583744152080064415998847738917862854971873342955476147121695204188423090488883445367849966311615972790608087763095085053932181144299293959636005521362197747627923042894997420217780081730178981745545396752666591960528080185002720936386733181258919813640865036065919749710268942313185873223992320762437296613659693585234211351439925868630195060425683562060249710041027870610035491772299545823270459471103910565163569202900119068919604941261251086551837784860233972837631765264327948998394408853426506824034937832087088365045064090243079156644081862683518074789705737080253459646184134098943828789227694221196690668954549234244089041122718934049496708209379802231561029555147563680534735919287237465268452250400499584321049090758724081946065958300241726475634929037427742829474456236303218724802637957264029937626814183255203231523447600450728764055177891825834576236263570631555868936244166352665169946890438527860615988968111697283872461010484696376588859877515421916747382757986068964388425617880003817469795931617304841841945951375521528713257020027416046639618982762983532406184569378339004247841008868994683696135728916825590871205684894062523904144079760207422228992366270314777910509191230555601016290140854505596317618544812455722014339682103153699651504832399066729454741275152645057722581317551246591142598161209554361579049572099754499791391826148110791128402575986039725973669178145857416587637032023045306515835830252551343821653517736164731503559626008397497045045537640310806026195643553008646596204905220072752227955887317409625085358369128796871766950910542334833312917549882260388466096384108550997395503570278558245622666727448791773277120846417128067339487017727667437226441294386513071693972371148610618833714134111207156027459398475739461687031544462049301025496273763592475857477803404940954456109563187421460659055206266329246580898444322791495719264178548047584657514991480451964843964804243311075461521511563541687399316757061312770810663935557543494995012820973689052390808428908681595396888463226984058399541523977693893595852731858827123627223578544478696979075590820740677887119561461212106843918034605204045280035204994559255251279348777991524620867911787758397223125064573264992482270562798576991820327080559434099774919195119102683564781332431004858211155829008056417612695821429441224370711184171659107807816763811481860017665568598764146818060778706211146396013212695285303585305445900925703091445784720637036909978711529684964763581442450147195893138657355076057102333654349239779418107910427896358019198220574873067299033248427001421094055282458987368488222288534403131313068065860495143384786869781665578874176844041082448221754622797724109911170193055260080103865937359829508797051914304461539086825136773140969385313337253375952242907581035718666615241967688056213468781564756651100050866358407241171657568782119445019834650348315190086972165256136151796776943934607564725501811838917971220793804982279837063058143631439305203899855705385954462809966695618591534080733287553017525618886640390515095205190580093855699753450530417793121368024633254288033811277870554549698331484133079957620289194358291675819804527492032643727234997019059867624307339910650820468187066580769021498085654348920266748468558029795586181301782570640935061264137826930979306597964224732503864627144693232574381791870537989802372406933775933199052612768374975680467621552065043356029816852264930578496897186375759631841805299579757836625853648981127563555872395431428029852069999803895761335443653182291622295837897789947863358152272568381540115083305714976909065277030185960268929974652767313978014287744776379588919755303894565298130829753644409132618751198696718985620386349886707090654114151558996550146983038566453599289828267605200564526168770763274363596890416805352792385020024392963810732426043181911025370276896740243919049968655085416708161563053497646088521841563932891526781535626032099669425685717741482781023246260866910685697139355287540724419790932067443377210580604091875200446961033911094449117539568821310226623596538009716517191101592833449943116165520789251839545510711666632015054913641153546328373717515847016315179924088706996394176809974501337066874864570170672115384388893318709950940611099820875974540472628164507025609833413935683324751696867814036913043802815182523455851800731096823804487696838763979855137400298080955283622386871254673431617832262857655925502459701753780111436595416295986354832131603790137624579534646810921644036707594028705620363888756449551077978179479856596795072240216882376240383240326027600470498510831983596882439238370882487848118944452387044815531928887625957195460458560155335505035801436214782988199169710621461492062265983500244973501651566697935834302185958420520619281718240508279684253407679330846128039785016795242388971569402762528342139293366027439431694588652713020805809614257687601624435685508787789854332302412154775637309234905195027376142593744445572799306517512453389294025972395178325140228045488330733226287046933935478325229652314385014319081346717099717802262344811022663100343806387654958997209656106597895544677585047784109127630561346653546636127071539243578562765065405738657503504814248222668745106151197362499524999865115965713611427305039434827523442467691398809611991080279762769003098841348745440268759677708875182087824225855903386829826927624394281857822195830738419081433740378798533231791090518542059971703186995717071147021439149881277995756955487418832866005906987536674195872971799228079711552725369458636826527243071248452260821214175610459275048680385430482253892383831357036564783139547544656607869350391209569631531055939260806514824183051942452641796620600616402358113844730027781137230361235255700608768520498700234721588162522145164182963476855019017749506553683461091304492793973222002694531021766073161906954480447987893900215936060938566900703809157675446804443988269299796495273919352053628591283631656395709986650737032551665247231000968868420056175836852978953482526829352815728266890768615495870763279243992901584585489908365896414437387735974443282715372251761251319279812704463434645856328294459899482986457202287620396001813610063937052152662799603911508799713405889711653658926591736495572081572773658351566584841943179039434726991136952614347499873640638530725399258012987008263394563140971589795756656942873681764766312460925403958442079902047879705232404441293078293322408692181948065365783389379559357526171339342026034086577693558202126787066875103841258290381142182904491074309971864148151750992998215839842113907445403801541082928384102513091717224083005326428802527805886533141652082846517737291420323673079986653995514013634913376161456271659481946499367878779970620454755973483683344980043724086954821375606723668049896541699964615142021204725967612380715525292256544376256714042075154886689173119395775761499012954403674698180012397550009045139456098233506874079055470423408089392662211095436380598890500544107091346556189506886700599765321373387676041064952006271130829860588744619025066839850181178633313934975779871964865974626953400813742305358391646681448482244056551253891866284582605189086453952482347808959876831447866409951791635345000219679949781733643480330174517239062414917827962039257977094593775652758724504523904731204533803315964863555561156464495302457877006537175608530022141352109847548186733323272269759328436940482276859823289521846095616013915904575889008876241566927652085158613900301116679156962993456616806727151773009453285948741057904051385450481242267346803830687815183358568992754877068015336164965090333465591854636772196394980236905164234347543367337082780687766664060499634411710238935000759173035904453837596764591351332898784738768823867255461988655951472935521902196001344440235601249433556785168137076034058633816702585151086494182108300663246060759497233104919082230809044550037714757277425398460683252283885086985304953332169091380743074246110698453558776994618233647127065793696089345607704101526207308997990710778377112291752554837890748098814616186616721949093635136547672024308263805035346861688308709472975995259306370563641604771829957677655308480054149345059852570637490266343211188612158100680512104879233361591220579391138677584965825069208901561137859730875506298340001231197003580586036730872612263533742028811265473661678658612237715405615909593496346608569991002018487215122352665383901824630057911015267780102181193888878025254994372539544081364844306019211810874770314663122891533230718707101403256878299580404158683306659393446889935242483372689052518255202491479965281050277715145170672727236612854110560922172723103633992314055227762509436427109861252817117992810555450019704120014188194033462422854581493867086563660889391256907083355798427907651262811690971533355723345079647074501928554523551146906959553472178457647582292542294064323580318675451532851943857990466099131819745992257990778729037345892380515779104521924462504059091532155340714913300767154144078764195095433115868015000747841059861248723364275639116598381705550772324413117376763912194324036680894053975685078980152004742032201790600723391540855947577431908234143122754632721233114534880749783294463724678626627056173801608921005640410868480345488490039293578585507313287745030604990841296258549879117705739130225708607042897262539449628366103716147884892591675748082776550070178803594764906798691003379732216158741111347287149186039095640947826292208749652496339865607149947007736503912953021695715468953406176172653359656298945958932405008272321981695707713218455815391367635357468424725371638863295616429627574312506953824064865885300998424246571692000477420828662698401796583193589445613396571291086713483515642534242451268020665726253351286679231005464882321698416524090807283899528139064799623888600510208716117504268228077469374215012939880111390508788677580278778042269144661291961972466370000383065565314921828838869671037015622242731170262832442983625993057516254345944081909999621996186257766956887589851719243404677329875194380879289793781311120448898427710864678157150580796656027268040615339882652219705941828381428143475440396854909356670709282335706603153528772749212740820096215726573378118621828523275811137991494921060154320392739109102528954480542950079265962196154907167672397588727782990667011845258444647510073091187189632118507867859933082534496228793386238214100464843850634895727530116205644815197198769335956729216052719749552362740009662923806803160317095261725126353904640978039190334749932777154856997013305522573270191095720083117131049988557759755265180553655133112387341800152025958766104869918821086172332339967456878051778497706710175546498740791192012904848498883151132884937529771156135553106481218004562115799497473902728525662535638079886949837252836604899853753230704964807547829694387332155236187039876733927078159578991080433353010283752979920934515821410634649729139739230599274163810829304759295242059197536061229056806206192660199588426501191444557534764453908965928375467796174681500870487556694634461754785107060801831860584750479222351558682523381044846293114403285346807934136860072464639623391950389677376450544699785538062948016336465932345826540164979453038875914987206197241797110502982980427566809523856151782713176821945712447123736643490176458060496281477643290364618878325961585212734154302761649707517779173162270209614871289995981168942022388770405191511627623080095466669961468274713252005573334559707581942618216948017321360891977912072331638739583199525081148201728400845324530255064508847943694998556344846911192224889345034057659497932056301109796582828394774664457718217447323662344032727561905864556717943989286599331584467263250381833624358617217803430393754550052762898517534083926485143842091154341921061248050641551827006803627559875320034324425666881050545703209453161603431621235518573464576181466693595501737995454763766543500302144217703423522157481853066210050814870773049871491910248689163485078666469896830407383658587669928190613608813066707717002900675335745627722336567378451343054102378263105524502338168316837490344177625530001258473671616134212473750553705220051299722637507749512494452331537226969604141179960795498316190068776342695317419268454445827482636702863681895656520387650633641885417269690493110532480103026085901387871413182260577111506835760219123456043500958781995222922112539399588997306986692844917953139865014233712851858295365002464929079889826567833330756151605770838271546089870682952027710498415124209484418250178899552015956951118578113307976034231330023440884288615375881489659593696599873597587741296082905945396597022360491410572755966671280492615245354359611656059045632808598541080647832551331549256650861397528388714138889006495973104312231306767219370798771689418269200352228903829388727972411848566407704759913217431931285584389728927348286458796720268021027134088629983143670758077568726457795071940035685080552370942155481104058090111154733805386719301300076974472691931901146226823638580264266092150319424512151862947838737345677126876842136580176667888729789299513513254300160324729122314165489550252653409050730020365119226993513694527982994935972333834944898744682073770142327553033680588420818819431622790864579768078569900383588876009997413139569072869796506739438642576437396593608558775803166836466778527209879255737816382069006181398484937034916710337688484171920158442344287688968233338189644205952279807835782385981434827217659564432219829177326085141193988207114552111800010519404809886207237361229238944760458263123520386526830893826946390050603515108053952067690563782084518541995653106335534087129021915562670086153212111849821009308634564535452695856403349462052704701693105348762909826655448582765035356225764750915311269223937630642277974204465616742609016070168456660175425409914742113157286211397548366163880836106678666093562434371712925500285646176085614044781016052465628158252660086839422756361174403254800451295134521339078948299047261535768663446557274869804636496414863143881885641768867188730064047030433280265166633950150439052766252575551626371121330994289731165593294472405736808282447797898800323480299132896168310133769349867610261278466884840835346336052713357200846697833259159432332798825611929973063744341725403191402903511281944457166906770789242690580661480231544064077684974505313454047071697568600813549385210768566720952077104753150037921424804200867285756042529626778097701363616601826404293503484789616976899659047354706809273691164016275832589355598723316889061065134714100113069488618083988403644071791524375783218181729428350873290632466845444928805571727907834537463537665949216182353203373782742677249228679465404006851963545946009915785261538928231614928265234415543495537941675165546553872835798859676140525041704306080732384522878318712598874895294107246404950914231379709451023413852209097865198146514716429899780353607758124378521915739812510860047431033612230472982021403276659845877667088322844793737013841099206866246327823242370756747142349209157497474512284175100880885248909374626289441625303530586912450391847896569704762586659406920937451352241338061920512779671182148133837201766340338308389397636910342955032955182011448847262900059832486318519769143461026616508596923301102679609017042454721468910096624752590745406197962495713935165714517603001900519857746257539971413630689233897666174114654904921785309848317116795714286085731071040349491313462653188940370277450346202996500656800443391027529451617895421129901871454297746566735510376233989243393392630941211117620067615534575212488960936214206048803710309978470578877617860766726615176800057195355794472334098105629063991100389941188028831188493477717865661989545023170369379493338027641823197407969467516355810915823768703597296481609029010369052881360133475835227271860182510140153437707102328823548863582407991262626830327692524770177322095226701360654158835948713486017632069985652786866270535992490387633124790004020656920960579155792905561149317893659616743106854186032937525438121331456866578703785882240518681722672972086921047683232105909144161838731320374725497955755602448346369509295039405773053689897077954983292169533305874931016860445472941733241066655715128564258035576160738407185535074921066296272239258038171051783972702981679780404358716652794187315312317974545888494269508233850790599575696844302190730754187612681531685838417998546559655335422847812415010881355917687351452776376077688908835586467002999192836955099386403375585338605840360403957075978491334822728498627021978178419774979196726335557595157978753031138142457461372606093599842255082622952400447637249077883554405801168983595559623265180216793353036117220433008595844248987821149878831777355193435764156865508659158234288169293295084276934909012110893567115647067208173184290892069682515607380684144206336730869675616311130483977200599401611202062709127214533584754149437856379204041306706894358733622623370474244987074859388724423512575214144789849566023117411421745824664211288748893280724969615435278519000510613237220081014023847026685422348985147698412416143303249110573842320717110898084821821729796562785169148052150245629577391734807545832107417846276029528596167270030546010509652479546431231234326884398275880541599653914689423451160454958698403461166820832815670315621571927831661934341076849586300992385441952699764736483102083446027074554767651406597446367258177471805053457069425451252255793982155896275131180946029608020728155721122579867040542068597462647319797544391077645267059424696358320606479092655182143128691445385177383341985881093219256271244220293159758200087640853272269132589785566414287915959176197990019726236461848556412966533872955976931894012894579668336185006347150256063968525050396181019202754941395391310083891690322458927702429199085104411747095998747298590533471802448004710037834802836745377459102245961798502013855846699362183692346730579192973208026096992281650606286262130311542374456751012652627404187642792258541324397187016784431951874277578231843475302447024715825774214657461541083048651049007886499423254802413916793819568210686855738586867631483719658270258299319497816111029532145407142583964488884124124150800550698500356746222390159187593458639445994018487552358591763369517651936334749364737662180106492402848022955093294261556366442931411268038022769750671447069884281685661943519335343100745661518069350110188054131628865928496529446510211128313548529693268425803359423399113440090879519254151244106742008367491171721444645261846767672555975163848250502135888210528285771189810186799225259835160957196304633237366222409769797302588368509886960254479292456901022587342969150134355737533926920875769713436842069767629996578071945193224556352053067101418373696704896784418953109007201132428888363067955569351874402232484772989802710645743244808991543080443567754416268582732710928700782297457510744552983421408503890918008805492996596339517814745946112162150168664309129955268776477865226766277139792321381251329026964667383404105752028789121063068439798603555475980951575497252872682617838798642176129453646985784262824182533392618860470138904704432704355741452710531607950992360174808256735965644623555293120047206622269055164824371774056281048878208303882486918424677745149002934149150853766158754039930913277679904528598848880953095916799072201563320401637677932396809651277280818248709884060708473245297924253955628534175558422198685250311989252684440592286926682021917791994193311196664556701118667833821131207493288459217060158674747430390946975769517699648743993190462193032237718243336574655513269668512917581118896857737399049310665604261606997691651451235927871704461870381685614729295979754647556488895253865001071652504247022178141058778430586534891309613954497122385930073571131013544281154386585494624359879508362530057159853180263652925933178489150024486926512182806595609787001990726310008578887771866080516026232659583002718362735536303392018624285071323684074825155766079754208983823395980753040856911841574206204037673419126916257584022315754040505425189513619917689314563024846855052085948404706764551524269887701555776110561471202018784739853622750692797552472063892315910727629900810200274008002544393566524977277246978763864586504133589011882818821184538773172221770013735590029665152336388611459641987235102121508941614949167080157226835013802428302276958130838535035343448857867502749663802626057762536907299336819205841895279476774735421610169987626411473022992799959345411657659944694899835676271277464279249583911313060819650124823618361031075127428438592652514203633172329870034562176757839898191928096186762974387027604709521866916834144375778993065770649197408300670100546673941405060463039297489102395340853236876475779041749453466361786980306741952393891221310529267302999383512154094457924653382504467566961640734336519987528406401810091221264036984471286960078005109166103168157164515410302351546342557068097157753239462316997923490451478726772142023045636508915828756017631364347183380602375965512424456723267900957539102612352733558936821694992677871823751347419481630676747333776566832626714037746656787342573207893851979753546371165546414153791053930908009914402561620449178861247388944525618711492297418438014544843747015024256743601952772323190225400572073770173536538140674657649225029936607593842942197647084830691083783743806732700282805367672643082231507874154817421647805059999131479053901938118819991359158711997925262598560297247680291064950252050451739574973075226537880467036794358003358256838748883720615940643269238943605605603741520429311223342966180288829387919238542492431182554086893971228263753287727186875764453585652201707135793756761686634933068141280577495429619906205571912902385262674872594572381576941515093402593090980847830462688537421621400441965265127521112609381821186803560194746786106397281167756904498801251018943631271881986656144383948209576608201508994129548486387776512917299888500838738962658580324443153965789142995905035542664671652753415430499941516419164706728076241298529506998653216423528978749052411086018875569388741739210669668256433540026710464851846650463096891586636246798498997186211890189747078921809998513541192714150256048083679164198743402769563303399449012942020724555120648586266614043333354343335204726115291820537594227974252918800454426521267084862432608179227304689063106092649754078800297418694743250427146711453018040030316803057209829855742077116801264852749076137917225410852046804343743836468222263154090352020504215574041832952840323236572236964568493721930295236012304614243200397560982480677342473209433223629231538045160258843714624854608150379070502546872584083939920944484963441988613777718508207227580784520423322745405702989532231110499298602109513477631154741992793861711470543746072729073157252145913296219645348006022898530195802196786070203517810857661723035787587159703723436146011198541867172351370604400147000202773779049897403130890955716061267045050907228780068979269392318476177117318083263027928478996808793761752300347137556522555084881535622764609985772829235165420086725945014626682493442735756542188287981003630839288310304210099046675664458475443234608919472740739814878201639885715352405715973862487279822532084313437609404000918880616140060346461671858017463256940592573496097867889147486557306530640502836009515079783075260980693327177615693854876413974857926232017975428265796030647095522078336433177593927392878643200189558185120754519130322252389135275346414839941863291956575142463844551486789623065316906668772841218292708307838262368683651097485836473013391344198304899279766847714787197695160561158571392395611077438195070628268853936727290242948336260335298779663991652098997216443494219938144647052663815572232810866951433111434871464536323334888631951003758042985187183648928299630506073930671119996556073627733805302349406287651667460889465772975063590303906733726600362761678068119378618642132221919186552277107181477557910231781396354256635921112741443857509112604899642347077490039768648043818115707752751259768532997499628320396581322856433712272707676682789118439066081795724989045407865604358995701065520584464994283410255872756889810623793446694194936860048196206215852131500634060590903415981658942459546092784455191634101627844577072341293550703552688222474159183464146415031337871078719917863025388249136778855784089069813186307721744062075015166284657464428310777828825445245999544626683464958427603162394018538598092189717555976026132172630774425947889844742905467682983700880437957304421751578262182996311373847325091941967868066973448232919541132735885486182610478152138715285352997855559025795488808318033822075910825715060566851759415701754370341154742477955314346911945805363277166579477142496997134170509684576079881295032193160479558694830912331502557402210861620625915227293283118853421407014098192340053707606894915191954254522694132983973249219041117601547163141965584442828525141964474361091791902008567140640450140994323947419683907999879330343472214456991154479888131534545148077979941209520818145148539748656119950829636023702201638267925137994648865917411083767381453284598173843266744078675668596448246006917647646781090382280110121165877077128406341514204646269419443076838026787492164939876948657746814187932520026198412037723293156839385081663425765379209713968220128901371620807173928740550191469217950910860335847802619335117666483151873631007328689671057698224333596300085267561272054272075637676631084857169636223353996050618202777621468333926638131574105485156755128248928521883084343804344083171617465272917793446095327448264452829138747606474100751193333321911732926306065975552738359508035136964661339062110617697302009476469237629696692348296278073489488379475810348529726669698622695287983319303048765888918712342000894607572853921827037368396584365372704640981967768911147836748986235033672794704135713966656859315768815836530457816498881297456073580310899160985638592969365017407249493161365264544946660794507818897247946652377079336959942420779165179581592995944107354482484330367864693814440813551803037995812583539561134810885211739719393896536498418620786589066671533289313475631272894250855075230605710156157646571974862314342223808805518426767256260036064940890732099812860415912031022685651524792807345443005109345354312507502942874166140645259096662861873262939433659936223784736707454707399019663425058531102015108762416665631411471482816296599419538762192828083083413880173783385193220903734215315859252741789063891701346240279487529967620686705464884109460085616067870171701372883899062975065059180485682907048655108210005880389676931375378005227743242884705927896990547129134994383615841247250961478798023707024382531506045363797477536462475133393795670040429001642002718459002332450457195423123512529664728131701066387580870769698014366724383727321250340111048214724373636520156809865651732796549446800409136634501968674699609425657587852984454906700914920970670432446525985605891222846989691190619872061546063554841095439406626789831122222669410162807806075479362761966259702188479186150583502345865379731998609092163582761489293551513187632118442143956423452640167231858445186149688967269951731782223640570210475960710922586503338720856346627800418794070691618781735084360127674234201331665659305805538344965716037593973685909987394399604107673815420142151092965210722384998621766895183815037283181594971548430849646378582629780467005252413470044053428459527915672928565259701768551878137650629725357546039481072335987608447221632182918379136859127290574163914080186234125476173497662228044666642936875229214588458738260419966419965575435457874151114882803830634425408461642030703305531410246351027889106523755169193890236480490057275036845144046078715943193516958585261935933713192662369153150719738624449389547325819720764798569475374359785658142597781195255956586473687731873023186713350579710916037505937191913635260091918222808779106420913583090306291860155966400850466569445650959392376190630182673837586345065533352449199557195189877489296213669437269909025960394980364972863107886348279993839634602857671757602976509303102900726878154783227265980173169135930376729822897598655754502855943971099734379303819406169355507883382139035025700597003814681893837311765725929548914500051575694667383181505564467177832154471860490793782988427628091532249838401195984775630372457845468692583607470917000172905360165546510363494165216008524770409020297075210147492872236581230676978369218428070235711591721767477520012448489647666246547952091186056710570694435588928609199769855560512873875701640318755214237836283498067558381302659746115714094261871465350397825222886988241623190836778088482852260587947941118028240879931659503710134821876819017157089564281490148467283142253909420681317812638983663511812580681876267687494817165142104374318722600796391067371201696082254980652378714930024602093856060504132333447649216084143190176097759340189930324087704980300788984836480342778466337077181764385324912179267285926430856750702672942103058655313069481071556920196079555382433039688979931090532925021148417670293687754580498007380366927398841815121928512753496233008179152070424049846807815747571759335822884318409367477620292255135718706134053413677151054052064007177916789708944671810924978613325606026345730159248944706136153694584444594556082507961613016331252982579591861647106220191884729350669048693111651549849528741444881615824798454990108552007679725497348123859033167267995119166421612175634711730461789308998214558292801525081295462836343802488160116562134128520272305224622289059525480889670919328379347935866616199548659875741057468250242265786867601244239718032322092081742199465411170196977836273115392836428309811293936131962549441232570163498386400234239372058911682800784964810811667316140100591945327163703310556099531180835283701973462439289818275968441307551117495224588152325543789041874938956579875594773975531343698221127149816869731695112190101887393910050206102545353490690344097121102634469220915769884005832314049679052005190207924224774646892480106978673430113661002576160652142681179352935704327954688489497472932289462796325726158676914633556816825149210020779917977209716246079851877154757451307085012321494921402142576636982681799280482312246059105772570710414276554037968732935991201870013847461246700236663933270479224976480809070954516346691014437193522047357959933654832096650212471795707033991461147885203083292394927056231525776350382289519868365278131373814262224828733303137881146309073652362035236952605168233026378690937747917129929901311037216890344468186445478209013586538239252798193887769626959301860681172359696141643673090109763489811942731586012664446221099053751669764382623028581377710850705145583287587489487393179575260388071730075122382651408839884690104770664131278653805698436086495632015694174295842305900065318191738882002262828752633825637457096949161311077229271604125522891728678712004249364375994406849244764252116129576734335758723064043505668328496084844951312735317493274977103131323611588821269651358112017821730643176585816419955532407797265739776626375600000078157730945348065070175118441508556127571857828658712357483161991853377829805665798899907440191430093178535638302532127788687149069384000965877818470237125080377671176704539297401095356436930406812492539012415780680955277847839810992181467974731720878652582302838674226847359486461594737958607072614560610250394812758182566160166686648020022276959575750362527564364661857273123769519612841665413219297958431548179482580328756338652621584100140215412374725433991421694954212212777481716747976670535673724133295668036723023906703823040108580173732622164894474514269234984889690618655656765776503306384376243942410203775126098793765410038772939693556295401457181647680594664815240915681830729793782634426583718446746273921708479057017461715147260118155373949027540942897532715686592977555159942857510196626408954113853916211448349981196196336791744771146538785011060075617477490516889258419087458391066761818647360296967059363832496243755320474513444408254100259540930057151340075283549171251026406268836385914879504518682378009415045777960332396830398427616480973047436971891844800460583444255833786553555095109269674446859833790782938639967646368719715176023096412404632938254351171305036180469478423093853629230811559862282380415169718503398342415840731876513278810257931228374451136151403617842435532321331929386265230726323831373599799973373306636926332911145616520535417945988890870864737014098379290064134775958219006045221108020729300696406622249850426733980991679233220796058354209880034169694427162521127811079201242543150777634382464217651596097858981234354017206189942863789613269169845109642610124753665072477224002870923353984606228729142587191602840567902549571451448046464162578733283313066667344611783970975730113235650708140952264166984448220652493271312995636613854203960464501409298880011687171541767051824043490382173298793585496569281001507347812147513117970304681685470415230844184374674110603936119503965917855626786877183155318346066080766880232184382371313959784165868126858828477868475712639399361487489256410388199287877990002176066898525123987413513297529481407085030964943616464317925069712137277824507791530124134515065079254068245885623946104402882531710293179871444709448419691966355415345919942907654672017580089616058354846520778281024717369766940720937490756995393614601538016562593355556312675532558578584294196829662744486704054748183872047991895669470677182823555138426574233595612862618073890133658456486266454905563358334800764753862723855311136178607698430035950765559262359642749840094199016725356970078754421390322739273819891272109527150192747370605875848396520232788771537729554673566064915106156250177260288840792131484414943290966781594184287828991152603890002151164091343294188146546210034542320725345805778784485616696982378316622996679632672356333721939740534815632808979850824266896880624988582718513533646475948264034820134478009355406288923146663345804895407727276325796272472339067087480320610901983085907565485903031483513635189367378001434243028925391873378429148528122147270423668215966481326221396441023020854576534784292848899618508295948241529760734253000167821828838309346805087360713676208056969131864139774072244010468964763993642257488000106013956292823450931440282508177750014353113923912307454021752406362077949206911923066197550799572759521218991565921975613453465776311579676357494629189246983724693262210268067547840431579851911801026734997393341598236395185756015456479626041606026593239933293310378091442721525590814067581117762786490908898926950374531494086515971237969821790174464598211261891207491197688789205024682227305753116281798674833897594179620568294027091078332905847627610801757598362776934748317621179197924425937670461541270072875672941403367940868044707225642927309095143820663828643780815465616556949095520232159660218791750317093376030988982230214273717398596201796974476066899914494578539788962495635256722106231813712500609143484597071003070236541861634509888268653016312623575011446542929071685260989897877803275236660124553602666479065480429695894413350929376944009228066609054199436989770986994956803097425220055657517595270671979185472645190108915327339893149851100361030734964007904791619627526577740783912839522580703531727657181168669457182961906896981535024048679627304957796596327804051832544714327550604457864259347511454259275248149054060314244467493968241043534592755873611078456670045969148579750727115805070158770158805730885306296528880247172677172547083430640711524291886497907598481224877324918087569195681061870127256796703487304595800537195614727749695603336055620915565668466874685391848712010854927802227473935127582637373075564137310239044998245221573667243962048711331544096008287176054252941599563711409708106526403346296317907354678319866406667257617652081685872781540848886424502070674274359653291889956991406316218033896054154942979314350494151060732677428205957408509031358764899331406800352322098497979248011423235538695077800319091865851201877575457064789479167234866543696350631275175074095764224499036301513718905484261363319374203286697272097168986385349739201503019186913272962681033477338946187307004172739918553106266314743153180584909903372991258503245676071098194106667387842261132863964102197165194266575259503374451835037734410753697598523654760413662574248148220338059692388383740009757650228234808751459411046905235187909346910484317172052391452460950227748553558572133855347711128753139391019996687010595692888275307275307534880057317363638888255281465078952759118710483703377020322073041427349774788397056802941051491843249101015942561242726894479259036831945123881694630694436207530133790863095088165236090079784282774975512263316261393468978716148804146818698625423535695351030974845765293752053807423326637866623156987220866030486247103976196068389494325622522240463163235012189666325514662695741271583534220276084807020160747514106754008730638200085637878455954613413251971123699004583450276162142854656872932082495155167566473689557680296308820619934109450640888034143948875826802246344885104775242319961116610671939562710527424735896357821927211051928067135741926053394358201187830617316423688251557582313271171290791846671775327657692967691273462991575059966513221109107850544678307636937261412634396748219134478870435955141228536831976023301474237544450803175524794012145007013486276404721943383245698120948344731858835008750570538424384154988977757023422715403995683475403183278876061144710027881227568929409095794221299098632520154036370962272774138198319423254781808571734773705938612852150033664636035527043534643100015778054642758106780686362846166954672749911752354862066749130051725173072223220493044242609141995056612515426170899372942865305331501207449366901216578195759939941786976014165561453852128248079816704075309856397687592620253541856236444543926260884978200415713736249372406770076734096383444933424195423422613219715486103773687831613495953481629438286692791809018441588799963076759158275750611744801299026540568661766601248555990533070981428853352481807403587186527844893312736495128411521017221283620917929167030704883894444136135344094380147784460258397351585542457527068205552795368958710055514143871659225377772677971061761642940755922622552285398245900087646399084424363517276860060961975224184491002052663782810320005078801870538283886900508628122479793344249717343637376961720933700008331486463485791405602301842092706473324923050221953803896365631161860615803107502791992723991062792583464515475280849093856788910436119326964051717640787533666940160711472217299979077923882397000422277412971974149256054671272500620177021277089468011833831858156642924090375063264024696074964924031802743435146997124531133449273150018662668385084119811872770088639990306800915072410282141011149335986242741494879544148980169784267491525884947836755565826501044577376174074236656337479081351521522622882343044097614004872464841038241247354908176563623308189855656616057228399082681935861087903177655282618873464087464896639429541693426747138173912344728994062403944234933111049698188494674404121265885088256921605874552408547941301235514578987663481649123001440069846447648243774327345392467243944395883604236238370698856706592664780669499962188811834929530520300093799118743467520205828275816661043984331987807453211660561775891615383997923203288462107665066645327826874201995656787541617703197954738150652698986229382261247351092210725346772082806061224001665683686275642661207567703538754463116929614811451060166805897023820862440576972722620318015307553126315328440548117994953393035295006953460492559874223258079883660432928524080660063507925837588483414034979142648245859325510882323103441032092375597261310019458857221531095770292223671800972686172207250736141856547028417230370646339984858785959201111820652296017171322719236056155313428531664914833113350688025824757363622188542938183658460114566549825722270591621432802607302532865955496081418584154796507537089619261024860966421020253166214190911428855144846023831642182232537625058137296735010903485371613230478476190293418759072480503616727600945276177669540395279091205627686470174008624436596747642402493658061158472805509624984987722722905098664835597547394810679100437470717130910192595388880905161504513178074901286885209898821267422964832791374947507749130268109743232537040413030813484795470738197656768560956729755789041775836717375262448267304760944108644558296217676764877627858865375829868408434688130743699520900986871133118973338959824738710454321493269858787625338626870402163782993852256568508210990543792260021417407966371120445774657232100800712424299818098098995072082940423376858649667580527807015910932489353440741027669799241736427404021703090899592082745271765777002218042004722282012264663313103186646612854075250275781392541138301026642923317020534316981505523753991644611053283499909786180902100277661970096922198974395369174924664365078781533015357220085492059599895168628482277097098547197684830132013533556166452308278588347172074714212661079753576059322200582005853198905553489003832195895459152980029887701732551712398702940935727539376852839605723646058880452222390543814323085525153492851333787813277507079419711476089586856941898915732390649750606148752414907866663953366234419844691013482594867020807893830268105204241409093338819927203222235396001992830193092948409114214807064233503772072118519499901487826519108630769020643349068229734550111291027428767016340097062726292739328782066880951712530779564275115036419685693863781848009912223240143373539684772568220551683738250904587004260208330125810988273464221845139436156533680666035293957984608553752452735964119312156389836225966866046710194734444887918742251456125481013295710819815810644702155949440602988329156845537892377815645576707490855722245770786636164754904154720868860215447854351658586102284605139723414551253573682466223979240327618797828706547032316090981567485652725976279272812383200250189608430283519590280424547922418290219450942566425231678174427559540329772891813240772834940084673842798000932244578004617641010071939173065980465238578461284297146390761633068535745615751740459791667143359719909663559003716168419432820107793078618007421236967064056438651188315999503218193489767609345767896302772364935687283405957245752526194834466892104302975167818849852044412432902291320613068438873264881015705799307848051822900804697949589716151890249175475536039957198503971608263203470082402132700029177445165872031143836432824672296503947915385884084762868894093376116834236508475865146886312996786515937035881850704785079907684222652515940827845949906394454503066810546784482153695053029970704752466385617588749327478810511063285517512909800009806558989203281113598016193611244216570312862742323830541395456179025012242916195685959242435801813428854470495190065266456652929491934957455003823023756490530629305771064851239974676851084019981014988597512431664561893859855800336176216000388611010086496539877087573629585157646384436756655509599452386450101845055682657414449618994587655902468200962760239768673301748824714911380869246814636751419377340349472616668558791115084198053005093725228161966205899321414528007609674155643503079938988194330045142455128311459548132492771421906515288977233007859063386173591638159033356741452055039917906527985866026230724068791375940953222156606585203477706847381316133041106662788639806629156497900295595898225397708013751631579365622313236258502861870040297339481880095057820223908039987571304810911524387629770527309128935511727436131208071819041830105286417658936650005810589760059675495901529675187178283637849090259842527062206603497965140900731592729760514031367956794813799325125933354778999438319720029481747504897028665743673742963368054437946990790680876971218798974114444874245442387516574722196000918494339065817916145107298582018100540239416063949262754155986387305003014787086356421016349875488195181293814066208551361192385507700253955299796813639163609659107294676880863019713916278261157735772061881841324115768932182573486263466911207646307356433768132551813576988630542134195575583261013754792658654955030690722189827422228345384445426123149438322536916655693175052903598933753975498905446844637836499812034972716079351361699783856788815179935682405299499142141018036189302688004681871003372292569074143311053930816004576200830186120096420680593936437770530730671998989894133226524649655969678714841860226934084348783242730809092989573302501117373196722899868732931098719980944133285255200313635113875113890539693422308446984207807479221299898969046929731872092182200347215500695886582958735839582067483309796358883059384884794706400036497226092886250063774228347338788979185117215726601139461723329784457293344230465289449910161071997182842418247753644670708037677596787639965863306956808004607652833949896581957875670300027630421362334507361964284410928705350971782201824041079283374842648928467325210026277478829050423901138230495688009549763894009318386663123642538271756618181590184608932363548997424884195424294071875586484738339815880321829608936906983984387879067324075109854730178164008435416651799005853878511011971176785583937728210018770816915025621390288103043604425081457558412709701699280486402020691027949420984398136486226341397830248208594912575174712523682870098918507741358055485198070344410435417250499714972116691672170796076094280510148784040135590762974423733748595964294113102824426996896800924997079783143557940646806452625522038963719719568980622905819353955274692953304674258364876584574926970882349060060714519925596905968849304782841688629597406573230540059898360243628330885389170586439895376170967021234169916644291548463245603897845974039577339623213585600641989759706381554241548349573231425453543695023509117164573805796325134554130441982453211460177237096422298154462644913320161681487198819439634749785073316245136964971253210763770932708238547924156359565270929101174055414907678755824147471598159835696137053444745861141461061009166476262540395925995084620144358720344020686611977679671820881506345460503264926126421824499605888444735419792658268395688744797836015450958548415129899815376621130877112310852809681239617699263262334555962207723701999152602786058681628232248790759873063873545825842058518757186491457727206196867947831522326586661993923582446457640200007481873384896014084843715337753084817252170948978862662268672618045757855941879000053218848114778914641871255981567281490396178677171977753232272567898029384892867611888891677474282248484325532031746484758883539557430410810817398644836265400500447695967600608355739297108047238130664549135621033497547749480029138968571721292922291628588659853847551143334466747782811368603505485391990014966442565715155556051219725740195741472195639869897859398391839839200067099871896467838824626186603120328059839251878606909398049073325113544296682072756940956592641776549581813309610427260127933133379340938304882942216330411279323371799472510668915858141237912663384848997026714679889492260769169257998118489535848525838676525102651787794125446041961015351987463095405403402837419647706425772271604343257966072427079741458628151003018433302699197641261886139639622357993105686434545131977174934741540105157358187542414938996503314944489134770129255537011377114166202504425219006340751775184032296627329163340415700330579993406984975877787093757151596007519076247553732505134851550273635008590068825181163613713428365748271337742567859693109478608998820379377189724018225054218543156189645901169627527376322459924539789532307086366144006597238952099056369881231490693845431771924742348844493860735405890244375074009210494506728028817532710641587593577837189171788963097931610968125934766291733069445671334247157692738646705504303104476501064192106164819173675080628747865884986728653309616505942040288680480165171763086877834144182480345402671518317752755412714579045450243221103434729471812791639526268424049785617072269271119970965415221640557240716765523973215624262598209928858720212771093617191324848968269496478985347542470469378765466891306466516813307693164847516005439930621281107264024940283990124934227253161942527543988034060016250447617836486837263401812143766243410856774580857226956031086283645093592652745053859961939177063805534215799277632389448008678032032219960325590517349526463942331345718732707895755635969451246839733870481490398681339879814371181668592857233864685429496099732018526690890058359098925930511721410719571127293072450074572668697837329029058149510187413787064052439316864893252009983632379837623791091332105993725275902740825375272453785578798726149120493997474293860801106007119231008887891848239624218750235018497771940172942443048461589160185152253894855164181617278663536947470510430572130567258004677738216210451530979620804730766794430695464394444698602319895659382690398717247606313010982133498791840496778666842991036653264040635550118730742545341252949632444333694663329387079434530472807394558946311160598005955280669330768686919571263786923119526860352387781809136725033556626395441193225585816224155491431422375692088405017698001987263096643140225798663217614601494079949763054345211147826186670995785259191931491784204240516586871393385702687624804842716685383861992816467107444404550517334245367590878906322771802823984865484710344786377606530158659281132977113349336326029155224430574988581632290270711627742603615036706030724765400700614700066926322237979904194698534537610533808455936274243360743119344955496736090542116914183882062495935781784175738185765118375099391379755703487482567143062942231519456767122717407554730842581690543022077250420524281372563552727518863407226672689518470404173815974161091154994679698678639657714297190625828932534907329645713954494235142215245168717156071892491327388933843839897422965643708789152490082338366753868243683704185746191202215564681573171077873218591915573610603846132238494158042895392649731441306059351428801655846582306425833876231436192773806107785400291676908122850230994037745330853599976365782521921536690640917624341894489170163999975103647518023415367356691961307579067225542732086471297837182264064692522487424254132457182574684531000614672869339611081732477064471996637054718003158032685100068274024072920795077584384755803617719030285076268833840776718096580680031488968874666685556914429418989907715551673354865180846411284898864331978486624144006263358824732184648157170655403957563982769502908722416143409079407117964606028548494258511631361845126385485037315639541337763301686749027958139141665691855102934166476561057481150108561071407187440088108793820053277232811871098802533190556583063819063432244150821743253786237978111386852436604386825950452494607161303973875567903180597989978731478126460234944870906168184784486831402408702082363360070006984748811995635441276105141890184577028389952002532395765231108331409537640929941972041206504298665502697035794448353631630293736938055205351659418832590478310519375793634185465324874967696832207696507697418717931583255822214381891936635174937735581393508448438262521348768040529039177758838687074096857100210981442791850172724322859837827931448883186967436633955892145437340981371182655227715659345322225442509866491494824219931754075341160800264388825716774054881178242764846879362880244865238611882205672297501858034157503837596508590782455719655014139901107963208447340760149525238979919017692737052876684180098396740071441303363460458270794889713064124489132684407150894385473519461517532247679161012662348968289949704308500992634923657278704992818937012290934861744250264285085057177795167961023343218021394602030236576137992598405842079171951114931162061684722669092737236482348590439910085119775401138712292827377441297995249275331623295478477729299751933788790702221975278510147838306016654042817780667609892032679818544990432730753588575879219723216275351161581515833613460727994469474005936562340154175267417539107704428328454542561820133434260517687242597382474838556416729634644637407213629754502367463046008666670691642071961236840431441381697572503453516693842152001934483146778156998782076574789617747356133532426900493898634076589591801640153549304249511168865373894292577014756350365824976582116563836302883203497446518926732255772259033950251833031979440601475586182814471741857377176041027416930135036386269508273210358448852348081768313954927276340255355280225979131723498467381946321098266637250114118762771149198374221026638923272307979861671544704334306694822378062655388341285090743302318270108104353160169697192978519455040681930954080593409604190895342838276667602762215883163498539034325739657194576484857029934919066944192050636436959950871824281507453873847515797696816354629759307462449078718172532606569759737468733957158044661121066070603893530914056886222902970246641750498166209596096601543837162409093524132795645361073381776204652744716064652251640933760781420621768386028447418343864685258150114451423738007597227873002020668491750015133147692619300199940929653481408493160240466827357113028662882149529090927371357386871902213809163277007211095781861387510899156508571753626976080909939432866080735672221997445779048717485473276800937538100553489580843437827970737983494559904498993619641049154125038819490494983147192418769133831069701664788623386084800138220493296413724352310861679661046715207185268541374770728846381689060138611505942447943482261152099735136210381902090131253170559799284108694449314943418684084192164111010574507412121677311561482373691764258960864934775896709589060821141145615653308923941719147242721188044211619199857706599160900005710357839994990594664103429966502174057247188827770569849190998890598014888081958702821893693417390489814221490353251152164475281149694399798373251183708973013568392822723908734663276506784528321378949043068084990225958222724005899996438051787890202537408389382837766711416484901340376624605970440600823963251319020406940234898149747075788460862554163845705222581392844129710501513547087398600295390137205587325794565009001547883166211388917246427845168095487962979033611349553827741042974635858622061638760561630238234200934191740854903727055983560396699215029511531247009958755981830616567119506822972491817949216240589693362094120498628415354592819364738798388632688971987477539302708635013928073122039963709744306434111048878535241182993848497603804419203338587395909833085149047439030831140129507647338219474905738915959751409079011844393916512273277198180647562232676651960713957990182309420433990067565611638573315774479213423739470811465190898051109795057382960487561499913376836998801980908878531320659475922318279894129230015366324407916336941808506878889875639965743948246005631490577607503570832652608982803364664235340324042072837418304492422291206369586943837146288683705006932636759534292595295745493061645263508610027353770993764462479520902283465938711024815336477597185537046113439853310133762199081748335082043588482969986528479618174202880605004276096206753235391909015749028931743484857983991314687349998116795890112245178285987981236202289203596976181559881490182757239435223652736431555478071017192029806579889297989705344418661179829193603123746644864578052961852710197955075069551636429561745216566780535505540901221401726587830797195318931055043474664379864552930768427043303810980079275779371909619010955566303915591774767538328386880841314210103553677873132347941227642116829492862817993362073890652916488585556533885091801545895076011540619963830972214197328944431356345585106257733245403983205823713412670788514910640227672318132324732949844912562718475880781242276072608554468406876913402198176427293270454557216305147809815122997249870176615098957160406721054356827765069079649059885241794980489307611872389080691581983550033082062340573159861632042873406425754526124476503969003084368523758421963988637439133756154947147193774202862961699450931315717045692971556893402492469703719985983522323685531948688388050127044733237978067314223514639246822958866050121007051171695960081192121904521664142323454258814058745835630072542728893271986822382337096017618624872514576203667857856555860295839129205323229202623770052293318978488101591969855342390951548357610400956202579670381086902594798849125342318266006148726126760078568247277481816823269330372550416076391835166337036320118981282437657359473781659176036745824496346250543278596275343575251953292082611767330321070673067855005492203957783865848670480749240491364984319891461857208020954060603249283308735691229688884940077435452058424007917498588098284585415585783696907663199753536668326829432814272839433114260559857239570754384181940573486863183695131205437738686419448851748025392527725152502018587035641637865804781829205138867302611301722454835113115002127880453903601097870274348549014717193983409071636713529425973826407850148653423543368236767567423186765386242889022808476880528761527909101454042214447551479396227710304355712810967825500985443149128607463160898531710385760558889041408570453147980773776302038070462821374997596397885870555063340429436654055239527387691199184428105193012613298929623220298169645546600671526009104215572064850567210590026505531330477481977499429816060755426704875717838500685980895290435472086274855001744039445294454106949727842098726824830981212544304631267885818427797401033786848738471174046451160586491767735808993235889037692063233114683822593521178547983359169588839207417515270199117643330714372799111425292351323441595842426161077068301983241483333392160131002858737214419694087819681806395816138730117704638109895901291631546557049007530899950205512665181480324132603209087859628963194408030985235026264859038445918648747582742521610084503863918115488694393516667220073976382847530485255598263056579167800930393462386456167698226505116098129385192783532579634938319177125433529377932777118192027028102108216817145931403097537804290022986483087289988802907234388451961272140014295518243236029675504265511000153399878347978486907852889371838510413083583065878817117441698773368050520790088492268204122684158649086274438118766577804505622823405081696801016815028005543018285904682971941448711582058627202572169223698521561072946338617488837119079281977292660215151763739376334803610527626062800376048464201027742066856660831002674960514136297131414180384619388437972862141144051224417559996669151065229831567175798779108799347639650188262071667788488147906814854475780434132732031413075294332757916831107245214097976921642274973431409210598783346200621841838191727047396269768266483551353461517886007888602140577556615012296721601392815870933552990906847978221231234769095968928511762393878379051545073360088816525351038249829003106729931397452325463818968175918259977559018671270819082560412156523835138126025505282611082915842339189413839132900750336912105662651060781238661815622316389698400605545605699248487195369974412983441755769423302113699272167008310323228895824425064420072993620451089943418555429776278873975917551242499985814041520202086073136959275741722302366125129972116931791952437771994355039971711103993139182696488970420197666524397433299019640610234576955258455687158364546089190488749246936770429376754233177357721735010731961931942322130368957161296936596462813642666655476415991724351347327514191916126870017626358721754396870038564572720355553539816304271213333389929198430451730315355464491125456132105139638960762431055869224195949305850203013649482183324264319107338102416850420983933431943013472785691636161533963701173969768392571442173400379047627311187368503469587944515919288978046776471291503095717409356319116622825076887928591142006884920292681079647626563436255876227656712710697734724235460295800326992491986809102755224493360253607487894609723531872822494427304915248945456792518145611926354998398789773074305928057380454391031442524750430397878690142805908679969977137250902727751753231123059505251859710004840620284989961537304954025468271873585510256980597432359137763950290847497767286689552832401304016843293150488021804446462769469321853305352205081760265690363190364120171957285376640455912016652861960561842507153581130221666229750083279446230240694101294960213333141452220721729673431251728526603854582874056146576629121784168618650708587991785607594089355059564819233643962133022882477606363628396729700827772474798038145187717895146972199708478425539478554714105532867647166519592442784223136690143990699587378509725600688767867147832293216650054812517779607991097962447568527014039396539330099427146128365655380514000769418605313368402446408224673000266444980047931641589371436405793481377175488980578905539066976585143432349467244350463917139786854361029550064046290580083551054503408125641229107915194554807569009893040365324531349053117594849050728320706422184629385881154118124193171893409308595940519835136033891561391192107339213673585900568763594646358464555270623380865112219599505765284955210491089856897903594879328328131594749164478226711263720663517678090522421981979899919275542721352148842630472388911539422570925381751298522834505361810454970238225036628016497782336908837972647469736757632454520023517013026922095228316864347986575733409688810306698762196117007571974487373928681720659365778396750758999590695554237547728329923920867288605630633467132857845699453086344348248204033546822823377731722275240407297395762134358427191388032863080708306658600366720583332700391989875445773896948244276831461564899571412932325164606082965780360475806374356457581521785369641044849504942213529106310690636273005703922414047374408493470286739001199081581121257396103897469611794587878059748807224037823995363515522582676101896865417405902462945476457636053767277991034859435154999259007164116952958661049758607103393839699901224113114409538910915086387991126622158818302379017478560121110808606201000712741873275836581778160118362274104306295629927608168602011406542911967383471372159651177002233247760635695074881814717981379390856783491681040494694677505796503313311092713041252083333403798406208782437986760004161004577190357345076165774676861380170098230109504168098415842538771810958023536315481092873279216226162198568367300411133084126745791971894701788696155950848020487652989108361753981814807195153865231403852497464193077400304636843265547569056424799759243869284742655299991591324872036643492563642371088193598830442524496887178399863776656395112774746072301446245449132742760147061214107515249878669436113868072850820245896641390649969580194192102664981477831560551164715958256789919356742672814993958654040123447011713990123744191943073095088898480352486470028682841210347903519218208075091760724104982949515437547487903824397499170454327104070361096909581542913684824253428786707970414487755010567573877457733102180131205197818102601284080915292745974352742075377893056963159404260507777262299855095409590380515457435923746612414991557786203060459262778683093644219979670512069233674277924303444699677471962207793762385685161095093988933612805156607011996752576577192583187800557909933551627897381531580627277889468413404378886703977933545646842195003360768842722853615894924001134973209781373428440325091052247485063390677343966709008517650256808857426065787520920492323851291493760798360423365038830917922193875131625046482449103100200550461355050159119436191066020162589748480182770786963006430942874264047241568531821210936683170263791759579522478777645626922901745931544897332989312767373493572570164885797427934479456402518000847913079646187153391210871915209746634065066491203602489169456655004667362046183505294236292606705401510265693657971291293183370213863812432058938926796519702306355020511394158376162708668703235648580649535372745295702404716692690378074130720881085726910600600877693599772757477796383698680966975971057720972461755757813337150256257871771806538111057200971084800134377815521381237761608206879638981402797809921310300655425097417072758127968810050540229727025393741525699808495627523478268866959804608954420295953957859411128888986909449925338839684240622280735862615502689297203726058638387511196104196896378560347215028271577439490030494128497132709898974883684950014757718039341527751455486120794948631661031059656372220457930000685826715247426598560083579922921405089653177479628056786779603047125602400495352141581273467773959244762621626883951609336040638923604426540380781693809716268667504577117836732365013941002456219332604479808956219089214688960003344884895856802309708786934114893686389123725359344632614708704038854727652610882347788036152085866497552201888191920777882383117824505174190688175275312150739905916973255597968943151132955783492361934934373376698859782921268403628117888958074488565672849922605851303980113409318270526595461424222441419125108570234326193101205168504478599730614966676882771853563374722212962618744287475363990792000218548224465675593467493425193354711444834512459244851470211319007926184290505359726089171521258358819070681972328166875731308070671373387189126838628944900563989794996790737871363129918515264140398502891876497687696819582147976704731104811088664487674052892330415489733636484731050306872726684945303966459565370820819490065691834528393050639982085080287295106158660192639364017743722229933986052613149464214095731314024608623689757279417174878894797868422505587334677500202713693921327866441051929272430781686224412642781211875254467276150714630121416959615659396945070263215561883376212138895528730140462156564158887254342807734565912961686917269998606282968113205105825915735811352344998472113718876721433608896482619500632578875660238672879397719347660570399406467253031316536792400852332034768977133738763203230413372877340751689857123211976078048416856473505240021584848858826785206755377359192956560894980278233388221772353979011850824323596105943759223072006820793834473617612963886669873376655167372912333155460722426071996104359627258157187374419062733993257763890116637513242525256590256746867804819189349203700404733679592881838755666266658479633961644068761502744645825485317859104568470245723593953316150153536232288016960186397120466443122020054449342614584003219887596292419176196438137382443333971499660306320188322230281270901045048141079507732924243195185005959123727747153978031930364806024855745090464048826735558595482528805575352133703458734987367433359513197499262748517217453762184494601547617650459974416850535127613196617461656590783433747635662680555415139410567291338020887808362064985065293337397601917811154436721943060572114936807634472521827133177098743975811300432575697335908849923057623052768612706720723923232603604268188519943116912009860954614660188163362214364906315309785700663461717444145913833990130526585116514227637155335259651081211982891120078006090952691743087493885922905026234300311030692797252812100967609024365899479897106306258567293233251314990797619812015718902780413688747250599026571998155599651284168236634819278438591508021034915670324798267845116277563558148206859692118224711942657694399258889151945788944946583828394978046419038207637895804891442566895216792772614629570576959866442118718353394933085039110595822656820320331577551851711321327312071913986833161111576034850086005800040362702366172633625248724321238815644321803292107430187229509232053196079086643664681237104768373055861944314707611553315609312679214455413999976974876697820037571280574771033636249440625144233475232736981759862679110983669756263239013594607857564852880160060986087567280142510706644981107139907271261591937405461574768153237955616799212757059166993643828012336599793886183371990647894897963072113571906461756494872027928767121640520352569775998763278910435369260520609378952118649565789668232486257413062373707448492330405738970656809523317393101832085697125442566812835628709269597964111809720261889927027760142036176179643299720620677322784164288032655007339013093774470014865450367013697506149396352648689882987921194137157822930653044242864009219446417709946754005922210745594371544983964937341718638952007486592146059750076462597815802727057893769140539826422079366503164694124265987214655500173357416525992123657659549990343392149662124019675333765027408535385146768765039659470032525105639302811213440294854622677294218047814379679135924150943141086967507852301612251964303502675840684224220855312841421859122462086749304424945747916907421720723618260614869205219942411636352582238687711350757130196129528432200789840507481310281361473324327757643921158989097699539994434499486265951506473590700283134841300470197635766381651569715740291983445384330264905857674938579079198551039909955108397037109269382687376902250880056269377589044486893152206162583056512882110038736854749038363325151976675385470641587062556396840920774429038283023467206680211165948281249209857479466268902896555402877161717525976492768252380598040342070524241032017893414404697196229204760304434502330974166530744840479381075646263743225718509583804875239563764939821311990953148608311022399897367874748032664363034964956316752307793960994435593189274349609207335917857576396491507467522589173112274038762822347507144276614572645555671593534245859904797751518186595542847885869511280963917851878244750051244972211155372900705926050880438703846486479610668785921389979973519626717303872468928044801020357381095390806925282574729761781726186359292127960863561737464706399600327812290056035427264584806175172498364498552156931579266500356539557148044200159852948163142794125446101112053710839472006917806653437075147304849588869214222905922759109546517880350651561450433422204030856449867161948177963150647605166352110583900478805437624626422076439886307107182456135569486589429089132088922355768702489956635263896028059024756418350957110020032996945728286070550489379325881191564471025511093267098243265645721232855137391623645126694990948542113241098478232047902459624070980009981748897526544278441057623627866977578994867806704070186097255621376179503031296487644724796017176765677326710591573447762168220965488780308253424498790359306184104541029654165100828193598375835150647910744539606158928482570166061539024481326513750648320917846858313193646944648800483729012269345266168113146568339888384848161714284157837791577783568120820722191322497730006058398990438929757514841568848702995503574356896750359277313416043886153905707846295063795441235118632400506740391825561849269007452906444255585012011895623982913335173419015974517901325948131407658906472531460655688070438352425216541194113313701753484383022229270259489217348412905766973717520110966025535775597745442482372298335004639874450351595157754463334501581262873836278471399591344190291289011389796980230724524014694671451428989309595843078078046524034002762558686230055437492000791060449964648124659684606403955593449497822753488994259520660084797819066579719785278427543078465332583445350553689395491294957162317010638107812430483506433800790182229885094062638786560090154362082622320529969366609499818260094597133289488639584539334998402839891559472557640443057567040953231839279106385781101695220703509903468053574557091897054792003935004342451035682553588596090021820763651340686633396187877951851712136966592791151804148433782565661428428860305966968085305318719531516139911686008164407297607146391144136085805572303223650364961736583940888455759517734600790849516826219936519038154594724412305666196228201536791846097283589562467680852954230692645402352201539258681386284233574482101249145242145516285098120762802740820383378288852086612851024186005796495830878927156390323203141304526030254075007136410787797086786271692585656058916645606283865823597884684286390662368712233250619702165211149328908000880711334219557993036247892825795311179224515109800633457268299648122864464733696514018037649610149666192356939560473380696139440636859282986813948971809685603784439419495460941286045993992437028160162094259442398152977741109944401807518080356592743891896880185201862585519685206366610960240225683662539523888148813442133258075076368082014046057886047151214993718047116594087415822207486279906588644031103396640278624426154659715245254230297755193529047819362416340217092488467619713712601176609145042755801902297367051303082756986994076617359241040697801150954180234436379928743852770815286958124530883346608433009422424157596411088790093607630801869810772169075435137871060174212794953329783448386728421543017502644551979178816872962151495614979521658321477035852945834781938109983857301572771395705045038652453593709499993090858069106941650636395732900786967198334295274953800340783504759969030817423232721531521048803510370249512903351485293865680848709471244091871490005708221559251646803211588891514052223202203457743178501204484649378722983745059710346189225166869683843143575442270077386430937484502581134735240016462490891375107799553565342874880890345651487239665382451804725897464441897010742004962062923574381951995860717308216089212525977099548508684518140127388965739848658880410190761198993664093264803226568739626045425978482199911955910337857537593802759196522920793818526369024295557262033266087250990643677773940630547204515376029351687248070036292389960082131510386982386836042187916332276912848162568028749243447811477394452924636296084299358402451617328451436072546322306231044267551153786796984810551130624045471146854323902611775851676567360429225924140810443788393625298606637794866179449954744338537085871314144376006166177918993912593419660620905301213858207192646789830707243267438050112430345159303898981746480570229480507427357006167575938555808302376130308910858920998790647934502216736050164120822857510153719409608677249912315211232983428489800207267320228487228895754090729641104484935942082157836059472925620752840547004440966129277655370929922100885478150718845239119697753168376003640678957459136240899592796928886360221970512783560562651611753556453122238242674342413315427786645633521423081367443979971976941943471415987204866043528428932623387531221082042210789167680749362572241254779464756489187493954586170152263965222126932413606447713909972690000470530997861938944010393050596395379943043413024770944413893903125906980756396008981172062639184644093960789746144152146580204688650552441107642104895365987355869461365829117382988086268187447569005548805073285976154234944263419481900291031516890443077370662757775030826599379840618906390236822481830074807111505294920773606475326167925214963912366488880419667923131176664073888294759094639269112937437194939775332283934064582311821213331547585210854941689354625959621880442476401627391434412367533492013308648948583391448897097400256420148167600712550806831280151534286641605553649512244838573556262440921916138555114482851458275148033034927310004466957710125768273762203573176791964187715590641907089047403755766504980368369197458185045496514739858257490343835470064431353630936738806940303298494120448975091940742873879478093543020958169333712247221663669627084461741883420093812218809354334763621612331308183200728804349481155120745052122832490963095614577399836701683819250437177803379896822051817207622346011353374219737331324577374364167643512261865089162851257417049666126908808450262949546759921050651747944828894761091601098843260774098264871472705971858477997404258427627018394300612514470411712152057688223926500996247711612487926768979259947774274280130236440636453172744668407908133848265292896169447366031730052642883049918870126172664457996225368371395887586865632859474023433103814129987273381215356477979392741676030047728617896092821801991190915022380087147174546885812337407866445375045924702527112179732528479427282610897286457762078221403828167585433256108440038287430218533287309527081526577338493576327204502614638751280943186499086207075167968763455941084170087362852011647454053167083249737091886029017956713249304965927186692468792209999315095531572509026179536548541536431556838004908151827942171183887240980787531405623122064351642746480371024374540334801956286396344309481370353696901827891833723548564925066573813665341441520203415553082040875579741685040483571294313115188070832284363128106770830005174906937043964504468265376763397026705114113986004322159525994827078455681230441059572017349405028680479381327921815899269851308054230097864874466071219438105894841964705583664897892037355654784348042435778541791588190648168329388672250144144369267709440801171726041947903338731769488077042205458220933547091798075354477365005531234863571451592052346077854755819957104458745850343313032094006671504441257430214450874169551744532983946071742758249171537075391549326837181302636730434801195678468343334642648618309835680008005909792504257681839834692303416772911374951742999332500922577882492109788819021855058461701239894915162220882498130046976580255775114483630278585811805743694567807649876631773511322640843754310944505731070049119720617390103847569038026212682211390077707947719236923773714526200614505282524882192003354090431767608943191783533642072099792766712268367819315841554991138600628432002382312908741398548822821699823682666746074980331392436687107296152783133272895231833116422497296414627935371552371390168395078993463297430897814500073730196410803748849883214771437781656031175065416709699073356114680490855691097766055140094638202255767767915848701372288115913755599700923994883236096050117474986666463600163196075008966295078192129359623362579704394057668689671839345562011228547421626167602264617242749333073000605157732992115463851714186512190728286281086310240066563152898537838440613058585474105349724855828305697734114918373286883238673850584181858415875782835531524969646099580372660797577019096264314142252699816692936499715213685161155273995600359197880245617835850660204624293877461579020316250331013678290215500893072658633606088531965123144606392882341369791454699615601305699052810885794333486491031772123638055220660399657615236027777532073978288809784431093478590456180488150912928028770563118845771029593122263757513638675058958147165651169336907222585869873219935602409138823115511660225998111950365833917087360973610183031441550268719080811655922400559620284752911597308798318004170167747476867351980737623610738934708557399346435587462649173646207061090335953686683921105945298060916039219958231905035218246456253859924380260350181438602838990976503464340024170184744096602385130679220188771671256177938912337356861028131707852725124280758824121660089932461614468150004428420265644590296909816882783152664469578062245560443698696856884712617611844356403643910728094990524907935084522515796072890314672931386179647358708786165160421753200316408524431591982618994267222945335150918755384625365004639611987638656215086397433362105837308526003816248701781287294644356524383886983333797379363720043025038680050377045144685518212037323001185257074283844253267344047666344465780603313644015727611249812016490900628200243472057297956838328542890048473580288442593573277569533027833303397776141022588561873723674891259003216488389207173630234478997558143540740897399914097207021796332943818041411211170093791389861692164974875462325045084790524398267717564584984013693855081638880594637054514862366487562820373965436059925787532258870712499861232093249854889919190612029059587533020471082841012239247524451618259248145661858182154210259875555991929942949850980061458908948886762593877319126163409453007699669266148694882810599311778546809891379315622103688972985598291790251336054871701136790725124469585786369828470492446272290396021055892886380451561613090541322326633103837826726318762334394225965351589794399249752067727486788203720505196193734005730211048888496537883042418245321605963256078947689468725422291679239951394003159226286036726357227662287354954853806076600991872624903201231268295948729220674532986688179192017359868539694332444602260495332820504448073165147471844331323210478072300837010487058839831366775337779193787509320360068641320463816153930051526784826583690500968662373036919585889918616843996702811375660056153158648204381247817949896959060390097629871235338971308277906267948707158220097457496481245784772592611168778292622516971785018882013291902818967966131676802166844755700321710949087119754676703745619597889057169828331247718699393013546409192214852620743683910385788906527897786020295007621626543055817245842078415891131172559464591082364862252060338847915932963194679462890954294119882247284217214866812384907127519312167529110067103165134649191971959778545350643205002097542998110923966489167428553835504104614260812375000968392862356979730213271402940315536315513580848977439616219298466914891619910632074962141117310322185590238438886141464809118212300425330159756447100378154299920559724298896865416930888537422923179860136522562167654925301688169838959715419957090188221250804496612438409536942687069134039175869852655942370982176798674220388665153901841915419828802106363051646845862386833751474942197183364957957051206411897860689288176409920907479122116992074582106141569514641276585745047439941055842688896496831761064363450209334114374427778226901849405221941331991380477205244024613435880256421687532728564121651279034763925815852253286133675129539909869536664503887312171921227798998793642024925522847165120009001900914700731197870324825791236792191938395664798554398262048604122552802025964081627732750860096490483224656151988578756497596734304448552904322495228765271808103189011903173626971514575350617816277149186174038771154499589622733280765035865380807211435279720737807417814193998213157816296093286839230822005460019261643555408342542339282862690001385734531269442332908692467164060689358070849914483756660175021570626675181716297926529330515077612546773536824133849313699237096362687488212821716338941408440455452841345004992247795506492702304219460333428927812009414209665118959125234722963088564865178426625776576247269476438022335721612454177731525385203535081516964351059134129241949079664817503922507180013197800777586318961778462466799541725081894140967602887588845920979453370573752096816794911394156638616631480768176749088628682117151785566948876232779907828516910692267784463279494227296039113696879288199013076923857320180591782043193675811826542848786155418836916352355366006655195216751923120321548745663372976497792064007794631529831013314883688969815866077368519789470274329338294909253455904920855986737079262436435254773820600270649735356661928075209347813080899428548873816588380585430595606107466859583689552015366711124181750292044603755127254799006938742283490392970624691928728044221398418809637955843435318356644312131009374045355567970791045916541035796957644526709568412163447905558037192127682512544834517274967035844207412922308320734384253504004060063245747422396233383754267676029630634501256596959562200731708260610087408563273630341558572919337059170203772311455183577452867151646147132013070600541071688616758986376711726596609515897728457457090069500684105688166833904299950491429900688909126145346453849337663853583881399890576269165439904123618319334211766723606964229606632579962639809383497780605479860113358337688090577652068406782869982121863767136537434542363322974229753149031712612469904761049138357175935168759833149304164425131288168273237160647253176000500480527055541939413613222854008399573239624698297380342918497222477473010789473777897659066569808063622390974360471583094223314238978321855493047600057984184307566273419292506132171246968356125620755396416937383734752972829531980138726647921965703954671017788562141994386127061676441911324880440110586081076847308981496149751221788670437946208732877589816681071487615081215681582880439472497359292301789238998997932305309941215515273013936006223693154447396029334764066436780493761217432632843599864111139417221723223458275008762715699399657788641421333917000710903617929084316671381960867566660619536402958638143471483333566724145886915701468821909864059304936282479657191543843074281280365130453199448605871629703967584011288236086551015372048104726771569529568384617362871076525584259548959992797577809244979102829433603083184189102067939583252070477085506400441610126545663185657448808916095551355767420891157682922660222514905653577479456698046776056548891238268876825595863920323708034869611030157871515120358341949715518095644210025223406819112775552996381361904263029595742964982374634729071499422107483540379799941587937223524021334083682166875303558221006216253018038574431322246850009940061065229905091912384390283943566449177369915282905059843860013520145151294129330523613762325072987759639498476777803372952220382984042260381659181258074156410499957860524186663858778148681501290472528727387141146227192515403620509918164670440860480896043473243916962452410114020869027346956074131675427429241853030220101030119390154714332049908674395569437195518879083588177362591945261767350469820180662167846795951971432956046252733852458958635377951621693556090969577024341656518972183302358976910900833893996775550369001539494329659414420050266123101638746095775350785178007056119927305313390237654519502115934586562136213973217174400161392659983392017332198607151802997453834831929135814234161986511617870798725631937335511241812174304277084993037894899988948856688171701581256158858396602286674529548314203202659481947750001459095272953332682789431845161117434255903546913714816813053004305917206756768616558741689543540906610472819670228427327371909043303309698791183520376289673453255248043577161651065950157700609183923807702820331338576630655923190521115901659075838452211251258624916510047563328213089844296389224496418102039018428456951104695560272577432596903989012669834272131618190168917092959128935303541209255656460202337992079928392489871651417039641475479759077073774467541409042700100148582941320614763193628122674628549874406057501475705517662353804510420628788851462086347999223584218412019822799520511150172834996314624166707362310699128337866704201403654559989363533378373110393213743829313726130867718031862857374009130497024013694782470198715293952760741749418451795448333966643380028423073537014356652907008364145206902073397621196085849756567602369620464519359835383072163536698012771394982495452609483989636790688912731409834361721053085835186183099926851458153199360599338606274828082820325318700462897161868484548787460843155642283285005773837550631719760660919624060566670858391439845715587723451592932039754529976845066214553550181974821248142723340701546402772265225266409949706532272743216343468300523611352947161302455789581888505090239280948278190491960631523118294888760078549040658591774785316328881220113154532165492741844973475328435447704399556253274411618360757095219828668505978908550748095741668097607149833364476188674338494568135623624655629437900387076988975992928057211490301016920489137428845182526980707621422764275343295365560341298289096439355901415060696298769253977822751452044536241233983334852173495577421288916875585075978248696070718991711224812518722495940819067052421188956820345779824465921556128802021972274425004150073009956508184055962529945702333241868605155516812609645389912918004619706544784527235560897080730943201211947164947607098093750001443750374850401700259811026170472854478352049968094750264166302064989411364716070340123049658824170326955736023274629774061650490075885173923764637919984221718105283799635888253355434408498796077193273992306140158342938715190378540068818979334814182524282435479213676961793414503302960198638675235330916472167743921745946296292440106595189998602060227357391387922418018484761391196403380040038819094490798375787517520883456469451356939669842482374930429325432499446057155492329543429034367593265195898028648331193168039757292591083456585033022854639695099985274062135102951758496190042768175911202379134157573690305907869647553332684826776044235120165060952102982110397438316270815662082845056596099462163953616595668336957631332584528250852608182793416686399727158290668876749127319763425933758758026027611767888680296716213578578824145443378093452809289005952469887820452964214885808706863180880491238452188890984946785621041574805606788304274924186021375886186297016841654166331218832069780262667069375472019681989598987687582326562237064169243249300697969586320141490429138965610303254510888001060375123784525108147411183987383293789367999667124418596388849652652081174108095428333650967279682554337661312900853773235664328168729176381316997977175150589112282112880371678582779752853317209550689317754898534192403894055511815637690145900401112463432069847159962440558863394841760028965540369553148675336112027575954954205718738267634472409863067033446973682223137892908364013041723984228626065425436562593020986192041191201278993573021757336245087243683224098185042125568654377042739430581851534812054919707639716423915224135244214355703253064523494193881001341098613548279334151503609669773242284736982586566813804465979383452639075025783523556285377815656061459011685813498489413005273341776758548946070721066030586370350522121432104981113810107968303771755343645255728764529770128452049840847254504601054622965707249907450454353525920281482661855225232882648135141679551388500851947936986817741841964956598731435993766580493602446571270508012238924967083707814235372951137934088021775231147778429239133277521170341107651388709896926256944604926202275363982728815576177563226112758013807552677976118643716816086598806365400687283092459091271438419532963346452015782438768216165649928544719407409582551336412524865716857676134693862872266146136299337761685299205075088484394009258525659344527678842028966972924172538198634973929885022834633617617650869092344333197061441114050077008191913476869849378156667602859898518350300523528299594233365414669559746607993182611940292146698168654658639752142768500258212616862417625936442259829946449279906239064307007727218116941591734088990013583905421626938656609966273988060860933537223127321167788533200026655896258877336349390817378738368686774944675683061417428850215869569990426366022730865489602104117307861396652895829656202614113410247655524154076221547111574298648669359634586580727747003760716007550614224318933929785800869416837610718090619450887043377241721199842956200813536285259661639311050276789734350346776485066529051195739774825023242812535584745713074237992310419557074792593501021555439797001905048114635215973012083913915031411140838031821104788866778937950111058511289076506369512855399443638934520218182418913879202684691214536707727193899638104307958776161697024926299406143287510374357272899907065877614681245729090584589908229702022069421604941024135552287976744627571203707112654999975427233964025372496820608437353500213240794527241633720424026387515231320726162605780137034982051041844018757340119446574039401451279638333165547243408633118399607632100965933538428478081008759791487995726860327506772806686958711250083770968772000451182655294898762762814769685445098660556794094139169933374601236904130843936634597218822789797901433665304814481789002170107139095752367122856293723724449878228925821474658490736400744307908263211748299298558119244166059832525220278354739183128192863672581463296018047253559985672686225075312044210152172951909336178663676121877449426419223279273066328866535998971020742028678148012326685878950523660939501862456733707020381194460269755950445650018555635736741701593322900984327336220524387463011681536664531489941200596736320475879644293932861059251737245881486902102299552344340067105126647809210214557299405136903967387440069432998120757870795854115798967956571396167179076502007512419454357523228034682499656630597944212899449530291084712503909571316077454563729212569714018709224178024080505265770088695665717931491211755167653905595457904264291852154602544653091590395482962612801946672725436967557124691085157103530630356628651302456389005097496714735094113769507968508688239282972956693114249569676345785351329281814943167612344782991271236940435997086971277146944825151878382213036972984021729616745227485091741869915311070499062018391858439019472432420321869791459992627366255073684137031555179120450087409163587516156157647711276559315784404370664484545675228565162932949279158103474924810204288635462487572993715706888654260483839297428461370361011456850073148627583626420943911043316493638629217168496644172235720873055299685888288984936917913881597950919489266404807156002797022013821871097216254464907849207232714822581476442803767195899993291332689559699870102640483696004313145999504057834123229242588580001007975559349280112444420466636005681409210614587572317614550300711172400664322009412104561152629310544055405705916089835617407217309602056519511291136107673705939481046708625012110668790364617125341834616487199798108639815670551924002912052632299152658855688435875652922969598190946346893415695744761426357474265375863532628169827610905315955722040284459256433053715305172355025598355965516766910261276029640580732079755563750706909680552613195405538919926669707474996462847001045682284028546905105163981154892606087150506965251370759975684174882136090262650047048676067856861931601289882291237390522973971384534486524879898850193597308638487467735924323436218006183663130662460608899767077452787539829465803754491218191998078261017383709340145372298731493148882901254969094755221317695677334598175674428300256619161281656238812210856575969384701665611201448602226027438213940077804700003868039324330012900653690219691038476638834591098081756825184997362451094941219802807545861315608751524201776084250280200271206369827195492770191671152206537502212474022802936018203797510776009909592480688417309080473800355736238278480198465025524864193806145169043613750527947563119877946198948959183967501337312588267315170805081570349585776175206395803943056733447733083437398530254367052886542947485205876269342492108773716067962699538821263034294564259359052720750643530031672802988500556860806621494206286416428539562473611016777876221515950612637649808952611891050425976821222931288025324349717348356582545817948342379509197023529087889167432724704411307928692967870322545129851649201091702091365859738747641915086166709092352288879267101963042358033495398438867211204752930430189066972855858314405913776672678480391142723743697644233180466622725565129476872197084965345018574394079486059741910102194179892494538211729564803637413727911466892130977418085963455945980232717619181523539560931922569268386698681933084405881994426636280787602940769347918144761445243728527975886768518633124436237018089963686860236899673957340086617001255486079703789578634320337463276801247827509972458795361247249299112808841756143553365620936007958944441769881035227846464508534331039756658772787573224565117050706336257225174783931555489860325796701654135951402494056307277168300325040578082671035677812455400530752134266683193710280835926963371720417335219898707544297235464069987504711858595958091765262426832893711451915135157981585320813432427364830545191028394137967776734415561162824921565888393805813994555724568993367615606503832138321905529907889847354964927968944800165664073499754742092759380212073726454606751358669908239349123336179096479256872853783426138142587550631521043870152983934744584794860421368393496995348449379733662432913648370404712110690530326083806844673312516183680239044388217885970621732928385152921202004017551909793784991014426039651621815834203257892574133108867416970237774386116150441422482229717872212716762003929627452841265208382973211652158530001514025739927547668907031357555639723749133748767070765215854062874115631321322866076964943719641696484517449300166749995172725042456900946667255076383850864790214748199860443986188515763563708810277817634135293900802482387674399876569057205986136663501614700785604868022950008869347284906094838613826922954735005800373233413926750175137792435995731862939217282180608885930396771364598931763543031524680367772769714194343746570783392489566991604751164357744577263675980857954972798759999325831069137904619913041140428231217933909951640735830400412609184740249513007097036480210974482851076943879832374365697181230507171551296167158278926383494587729204636126546254306723022724655469776338319485379221144325957367722160556017239871507827430781832349991680540078104591807224341715969241587587595655045376645743217218627521390079271284980409111622483483534470562971844872106115144864862353419106842540029536289403465653173728130220491136673927687794039039157678393753907962728316196588047567213337539910868066920017823606565017438520647995730186023652876247496105283296353159657467422440832833511620189035931773201452518808433978090293390811147055809351596513288672171111758372052421676279404620699567986244877187561249338619267507427054339640830874348746657835362383544741271502495908011842417228763292391604179881903475600642967018867386272292773741869955633366375105661410196932749147670717388471839516939360447876055595365040495591516404411805875400894779237906756090322342805914647683914187943297860858347143811343888657771335062478826204565451006323528957487400545012771338308772629073529226307706389353855564574811248208672525496155553022896477823169615904382947005391594358559132189571167269460860592607724940725920180224216861633253069842285930762084908481643965899783365366170673193917691525437373210600552462179747760507025348070600678882367522436529985346925876994828230974592698330919915412673400574834937668922775803736615080681798726214490930418681951239318166940264500592813060462841456003175225496495486688401936941421065634025854229533963888044269109559473459892196431539216119286652542765100620994398021255431950658898641727372925562459287387970693730229520237197768634700286768417281783563418035748065718906487705145837883392084824964452123862483283325033976529595133550435694592030518594307426225605696113447713161849014790351072314798921698907021579672112961349252164131251424106515761599222694531142949268647390834598332526680217341382605915731520271827700409965455407846561605454147136330717558252793742663284692488148342789192610970530350418727930097677247991967814516946366885881627376121536288527777629258118938815686484282308418844595399839578209888970687046460057033267748751401302347854651391892924921342956182703304182493170464331616789009288793354052101605758057481382495037036155002800884589768940409037554902187342681611857159228821209095729938143655965386404361050768048222138457921605675327641149387006385709915405098784890851652573001996141696028796926980386824688050559108831828382957198750844568581186826214396154484713807932726329149548019619077062650400104540244857241133189493846770623501268885789263800375624603512221663845846854993525406014152530190238395888721748734839879471616516904430385492722932196696735086813544680221262426368435087147633793284179951012023541883774117761864344164790284898770856782612378908529571564914157783496634155129446925526225685543309123725791507107886044248977541184350368976807492034771774893203675249480318355497544745937178291232072887607558688947526440138871058247990570138748133712431168689114409878059338817474563997257944896567325627414436793237351511793051844919670465147229237277090200068943792928792008940171060709975418402541604199288576389548309605761362781676932499805730894067917905612409487351542517665176132553503937108222507168425441104546911400457910403097136696778843926273651205858432594066307146375096626965911373932827754867299046049375233209673941397802742599299844861802920963193595774798222768613452138184903318710079428911633506975436036498158497122343168379289102772143146098384981997915210240786885797809673286137496465637883973668098514408227164611870812727945290368101117283144479797872688286547833881614744533152021667611768433022993458264449582778372551464144969969599351169895318760370713898299406512627955691029456653043687797006969318741932896362923718076913027967243365559987346763718246984573852999794690931435408614787221176908401156472073433981301778680099503007546409743196368891655819142366464765015828303875749459061652690396329507936072323805808309740963506532929494641755958567853865161788250062429460207452268833331286045538148960858297776026414531082696437475451242412483460448241458668242365608477803677079733671510833416966023402796175018733333419282029090363198262853131682713118330424053878065949017968970186716470122601376388061276851072706801059039704056999000936352912198221761820199534568254788364774889082435900185309960219309051220436081665683096533689451811369876996160951320152021413270245946122086369796213104550869137197150573723503780518117843753581968252746749553890844344182756650531058624567239230317823583824801358723746121316862435829408069572090837024378388067305845399565219371831182953834425776259884678229398959743025425230093312282469347106866235049245685619694253749315293125185979296461869588744349609197123040335363709803412601122293984419044528611114487608407363369162627131387710496647208926590855018585640976192437985391571133856343561815661454023632591865423039844968798924824384503595295478544486062977998434870836257730151231407170726218504480996757904664540543313226520449848412767579074048125801040567989783404719806686156617560746037515718486342909623733784152287996750012277777110279340293720821594915602664121619247627909922522632862766035819224721476364147048548236250720162884186193603415673272756441826987044071583153340631714108332610287145359805149562274989777771939779106880554604710271864303693804496978977752317109543109757387959348929318603798123536078541032195236635972133454894662501101385317341375228281605827228712389840700173834735130970337368766508288481968208359400486387805719531392045035848102049050287931652233902152687011638314872229258147449259722345768022973967591967342962321569574246592880739436902575793753022376509628379911200406581986981687052160313043772455048353812371507600042993992624742292837457879581861382358286210807346155950256112075655056785610887528178920912453003191190229114071369549822743454655454037772127341987289734179816794876426918610800194634268494345112721149324139143456295539255054754611786470400210389338980485551005124093099693677532596522796007580986490391415370690023251241599123921219031826678434867952814376507344865569929391451567927033288013805689211927546346561220269146498384173400642073904965398699027541789647780477877770881101892028737451982154110561594647108627053048152254674583394030066370172103483321377729794249768673720665336336914891510851693585194692277545665540320557584654320093734084173027473957365841788156938757063695648707170479969840644608589035889506398626087684727815753200797225273959795686483278848644738350758546420644866780757544832031401028680264738409585723471551741809191041806863269665702124331090617971746186992722639848755959114241972978869947067269579739024560610808245528148670987638418606678347382093860511763439154982410625289084789827123964316166614933691468060717560336896771377689442593344875170152014605698814297108727010560017656147566528662866551571103414223745894767802993008799306374305930135520152786369708022858223560553284768960852896876312444881786655011787113293290946793076219880435778244722734114192364310080136663884825775835128172867305186576337795345501841616863943718817738514198074987196262328996958665194769524452001538144910377175215589430718748609054514132214155561232934986684273934701793140987717057798349786783573428432393346856474371823618400468986370835116018201240209158542413788992216191476851807337299231514283019904472032653526618698185769349111758281086177035229530687280817526416376542112890001111706632682718960762433923757193939854903380710330170588129402879531442877160231176557324375787198147622556687508313078432932207405481490124554856937028073004542533507363264096087238178452665818232316039816940320390071265240057551943880839726355132827767975104512629699188126218535325484338735518784282566068610874283113628727325508729461721450162049410979926987400639386854039496670922137353533462032186664977942632592659990633886304968199015003819876786185434600066538125793772138667042124694897927597714110048198341285350859726907185753344784414170663495134356096601130297000221186873600866275893286541283473509216618008699531948075096567950826683866568272267512581643244235442077267429407801039000548801244531054636945914608626322950603857844358983786525008990909496176507745225489564492145965140805482173566364237719013860047158876906092682984263657911298501865383797522178173630693641634780066776921390597466895774428329186772287939887707905999331066565396897886954071246178369758725188600811828183247638717241555693693954817547503581780995369099732886587027700592525749996959659468570173850286536637345140581994387313763723981905906521623051512381724098958346138997069572509398423693905926049682017924574373792654492996411107773730086293275793407223301207979686204129139037593232622463071714075317374137418107696056334398873550437839024568826489872489929459058385315278956032462415347588518726882205402396605980341370403948790426411536432065568253941284744082536693107319150413843816672755849820778553563606399385798067842141585791418232652957985016891266475769185714985596495513998245106486725212988230008890189397170100266738784357962503956275253505202486233171008878995525017464102268028442257946961372645260508740241259763347665392595560654493388060475975287241849933560908686238129410250337905956486496915065064515410667842135900613139521652122179082848877701147240887802005187515763457426952734950057448748255393774559794886272703241811236936101516779642007465894274432523213138627894370721188831850406773828030324651721874964963241336418572064950797982782705241734503028897438237546624523459593677354762170200711680233636600515257446301498187508333393898494510660893085064219816608590669315706701063585204980222305071449469137402257826348809121154180247202368514736879588550398135789024761501338993967491239893932425006756573067579013910170204714083631078249291262496994464631297483510247153427449759901457055313762657134412903150377720590614319615089750126200862077715839191314913985437734925759189656549511561814130676261187284097488898561888908313728037666376612554916867234986984289584115602894689595301404602497751789572928549682923142384627033487221232899194802707034960462346967078969524970137088893830650491443136105650077371581340340655218040423088931029182207933025482914059594630789679427478039710667693813626837698949619731879462995865122232864227249857316863736241933730965592841911011448784412624088397788356612783895846996004953568296748930186180674971154075148084755187324149063989598746376101902295394145609253319146477265505477071978582055948110535545335194022529244565620690596498183721455752486993680594796790378601135770918435069386853928069838056679675631653033071771775201838584778184582968726204338998426290944648380621279452434584280485945125973589220230645859531824139390549059955239935465892891571010961020793275748460568297408469059011032400614108234360837484965337542793108940659605311761267345207956316164035448384437442222931353537440342619389399572575297411348998004169306236718376069881211991162291300447194441119571500335306141556401306488770327998360623793795637876900879306420157649405791734478945380159158941930410072421782657220308094013994455863262575331769319308030950354265437227657649517691454415976745575324138294753123437360824290172355824809963936733435690930571168234792855425012638025948291976856755191430108865486695489658908708360767859850427134513531374226308471265632738477674673146483834639162260989354975311260075133619245613748850107887388697614572986879935504939587539098717065280096100887408221138131861942578582417825696238633547131055484282944160791364154261217541301341177113951336589911414792649296970392702646295069648964410633909339453199995109915814321807052893213485934502746590525554493406489563812534816837136936829227642490463819962140477853582573924648080619783221116622153286041488845189041168904861908351731109142518273926967941970660211513829991998620142356315096358209700023337954986790032753207205532565642556338645078425198021720729773226310730441025007017767880451056448854557063245478941960936810649672731750289400172055862644004208600463683354467053893308514866054163236111796188507559065913847198001573771694741694875620010606063245777347301693094358745509784801431611495777895414253742598556963811299199324219997324571598988520544805064432918528335314200678482640286381962421001623794613695658383122879609404146149226496365770627406819147171916580051162282298788748557885817934304370734289570585125422530863805924944785405859984005133517330587732675778629109764650994894960890426323503928678924065517250326665344120485365745193710718089187629547154501496921543187886183623398487548106089832952831300398418209635906563790295172773321617503569357205328122687332092825897669025754782592351621533630278757991072323580956808668633129387163381107166218687500156716950899977392085746665633490289830220386909314885594712865993600069975474028220097244598401655788438448033124171813571726520405647018071320568505122292284686649565134662695765015891712014833514143783487194817648608974964912256452371573848379692274175645610892369288745974326628386537486759943819514475904946619284849960286081281144649696386998134641309205493737560546375578297081300607392390403061287589507000904638462252104574325179923107079464233167051222265144165312005263031887734827956179806551152493457099762369288965048469548822631221834803862449113071656028239878909490881660614614752182829904909430758427250657644232424818731346984362309946570323208495278982329921098048677460230403989937037614184392025654097104439255806196128856699081802574119623194747281522357529519405400612945342880172574736328681242442139884444926315398521295521063941747047084055773370283471577447516933396514045684692064605792152106534975734731490054034980474036762465891930861583585099284661038373429216394433779335760688171181180237467035060252531422631691987824971977115554812210256601624529685323705870286802809373861311695987467588849621175563391440290347894871974259088934104975516920488201145282922550916687451569432501440801564819441700277444373648771421431333295553317901364684841262729945104435335315636864180978771529934560034075699223105443294508392043259832899771367402187177645248460876846039145505622471116073049908284405065364037657033112716055844719482626259296763419358373322723686563210310009673149718223021605381084987086169378761734588779830189334513637175850160734163443007860605163300755073898220994649924118732632478967309928527016419696668154691105789438644624370136765301103589438959719291442582284978053804152979434819159249562346024911964514917038813461105046671518745900006001805953580567204088429539054750234412656549134896702395417176453186167217130367906462827117189036089553949422856949462725972092193594723533972922965027881369889662005668386482050434964004337255054375975016851236615082872171164070460680536923819330171005942721228860408690403603359103358214155819242678761678337899876478074945043034469022422601018284938215684611330641281528028697707079034603328713575983044831452588212134405550961083299378347262959389444935966388899156405760067538329520861227882808263205680206430523630248355720441753056654451112847808816385236661899745015625528687259803720201821459363502342272359248269175839045289392864841764550245448748284711022888989964294103655383939716927180681099489131100885668252010702941378982056868099089261097243269377201592609508807068639434732786579607571030578028037563786260563804842471529133949157173862198932083305185369661787525086677390996490916501383505703603909295266964295404821824433972057323185811706344398004794973598560599981300496909602658024943655237443796003773845141968559180322035982197840076108400857889850449911304670797688724896840352184290762111343935095972993041556536258239132269750768288333630123512872809533878361986083357764470697189854369935218878452527730205050752988439250280914593801690618341362608865856014548783484362713853711889849166197122209074447165185358598678177918488701220213390067468892644479604113277026793931093328170325997404397915446726833422201039878181723336771331992202023777461775382302350852422279055130842035604857826277565098410234083988485304974231203592815966830322564149777112145988946280606236248198180934468800097701311895216519674413659850781535402447624421136706676795672452598091274900079648317977517360420020106955027974235393319371955180710173651610558436462599947112343919389031030627774201120685292642463741762820981050009889094388073686420628751084467035860916598219800964886633934699852846926732956126405801557771206381128732819439315573985078252171012628748997411090527113209947406314207057989801918187771945670010038166115078989161417245581770116776225630274836867934617710360876376942459536150500403348775297816943350938613572884447469324006234941926051258486719328319689906661835423962301606520903698137195950367130398037521603824690986693484172478494256036505307557095191112824272363622218575015833066100005868784200706010831053402513541559125318475987433855692494213899681645453321273629542385597135035622329254242251565592105534387886543300847817997442491658127411165721571862043254022265855210428476003344623252842157073214070514988484292547386044046480141248519992302360988653756607626609606231409249733038593579905980446900315198298510045530362283146261059308815154676432072968284562252425422062920776154595636302588993807779156290710808554216167731330629810748123326581610582742554951050542214786165642382357704471265674596724841784355601762859845847300535030308125952108987394224401625055462742098335209328773894462642222986608773872199223982180578893794330866131501821550599396780153908322089492727083478445608381593412196643354548723106497946955892914104734854760531653232787369056397121592182367257191628598324318879503268908790051989549722858073712106910092141857687696733870304610800297063462241063638112652993483856741859318945824169497435695602786871738544319798393134867237894342855369660660629853304727484216396303232782515865261512329080576658756390830073329195728461920685284789241655297680157507013327715588099576517987213541135091453730128112847981354366292335554063745809451533484964013096087174821485075366410380331353529424582720450355703984755961431294242477030486081552684536301762130553790119067502380629622743855690950657366647016791854368757262301022166544749834232989360123237038866323547710925167239427198032401239770256719738640534048264996538530246829830777352946144343101414260990134241690761452191410132495228682734341288009180032400649693560426189650623299548860754229656128024951313106715047774024433010921962723416861037971019647194362777623400562961069277527107332380190067894474734391537152461915012001298126707729726828486494448943978979662081208336192438223649855102905759942520492519699251670936111124934595574913135434723427673218542882022584681499782134480149982159688235970609923881286664422303970339058192329545543781140535576928428275264046872163490102689395458545083189610488874240951779272029321680229112976146325566120462756745212467357942178002315872475432275722939004655606087412943900706218310229505830958883346145740063693723595643606258250566791348474905318339147408954890328885827506940349243461812205622328712651674390169194264999787498398578974193227004741342410292830558890580034254325074689634348044910986070225359355868047297539748117296174800390097298170407289605564488530703596969248997672119726226549184134656488263625766934653365244915603892176292364798800917505067779538162376952009103961285594308630837953182113517691992322231097206355394579470870689969626144620431797094604841977810391595037103385722822479379708070765160780267070917824283298349819902455352845507856412037418938998518448819810016851084675152364978472127171151846129338144397470543628646806306923865746048671015900917213322997092967366366468071470620500578657222075906935163587077610116078672729907189522734733587175930589893113913388215605302733799444705953341512808771078844465108955938181252233727488672585748538495518280046496705585395998140074249095301284812817214378277302656691604861380254740382216834198527154094162470337234132959153518005575352450177793216891780520457041064175766095105172759098693871703438128378274098620536946441386654380936915752439448236030135825840168721660283417962741342159469345425685110722893472773206814188970467716828653317386020132936355704858198750489431797635102749458975483543056443938285257265794350190552867375160360114134366226245296272939243069509010121182291108091271576340165889716042056544030844240379285831032138111127163890699615802715478940616339998546991875540019733687531509994026111169898327663993118251688013113661577796399971473733470117731814841271739172422969302261112546893494061503347713397414704281668260925596353123306807638895410621388934057766603537977618257115840920848133480506600981527519532732501865044178793276224550766958705472629189194971012265794525052126137552385755821238526895964563138714607147599006289780161397966793058504163274714277306458091993890597813818693210556958920864019868081865095230240523972064576266176810366727830725984091375852203413260531292220883762652071900914435843672462406549542829416861423286488067867670029381786480142705038912379732219398690738545041553854784915318711052607357185996704674945523074035000792658520160388933386935495327850215799781128497655677026231184364710981592832051691167905800302135614048309323011079474609980804405421122429211982941304193364426048738718025214911246984235741952322938069150671034542267302880229250286135027081518693185686904135987975164627014525684892024631860062170900126934832802148536869430089351979058728512121947167799729641623155067566330280135057811114163469091844968707826997153937728011218231042275293690779560796515228410832283714972816971350400401650028397228941802720949749456224461062420700824371943400531028914552749540085665356337374024608954048824782115539531082699692798750149053295332206898659962880390688063957998853059536122969489059074715891783533071228223769677977323416709703675983430366056161821009705526785258507317875720239416669807050402180882986998753031834414376014458662476772063297954964137414769376326440152640283567770104789167463217557438660313144245523016270575367154553385419492228645122669626917158257190628102488793709615554364364727696197970736981424385040075686522722629238203502936830344299336237769417252563968525224642379821431082645221304807324062444376535872244269690669746801836624265544858027729583051324935629533533159447707895685414862791920512299123103275479050451361714672690891709885042052740295460401087163216933663828437410352136862928226879859212766852502674758396366446031217850012864046384501181317400803005777148675808256346043176357560080715195748052360844413671338723482566128269618592056267540714611072443068466389608611822655266233756850231507943280779687982407707430889411268984274203582873860543862403391452009914018340164583012482711898666127754160714111927534559079667624525109301770615560129583252728779678045778359324663432172517754266846404853363867998079905857116409741428982577928211942856360559012844547266109452865188435193518928680972374630134256698435196730137549229400613607830550580399172308136469578473884015066683444475667674379424132065644386688450111200930547108691982356126958461229259620180352628626824286089119007139839658522361954489376069254948599039203773414063507850671010898241007049952301033291151538127388332224784487427944333802834533355326379502705616649815368082730348960022783206727272151195596139509377099368471227685393123185904207035436345088548368754925158944930203702659364090844079128593866370846109287996722101112508134786621708045730704436691114532653418809453075083841289770953793570648763203833022622477250331321409026105105225348660276471967017843285080342287111804526804595085364738827480219958976035078270985422227998054014513882475224863299329570761661628131475817801273315993647784231443090438478463637846583961436293385092848553420639619572772271862922088604938574641654623353009863258522238553784813133375952418959066138852655878970648723498713503219945431649130757426726240705075832704333049198223412306712581346329234549305504911539141847954516091083591497942175404376799398057425447585744775178506142803824313870667995019962324720511817415834677620997901622537463995131251421764180687834460416629219511003879230566627593440061916935949238766070837484056820845551836684470232514144602909561664842454989742741479940980763582792036665079369073758756777412619474243191951707015294115531683017338769948780636374829782188398268514911900765803474411267619956054960275346259532187592314633218158401782739382972581330834064550221390863426943237535244698855073632928173712629687773337626324686591293113662268304147506074837873026333560474293953502851699519648585062604079395136573177230440688436487738652524688819660248938235891632323622363287895722412988749759722672031482800598138685802949580881375839521337591379676235274470599627701018737649580180180095849569448432650108386162696740275326444506020375008529158899299777154584452357175015206117176919562220224813399636661965542396506682769259419851211473659341620552980332550504135985836339685650940307501064116476318245681088551679875019002009666428293838393286088088931409020325967540072741059827746067418778806583513142325747652142136949225358893157825729838854955489390584534082936788366438422615850660843152056678521677386128698108731353112616452785615314415068086334510621180634690683113158065221864241964783341308072646845303686282419966370931330207589894414127938738473869361553267499971106836107295731973794092288963984230188971799458377566050737232498724196444595559310098912031660964937471738564232762990306039348689811173764539101228635476689741878669066304135559617539203281611669832146500870625010803052104917287296550468300072382344094849787538361809355690016940894078187602965457264272945966579053380673897564388344651108260017732252616825619042897051123800993303526460199404670074496496184029007142529393426492495985740923659538615317149589819903885765173513017638795730866356108202801459880756381284780611843942255082133688636316369251779552912345112122481350094607896237414395344084885029423845308167750633317319900128788594842319087530760570432397582307417377747127645277573867233073863418126539635529468594586711292713487194160150709727919438747728479530529547559651928528223131612655506978126740448060421236315230362194104204756493542717420605942997051076661519328665046294238752005764166721608065316671952258594848347858883963850242800858360397110091891538130850838227593248764614094883046924370641251179226035988581065297651430869272519612480064580053137173056865426336486028386709995976197612103329351207629033083683638043406207228860411769876349562396226440859726881698708748878755624151956122480449891667325470159790154048269666594773445131304347873261175869769339542764382951531075534968037506548327920881113071259923505944973931817001211708935700902547067210364718864420290677848928336497972098145932824770150584494216514850440681676850138794100525700646008727523350709198477878218194875695427585037074948563601663087198505731172493939232279589066386496305289493761946624384999973358390340708552805109515862245721529302817410364671010579145643398174614719898309579471927131028979523592931217100051609416772381824235651549762895334940205875802676354207090796106994491256504048587077662448742384009736023352451901268852297238641935570654562120044073298882927216879102400303832934125695447731378452736481625145694502544394426636482171663394321973844098135312288971935174733485018316032601101224663870718743708330017899900349327063461985917587994447880915469354848642210563375901361176407792414809137084886385976995871081349192706385384499270507955483303628916698401562961929047595683709104544585539880424957460573637156741931621449686544669433779494010275718147504834410300966957458676677738608846049759769423162688452442543056910364529471257922966346206596173362934952926231963579949611013230260490370529555904537716277008036406010083068243782409771368474308944600780933615178531357618799233940000752016552398672056709853259246011612652405519581692741460057533328936067288250010569542718474863666834446957122238728130149530864777733162128720397422813045474611770099915403529141443011103094508283359421933812529263421337869806684054145284882096807500492395934561501504545720795853367004597683112076306987457727452174191206376976050584758706992336159023174875191163623057563874253078358167125995283937547937227972104828905589322622788341347873180281201932262696961980638115576288943403518703885322033802799591908914240026781376966440343333747433638923471012594514647037665307615644293841227644390004213367782056660018761331279891671985572015256645626300440230254586067221930354606647393576780171732093847781778621457278254849387928744582486333200428831671239748527887873345313074533353049362093528347413054470002844194338394489177614465072313033264392197081835865375346389112966032770065457083202549950436369040215981875773048613350172750200200443421845414824510269853704843748671147434012512915211695770883685414657305420098906301677226052024630363196398562415593240950027423465778159567886027385178282912683495737572446440494066810147067837411554414774754527879796149334559404183936622282635878612459851068040799914637716509983255265621101538964781913546666715424718002970649954994077387485632134481703328477113057808133093973980129134536782789726899967075682256273852842607600528665378728152290014786673973637284720549410331405057919070568292408349621371837670463431608136557020906839743791530558639844190233956118061536261378692469477428040243600670148817242287294471429391969390773679599937723509177956048502240670501890682018318627802972559518105412906588293404187670864567760757587269293512703490972598121226246705032561352290562000872204601009249874453458914860066649386531123858576678679793008367299865332025295077604759717169887151601389802324281338023749345641893244112330461707019827912706818942279655558418748260689010853225966594972305239825722635140664583714856178238832681850852508144633784017638963209532489881609044786872127386352499563702831273577782433974985621738074222891582742258172317694225928760334738701283415099154331476993658556291202548557836875206944136892183865499343096887157132858684812163174228208733728815645871340735369500827754045606990741269746446736767100750339001093926355139312608868183595288295181372920890210953160586753269231391358195347966687984227115480585746055241395630772000148576399866188156301960321295755061642118237681717738307859214401610676053018926485195614642651874424809614779864540334531311138359223986325277536440765852903377181960467618560767962198879059738831031615501319747996532492726699399461365645470035680766926525924949565662410619604402056872032305666550245618112385459021018636507471989599218804032062431622857129758565000059509865054846289755459773355502047116663849138687689900160113475862148561310502387959592949681853396773267642858245594492543816489919339777810295076039926109977410345563460956085469984062019972329183115131254771448582614431104353370583406574459195237388773985216071538074606816797857173694488624701900243827366804409455622793145354097595666019378991214261599010665126602264682853090022436539980703793444110322326790956744427194793887595655040003766990596484193721272864394163866512608305186526938848939478133594999695832687905701368621589658741331808708328079175475778566155997115702184639187064545420422538511575302234600618374388088650123459362935976798274871228495567553375138173892549373165148873148265809794455619719377902964796535949296946045776646913978297423675384823895513754608099242748694364880925082930074413783310983141515381241363124887281588924287481294341627701196237167297542396191717390293762762475253372556151268237478377091305651495139524323239624231409500103896966683222148461978398890671244423846830782829158223635625562778867825714348110219737570227396372392503614771433361804318475511930038694532458405002772042699522323562113661181360702624624616294226253362631937815937472060458277359836013765590237990024154086164904783415943439191708362483536750441924597052959754316064750448883687256586078795795736361191585840123076391094143465888081492574713936412189607951585347391215107733883533224125287064548422303559085367770832941660515059722637274389442625548041949693000872717009574869160173666648546960592100807359757859605321471627869897080288773355684231349935974330246653756118990131118526539117309058524685112448089257963978434324470682882765859927019671776740366674396521812460420202879537121202438761253410320216469214997169394804395446457335590500875914126352211777430995343992499922379125977227928357530772267453889128815751836445685276458579814355254253739640135435817671471957525916711022302009633418063507062647347831447001053853359989415336747663134577394218652368346421621274197481583770079599784263488177752627147705068587507085603907196429599959576373312779228215827698459704697241629391667613505044462003431315294269125882315263003110305537870405505016821567885024993052886063190878923302493110483911981379650592470350085336488266913172935030767461846150106596792577214077443215950706813753473403046736698930209182499913584370118104704158816112731499570423292346960926424522977524880404890339118720643325399501400494566136104275265020280710973914101058569235938159490817160546659478212122233615921662068018485319361966800148293518567500138288864715907831203207418401081427474469245432587399947238122568485690178125049641200523639241564979380131097132669205263441981589187810045275352654817761258748435562895940175195546896187026598910781617710102453994593121387681381576066763719163791134145822173816667389070686537237704343402285317337631778341606404448252546136567979130997206541861510373103703117196162190078289387720359832601429431755552761729506389858401737394162269549779805967883212947164581553755646924692639530224930867714152966219921258000933325701761676756549040950180387083924282113878118589169949935783823441133858064210461346362751138465903088586454870609502125203822207906695000553063394154963140903839493827190091772443598085480304416917880692117912945141956519288284272269869463508911727871025523879380044632360783642813229096617654216886723605525666326678104415615668574430814795969077575567888889274902072391925667952746323923742604367891395170785969255381121186541917885157856464044301139082433834607673896931947215448085404766512939941299302457809261010404878294785445751709601013736366833950244259915708478080157277512267203022039709110544530897210347556764368496336388480732552813744017125701432762136423199463661065837497865405810549008499175001832129214267304910026019650643996061426450647147952694249965357283891765297082747523871106297937880610850344011546430990426812051646831900091635136382945162439542514975358483832099513017968172851175878776485565709771062801500346618712421714597751264950385402107020463248491956368994813391650723099177500868693345906848894390261257905719131929555154001631747311661306763156152466997183407329842584695799375306305386722604704451845292432582706337710912688049708378793343167284369549851190594370849330763353212148806918421637435513961991031920790912381320893031905866172911711728173220943318830924169136381162377285351710442452965619644279004936703572435780811886991013682423328830340460313049553142403692856077851452832921188878943707004872647335181995701178035763535546419099921124892727990675404764771291644878480636389227936361743481624224357105255578679693321209668687824105779357952620914531187040673541899895446015380303020133484790905542587998538936257686685372787064665177480577568423914404299120538125134509377980367609022456947776508132812011575530081788243074427468944408611736339257983112526783085589197265912510245728153318407658504296660042029712233332547955668314711909222464031865189260063881587673029417489098386736962434172308526675522300439331456794583301955082187621834426107677116574381104218491351696675829521930685626049784511698448292381893710465936686773553385383501539567872251599566639044238978065255094923826109211825811394250448923232222527420495168563551476148217357882962752796541563275246988677256644758537477957725876959104816273009918156793975964832060315497034497757601768654043942768915182993509931206076730526040063972606839190589664618183224339139773569944860547951513066181399519537951243349256621403349340323156289346364891352077054393473058287884241949915671354946146200597417057673732710561946672993442562591093577509474587642637341431568283141239551905989097749336853809091244797762698682516825299487044122781502153392843068542724000960056585195932329627069208838806527883478879249842278833846237185621932638539680158537818486003842886849952965602868814055465766435189166195620799440925865822935911176773275590257633056140388861824159641607368509322165542180118206281662582041798829341054123867678224365548224951548854461348524277420245187740853049101812515872564892647445741932760419259898610092016455779484916588085007460436536658548560284682657134009807119380334155802331471200886322291421729045711463743322338571229059952053549393565181155717681905139381428892652291173213040575413408708105526016542886892468209775558567272033634114632596555745634353854427624263822021025100261282243919977320748050838546376843271188691244277983686903634020276915733800360536705049002339538406948963064374642278351177715217268512332870073287063586602505278806914344853341853000002222047251160791483841237540979329149496841362679040374515015532749930736605423455248022639688730829886606846154376798481050832296971126430637825005634927211300149762205052276165927390201751914943100548599129299792692390652980461259872142253365479109820787010404379207979998073980112260684433110440752833376502347322250354191831250387864565073923586494085068575427267210022561537362737670938333724119880953751769928738263263481286809050359341691578553069269666414962375543783185885109953728558681839308261873680270973673209020938584419082745287245548754517284435824192479270381896928557447758828714588712327350128579415454837480413041767087713506299787083347286032330046939189833056426950092163534581033200471324842459391539269887525276063593240219171095617205641574609485811197913431884208092125232934440690252677540068404410121046633734590922998230823863074062281379437845280831418092222623000376123974168796679323955289673112800720718012320934469145202739244875313653435682798391522013520494692514088135097963055067319470528089063926408026309814549012980343854677915691498433970744857654906579157261488822848926396412073332630982248970329144574297586113470245696901389792026528932165839371131465525987203430850462161306468453037523513482256798043787775498250136278499613859612039724894061379263923424515947892789975893863257544343429375396093583169959745616695451720102577671290396333641992251943811837709156588479098665103477250609846975652302467649432778139537525439376605158238383963236289103630446588004038326589605345904249669943759060872818182137811437961154127295274362436401367782261561025471012356556270200151171545059009483542128758956980424707050042558939602646165603694073179448647269123619262456170758064698495990497876450150108175908020445930821763216841258641439155895159029549896724993792806305926582591219617345723365120489454094216312314293813987549850853423069936681932449482349433339788539378550891638264909111494809724356086978663452925833223747526734367859991780588818100780517492100975542843480926661536441915024488983653831275367939477930625075878873048234288335671518067225032986458464433311934107098023279315383511952072206532789599403457100143187364547737448800837504122340313047900185657110288363724084564798834503724200880375076190505717032708272857373041545605133575360452652659392163779081004912667464254410870020226832826151055028747389892537979631759389702038055274328689702096776596014588951117433121988946302347964534244623862449594628895306962375989046812642175496804625386455104459029376929996512640216706325414205172779967725570290044632446413621930533487829074489129636867908541352404393758072659589708670392407156553561470466952783390844599975992534568859397334622108285855912382560174243691299252192894498679892787211552892046260349161515257699930131101262692565580634894626193069617444421666959397830926467493700774797247206925719597037772214195703502148355293528278756094609409361740212601227295158919651102592823193720899956210188306715374544752104627236869185337445493510725250844986865464073023116288280063888831856657482560430378040630448062788930093447716999691760346832684076004110343753198651535840599627843117491631433441092545682040498601559757188470340218625451545730253654502816249051382787170718650485738242551112414551988009181616857022739897875759912756801432370777564680399089843147001449571276457776522192650664614701900738975408520150483801721496315053279908345701463350431779083016245153603655732946701554022980641117420305341358562870042780228763685640262221269968901586233905439560915173437132033092813078501267123515075715580490974355076847471376664166418919840223291511845075048927438757101161808164865829071551967036915831618979702531962769608421738236892361738566270267596740086445931148471933965724469334987015061752456352956395407190622693649060684125320221190420095140134377361748569599886328106944197503621957234858515290238756621012209224469115933344177704484897873404136915919917910980872162847390485801738075924718115627612408857937174002838185648969571722514581933866801161105405984873552296961392977705525987835305370488400338137670996902501973474516788385117687496272147532448107439823410029389534110230153546527974842668053105991032185277310583446319310701705191824632413590557430976546453184101585350929544016529420230435297126690349840548379148346407876926087171304248415264714554966835522534093715676999184033174961515815782774100994808618651170553376658046392858014096153334350257843552895817771875176959943008464520890306306251396202974600184395030293475331572143451780716888609680937129143729519152021843142557989685868338361786150076227099424208673997074604106788075282539115487871152256345033043106320531513744414879553490501896336883086385000380172395271407451550672592912230547174311774251157360654506608568921627650110083580784974555013769858165306964746406853203121085325417422689825675130333510077100386152520318599670147961317441405894536014387689640062312745643378567991466993911592479665988735547282370089125093774361277482478948262976172534063285164840146553612553680176091672945719152063338782239237685403762864688604834431821230809003367365643661284674943586639657714363839890805169113586540050946219494957868641686661346184398102560474908463866801609589177542950633274328543927231358427307518109128767654947579203105447177678001241891063493606954833504462799813975750121758748696589682062275322285335080064207356716181463486883870305332588423578293815221695604151885842855010245498254026025328371225125615287567536455144681436437002747217577033353422916938596220388601735011860420017869967607077438298716850394160341099368746326335648485341329806058750777012448700902870109738902648406982809248330750677186992757899064467650665497944039704014966116042598202908761856646489969733556894354140346147052633995097429052152268184869415969628619468266842320024071520151081283613965805661807605806568933886907858897783745931623660795842605798969750866657966784736220506673909849064117288572246188663569235452471243288600168481470115190729950879757861999401237642279349283921092723868733004890420783798111851248566197909374825247712123504435382826045600068667752951601103994438593664545035394585017099214455234712865072434746374042504562290679866635327140561756224869367313691700000280703528833089152233470032459706076447518944611686879482450514853635488989277647675930572971018895802118609745874950984544436493676152231187336030035295566121118465459292855457361404558821363231622962564846993428262307432319003546279980330101309372656666357240715719515068666611037403509450960494923359704210393002280933014735573572344096080688918097033567580720922260847621493233807138325224352211683719532886000401677703918099605524879880341798003176272630210989653580993033456885153123630303482015927172009933496641363070279293101051878454316282350818342189840849569731446582611239166347987416787066527162415994279771775987457530804037282873351478644349913797435389236924522711265788120048618210788667654325509386638282986286706120761589434414785422981045423929874342461602739077809898607345723726216786321470087785952530168936676402989198484298180743557570831872607892361335050019830379088451629901893375180787348058288295413297825944161021750511415689389943707223639691678577487931318474119172629698545343497792977031173924601712127586480794482871007767691355664135665788786757569189453643433970037451402319315759923341922996579294014639647518772070572796746935204746814190915492080490209844438222497675861387798944315361171091028250459710218310964426257511263275394616954011635184170184683476344494046731181891378101410447846296187342208989024828453737964916274340526205121980050941373767470484409073350094793639839598425266253425646529572890788254846025313062057587997954867663573644308963998175245215381258532587151896071168026323247059667123014549126449948183377436454506824562543400995564006761009296074922655193970290220035732175657322170254623790731533570782808030569824177978183519293215672373585134682787277860785727472545810180484774762348464195937013855957132329113812150411176773745451294167254044514958220542974035494957949370972949685663365629074358654925119077370789223914670352105116513495616380534086484565765121794798932629061542789889370684321802469346933283764409367101343739904981792156156976109329250727038884446331564651985300291370465509308454482064658721731418233419982959157308817945692266275963099779732633200433042019317361139134060253515874742665464252411674948780574819428193270371189954738474344246852761475422987966314274840007368365523974875759199853854543423566604362400019154782553702497582460477730128763549042750208622546438693993765542612051283945193652640659743756203053839650986718834458103552984421008618938214916164313355177462371179185560761550492666255405735740729733398090386995171779485742967253919668408042740553764690969796483699086172012174939887783734702293526837662632195372474377174503351383631851186248303600626061960596831617375784604230090595677249656194404902015655092130134020952894060769875743740150855647526666281759978417919799903434951104212452111642009927556019733886559375836477985507252116423512679728848192044253154630515584750178091797956869882370383437860963278383092207641093420251855416953348454132180442397723207027796462908889291895998281190917349215938498594103173517815640142059823380625279964244706044016863680463009816479910501338287270842495412918697275794101714756836434783121548147538426687932841709100285922650318552012303105738529242805427797110219733885934219711346742060925805037827102131219445435966008225078054673771090182871707376999538146491760381479331666696562860306034236623305178693164373164084877681378672123831759857273669599028603972430158381028985871398566870674595436671584284791278658599300628503527916991556961875282396745763190142964033123500938328933236292427013924366496598491260169377723731211924084270270848892501507781757129231378399783861425100426067464640120606260302684371553062682986364930733898078239335876909193162338851382326842295942585653407631119808963073948254359355807299369137095153499609462647325070221296267924627918760360415750115336888932261866558236833445397956417367682447013876757832381431354996864228330618408380367404406578611440761171417165666016802727255238531213341364376992028426957109631695364829994146195570550531146538998514759671623948029611144211016663962333760415881022090087160787049887858974725124301820258588615001572733775919966638406986075406265269703302447257226189872158210980929926879177511857149736545812380425904527993906993079636728912862251714651550193092601458058410735960499778018126032256100691717356236053333447154013749736628537126091296145821306867546183962540264381523503998763859348463635721720516441039177073537322039928002438639128037972901465566972460948512428124415532480881983643082186005930699583113714701486919852845648506856321723828374650004058654105624966195537105071476323985457901829982412952214444642481318379837190974512550021040109703780046835568832974423794602103460489634700595724516709166906073791305547002345862402810242717015944021167127530986677733940458691888742563275477653172742464411673373966448175359452758592274843380188327954677751553560886900174883573440514544034970225751032881596088411964377011769175766802788715079751934977225840370868694925311415198772305283705731429090044929415915210984670893177368436096325462496133724570251955256010956831217287165959145686269068376003204977382099027309642964501968408323067579427710797241812822097046416618646849354824255171807522381018455501463131356184307459497240745699155577769662725556912219804373668019020369232077562230403501112524110136158656989575584349247209589995012817449423078616205152856410530376827189224111887580094899385738783546848751272821503434837752287251128289159255440689157521310707724965573358163550386762863205645387145090261609834320228061980057146840658715847173668935901513230189353385700038427187634205443729199272682462363014074649474226170446211640573282800190292875375985569866546427996495411935432788359386792809868338834143717127533684702422543254410307253840691992557624963177681771479148708279782781033091246925686313050670111250172696636261546721557663545729612803886707252684544147172438301321171073382512098955136403262632413005169113550458049894709536057575215343634508106243050391761652272766965444115511946639408720218901920698429604453459016047185877429516384331338714730253863376487891867074957907616906991461639999955248545955888227836154369058178029553820307180515433337850149095629867691094940004964769562644219780755084926860033493448063285750584671212057648691551814463525781973376638271668513651976718105120523561385237160136900170556958881968115666840201080123721071309507480394254636852811929250212706417491923781930734947379834556904625436263925829254166777651935480797512879686845601184853363155635284151953911503499895546837152860519555890867843411392761390246945200764000727409914889632592333615329261351052567721331455480171675879572600105462395160874627782477320097581639035667217687523829703736365991657654385045281166702128628251440464361090036903351564128357846303709312382617367678576729544511366738758734303950776804732981548790927910136567725481581424288197428140850730852454073422810339596945640865245011684526015188178291882835058845711607251392460562289979494670604515860626257008828106905163025596299386769428505531004924549603399083876401484581928573937900103987657863364835284989223987667612861058512874536591994024020276614979147315075198780118507233504701960987376590496461611942995950654576253188215471641833743936227345077699833242319375790629276501418904667095629223712736011877896394385222739069501661677963268509874352476851601102387012195943691693341463815867342975886170761867711148166894454609815706351523420089313623585749625072511554150773469697656080603421078684490153798100745721967247718051237412147795647227246994818477220160517967816324941824824286374524900251683402307301338307444299137557216589598010672509583327134644524053521743701529547944801457188041973717127980145646579772215627285120275921544019438312688216125853343445024075669145703922159151786193263910860198205943323360058306192187718111447306107745471596628001751291758759573840815619863619346983888540798134815234719895308550231094448888750100527571032533738922444939680883210253668781386759084354548534777556526801804105634967116695405197645084789085660772603056389238257063994975179603571535464839319699435026339050266165515913311996220552090485482919421758997409434313890103691129634756362442806142403140470965530025771263537329126216493827882946295435710587947803445989497726884687136504622806311604594942616494228470950431629588681308729058299513741286507731341425504857528742141933913624128825399347767167658507692949687837292795536586269146788745841492709122071704328683121689663220553035330784504864194062644093360711614108581031592816351636120085585865163416482195797780024601806095172628332870201184930309129561132456698548299837776545067318914434312344026688617005910837270416259140227675231866080747917774241522455340855012628583188161943186643415088335078691768771788115613060190537884410645450725464199162584277689505345075638971084240017165766747819121145099717879354117654257220926996603207894730691036464260270958061763535890853909361258879155550097272018638386110123796940302891192228315552579348103962940965942071678880294807370484901231468231792941962860289546649469068966938338783637293457983439804779863532218829687016588503168330169104010649259379665674682941483622955905156899959896301975289000418390149082031244367630432672345693579180869875497155795024866484209720720141371280153657692082172314202197064798094000491687217248932481437593263720233572399904774848394157498849196921481611883677976183641253742022714706566602318573341470048267816158884091439852790036478172224256608472046541760086078689642484143490732631537961502244059715001877096779999788988789159099992767965447474939034433177118772111007341084538615158519363063872744155219012852871017890366502258233797753306005644521443306821960799783620085599383947663713722701790038716684470619676064406734076352685165910637558562820333814474931106655763187877368752298502842053464824780632623368273321824196483324022710299707439804204154546233915782902223903199951387247524744595008333353137852836162985996375365208457352401019944649434324104902032628294695097092186073754876059943011103184246684222506619403609817337109682669816978046562594477248871853817422470652064447519984459769360821741998431000846385590190838451467208083471877917721117962407782237741964232694910083901052188473346254474000950130849965016002182029660389369554951347054924289136243094047635082998008799700664182682299423159141172101587469413095093824659608992622716570419580323202136247315182142955009391151678390765242276382248128697722195733174343462030693868092291322014119894740462041648163601705984219094797301497674129274159624225184551180124180035872980568209284140381635770277252803128741261594792335804009072390166490224743193367010173809603275389785694926295713332482282233755168170093505611571612945521709783844483896233733937134206321234430854007396131680473041529966976604568852204619203411185523805004891647885516606226917232023841979786727486571369872610540333568337975507259058201657599971834882842382207575420885636722945609075329070262932517254475478413654361664228427221695717869715911013069228754658646215441377066762533503418584521378314542068467215560413427199569693934362346078671121367568438758918282565438271769464167389495068508154640505017330382054509636005579167016221442915714686326261274837444333595490062529212866767558855506502351553153748056785301820433748603567572235160548900919580883877039536423011678783241433495680847009048776943002029951471270399054378805333936433039816544991385493086926908839118501990873193798723359976958683922928372265292675163927300175658959331157249504401947262024049969403600866323455013262596016022751831979099210136255485283595533247476250821574883449520414556028868523208077375414317123126482364545936315645613957614621443455258438686899473370855326202193016787843186218471459172913496028161360161650970600575480999024146213807482988043834980224143404012783073240825984287090957544159211159899522441519485818889359757259543391145300317974324095745448117722838273453466423477338305966187462097211209152013563864989861036974674022555124710207298098788166790707451516219088821586724010274227661172762411528780601860165198189904965234797901384855206398844777274108599082235978618599663246419648862080702323351523601429712270015255025665796080915011843889787698319571327429088691722719913440207790732720491008044737742077939393235080416458431024917641764447511604778725766919836570670206030914970237438606533495833209045305494109593935936999098362283296433752924574663545689869089811559729689404038254762392870303675723912111682926299213214028631079970878547580722992248077454506355487632610644644102035654955463274798004591715868825676664717445972304193972237395414688313741748133882153449795671512616579824368952898964967686360729134870574466267850438203672306500596451576095903695983577383901649002254979168513400584662349348771642276391580165372140682843145120391917818855342689207778591295296474403528545974301338793730061987528428377047979191845635075603200710137308708507569498069514191237891479931689040382891159538697151375900117095717498724997139781933564091186199746369675691295935144483121857410970345321916622219995825032609272977260590498519866564821288891817134485049348683982797086956388672936123022147675189570565929661636375435307131793363839232200194957531445512084905123423050236182396982012712065169012686385302509579206996188156466241372998588944655286470073979221776166342932480606149422950810267653827846682447309312125457039334228504067829539421304959640957125882569790199687089599546229478854209763521718108964243374090801912044228184619108633423232085296086799409299215513098937570670458578411652745346049860321943379388082856245030838685979021669900303310399592800272227612531795315583168391531821208484324354821142780889438596384063354420296080380900727769750656451838183208039898510288250480990051214028838297532928856720547515656351971509155726229328711010209408599625682251382302779900799421461284344494373535759211512199859144106610698678161892583174158344626131048950020575888637928977065998812134550505303149874792263573493283024828427863824439206634991055785951030163172666341471047747710973255058653089138901565908511980210530462714043929788323560114342387003707015647682378616457231683389785207490584483817335272916095897289661814917763278199311179577965543109803584724697323212753631063707158603206253730364803714407788858945162367354789522085390603100830765419980033708900743682281071702545565684275493355247004909057311299978865134719628293417207322115960189846703133040730871385255006589359072180538763201251366317912844096248383010906639805292242000754728861523395929343260430355432635403654620772728685113813499620005450275460068440191558281847763999415251437646200732355272232913719633094437246965561814936278440488569811133005503106667403246569098426612515632203037041137013083631354768682370383173795118830106762296651682633710447205947089979025638638031858107475243609484585163959776081652808397817548560423673345546794415199564299012727948983504234650370202403260046912414776141304035431081814581100841981953880742736753714769188469475353090300096506548178700633149771171000185250650001500266240019765504462799955851877608918024125235439799263689182225939298117837805441038100882568310281873219241109780158918596933344736047381906764806143004333046563221918012528766362347110593306175409985095374675548974958977408408489230474461011224256281213059061138998972098742535095508872631398721994841778893027498280222335670008057217028338632156358403115947995542707516655075332924643061725380593293267305165834379230185825295259758516815783891688124750149533750247452332205416178089890036644807371386331222107811479757758972168436933750517163100397000202070548070803569700753188637920789112276693442288174599563930993942706727934803020783465376631712135337870664191969111423606132170401207890078267680857299208158096030337995336338160596728489894094253727936424411873134015016176719754952798455875949845056056275093758809038616816579178475023219218921829611180947403361036581812481979554361779024538563473393051572798947908735206206010915300516357029297380998789094922082164668910422435919165709648418812306338585939506720609568469228247417134840137184902750946033891671182559057707233213595344452249463232110808257406020188828381329403464541024301753010745961813252317822501618758399125912305310649746264100169503568328833860913975019602487441887070436218240474296359537695595492017113575977742194723066029697571341912666329403235178386701247063362204269754928248622098828269749885981011466525063026990460490176472289767243727180706406347538487167902765975315737519714221035064478566572883520883992541158655704885208764771035255037449053236961149659203163721712743616802883321229989859060385356069251150600480508528234347563454643218999259502999663665119617860326197686014647040708648875208768568210155419377425072021164688614999280579755197626058567327213041713206439949515795650451870447764686241649877509924421564391141871634900055425831550053798229656681658410298039908585778388093425044152624743403449362023034899347022564673430607845948077288459565494515070124849831648891441548676208000253082412226704916931058978239344581159968160318594721536384346728409189844778765795672370846291480400758617124457409866477223561460925552835395798831486507782573073272450255321199977669172890824340400846307869910164128029277997760449533243886100227359456416440100050733561420479787218848035359539156319952602560304081128408727714860441955110365816874678203416889726202705888584782132815975894736479766629497636007999678942958260586352994484411531446121820350133373889549298401547967217793057785310191890490982095855190242577261079650473100925560763691062528543039529453422980710456529215802872489646958136980819039362822153137432196188091535785445716878904320191503465204066024114639801003749120365584176740014787345774264463358102677864046883020515105009187146813323888409551764670565790071023969760603134747016727924413208690693719992665951859205573824508096428384936460730753333432786962438886891913095110401277883425158253583394526264495956312664108160582827951515801257907844562285951452555827047726801641076011017005406264140906382958192713704982952526999631788148351688933631594844053444286615863698555410333635855235592163460436413655300790958842591855334745133609981165706349525564322854576424678336858325867965844130794188519407341389021389823339880575861574066293732293253754949069407780999691515952923175673884867771464300470925653053950171441595284048189295698778739978751694876498068312431983048707908508232778371647065176701610577680938279593668648400376744014425623825627883216396361289412052343262987394428195112644121775977917554941270072260764157566608761557907803015839046610012871985704126513625210374456173820761699231156975037565065000645820010105774824300362934060031255965917913869496655579277053643082564266012816770298230643297740555788768908446455106556510125753215763605179323962814429868565427564453116316495457737302665638066101205907526276722723186725354001172877076115307043722763925416719712980861783077776540001513791229727941686213188495798054406680997404768777150644190984341253058949329351838570444138070474794200692721839284277644384419915124082937399586933643026035962812662751328678069550110549250335625953088238079445301992230574594165845656860085444961446545135965147291174271779824033907151700419698953606521364625352082316647054892922571243608646874085936059614576941809231861015435296334477516232207041104399960467374570338381856349684271480853819066143030820133092599468901432699778434466221468184516522009296475558434177617378089209848347280327909693513801891082182892192600623610931399621512933427143358522542256471029512812717544617057871763979283599309720047890169755675860415532297453983429153930969735261749277861745294111215942096142324281943096036861612714600919782566655116822699952961618405362601152709624248715468155475488113025588745782647208115884833209856074397400563726565289054760647004371155206159251863305607338518378983325975389348970850087747064483754144140173350049978547482976670114689200189975459169097459129568257401409136669283318831651359482334906514067997232943950546770019645353114080889543167973693320807793366672933972139117317927429228982896589526636369434655205829137730635917696143341974976835023112260949283535122742437822360696034020065591993369459517234873388079580382268095036477551345533087515133592999345752885979314939598891927812049885671244717102313123543558467077929488268694589792101740727380202286719901567454789858676534078255048197434737020069325596593394760858877829841923637123205577034770044852088377968541874302803464024284831633201630490081541103891444349555478302501560779282267110711153703853851957479489321127543821814809834141357997860824459727446975388241210969313012061665656804833852481700430809264502000061720495635549034412730171698128117885202471085017620433678211123291512640775645740974392861570592927845250442122303869346618757492432843646942912720455580630620086069855231623345357753698888506458484759759996134526825341003631897763436260787327872360867120993768697276994155203301502775076972557565565185142111264667213502991507160956800082578164447236204724570086052443972086419843822187305270886545363583048620339462426037550237153818535641912560249309617380649708891183894888893375907077132594894943765091974911934386962223551766349781184745003803775709000477535560614436091896789193880292761126291919180575919898659474068355139516212969717634140739422039476721665797433575067993834178231620882535326868682460802517792709751915393042240619657378986967540183955143338554962007922085087807297341622090778512195521943031306789418139280260150231990286323227538446386803929174555410745777367138535099814230801614453202668239631870168437822918334753196599597870230985399423757551579551625589210182915276228368726408881443578644746586778325482344566403978878964412936133246511682302988389221816731060187676130947026821345023584451926609580748955453070603615417278639478044972946937920389270787747020582834566807349390377843546487436367310195405930759146179064738784383391387458626088136920548544704487928819248110670288858189866720024459918613764103864903918625224261350505887492137799957787315960990963493313522813985466312168554206954669468500377081119804572808591445854384546560905321482392798220470445244156096661512276000267697847568084661977846483328304545473196154292491435598576904843787678082053865316749715918716874218883638249040508166131076203414222243784750677720559481773966742625691583890576128105876937818970526624295933046766924432460943324856809418649726410803861208655977068016599755635790800553757617814805468450213379656656479051748128296973735595202691488491493926197400366158193214279843313161551670869272606487820728069591404574646630970009744263372015641886194534874551457237530581529730136656925366844378759525913831951194799047277979049390207759411817450869935815862917337769911301389420096025728295332358351195662270132499982661079366412655777008959267906325922608363113862920818527351263452640341301332038607282739779669764643304281929477025931150995779157732263433970312760042235428750921555935564466124641455344255255146203659183867601846921660667023537366332760057511221430724265429921788160853735492926879339546322792687130620394517565213878390777555066893972532155634818367911942753931483544000396989840219305479465528523255378644225030732117626697877134187915779776432642220052623298918923383441812498797179782930161071292067889874349734116505016154923429116378413258569441092385896251981798491492183571795485713613571424217688531491904767996950593883908510060637202699083252233231439724197705749370657389589467578662010855548657807838153772923655169343721049607663743182996298255540746826712828865045278957879392364583792788227298614923981080095659698020865126489194926450283197486459641341461547509605972586172817410558689755661821026512161806081431114888830990426536098639532242795263917981047455754536572590201104742553529683083867346178505106012156934360719219015984539648595309072442363826660031762499250408723770539066589003230151371524424300367289849651548825348775607839982499031600993308452497448674740890630886531795675549337066075790319962365213713107592808510964465985991390628284541985911105409012146222337779550102732568769611683625163966328185403834362855220025894169045594832462131464616363020172146337828730703170886153257176275445403141751774102888635034779732153129203319713580105309208643898680864874406405019473288969213326720913447049409897272950785885259881459393168963532325913295748178085415496109815732079663213512746653937182103408716531888087753558634779687343787690727911345610447110325727554422072700394723258811685750476232047283411691490419997876553755372479968198664396130675772406682935471066530170211916717148140070618615029292691958896678956132601931499236376453170391220011999128230115906014602238015229814307610684298191141713436753246384056424601667137039593876288270679314867525892039853987945507302347773958358410155368405389527860934589249221147536584154732879508974874363478659905883081780680308703155660697180918788295767035867857351186901281362045168961061302986177253231933099104117350259708334914372593084085179131786966529556213257588338245415825913156856647166841068708403728317315581086939997899443501011608227817291452698490062025807202487758675153059757480557989218561928055995282020920958734924316688506834276695434324003337087920161544579982472021747586060309805076084613956974323391052702042233978649140552192295296239138795137138451622354139177883559791738064274498426794846927221063944856069369557036309122433732995808716065425503813167661588330303685885339285823507042437693092092895542012965426109264534296777777545631770885632228843230776447545816217664116474090879585460978420292721149651650099631885838261928367193890819584780661599505613762366816734180552729340071073139810411369222854336570110947469310132837810750358351083663841162636159586325007515720032513806759468045252428115131024071959015372277156176883105184281788408000734368405366342881249623700283278613519651569149269238967801649490957760866071195335901158313724878842592152400986614221039595328882059760345392578700493950614025362708574135398267661054730791385991813076467242817474336143216392192644728643888568491602946264104449921244427142526620465991507605165287991393761758169767342533733800177286809784014866622320328360625782443782266002041977255787620490308886511966072367680088103130511903579253891082132241901506445887215264875604301038446797547994833446862732561815283171699273871790473220302156932934455732788726294366131736052315582750318463782332969311492763825807632388446479103289137805554973900001794403148989713484167030548224988199582577691627047638951817350350752747754457401420329846634114788773873061496449745878318350882707417951044457477797042366718346309153976615206282575610062052118124659055917209002967260752935809527358301313681902319012160169251578599952310513400884592931456215474704723693328499874649521383329730486129525671719296159493017593230908556785051190777669184782104002477839940285332442378483569102644382413682006807785637475912032674263054348210974458495213414677671023583743026603192511010231863302715158190816501475011158279838544259535624964558561958248293210980027875749089697354349802049629793836841270625895906170855562311248651462942151115078905698949492773477608360247021888947865076144523026801742582992879513182606255073324849533643952385787719101084481891729870635845456371174766223881476452489582505873565625012348894292790830665376992367389991314630321780985979267766322657624979300623583095551225777150487102016126285360343115020107543473724265796090864847801520335691370249376325107934910121925874784339245710021819758108486708827169926300422355003716579826102806447765333295057505070176287137267766404568558335286552949579760673783954452571667189254000221177375627219930698245308883638240285516854175010726868279342811981839185955145869310074538892367680877696641721779712984010805457119361617563196386302928465248289516313031948168319063302197870776836912246450301133370313313186758144770528484229056193589139254682074989611547735214018823536542895570939992858236388753997316401774253435101156619195836524833958563585885415022558756111622943431250657902165549099251738945169108698130926479394349188788514836132228370362286115593105117545978086248295688171289725884831108739084062043125140580566733185392125505816158219702627252922493974127835680570540112179343515708073442666150164099480445000840002714918176421683977691030198061979929495811245616942266380907868076566965812161942619838087561430099645451278186123821992637411906889194021850409041502895385072730021097225544639066216748494110459498345077898259037914222298525638788133765863370238392960444048034428530146316707269294206025207921062665399994833542181581131250662170844587542178412667470850907207213762853741543691226823985646023347596640392486313780497387327441296602613868546934172813870194027332423276573420173770336241520978519805644256147920979880330392050579592384679833864321260238232599906536376701960090370572518958027477912323209536621754573648543776601817099062982804621733264618116694132385795572747894547851643834877113104227754994443673244530504310186280842588851744842296751872550616790546054115141293656388382922444741947701780515218166767123660490638855483649995298421394925461628374469272063300454398379110869661990452171727671745721501038324710479883108734941792684460729524720906123724923416394568184837250749282672642315430481256601850708475161218392112509748815514860744852002305698404908763872793527023210253634596869044520250136996062766075562406309814771225135391195945212333843721345568336307992594121626878432512732033886584880924362968090836183135990870418716892495238707657539045870488402355726213330344689475308816559062271596820528317954811560025985431479711051609724604665541695461883817937738292014202812199063402304914450182027603945941383342377172145877111336901253919042263802618050551934415534850484207869131361904029672804244585778098272447675186248650188170612145264101842902525186521370638653911817794253141188012259431808992017103581261901429958366219314037269907985452214848338183137144512376300756918984325372066188818662056574463057636289237988286866881964954610823118721207403033916313851785683063915745050932524433341119417752166818044441668729085595687241534647913120185022981194713991947398310752184345300950740723683874679619209405963580096793637058750608425382756500440160807378728940656818196898625300192172784517944135920161892471982333335233772382355644966444581201370414214940228056376458850892485255452077550612003855232602900536635849822450432976512608935196263965057802502655935634868845641049145050202567321406209097162553722743838181346888644760270290555707604973618296612167766320210604277299519951505144928472045396761267506487033609113908872381571882518225958758062878244747437672409994766079568491410430506208947430645745073081508171429411084226797406329056489431968506039977851458918010165014599839255610684885811711331056408972463012976801109980041450399424163802188489738175664309683412102345081812700722663042913068378556930199305447552140093990117158445296858350046308959194185862093729672465152920045340005786411806768228988682742143455930046781410529003931624798756358448326912290273402609744413415133949710378484903830228418201989892835809431157408740439220416594284856092977931677759977695904389559990896789017707817418716917979116786849674584884692713471197667130870014435780565500931014458417315670795567075842583738705990032454072937263831692844306582511039727412564184200844546469761741630957115644697309279137622517856253491507452343880359778422009797011629362771635675949939534766651334009352678791007218174833412247970212866556722953334423769834908513364142371464333805684342371321432383020296150866183918877315349025710657914437692834137253267700586497022603604900602280585383671836101320969944090078033400116386201255342494139062348271870435088321069479468067939886858252722798057887027089468863269961057733488149515519973890234478146250247758156411036385615116821000070048556609641335698485466271701152054990534715464665658479787747022878102070275756749038382288221995503463362626676315278524107720183083682919521357904444291904100115546078445774879329340740567422697221653389952108027529645322166064502849504985557619343314061226696363113256320991664799493326294068069691229872373412633103384066658968385463892600516009077466460876447346263134723401087127520029529187196497645762716323039926255379405345956662051912184774269571387642101011895868910374979109198418988987798281174216421032638039782489263627781751449520724020811358596757378648946744634422664266200549702596293201705519197862875736696056975678565032412404473592505804428585850857876301311316464526139596986699496020193764286441808665634529729758921327108776274443820399650292479374767167964325912531001210848928395447119800752393820318233465915242359492476864172012398095723050739373146749113723226338279764354155163136865228464823693840677454662305882265347294579503525453335935323667665440498731274952150919474560052813019260053792574158912639129333446168072214435288078358283206997912223515738837333979733153235390602636168047062305377344668749018158342141677675622879309666617268946329829657842800020558960324961895146602902561711633632631167562695631036377830912217329491369385779294426615385443333535106250798878868354184140294536776463143566675547735727909245073354742250128038902087859990083097698534510837111213300100700223507072303519806083537860776939245492685341141674989650620274697887957375915286959698627207539331853242779033951224962098830168289053369379321740282814763537676751508464841857942328614681075720866927437768016683412744529095261140931477625970787944635335033935639501014843837974775900708185676388425305708194682514877073166586588030225134321796948751018256892788370902619453347052998630166101102276826106328438948460616872471438281401521132763833859189161020628536950385755343329636685866477001355039247832794068636868988563655763360803389596349015931618893940764928360004111302519867430887812082321476420643317005111725705295256889866534789817753188896327519597188139657575588389166815457192412976645210294482604733931328973838221026416020750000616954132343816885402112114172906600980124524515479300209554444959080357550700057231108705550116958252424425369974638122100063621945389223034098250340977767242174153048345835260549352141015595616195064191877801132199352004619680728224249021817972691847447496142957467197561879305180177435933283926251296713763471343432038903749905710279673726899573393109180660329370185856720157528030782345992112375347216720281364350984349850401875791781501647551646324544898207108807869978063598474200995880411227216066035857733961402084404974525806583033578949319059603286041087755915074815955121162446680019428516808201035897907063216210526390656353221821677342716119070449125155539029229367942419537558133518321032286892726476315912324090279016620709770981932586559846207571629577779138535818642408905661283140198689362283556825632180508097244697626881908589861256356863777394043813091075923299281718107439514106082174881756727355157755893895549788534044616643158442054362669553252085364107122265150365436033404207598906636284341687652120343838088329831695688892870037622357316734684145199370698070303881937115792732793824134034939193526728053644783395458354298737612009094948230151091975400536158399209416490050416865971504049495584997309582124787143788863725653039908563789099858075316358161954020762603499809695024938896773717111221195441325516265441057409428743892992319433160931629848402440011216104494344725268324167385134459300671629404661292336966885442472975508936186221314733096918768188790406688325114688675845460742786207725482889622329664138821473229467960572454959312637222526788469579985445775745906745577046740306233757491033856922718234313292849661203243432185930529394214540883298597620012521540788726882773773307328941777278429886905398243804732759235350485486955155549686960137354075533073729746881515816735639177441813728111671011804988683547621662994408656907929858388705383780153476323234034217114176480471208707229805659966247408299014208547869983522786332555302332106562787898220706107681671256168792185544901916420985666701661727145225092538175557229383512133857344196965812529727413601660366593408560369275268958455629073891959671829321401192398364049199732154346563133312377707191066915078568387504008095652878491304246935407132785371905252072020863041848531924866280649635242713397088584197341488985035649192200354412902857236656455173408602724533590004572628278809240220190071867508966206930948610996235586367864647205675978001034376885710590811855759213756635128302790137749751203703438871976137773812576431727170477591381398798763814867571401208862478045728985200107955356957603317518760920365334486859700341975910780640804584394141803160667478139337020503303359210518720685819598483814087733266097235358654880654265507463189192352004277967198491859156500799101863705235093548445742246377926305230193823161673632801730801554377014444863775453067452689536881168277646573835607684310341508100255886367449588009708933004752357377512612462182054317293625918787410237540220462850857976401687016066142079808315087588200665062366770361169159276791718772135299990580454531025719326294460301797671516431386248662790078107807181410176910305549830244114663300094385221854942430093020124566346054783781871147051833659815889395500425911495685134410416238845810000831245553383372544845660493299035381343730623324557749999568153582696261241466501880471754467076641438259937265533034641446478748114655538057176325813529714065406183720802664285489947795297735017570614141667547189952878528797437900219644587899146080867853026748104913815576355392029529286259778594407946919436458620531040754725362884691539067898749346415476122646542492387578462026929214382322540195853279325568763555776134011903972688072807693027705951593801635847767657145317023376141998288371741097227616889120856336766745057441148943630395429883207133059228135105484569717461721374288920303930325500554698629742148334434309365348953067238585111255847618445943600495016299161107228129243323696815004664650434183495275486619191845022081047519545227227584387110846378107020651986264123149948448325620946581390099772216718506883811531422172347861407463962002053257695531185734075543330594423052618806277294307094878912239245619548323464412707804715190492416003681018795707394653712321658016890764514727525480539531093932357996025339483732639791565127175837068776113291302980085773964460464361976225782957780046349418755322007934201945095686106574472584216238284963432930090568016839732141369278961670345510227781591097164571144054893895165782644385227950551618000149541451005099192670172902137206842059957659133442077037588451953294918855491247769383717419014003208019085401676242568990157756147956536194637804854245115996978631619937625188735930009185000575487730914151214698516182962066296904479703057282892622765293218180147787337236712144574828542886075938707474350700711374153151284993754930215609771771421045360667193335699853847571209709540156106048382399540507550253853637039448148845747090222096951877481709105243177552308441774459622557548999873612978937848876961576441904066804823390007723780095450732955575466039882514661327381466809708506737689797086862271537524680790659916644960183560605744333603683382169453511949561967393007211401359128231783463533090927149135701426473738141254158671255557560027984302446288756593632293559638862964429146037625514341134151899671779161761488055098672676540913537969400527925069790733010399220996173098042635594662063035408628427283616026977239858247223060085396307727888979461171494662466414951034215761470012262512771770203721676641949378681499892058278445001249431234495200781290947421699603125021631113739202724561315797257778031394321385793071861009928110338389428287417062165207446850772376006495378662281506201440414333048932890176451511762483415742819049609848192597313010149831736592234857448709477708698165182347766381281358402801608774616840002298283309471226036581098274271060978188015584262977613210047498789172839226520823498272499492375825123282536925486263768643448083681016151261261967359800149042675264993698048386974958988810550424314628573505311108833148150308995831159909302343160214249257523315494804002505090808355634956081067094685816302946725255098155824142482512092856771792837377276025198250149999231671322459256980400083168129474366452181674060755038844548022663238354711935137790483344371145098161504778768015040296348680355676256784832781880728463546529054961339011142479294145824453314221879154971026629959658510386706173936942073045471095651115055698232351975334518532889233369233719351172058742347480675024760444078691833612771887647631427124113041976915098162862560794963162849840672224095575350099804614134292404705594484377338392133271068216013776159404994285947927914806027320718852027001955281211611277384290732912958774868342442941093322152599886077335860445320498753734282392167451746402281397249670735212001005487628784583178367206494782714859577709203515646421746609609131754897780832416637520231058852058447324456172801610443915229526664482448572928020863323658990131496155421561744300480021570325255221028619438629722810224051118225553791363696637442740647952133678315216167531198064146450270396914827482127827761071467118896199840021535537672318338598465971080545460063752677300102188804740167916362935927457025231178953457694417404570857612096350272985744361646438926785636710030736643969439472040609986049177673418589793128871166356866703533228019406185126118145185386495379522669225945189405772002347937757063608207453034391844682340980764918713055913782879104389017163463088311206563132614732477843273415702595145261563486010640557478559507378422526240004310870232589590946534186621424901126265619677820221975182523728983530858011084009189021868006656525123607273837832304067300217547140608260893616956663227317387258698684729194590789385266819451750788992538072109464060646259286836942794664235489699736585011257787919874114374046967523251757797556638419626121454787082784754461959313047559357095732659155084019045059353480505773536771930100019083228955514879403373747076448992202036663259190157803904885669549194411772114398441763574982921090577910094155658087480632821885042210591794170999483604025668362612218498081604920161652265383784300787886205727631368273284578793542581244713334106566160744210827220560083893970591399995414177610395850312718891324515818007650745467444462006254143642754637632191226645277603515533532085467714157851392874250559123600209373276383816159169406913826680259888334614439590680367337463358838883042744933122149657912010121432538312659965935812113282477366704584981368304349871531720006459271852637077748263151409560568715996554054573940801053403573928256458003000404728583367534082969229945908741779137130271665178975732861161529138494838333511861913698402403431054028618662271570392071977429281080194073542808338086690274311579091584249700623639523313221620092506773752802262721017775947518074964899635875388542611879249080247847263994095354463431384464542132024170288416218545212148115858989645648147987268447060556950100749718585830480147861082267996379906666458767887121129197518083644452911848430823241169249992934582460398345746712104815069697548675042449360577150971516232739843983498421058895288815693693267805342977465335728556420348163889864803402253637444328375930003704231102112099191709343141274418611716776424034027743880527014952613125381071739237927195090621534162838468106162675586796834408882852681016010348289423372977600387039681358317258596453757322470621447828770393419156980247106484285176314392586273894612984835167908506109526806601915810574802877569123925417896892232438703309486488134688129690542595789626872734689298905644883355461391160511950941625835559309978571967828984202745363461784933063871982105838208425907641595241566392959145249927678675620911868083175693600911488385969219543615579530716978066047671012447847574293162512896451690857106424550941888274187200131682307720932275279463776439765132060313220253635069719411608088812232405345971202794735671593885185948152378913533644037235092071405092715149054013209843960111564629628443002463386256639668358656180400818241394826202975548399674442376012212406232960141077155961113458254153810981561013601664150522059524705233300995704395823763640217453028466050306509034166587890084055178173896617511857299332851768915517887081927931758150695534184836573751790246811310593001158130928527719059461043432711348037784705351887558709809941335617591425568585835354889720490512600640772894762036516412240674487025262271635238258073532558429382803402358509827789132469345289685720986688244082187101926837187242308624713866422265088550528855821470848959171722659396647156324813991805835852733220975922048731656839459912181133809150358838488962425766400277487468634454370098687693619813793834356317640984972560128390964000596056118683867183851240396747634705678640018295947720691367772176787478307499421416553273601574750783294247432289117164906186848590655333308159688963342760388338573908386991748654479790268220158878037007221061072302030043252043216247989391190100400538558616984324128453826315413090094525619683360696981949680084374893598575429856044323144823394604969687305722125510053542966226808243198569934713900601389648907311310534187283317257545181711637650253987430458888828496270255482304058350987620840623698484881868008951634076767825432099152269444422899797694002520193555116793910738497884907122753927515454688287368888862863306533968390014577894144311091968500181381648813651286142386828076387843791074142638065644449977781515062310174661147645702009022975701299808939852198538229902136704989622837692632460533720895236772652524809791801450254476769542263967363121028205370238810621529782293821786308016333192170234229506584725261353977529108512827526326272731553650209099283920894746358649190702872259885931151043469679911639103589862088844310313191695240109177035933881176153192416929264842875472410631537189238374629829011965603584370100429749086847766647203434170241982392903581845570348036279666596127880807382815694786109028808490361454008742551205710096999077020001648096403147646782906026067354170307958747860402445631672358727807435442697827617123978527069716883911297338310865584667271663129044441797557114244083462798449954543502413745599512679759387220431580683399064501769929459134139473425185031288431797286806189120509330392459810561820900030144206801249027812027885998868347407637500650478672743823834044980731522029623793193086398640993428992893195072791987929535144864681042074805574257977792744853595822419030376731063792072014010333274398859364400464174885407064669432714925283415573023197369077099386671235245945764365783961425582484616784798710567586274737907702206806192278642502549065729647068097652204638566584646451699806625510552810407792933269422177179192989842284859720755870880820110656180118616100034916174210241321717239736401356494900276438042030959765094151381246710000358431921977764734129077639233758015703873651928575207901026177315450572454088284226930076263890753466222837659380328626188406024701933060759972653906668674433470435020375766685513027031891916261102407486944607560931578476098941783244662361555721735536473165343005644968856573329998682232213551850804434543918838052574675141003309134764998354009284748863279118187850266707557853075624914111925446424454534399353230461849541860936943352581797496312886605763317478567789054789363906421977767745829906066493807453513966476318719525507541736313173324234530526914005620690263114775512320610452046325057615580895508443855437128340159312458266568516869340466097085562217845853119132186602664857562304482154351323980996597937855436898678140744448865829230531792101371829669586894036280771149721226408362229863333114222227262633435843066248348584281678444023678584576275052164448470858221724638212267744762553550198460555274248614505483416788532585498446480738637132818192808101636517494819085399694237698345703834838306617839451195862638536643515730841502419842390682986002260922463708458601794417857407361364178029015770332470868920114568516624038586812932705933806506587583855416746971742546453737230979740144656194820303972558760664614447670829057898236762053595804930019251063965925969277862093657986029404072319896775191514839904941550378084013043081577392720007089294958721744384284200437376148441443483749327506701000605036072862461076318099843660833244378953425485908402973495630054493261152919146034902870360665334247720341001494112337283508589978820201224118440050230332526775298899364207490611213423734579517514773946125026006224629426135357834664085743106900076061705107455267358619870836974243400462791150974110720843977794009878959637525719916802749243038994743275062199676095905957690745616698129901479339557272535388606841005098332342575361899651570994857021276268356930872377866832831068720983614710576376893931284591897818552147494081864476948685799369879260609090638269739344510856408660260475372750604511451181902244097871312500367777674856294721055949018723350244473038943866894576874594528602101129992123580781332671636939472997417447084288684658800811945865819319848333409406849700322490417074132637494739991134580109182832075063431527839634664983592631722104606760955869737474840250995519153948280111444040358937667153595659713887924253037757866671626494928576741527673018500747705368074811620076883624719027912771074760927656405122863433846758519168962512875979461257537601664125730733623708565329517170487271216470677454133901379606368009566770250373168175592801581567585389699201867259384635091372542078885545787702647167540671531892657397051255732129077195841207291854646065823677055747296620836841247408107506518897187591132268427815039551437056553908600625715535120166521868455225988913202065993645593254058860589087076561343867919005878859043183623103656336810432505721126573528006619829265223469770623287247558521984710360466006013882100958960094198665682721013053394186800544065104415515989605851096899979759297384891355950498845130561609299836203192360694515346479986552241533498631967998884155138367508921796989562582944161548907085430415264363529779497999076391332306216854446977434617678244832496883639225727793059263041702703947678516507940899060271938063162629243547665314137144787155746156242938843570263382213907420219717217542162741965472190406809238626682165653980633220913143723011731446808400061099490177012722000550295296208552383033086802783367924581222817626602485303959004845750557641568145568492211491489316914968829197292925287362363622634372593789026756253183909281297983669279419374109385317383502448810502298918121500959996721728384304333804932357345145893747354938782633067704984102119471780712138978261661771733507468561069417325151571418611067430547035942669245857015439018927105208379423108275728053971620291801947594828763978096515497814863233580600864160525100113264288693551190086088074249143020561819294724565950420114650031449547149670357626459936536431587574141558069165938493227230570404789135518546478219471540072868556390137235136996553487605756321211105938908558159916942689416617231387030865822720503894588328426179651206700484209272381463972339009863099177739891473884889700876894334725684018100394466264335030218072971765855783666467776724297693245723186638812611595394339738436412348917293457737384567258950994167512619465368438892733451461619938996714855106202317755797581691170186360547356411475385509302625645619033594027086253450490085359717815762197502533919489032295630711588911860659330303385421340037052114534948301819027169559244737995852779572913060015478135725018827882939671379846526379637148601298353149832724387247217130547328270057346279809001687522921607936268710646611837236412628471181794838954600970782472598820254261555661083998901907089728884448089342044162834016380089745229940196345024853193528883161010382206600963540373993239890879734737509042432824664314187083701335796622756291525148849683986977847055778946666357842881616717788336126820550232208526241699708685375480174232614957781943198214111804670617028322768236197638732265969132870729207349547184349376056372378010222143442152241332351718688031027757610379880442442496861856813964305522607303173650025991287529601986585208069203203467803025600177902985752199521782651599345478849047926794117628785194262864446895306961318337162393428932468244835041106674581742094977506123496740287774530645893438634393343053556872681082462548210409850416300618237717111268670906721211895310900818885400228861583981943830357938364839274328669584194390272457421288015714075191586972503368241605929329474685522667873267482778804848396638172752510158865794757238604110024640949473246564705421231195385884880375422350973840126777211645770865482948706764831918512408039168879676227025130860898028755409381276882677221576450936165454741764215259965644887612101516775521257127566101156174469496185895413620731492699219521609943730360727599885032104309947047592295546546547148016514559736583567313160968340917621705187467595905762533648204841562290225578413682031807227728585659186305627879185803237592228265890852051924983099348345244047849055035292063079629926380052609665428947345639613502893747577260336409206284661101408409207396929106322357257227850753140650661234423015725911041964443495426399205380989657824215410257561659354069127079661616584980070418017248365918396389409636951890719893112366151639376695906727115816083476930012088468200730172669072410949239659517856112249092310065967729170658426348079754900819354183344725486893239580374855964056866944301213598151888611824049227169724247118464511258179728805000203382145361504314447674667969569658731961375727253566675031519928626837121278755248549161960445518585252783290619852045603454884376837902973970765563114477793057498131219445762528016104396746051003395893946682012026524585482996383184022616721940139196170528968865431903765789104474927043720330352764399408483089192690957854428805092414013441366036979445965371444092184851917516463153261739237061071230120043532363305877084370131340324942024194396987323958286387641324296900513401076513618945253463846880695584885718295597828161602487988029974489517907929882537771562372464654388575679477527850443717848692189816022189628676740659372040772446350925959016672620642672949800038090780350921167701937046657480116084001596779573671574554202490944053037363103836350985650164990469862864770296473673807826873137994208724955247532472661998385434180778012489822415171844323741924047498464041497436446045760775356884501507204538771327037816735378579585211077421239228801094179029822533268407042135071931837940711222046203697079259411314583998866279776316233267717433432141250234243389611507050187882589241850761710302894930734192503891719607510804990932561869435459010163977045075575085879701026058992830638756341644879826404075756012249730917251739234333107042974492491713810074882635203750957453789647194316249259530290802685070982145947997394744683877098396786295456426031540629865771110228501071268792165230963697219479474495551718217859104915995200889982653900383466729090446736964094170006086478944912302962964261409266586117554644462419309768019524810719212747235594889207107199493074062493218794632704037028549080451594983206104287424324966611109009005678186323749239927842920358497292478843943108379228449524434692529454638547342876410626776636425591595605471067470096910693171417440664487070702792600190950333564951271603604283560923084932036753255248443759588692294734037805625005603186898706763344887861491206740488105564635782672779421276970018666890861430708619290015027534001511794786587082995935637085092413675095401614693097989037570186711286191625847322155919934106444629506433200147650338121984858618420091061337935588978590605424052044344024775692678192076274587716803563069152652016008417318915658072261855082529080643234675235186022477966895774657380183410258427816599999686822911327187284099024052433789407343885313603910328042632620037789456765301496248981732678436583257359241916461434375730247452357571331346200614343161976084348824835790364873748579834915227247307634565190432247928992098082476318417751582613855094116108666210773277767068502023607216024790549433578579497229349085793915816773487120380194735480990384142125714033140159987413348246157336032256290139714161878417889142999833514750354668521833040964622102111418725802625209947753238280400655276542549722036756441538247589856141251003734847659372913520850070144531925592369995681746507075796444515343945930245853206657415771937450318705368679894847129219536984046338520586967398905245266804646824288481462029003123487309974622125405075374263833530894272241858294839950477610042460384378448105297353607399758383772644038252360813810450825410579985872342729962621885551581333945335652092563862557793167667226942182519862616149803417871242053696774296522518359080217690934310296367277818015005614126271194488261297321509733915214299336194317546042530679904375755265285393488549317346088939765742091907866924861311286963403328037888240160273067847333215600493246606161729813414252140796057237034328249818168418339534058115859696218132686242107161955659040658276410915405677699939443399873774510024545032149537468437673484291092802366155919454997600417140152703972529882782530822924784151362219029656306807895248474536743196012327841983393619475488542172077845738982680832188203297086629220120618031954538613805093000269232924976175654124522577238712082598964331916130826679428139804911011003441231063732215001771881983399083569930451116305280922501746822979200981775710446496377641000106314841523661939332412202930635104269196039443436369579915241828794270022000055438278444630634158440315405091931106482317083463297415082043064592060095794114939418622651989359656826915346116131869296079740114056682072092719919391426213781582208628871378642129371836823894981714728205353850380783427386000005604988182282446630047865656944206172640904857902952826843743648207242215628417619831028482753165271998799776197426924539338220943625923433308060267777637645609743173944309692686565661146714712320450227168278236965898597559737721389965829464931449046631268631394263489271357563511585396110292977172470246331520865254946498450748373736061918918814970860356045206727353740227934529024082684899703743146191545121646359278325572196590098555238362784930529395252101415538487056867967922357703456154261263880579293729811184161102622686775582831931087909931579070665594693862138404972062908814982294887442654571872240907754694153307435666152011570974138755880380448021701985199842965035017544527236375872084471025837087252175027953647506730393202618189102055626853094682651855833117534562649471865320571608398601748831642141653335273780719363403967952122057269631223274688066935900755958885985445456895586178270724713484739169183632185102050099018633245368270624348907384317817563093056329909225407532348002452888659243060264204568047430206840807573370096599060049403675455254384926588217718171496742793838056607710487140752423076466886206769682412878326034034098309574871447590064345739975439366578675100473186055500363916172581688110896434817952093336166383255017879274348735496810479717736828091871594793353080817619562563910750991246876283648415505920943431723969415179831242845468711340181005668816429386334787167529029534220285427421892924494611790400176644989012815938428340072693456408405011218410520587049420518704439671882989520026419688446832408914938876451003811367560058528830940963131535634165488497291859335164464476784956443381324447237366491591742917177817097887855842448722267197137140071061047744441010897945658706912776966232114297277616268519312398825515602308712762585364466313075291680544600437388637805427287963398165410037422420433940632652191769018181984970183429289758876756963711543786010077181289522665065753275453490943517950976797857345865377239723872051485589306095043373482472480631524238603633529451635278123564363086712109629792455029960225735024517160280283066573022400006398669572429445934422058044229460664278217367500547600669307119689134005251087099212571136808071506736992184687988184918832590870677619640048285092288262853732507140871600585097142986713057034191026825273196025659892916341368395956460210839187906123648629291370163279463853851823960625649896738942319431634207643461826865041050438339632227423628372447581345143670196632078669992354416130819443459338790719301882759272233064166295277082091296878253322983341803808695203131149724173678366001191002364429188151959475352694385390032846179682681949137682179748106471936274212061394114836902955335852469874114733747635436034605134857795837592648301009502818247891584871435760567444364213736701527546102146811127419518397399266797195580863777609369659789136451405213134282939104423008935585129154220920568507003986127909338527556851027964871164050834770605915399834824625901529712106276648647948401439962105741736521713533017847240902342535328688286456034399004093109344690013287306961066465140532129869791954518456107214818474243404139866920206826136875440242194195512376111490775069902112896863257828973712556050583823983473421112296305357512573320537785093179878903292668162422728479597468664684912637711999392197678357783723846569793116482696829153579714360845075230073556968079338200944017048114920041789229642840968562143541568622664273542786755515598892203233443224719318311882214422475337269377400602015328967873041699338993338354781441496512054916849027219817989432828891873357189315591245849090553359434777308910937416930557501026046420397855419914549275320995577907434731784208901749277583528163939394147723124382533574561129849159098900306497112683277443323047584131254079600890960081032255598672687164024859957179091640908142076908573665894418034494884011224281585951794087032009174349694372389674619647382269109543138965029103404363624292216009775372737614945788811067584270175816308718587362604756453221097325072256645493484877211693939818729295782531817795833673804022383478209675650689826307618691502885186224100739383815924900011169751402746117284383936274053456035874405437176483544911819402415462310252923963483885240614722195006225859075326116076071368007682775328217623892557750427239637263762393393122632918097258950266036739169594174472398197783961916929657625974268241275840365281343487695013366518496876972090425132453976766373370597731915456795919366076779075679800051481728964469956989971808898769970555431553092474758658817079262617593256162248211025530666134682081424344787888100992546669242381367626804624127932982488319782087191268354537629983963772569589354862638629325547829773119349604160902125816760374289244362535846431822919808993470259616300865873016900918254999974466751220463076660766640810461503764295258237306040038916467214975509511230445928469575492438045304433109053929809036901612324474383651053025336932232547973486317625570436320543333598937450636833655290074646722980366008582101170049002418903822848631997918290081578658953115561361964341131922122144070233410202568322375338842220618511833026188276059462312907582113143961996829739372060976879306991785129231669420731503470611748911770654753136463642393170158842666120604993392169449634218580728809553695687217870245461135378500937478988618524951837527360135697987401670283229223190206869262066279498233359710486028117708402879029925110392382031643368942365564010125934485610352245126209798611190813787598910213989137750749066111678374986865084598179298123511970109575529747264238979995985194824909289516249178002815331460578661400367101905062807968268476710129227060938144193346433485354857222314930821365427606837792996777611750604605190450881919562646110310949074435717206584665993772123421374723254741763609606416531412195526401354008267668496952224760498763951371820111841909529485893423444817192252395432606387288800763620688615946461946166707238307659522561941302000172968092188026735407903598800139132811047428481476050970168281914749765827664773636260159488739625800050136044670629412065714011969555771243329940873644883437239039301014537210405975796078254028935303770694624780516103522172926281645344305993472639163412952118620810968492185481463432566913169730042701987351167903174689552015391093569003606493171541201210408288927308512855184587682240751461878388249366412198955926919286996992631052330769599618280151060308769065436650403032732211758110966441629394703452210241520717814569497193226616782667158346853302910517032686602256982773094433585347778532209424602043697794328009662430220343973177407700134859232360816892633561179408033958931442187903111506484557198594710037117166694756099339082299024211521804751173642530061582790596957921713671905278325855458991032879518629200891298727991667090037882128070973391914912478515566343071914676701562493956226457754327566585316134416024958514408307546482171951235989848989052417827767963405107138330785128228550589267266460516668394937619181524990105503181877224296445059340818683096845943639016352114560686827022020888006358165116859723854149460833295646711490726534924583327022641726765159824852474982405670888799521582002495836853245681781662052923036603500244723572897689241184937750369646769946285572232253336093130263543375236542164874298185242472996475687865673625537868934910139982595731542125478223264840716971760831627104096080915638593146067325651284993769214726016333544733941872866807913304794167544873962272679860703682387293250574803515969362475594353705370203076478199413512005617174131138675306734260400482118333198359180113375544057334666660880500704046616696349632752242359332319467596227632276221079885026633100365674079477590125980008483391952425013336748108991835730884479426654754435808403500914783494170727018907991431053704086257287901299366583141604287745246840615269142281124753848432742155507219417460752418306110970176238628154750779101287911512431594544014146681435027528491935197765382378823391862370298171089402983406702215643882025184342599431317599103788476194068804801863549704597861890640645653196343176091364106346192011827107597525763129567892888776154070059135462472948591909472543710603231538759102001341056530160162123855869912297309194658871738497208788195220098519218038155011518863718321892115572272096537267330934151522567821823490514768470580219486028899978188715239727095110353242877318467819687336274083684624713875957373655542052877909310064152363620229910235927430182083407729165956018674748558494710792492733655243071013730272967829579013905673136952425401149398143633931418626977485229901243639148410199122832084409147318997541319343541072156267944917317727962313747201077403351178461526813658848037894249465997324799307546264634553097512765955034706931906454804351403462407092328430002810198356438710972538709146978014932566256643899757904835153303666845984873931914789630388662213278122351977609701669712570027862480882442718138986465020544371410613486226491339780560150855380452330842968246669299036942587997209098911566567960107651191115259377783117894989753124922069598142546711105584118839681345056673451008677226155146338649148582113609881091074185091432881359178812165396851735250253259148368948636237679496037037549319275134061957904094194137303342273781710719231334685049907069057745212680732699370922604187445021173355357261505635968019150878953097452327397782179760668375426966942180217243509057042028426204491968130169234734466660151473643211906839658455795276448392436226338271230490819221647525567112316138599700823804382522059190809768183111799677361370520680711232572391061000041862286614198231729271361805098943183643864719261383317273920067471223571493775425446922518041753945303951215514124557193845871347573200090900869880452540848993131867603860147837469997027790310267195009911044128028521325446988379903774327309693786621023499919293136996057882484334869425194350198497202194042276769863191438495916081959482969278796771783717881804980222624750811846747010443659608747459887371418446441619113770520333452445711175162072945854010464390975592709125582755988382684354892068179748208291000993478621404294264944830652095606610229330948901965334287248047094681868629428240915007626566613513749436594136024224487628545018636969234895341751213169960373734185845010056215617010742253338705516040073430210709565327566839855432507372355259730786544033413347525356606933072710612285322861999570136006648836574422130223712064530707526713660560547100297279846013097676460211056400316542635064791585633071142730652928689315534489504979153719035630888777266947433300710500255699733835440253877106736422601685254615546152158311082798083847795903701959232204205413496359322242484525055866279493521146804469387102664440854178383293790680854539121137535575344683434288201486295804289368313709255309191446217815832162615150582489819047009187779874102499304527765189042859395130666476036295049883622092511240819590909209781113687906578649040646908321910411295706536176691720160629084319044778901451726527913316240074446159543207160241709068647287693288140881516313486904725978090644618515735524610126569450110897504806898419234576392598313839718989474308891057631598687327918325494996114943641718246398432181432416520855346555944320669543063399168963309444413820351106003927364037626568382929816223969008467167276227220950631564890961815960912641528245851601277530034902365349491786917088918681937996664888421173621667854123085198149690842333222424228368887167609149930536106596586980059144059237168161947935723697133984863903613267998782817926897988805258733982971756713571122978664319515232326711721142317269312904663514079879859621109440882800114939142545747200949494787568250293848636050913465153574287041080707073282712224511490446488694814362700336035587992080288259904142784953238718786937893280958850374025250386078762406178495968288029321701873966483515573907958706329475966142535993897056478382163772271847424052318839954242864634858553634092478474888113055741811994038386303999046542967589145866676522547891729880242173246960255307502036263016234028759564206318525925441628051853986159835776453664424615152072663444295300981468990767386480194350802121495740737853855303367555580791194963128349857686736845489859638767688707761968734357191298387982586558680923799650338789010627353744039818205304291125077096230921390350342850227672512134365408568236936856663089026777935452710438394294490056252329631764090813209206854964384093666695995587238667240437831311855054928938513393301715482961049042920298021732855351392366657561590902233668423731627179837245816004053736092966972769198624630458475518981846091083429954888192036777714870952680636527028070319168937338191050208179294603076691797663907744298142726699904510786666776009947219005009913988348312147827974913079530932558662398451330082176654592856833182032338140989615503054250301005919616016568865843551395702323911576197623141177824195440368897269023561662291551484803315562849780984950727090961759559441376595335346915483483546886520602350258298474861817370282454985751959786322119464175559244013979189329567369993948012184074665151372768091071446608475290608284042800397079405421228533016530763978331048625401823564246541711514060038622006731218415769043972456872362383459400633334807099898443543532475545511129247481583721942294817726499537316763534835626147321657776651898527205275384706373900011778783765866503774225600259321425859279366117807016449990846795708217930794271699468713475463070839036302433344661763720113886847875216868144519255355053821494441956228241479564468150167666555674544070042092747204476753052921755090556355783985710453442009350450892376543738512681176466654844102778078865529223745465867781531829245587162838237371683616800353725605799159672113730365464995804827452996240940722646801103553016378073377659334174508613338496019948992948682362317257897905547219543172320052715350741887045072380572737097976453853628205844525773480780636669099940884577095274286042416800040756466298624555838761901297218694877933122022680057799968223008429668405730404781226454622972722940872048995630034368649353495111431134903886033095380968805799512027273792481689579751950843362435044225952465847473789878885198068091381156505618501431183879418267980938106775431907004843196467991207271186422273268124723546481547033155456970693214879327852802933692732069129517193787087253708035399250921098654962240501123361524963880540814980576913708272278000012794576292918189378781957671264896904081554813311637750328696769909129984368255190192459092262205675446124401469871088085063271431502129695749212551544907471152086471888358330818202212135526525091696308239992444758565858731000206990102194419590762656171370960459327392533871220573615053533764262526494884339268538887511545187101382627937503690888684314938565659148855941270925371441279812702263692590811507761985150631630849391935369016588464085879760616969665940017716149193325302368370816923885359504534574344392712469594726493156738607259974067517107441141381014123968554492135864592156625373078280855101470606658129420759096147189816989123231109207478884889401164883780488540614642944652688741798055065797242237034384903492779548501603305327433765839670853082003303336001375841374046119588500882671248634135999696361044030093320610072370655945425994465837866080408615424981605483669461183145767209563114230141817636771550920111796518989247555192821065604515732977429863465985466922969147190731090135891650139805012750888138987654722060606307783340556270167792620388881527040006062255160555287681254979460715781785472730283532783004152004224428450713612233996547731415817994074602360778364460219055394413582892445850020644888265142643959560267961977698580555679549280146470886637343144250580639767124194986609752892968537085430721211244690724740828096484184379063287508824396254143455400940687561205909076623014289991012189961104885809224502625444127866983303321920583933657089934572100780578333936013323464459513323145605866002530234421575393083578551618676403728534608720651626171380203348671270711029004884517658368875431450129082765368902644933624041065092608979749622625263974758955438513993190022707854589520469733565549414557092611064720107940444717783737723244986143207443075689495218771433782330538692618596806139861038050113202115853610126081939282448712980058562980682538330471568166800693789366629254261381257400224737504223964623585510645552561416194910733079037427068090359366994391895293929949565767612940097875264166079434678563681806430718690888088430496702830199677897960893255144451695432566690006629188082785276154434750176757033900610753384388101684834122471110265152686130205472917045815108461406868504631909620676183383403192011373893004457661482224705735125207677636613484858043670884679375461732444404544714023841534820024441637678987001640626908673597289656305904210336087936881076420977118189098190679448604892538723185242327368606958347110423330981946934933345908737400929987275276663741295436502172318415110042266589543019219473009393248482612375690648002287175511984856090507889669293179930846689899265788571537813485205297018867070012045329023910296278686631038614495836843577542450288850806092667955783802082515190076989840956733747129657902333020218427636660721736676718505704258532738538996583288057893758549314426372053860028053214091041743329209704258298911388192003792253250511207876796602486518172095038098751510183917252554298436255145499717545007906065983520939025186383755111498767709557935354242752011585273575358630699845035283825127520546995332431031616651233506841871306387518021778130312383633499358022434724000716301709845761058242360029840852054089598429286557778972497262711521937997850999826192775548147534473204873621521874478683041397122150725296400867216411348610533187843929393586175246348408836068956137524321937041303727745779244233448745206967002794381541070932817353319835172659453975530381772904195994818025321319001837162154810454508605963472409806020271238624001142224679852641261012784099102428476167352011412422402761732185938824379143896183748848826968876914869216106453908547644466577085785775346051508002737573851644361438889054304728025370943362821274879291350221700267816515419582887673903182090516461326357061320962348909752684681658390274402219508573141992640692525330965117009274195915340428909596996211626168459581664721629060567864764688645571661816158809103971387277502085847684007534967676668482758652050686591380024860002735135744877741965061194536804361329318924454368093445708807666627536424850397314124899940305678367705237036183680927890592182523237130832003980596022505160201178994599377109701402082059402561029945862799592805314712888614542521221172052695747623035271369276988467037348730498180223761510980762635548726653443764349581268677624290106649814782830487126471006855464984412425992158761775351407002314481327646597055257741933735778891561484949205439046689091779427975912130926618268103376555348047522843794928791575156184679911276265390072772206747891288186284800171003162519363096465513410221336889507840360061905482480389310931000094141114078018043733455925167363937361262838614311083186802416090362360684412840747690946463511354082456915475361371462407116138626566905884083134549119599252310196298605946030325721917988117117478079753378281134574720700060710665400454423328971134809872472043023652515621759450401298084575861683133269678915061686697000091325660851446075209044985363794362298967772638974355587004562310688564664130109552733537173449983848745116387797726539423868404101772732897889438836946377570490137426296576696548090934922422712044639064389718074037086821522671148352311840137386778968542764732159436257461083793744951110713809608351065763928155671087475202978259667267278801999163532363767065545399186021786060820364859218069761409037234297763113055726584447109091493239353639719073704577278342002674201884587122563988862318534657024237559227759454472210112826094366709392047625360777254779027901119113129306611835709747515162414545019765487170995195836284937792417480150763297366298820413522211008134658414115961788025277648047819588445170887759507782987747868623533394859152741619530121619539106811161778831820603101068387023486166866664768197616217740356425158023506193991619464028955081225615784335620214982536353710888442696478297677062737695046794860946433983568337241367440244117774331985797438970269426433259630414056090074625366328699618508781344001815459481338533668764144747114108654944128108971049838575065382381230751783814563790792282116905112531574043226851187496980514798067834841548715825573475311356321434004894513022347260069508678816871876482333776489488749670594341412067887650268687835821409092169568677956307064215261696691108009937027783656066788620311914732005079325228991916266634855448814788549543259104281488641294386159775089190256552666301006272628786218699276434231414638150032039230700850180790545487955544379069839354078863461880113899508403826155454832042860477892993120520541389629136807243899185338892493154028243348349254901033251393528428019709770131901574288969367357030122051517947125213140743409050788898698111644313735347098397060228958326754233042516856524293158387808852887229642566227072894215242327359746951158239224445090491642505031569781739810182139100488776139467113636989112877191822999440472766131657471937814748338093964542961008324594264595847286316934281805746735971235332731047001880154825261782270122479746948651353138999451050735959366440658548910966697629090963507699509844184257619420122014243793654125597445068037284297136764966877539982512282002402034504071701178438140095203611861633605383296071053620201525015915977212213204769894083905371719889897968543329534236068156758388994485250281849519439229956834194124254765118054701359154874136192671717717902516329204899742320262345573894975303691148069087496188289153890224286292589109814481407898499751680482740199100609201788551678299395906122322089814229989132877211592412947848015424270462309729866620662482731373646553843166127647993286402909584685484499501582451901483536521762757259131522629853280594490040558801261419679757688729472697468101706906912078507171290933031230445328009972910900314654247766428003030144713319733686251878486418112347202504286459012192009583442283742939780134445892883164294467430648397796681472901660802333071972557985888984871930912029239404007101482052949758037931163385890721037600716944815076183631182057249146549223753496505792644238057701695414870978612112667028141007840140867742360727881697131083965458825890581233850053807920147229499032189932393531561723524665780519681650392915410405081506587336624415290423151078937814725467525523793234501165685134817305894229696467427827271598564575412803574130616029096374699819548217738506430516038829309344702538281663920974106156413160088159002147423749165541878541385043052685102898330253176817471524077679541511875064311059287902402755278188732159220838250277953570408427203780694574459370436655666587673846284937968606001611204153936957056046954527727374265850639350759693890807110220383600445667453947936523039186336063228350177095687032935300061129668162020943649935668455415003793337426003814409494806198986024037026754413545701165988008932167079149525601521441405335271112065559094828836241195396058313430141260431528772263358346038108557512040216577690699134237569224433181410729862984450437403347796650979924274543634273111926931334137064312241752326414344770899953922454858394769549814298158027218763602889966948551955218828041667211741150433827178149773969569090892536594985689142184386253510514626370780527462696452502922987349754161385215490136404840029023816770962169612200009143598964871174553628967274840618806925440722366468160715756968176705247412146532193473196821074241744445989389364586324248731954351650235237863664131308620952847396849937570046549508506551305093645396535139365389836749105969805499200742356830996684891688332108665857378097182324011291591548314547204655667372688463481951881158004636116699182245642893559405731234427873711597510411342639269488209614332620884600625898996029401442630632241181538016005739248946744513621664523631200226858996766443181386377093697084390571865955015715054515387035046282979601637136828690461509247410482329833986695930669691444853506286594805880377322352052799289610118851194197384015351256386824229110039197058654799621965484931984773872883945746451612207995703200187559097785089443068713557494542040273658948510218448874695144870878950164199940249881666679188099727231193478087367504661795345716986095784745836608434789788179528997647862526901935888102910247833818687496490745427511754158934497780156900208158173389581384986541360917155772018468273016413021903295687745175162631438156485726648726616235277362666400520433835727426949642742548978570350774475724749972190149295482432965007691638003403124631248097311315343056353400314914537492859786749143507879325644643590719964425312754854791916741707437071168773660571096848943186361290363736083593743205282912158829001436579394454090964853593865177334622994323621700724417482263217924808150531482539829335669168617889507594255593958075706627382285363323966970781547987656543910257262080081770685958647918067485635576749803264753126075244049323024999977284444751909618531747689188078815954527530268157713980796017447462748004931916805173662644313091878204967207414307350470447679467298409696807993741036283512742937858346505738496760647601271200659251893776127415485999089307670880028700780068467270104030437731234727311130923047894317345786639723719574947251904313190335461353191236567834954755661180037092169188521873881727040359910910387172792258400651950962135453945528352166751799384770535330856178170174053259190178346792865826790905712178173479241760888711056831388447891979131163712073282587865672817381118977222558810590610185962974538049358673641810749665174887781044784989737596694681629189382818887450434766899978253764101339642852708045396372460422100262938646320772701212338674060044238708631850822871950050992366993849519538662512844562328256688629365441406337225080569969851416082175190715262832013957387726404258282385445269848363178164366635104682852224666185774898913611791928741183027691163984822537824758467665706851562028500778093588769918193026691125859199714718168326388361645702617820124399788641302970433469970158655487935082203804498308889163660107237492773756789251803744918376234586187099163835845547589165798283525685881689466349068178384114625843555672962208152695534851873880747526900082497529943418733711156252231209183988367977247022863094536612562838202024260711722808980176622784897755258499495587391818524707805413436464818618536214390332974188225203537356587316223739452039616492727660658630591221741870221652877497073179279525749024139672998840949480962532667251532659117649062701917518569582933064526571838348577725563569964013801342897183746431172999555784980616775646615708863636283914866387605934083340185389633081734465174228980392562143242816297271362297297489088847689560748315045544569355971712032335479939073246517715556649224835341742678950647277555034889449348624374755243624420724183150204085742524536054853215933171763451915308007578659798625106489079124558034706229368699941795642870230347758333063025133931250422041382333321031346645539795401578596690057378009475185145932796323187984448108628461552103369733781110356514127740332018049899432042130986315910350173724409584589464817863846863167106485473946041450169919145881390458710137017461713907320230899096528083573840472851038398531981288550728565530876763400383890638009462757329755561390065722999554034295521991245578388152793608840852055619728151538788847947006266935861295425831315138674349330926451256648898853061108292130958106946425405287482871881899265705769954137701906750730399004542185493479281177323214451073555945348468488491369746110077780157197533261589172892593188080772507880665272600614889155898928761861789064552603105611406283155685488723887649519191317295713271620404647887015367900512072294497888880976146588447398510113384363942605128878809902766314994552539858570368314839835255361353878648244984975770345335011720963622373273965673067831221216543816704998771382534959444823866826220807904410257299807271876731325706712094278763385975819879533163100823324413397358495032474436654995566225552723158508384776333530064966944230994997420448432627988410809398144638622371744844972066824523633102286795629026623688750039848724662511718709843548951233788311552421351265276772389979248250623685734480669888886259624726686906935459499406467345230061178993645558152474123298591005081177287447516571474622647425464612310211062328719062231659759506285636524370146641858025689543579972909426801766126752326609290020446811917410907420089740162577245967342909258131859805572393007871078397296237498748346928172383395033432896448790053062415397960108980455115089283702876431557777892904716044370424688429024142473228899760319680111722771248641089007048903396726821478889371680670065560621865555388156743209732209423947527655718894272488381036554333468476828976875490684963235117402242491555082695715072168726004847041952279681556917598243404444491443372349544853352654898845920845416451458938734391620914478793606473009331524350383387651036141555657666184361127266946127319486394041937746919090942531632990188053940036337202661955707828421579132006629210233237314425724546765678786331012759398999495775822540464581405898359377559201894726270046030599781636485073967805201771633800170139121684468641952281100993579019188407614882186976505614724129731066428698923963044570900057533168137081491700033316040341436688143500957424008564545567223781115213801719960016213008049407922938562260815526894756358087242238646005474505616161800560641561865892867764990928814176473840784195931007663871008634017139184249883296006368747777392776514965440552626585681626817485097453392636641636331725450455751119298917932302594235069352523387384655885979197046916550329958496485891954565154497479950459051984142940794721985167658237999004292288048752882278974062735513918232179520915605588394065732705317112053592577988450725560563048878975110103505480819839750162164762969286601162206983071362650452054424974748147442777697760574337470319067049550409466072597166473220905822979057413041862033304469779678921060480174040880420518230315724923345117265452938991597696226338941088219948846071279983687541595391308003391485781345172720628756498040018828937402870458563268574112264262949607051406824868850059245602659696203480201769105494285818726786221823266332587225614894920400321064748679003412320933796101425103579458500488287414386394098626191404575366975481532437069146450582897168880820050941343309137153265437983340544590985819310281396547669432007206709218097645678652340301469735971160640767984029972096362449028116078642991640304691454917224814488507761284721205453974324144708107729787209283138373820849514608123837079077313538810239899340991115902300207078271711760650551202770227243425247825135284760580081047516245498547272622731955118208126661248506758804064422350925226971078566274191186369423868988638387954305457384033817681036551970486890322481752611907056101021006254482115009090779019049601555982708574025030201909195720024665210460751447605498014757306698060105881401584293736669416228928444642380852012607207977759059283540528020835356016788147719010229780924986367357924510144399322398665235435428933435116412286110371409323095629332801029625326120518618532813047527525069888228713419538420754146332660112511577244952557710200546395889712080753126228962400490603958954446840746065166278885449647608838676501002692956203115309492729557886430750155880026295849088193250392812615241384295880847363895199888084428934723813960712041312168704423246868623493053000519233078982966298177362136140900307497822467076007414680666960179703160520149108657665883487753074662490272630459014515813826887164944414764131824787343687505477686690036820073038858103104056890790406064507089783496379180690643283726730282013026389990399360334983409833669416911617280390590420428977600335323411628533211706113720121607309024145998296525775973738795150627917190140287155069144514798045740944628168216446924652942373311467470868825713981542335509997239098209894357813671061116468210324068320364906028622722810916480070500218193588344611962305998675246423487222913691452852359919169082394008319055874567417019134140490111362702071607304075031673719849422899358358779243083220524478535413043720108411706141827998790400237950108123753443283643382672197590261926124339747298279058500452886785366935027458269336295024723036940111574376006764988486677004879400103138663039135614400666229475240597391827350855345383803135750557024435791970562958470524932694938392602851877666237049534614248516910476478362947233182020500951088731172064578798622275955867153588741101486819811053161089502702058015214122805028885040379245519677966989704597969981747517044856181788617781235798489191034001763582967878014682089069190966734504611169982086854576203995132627306121315942632693994070311867571661715532068986490691978519597021589067872708597176535085228601975194602306998883990653834742873186524747483611740412853101568016106646257822259250007211819723043036382918563183926520561048505868374605794469546175577872819650078854203744367786247493219026141666497947378143387614000090940637556538577063596259055752440310978936192630499410297896928008139299286163460168594597559646084645222667025360991753960851613345393059620809154308538698476220245881673389973649742577860580182938291540653532092017704071232373277990318258705352542997527376992250744541392485477932470848139531187453608228138615730571001000864515677913100123835199252086656422920471787763869094637018945815477635829800010242601173462249344469150325036913086964982452640891352125052809999732286429864460529481639028674529860973625987515131383967000649299802722428885273292903279863352360507947873706486036907853998489578344059584224091862444764543769035535860545770921382981041464821365709192168501615225388170701084830572700983424795462837774655506432649453264919475872140472706354771462804150952120829279684937663556814585719977364753389191651529914364030253794583842569113283454716276928023784285968883172690140383075212169278364909940540928650015206246638766354630497947698900205069590406672533029732753177850465611630893557947673995329832189680606242498198313713023895226420113316682897798892840879323795825592671434758515450769673090452294295931388960889177003563748743498360159555368396474906043943784683144248602844155465788496587418382602955850782122278530391217487124033571968899794553605420695636857835246774098759914756020498079378966030754138261026313592815942720374096214047527257117414695343085498097841438902469938906754285345712928890079664297495808221952180254273610627312991057934128264285884003517124301725814723980078064456567464179372978511996298478978050379794211643544589263569217188633945167405114850173451440374674171061283530199378762989923778507955810832911202318061841682170119690121999065002930669259192863724829370488493693054730473074024456003284803866455649143612828246752986831832537983448726608500358230523062947688840052256091269475250149960359204383206852515765439130327365804557307532943285890415304608738266329495406294124778838437624253920690254710602462173432754255573131097000007036384281602253262592065937602066507541814872270823739776581313740333746388625671003854223249661523560902165308288945993634149681922222175871378407340033889607616793066254279180458823678611109161553113431189064346444195185431529696220644607400527195088181530009566042746651404594954494855225555336819312702802450854681853771831797708083256899029564663395820207728531855167760273383048110986947825608082717964238292043045409105517005802589017831322035485238679822367507784965241108994637864848098473607069366893283086572991361396687847145651635681266665652071537457265119165115684376852931927541046627218390781407168799114796432426664234346899159790669966006629650922720096340836561815020641829826328855646821696074566414809122233011161165039693340254858872956936374168339413816095339701756850824288853006255707357921862013153010257675327209353378647415027830867701587621952331056423203200599777041472004250881520127893315297572980699038102323440094666536187624124672071553748010031301669395189575379950951264512429971450977789321613319525940825167330545604166346319695063382051936509158388875222952889132694346116489158868504055133225832557976237544373049288825284944107855454589110849947794742434043904644090197767880383645410042864211692062790114090353907566336884540707925795259231247566212291790869767239420376030657397925532437312649568592091175527528995910579094636255137706652751317014748379072330590667109507583373912923225209126607974918779372032473546827431307790401205098502685590839486573094842173528052635820265683884186289856557735869704020953186440262436540649482759231377382456269083287956298878888856770307115114398668929990029415319033711195658134006140065179899874868546789002551830240556373514528909785064235770782377222320060120049307002456456854899240510548493797363758001592807354175829652188952704827484116579276555842407586052618116690296621973912778944225839794994382091861751616687481722379570294756815980924321168797189370397647706176594111714067628400834838593864741264690629339570778078990391479702728870154168466719851822905270256982157328776385958831743772330945759769012565733383269021289386834305638090690375501623466131956288584353813399101411670363050898935408334415766149537233436319654727139997905281490721889086765867053750860674384675132229049654817605193833579616440586139788054512455939045631084902861852752371178774589492575536527660005577058986727275487355923602916315155334898762828467678290139028221423388326304659351291653197963049109329517058675278559966344343072523432573461330802048189525281283281549577212367475649687270126978754925524325674709172080511502573486203733784714542833944833343569239917541468803312737881677301942321010669167811805552567677332297344968673446786397827785245304164167048381951389504726283171318281885184965437298856556627265139816750764932011313225257391056993884123964427736704559788490338777746074092308786031294261029378280268927829621451036954367765941851301393862150666806335505478948993758619150618472185999965626262090028386209237592064872254801682588104708486809949759285535370333676912234798199923625116802618084046697319867993408331925212578451397692934350803252282740912821390509941067353236742157901317215504365083764922431066851630469058700010481966403972272734521012893178756083983304191002381878812793129401733965066484025594864837997334979198130452859510408713450795198020069889388628431363350781540321320666540756998164977835244522722654776499200122085434465005188656100527422594491423915744716860723068282400517652912030402962164384031033392599561238414968550906042748081313166432043702008385891260370069062797209558685316408984411738867612981148816768912054411262967159093151700795500140475584375649160849211061032015817664860875551828495784557306396458762774784546689792070493222332948746650290027211583354095019080877910440118497378941605531012494954059241286874893535486186941170884143783278615222451983392960383272611600765032846143534554703631408391825615586544435824213492406532268533331180705376306982915799366619083486647023394062131151650478192016657731894954460771088821461640924835244267305835690156511419383852095120369657137313220265215883911916492854023144965770526432864571821166307090382508778997842184247457933270728226503706998856984246927173051163134375015649837158359484536220714303615142279251541436540879175729920979006571641937229589408708911377243700772082498528864017615522442939113553008654440133260698815108322799547743530777112004993572966754034620067060561124663420028510157347139374434292835190612656318157132696274178301998002087458523638885431286355452556991405509807389042280696899026226894951290366509511877253253370214902149464147938165350513425201815661546594762438172752648687923804775981353194348583985340730355321030796465308217474381471935158251242748251470216721852272716079216628191343339481059759989468597802785997541526889079484292248447110354126601507090279537354448610844735968246890120957209413174730946027209178519272376929646726477999584717102820873944933313046159792117972340430908182283936467419681307180211324120889676813652333415558779641217126255105706763846530326056941309157075300327478212826135871203337895532887466395725846177161394234538232384771779786291272559940444969608529207833536010596010606245640131038741992955956153034386156836632930717497304592481872367378062815050415529970961061943856451839322457045840822920440016823871292141642105396273711393626564744506183404616212479307880107080086039645455830758243116569008664626263320214753305210159360097079840623274696755219792681229680909084584023738224859740375664015300185785308282722688183130202383531604045277941561200587886036731651716323788606566335431268277128658776840126497219663671150264933001878550941352581653269652128270545308713001777617148390843769871154418388597422451744477131805851227001542862658154733157365102124540723070589965458805553352547933051738446067440221625844503712359208387687731216935668441785907142291439267404264280999681693887700524380798185510202547808045824426755180871956554490882881277875749453104869251396087358808003039991744141477133883701422129480823796846151930700956055344879824025820614685004985955738673863515014251368069342348420700384586647380978103113193180204801409226836495485797814948963413383864222694472204739239377680908793440374442102992514037352169493843604021916956829237157867827064075833828673949565814092205539454794126032520740163623359908879572623861115541946996473722395159870395739708107804367616901038780869030159195569373104244085704620530974567118536202654592609160709016693078957681971687929966630381753970212375485940106222582328449327025470999332610058798045304898713905016051183127848947740529913114063950563605486693673394413081314460795330672177522559450908267965937771950192298994244725940322861574490631688306278438141653126323354545186225954552223678843950463249338115778742738971756399831032954077438279911966343201159152430325275961182251688752140233350109433894806927079208115176454567472295993521867106192767448018032665277416848200820937357822949005530781040094807189343011740686997688413178443876440178318625733785633579069678871317114349694403302020590415161047434734134951981224232357603064151481227585543896580704693015156200659009151830171668771734834349700495929593817517170072878836632171236761139629032998680712849464468208079930403303180498320238619957578443973827461149170768429392002994672404060296626468396754634861318793320139107579976584860441824094581567557862475615475555857212695798361934987001199481390224590635706337903710044161939495430535130484838228633796910354284917794988920069998378614032857404827260283940569825164828962953713390123947295449519527205391311590854202127620916753621619652101074725963366515029406869784632797463560589699417647577830635434775325973280237090296032096231234960312863556020615276854943376062529415495861880072502036465270399790976236291548996078372792022029402318696985750853666909428426767686396694712252022528685780650141449269077914836582320393425686510309567483260793852331943427598809942968183867253759764627608128637189158793440863426821490762784678370289474248049087933277568473680939210771058122106073249742336949601136476454987692559619081663886235848468184654118845591157325506738019060654564799592069283980644462464359367888277462661476065489778288103112058692612909637521614861306034328902263076901615043732723858909555158124471783116668658818036697389302855051817829335607581205430990721643475547850844442526176167567204837272810218257383302949428121795106370317198326093801317911994069305198284740639403748141931443907052437000578538442734878950683508869473344047167762727908314137926893226990083246467166461766999879380478807007059854071826287368026911993098086264841953990815572798400441094798916574913375865892636007712701711836257534839791980099897192973963552077014219944994082983095549378459811436132641068494629448641202795901084441037361030311062074263514252556566769352681968157710080091090745121991603828085595336923243020358538229223241784517184741810659790992028240597260384379024862823321531885956394211998266543941607576127715160737619911367556426918478459507902095380308055903334328989828069724653933128531296968337345491313819312625662138793829580095231579861229352320151460668779376277219086126108639947718349651498057439121283727817143884437392028758934536863431764230640366502802193292629957465887800720034891034362897428006191777273816308080708008821101657378611441326484373085382682639620212318975702265136232021479552825118491533584976445001528439349987724932541853931686781508462380277433962728997176420803436839506184740781370051808614810461199229750703507282514560431777368948349520903320924750476621762565880861152167064916564170345492346671521438478471798700853709206060466652355720104331320301765612645003681673881264446954941705237482884196980649139490363564604990808866567928556191563089304095157832495741783017433023556039823437784705644941432521998202423707539047254113054105147112078714035002988716177022551276176095681965389721691419091249037503981130589484655710741344336565319751078777728684431566832113551738965794914985707158009993640917693190285881787951182942733837052110073927050094196968964946979474554870566172065949505736713187840037881599515622955845820580430843261214905273917701364210613142439559284297144898697619571026167350509151976117997661341264669634510651903999098247555025632741788237103275054607083908001953373845926527280419075764928498196084938860465876808414807832608833826019968726178950035637603405712481633332861610902536081369051231682701373943116934974917557089832544790391668227799773486775113231917774365555691744838231042857364466888600851327145350525052608213621399084626023466529117308577900489698702006596093330998382015133901665086733430671543289046908210654779551020232592931251706639333301156342416501882317039089581233798526422394217619844060417654869293387925589238343064785104281966678069713989414183759383326474959633724842555124115547725559451204187322116253667091266103227039849433172504023805594720699978788656750714781343362065046986070421908003309395369641397780597286986230665394920869476458027620143784202695934294723809781843927226130272751111545082554479082973174594439278169101589737379015342000932181250721039100182407122734992192286593141660067875608037788665443839434228042509421044395501660766739965815524643797260517795026982365744987903055384995177310152754658219547485221363452252388868930775485923557611540446034448423609827221203982732684402030549890440979212422963783125933308870999226389653383807496185984981601103819684304728597570043580834661972392996602413238726591014516695969806377378474109267975923018373386766841330241023696461532686031104483874770460626346974781298466419869619004150947072515280916175043328902762052794638503371281524312031641104026832850117463202315645160674676778642264888475280830246601383977329575558107861106926530217254581244492978671972337552950512980446400023317564030608997373564249859867609590549356706198308408429208148655849498000631238342913329884549245437111535619644008600861674093427432411191660407754129412792708792160934968716750383702632569207612964230603666611371827059088750568177910178818664282500879107302488353597010103916291451559515624143306182067652927499329836403346903687444164837393470809000205496771823734771885011782246506275401308815570921144888606260342367814490427028921137293361999727487547569257184831065732574654883167283429087108674079477513724824914658512935683733966165328723076381370647153047095603438494138173708687059825874987692767031677217451245763912591452788751232558917155986386329214834879649944956239871835772221328584505863927342753198564169450342103591797416603395152167330368614631636474416559442702122486813219452380266926633414340414077149796277362028066709935505369118455003814331893013780363994843844783327856670731419837100198396280389935353948213467821309428256043478982229157921374809735556059213042922852088813567097968491683502403510635697053223907225239591718383528392032403490707239415271889369430403165533270490041785649701845763850217051729875076496620914004930170088928256852090577241565635897500623742581222081815067021304539087773862233874817339631202361423156907486512493581952264645842275707824899166239997515689550061458102653253711440221552196013134343009526192628418914970230428133005714089076215092543566330831415399231127553998985319359766933837355716826407977517446112449181111568812979705311453009320214465996377146686115304644757692268910044031892176566507374888534802775101433882883513265739056936166891089178627733057633080568020453918616627084845916464978351218001168868578536345355895537920366970160705855150870838955020298104044723084663371265930480023194924426211619479438217217647559059313390280732481873804351670146012108157092243967343507928239191385259144584544700439843858309535152335887595800213326988366604880370968852965717712543926021266887279936421620129323052187538599515983751463736360651356734982273109380643142629234612864918355498970222774978322957099524483414475591178223070570327506189903254532814084134333430269005085272475653329676804079213862586321090041576227323173522352764042477047866431570024151677731931803016973234338540524004499653130678420547957186422384681929630183357536974824648039946761939112747333927554265500852638475335175169387408844956688820961854710836723316971302073414039739969927962456828051956201610036854539717103315916541132008314116743830229301337197608013916109956845229916871194227942932223317436392364829470631698359262881882388113036492414308377466673016758771785351474039971363552617555004168639881948601748485324668763128393207083520490945694893871503096740174827794229258089608531370120386800613587908465027465474131393625954085932745567311149976244230966469921506403513903424498867930950645163008923926556122522270809101240864197848490477160056839551889693882708180167611210151074662901631718991405944255751306723068546478625968165428484902186559203617768245006548422713755021519872597791332768317306670148082544370522926050057355683418406819167096295073430551274411093462679600230957492179997424952090697146291326729399761996306132800301580865809180696651360290682572207184755674466985000952732571137754811352126086379595238438679528334290878667143783536755753318490571584881487402874218921361442475147807255678874595547052801030500913221208183789067732275925158391299757001838362701175490191356903285371178891904294229425372214338462346329396118819032849199801347142046973905091918785270475170314759912569200223024257437214256402846764770518322408510510230853514510784330192221776081719192017616923417440871230778831331690400525613750040871359303631312726108529955670846833573061305172945486835629747274340717170861266501400014885327476596047263838833981555563966712104366072428671160306337981481377279548699981102371001968494319500527858434007387182870811291650368967272665763469447260434972950638359074277952380499005651689069090013607518205708900735188657859594876925298819395259282178179507465061732265705073981966465005033355307224589027014308536516840798256640222897970084440589562559921277564545395474696796911220814851579180305599552690755119902266721201220721365479245190543930705239610866830709627431867585371746240970315020547011519263118897544754041868179742349211670592829573211872769164007312007349505308261627550658046963448590180494433779264170356569311520762643268997888367624817262445152544597164435250754787227094599386490222145611037665128756114265862449690061709683963474055075503884359695982102541700502294073436691873355669106048061450966904656055524021973576265468029647729767805249652230587107644203151251124050369252385056621038392264575065598870668721648480353605160254069809428225625427942148338409446307578500529987277067626255599584366218411452248805982874570851489346383067315631219355602325774569469203472784496991282227438496171747010169613074652918202071278532614125974161227858287725299136585638128001770077949158891754223669873093881635045416979575685870834028061250159298004591568376997354507428790223367227035252446279377905655427583098251879922007563828177955619839711811411573268114376806407481027647882182766830229016042268119681409830510583619607347397266234694093685742772182755217384237250742949876134210001033920020967115428774913051132483430274346237611913338745057073629647867526816151854404110239957839852297028929091844115974731874220426771845946916608042130288872421430778405282000558795339988211461981054968778155149579712478405347168986466191442242514262953593754657822782228723771206540082981246125317432003889555664633462431938155337102618380404654396119397107394701358324029618546951509084503941640561183946297320553715355190941300941113452791698694475044047688362276960175397309615718831607077481748897020308126545699990597779271985730215719955025655548866149783180096690013852112797534456922329931783510504601811236009405319243479561338994082903768817245046038741467086552916206697123631420140901051994276754078422726091364515112914815418472664921638260995185495193375044470228407398450072504361009221155528823627074462800917899053843371140648065431845789226847082125825368673706703861417471683184551904748667087721372977729198605510717983399919754099247807853754835086296731196303680917710591130428981225603943841239964849885931271834361732772043498191471898629840461879375432031088006704953251821734132907300065018914636595648896050062590325128276436792682645050232976097194223792313439710606376794580882253202165634227600412857813223524750369883566201804996317229457965559581856796991961552928303683261554158367697212348507406853060587427192837927162302571065639515423528169186732822231697290586758242229547659852947626662966362454545908912672541081417494289502747718852324914710722882379333739032445460654218878996896968713798657410140221612061454251936373957456444816549331419728237526803911846222157938631871768818525802170438233745166252114885249246866925027925164411598963402244762116882790482262864915910001496697093542197059433430654124696427185191660914303449621853787437494122442417129679275369556462706659114213425692647815050550110272554864422860546983106109962223676054100097773109324110466489536633609691161702639662666484015620446251880245158025489462010319793993513049553595873403929822747664405378926158403773410974568900686975007034348627035284631673535247202217729335586862255754718126022395699598444595772438479808668147416720093267392591074825217192933500096347538874798371413326483335827718880517614373180143976386528989807369597328169600038030623550006338385634807399714440348990128473966332897346088774851213224503485100584815435262360059796001752449449232584879609613800301353221277690072585438416354260029880788088222715356406970985688725662995944835919040602542515849390607033563287969180420738182210531104095643111865049461781325815496686062638103027207037199369939930992896470189719170927107738997059848267174394070107371528676264576666315111054542953715686170624553709760423142104240481005131771176665736847301026419763925049066248859569958498064948164699191991579404865256397231438312130130711129795488228969245441758539309759891051393183881133608500995472409976153952065740509279047882282697460202694206301139653151857344591816884326942547565251612341749253025578037565659059195449491430516514125877137703889196368942966122544803903981102929291259962474326945660241498274084848869893648377646820829510486567550222142257564748206920033633632650474151499447728570524186444486669508924462705564327119872897956634770343680444548203486243404553051160617257327333231632604103129935481052574840909091447359986164361984743762890840892139121467382327322409348772379952796554285158103413275452972549990619757573542930172378474700312225366097424534225662388289522069774807317866254594668351327385893555352236720632415307452729831594087886138937106659629891571857984770893508905029168136550769594783510189573246081739405374588516994197674902999578521317537627136878180002601449928910347165971398895747309232464640157099538396722286446644392920954769468974532328117934825295954191115347186425411620802852878337827840940802308663865010940711968779184006566549525648607580168571425856164635485011736370166363011322605585027274978740042343503998748650139606614223100270227823206381623629627732934809963551939177484082559777584475749866402433171411757696245004782125080445255317011449271919851147215778136157944225290058948304941377026862542178518943330276859784468036368092478091512435017710890705772247795824438233359180168207459664951299125745569389366676842403716007521733277192673727934263235637728571086724016467053528802144868522922169181408825411821422374152400708258824526796841465139107990564966573941325584815974225406001706645093234975742014110616314323005501751479228165134959108136949195461655018108186176845431539612476767384116094384523866705611940513384224153420709243689360918619202304716863815461456228369233814042926464468942027784652259572918029304395006284086211260274428119901529605361735640002372913838747819714624553337431619274421380832098922905507355796180158733716741421066445649312610829909843726158302725665441806201876959258998614788792438090258537393880107204989112247652196881149946660659717649015945805888937768608828897291739924808744372537988830319848155506318407491908346758570076214009118032451355670943087378251766534684818575635671150321868399697710047246441104184790516828208636558275991726070898572657995667405362843975875760810863452818584693959896463207772571570381835615499987905281057326872013950634408335714518764637315617972302385083886202198990473275603538118284181013447536222504984593928342332390649411206223063214619019077921737858143118204052348163334930407767645556500727661385032161688568870374852962222330758155183566904980765038928374071299726190699454645821339426717794129266863421493359010113275580392213654131977398842551823982097809165840356961740541381749599492621550762473992939290148771442715825528726631706259761580856897189847995835225220714325261366140800623886240058061558302761117922591208296593464164603326733427519175006843727263240763676610229219646742120173414051885585565630298017217019914590509359232441557737535926860084848493536836535101976866129169639515524396251529687585176243685598484810129269107996275045420866455960079550575205411733765572761081014287659666687232589599636872684927701607485341678013537536023415155801115084582172543776773779543353652247859594685083372151867877145993067093444318437543268554675691184843280968125678825544774527567519156464781202316563984536081417376930545794880402500605610177693734284948624550919362428351270031626552393326534975623783013319224119308915663766367980112224308910400244075917135769148972704944506843298250566603416278118355020466741500917906986944343230386498137200260368877408328858421012015742763331343365667227387576177215214867914086087827381350159539170656808377715812276295764953564276514884862106414031501646654933622738210828142541755427808481518914278544138492630832612716997407950080464967697791347329105164988844987518745071002961330101146678737492816890555419895718879751876880723309666661405603548101997683259579809357923446263502012343228250683759789098335352242524755627834521160906491260552414937004248283887512534161796066125959770545252670968882458839014590418158457711947529517184510971351293225445487313285961308167480119721761643046666771248343958031347103167924619181354034004565290513895238828600974346911786897200534844236865886641649026214797425846328827055778005393105005211681133484504112704271905488711631917324431303470790494155290641697876863376747357136197368048464827864349944849916388391765666972409812156942007693956280712709026064619008099089758498935162854273234883973374911618001035276651558998025938840531418478360476138443095098132699467769109359793806983256608527831470573364460508795580601988542692430055325061677510799418877354799450675835269949734029978260419602771945230092579852174661953109583936815785842065250149884767445492185142878723140999541801307752335837716632743486440586932883258207930047673962776134503563271916158899547671242973309136287907209977947979448136289761116258288335541836317908732698268080514518511246624768733838438700360131249441979925685424265821716179829829415145523544173296621213996866424078125447529166281051250023708079713127960247039364627150237485383077710451901877564471105307563742704501500040506443455015278777266749126049482557913366998982379784552389166546860714002600046351928174189285842938591816280283952308725006978602641818457765973167586340892434202100214092236869268753759884321943028163937253045387455602499682935999949423920501012480616336910677142063445634240511039873299789261124604464358758971308562089294629950835695673990122633605633075009487294223673602319227328823515991756806300982170622757919953439508076384405802188089717768582522953195609927939824676248959842629424958085470162182115615030641810194771783274961077766309270811313344544132858360789069709555230628632971528499700706014034241703699719952451587210447749342299241470047622473856770033342493946656656835628078431143533619259957179354621070156857978501131072934965507119855468571286311966749271148391490980230566825503015654802396600061572160420418375120604711866304677784406237626708337526838201398187094658633317674667075471194693504343770633252908709438804099528257173951958197648950688577925969162394995442886807936311845167353751059412399936331483375111158448791095646272708346856516057145855207256253275443661922723220647327711992619159177540174981682222942285677555627577372623584167362748825589923837164271371299151270746136700697978180002431804614957906628221126780651371027328979420307634527591499833054104940006735640161023312734278501819756178313785974491514137670667231178547580474214174839343614533209542102281736290462766619471440882840219367234170502926066202132012232762519889954262285231869014841408852981773547929578600248780722520778713927139053675051924876636260696738680291100499216763788181469757675755978097866307616237710608712153554732092010216905194152143216683121865587739005831251971358204274729254117557099633358331182939751573007100934482436584971634158870318212120900503354112519534395231559546474750815855536969562776294301350860791154113413732556342878042480487334276966691105479639778999410919123922379835970880170746302634159737161240935371132395343538111987033858339029866200912254630149335570269659755135719890953361777141533802502188904544993527629140494067160065827025692437922240250021441776493054457469542053658221814307785731502044058880735410381988256523880269995547004756937562054594214932757192488253088725411572158782527462957430809984965862886059366036156868495564320436724285362214651263727630302888149907518485658919903956325354780162438937585606944424900239605713865308662963005741122525696370891127516134166028322106838273408635765054930896492738621144909899888345424230750693122595604199989476478507729258379740073081058319758150886112523257848182580340864654835988965024096921384647583972936236388836922538109435964313418412203008839955020106593778229221609258441596669275833261928124562491322391391925239645860666562557158880849155441190956986322372067054137925555042004432750121958775662782748141572745178448698074850629790625433164876880300352194787960906470600136446988926599186923090602672027854793512588140044358784514622248542170819664838713479373242684702632658085613741613973996281328935721340913947175295825895355663092399018406887799768649497595435122711833385035313529210299659612967332924422968177765845615831048503220350433850889247365869753601124173248371802389119675053810911306931258718851008906367346458013013188159544944100468426711056280292540786688392462517507435752506580521796044748586137067789509647493135679279942701065331029862915361812425993414832373678933642455439923155471555006028642816519449391559097872961927766972549939203630091942365046523742523609030200247643285093028687985950428965168111840223738858106651466843277882011702102832702412730713379202372407108176212913186245430752245734515123764586904995915837396610836221263500159445389627216307986334368842493305162112588839878936591923546813950760279309959335538131720598517192157724322470976703072774184129064909640149592341398739467420626791134225601086630241030427720470034420213748499390918646736063193455651416752741513604216293729180443494314924597020011259897030498168008048954637882527411675141350672150732992281524979995199541106674965930179913122248453963518832845242483933811978774239235264017308564294137204202426484284642437788363162597289391514718206780672910323066453320479505489321339645634745121637179010665357849405417176053576974826513864671602388255090260889841777439765938722990152212073580381576399537907274560179362272611183836575609447358993008707677538642392899021839629710905265475271237636575998094402207774099949684159557296339024994905405608373112010847380132632700169384111209384300002846096560822204920163702764124319769738796255783123664054597456132290358584257085409080810186843406032158700075852076278384545571076461122305761883830577241498838851053526768996007912481800523192753136384158251675285418844968279639951139833245728625239096891868481394889099645742384636718517205614804275504726024972514201957470349870769173764488289776991456865404085680671305548318707943590639708996029655641848045840256469348601076888469938673315467474990185917508395452679652866660377358775343852234194522645232331588582337381658519727510803669474029993757549832043320081420764016276073312899019466487374586136457044653432607132156189506640267889832038862815602403004087398851931918759612031997783834193524907911309188379169654346613102490036549437985924912781770194299609301342730901786311389377154612405254351925209565209185286954351106085369234853951822672929734421908618850105062909154468000913605581520278388697975717412368590804734372990193386019200180994814114836513772028355434831210980963907173918717974417225795027355454181308022271365941613603155797762718534357612891343874336188103750419884571226273660434913720368329991425044947143635615172705458316338394668826142994348608384336758009943733517757235086182545241549674713440240887742755794198287027651962408605777421267474258177673016902903586479174602054650905084188600510862963466678246775853135763652204364149309213360918350314194442875529058981370618636603346015768881556997923860035655298342769456447371073415307416139846685046972204255526597742071642510476935413845386294585403384075297124091331575163464216936821838030555152137774637417730589370111420307598534022525151233437208037999988424881326284755847488715018346640759126039072936978068463730820038086987788654956886565850633238704945487451891330164140288234979239288977079181487318173042111688228712759582304997062365466178330686063583877177419114674250243724813254658220937327810167293573863209034032912121876495209159027467507395158017434717617324382050060627272727036016055107444759180371877047950447767539310406504933558110397704704826899450541149397995126732121896123185190590093981835658445147031719137024661137433464176785807946476896234512162832532002815126111929703830275339208563278094738855877338487874693247867717164832929726344849326852003240350403839684805670399637549243566978123504696830034053382532440539323528605884499365618588051987507261548763460380234450103053916454741131133966526644346726290950080491857102114550126345860075314224117116572601110777530029670373066653334459012103420804299426107509085975628546291066826010964700781752042938927002972084996894402080287394944419783160714523005445747513077915247647152188611038796760743801179297239271701269227346065905795248332559639043002335574900841812561368771134332596633269319150684353643655480984963961303775710792867961881956591478524007769673742585765718355696289240813527587574419911866272139524148978802357196797027590078461053856056017092521659389917377298909424843695521665713507526485512904499063916108959107139332680105855445196808436030076079230428643276619006732203057327289167579444876057253562013972642128472437985566126169876415556470258240411265480448403200808331117887550685220176958426132530364392555583143910819790285975758611482212198313937734975399827387591366384222774607073832106454201766500827015364544860245686465612004518640371775081874919075035794670913492588722559190114523947217029103065945499074881740002188886168266585160401045406788597418563752398752127255815883395057158022828113293082464165060337981163478030996470000753301321488593927350906654399593799223140412808622465821456212943584283802194786572151102628817037735579202011380482249813007682585226735470221566546858909899917377884390982591990698297750967827589810175588401148477737620208746545138604041084290202685763074275234817251133423168017247823736083478298619667387500210435237037142112276591347682886623499390706599604255502450456047354693969307366840765352487540572097813944147031794871517527493405381132988520871945410616224563167803221319535720061261485849371389465541130052955626779273690144414232459220364084741789138238777640123298334275292032072462819715168746221641538610556188624650974445539638578489006230544828200039049031477431021916029488356179020296553895306769063822776770956974136272709829405847282560667412182454730462228363831613955771252054925027887143724426477515966993657685741137576616338515877283382277443896882435479508287875071350485279550770690489367029310446987503362857285248927385860298482450468104557562246818202324727408733328690324862260136883906567754300120068760059630993259696033132769512080979764093655161630138748322395343168127716080060204835508579141339666675000573267273389785047894812034245351154901906659279516514756740087087491913214476511165605426820466044230669100142444171088961377261612806909257678833327349861459901649891403636730245251809947964612178067595176252770560739688905332739160171157308390326034602764482008375657586883586003767685049523659585214283497306050602614326898384484844993231399918405454093183488762633243594612925377939676491992232014430045322575185872253941957783942183509773381142983090513508149961682657394389020377388760721860641655272333099845535626959743085497302729280299237221973649319585763643280865781303078789318521013322313607538278689860219346647573818332305859062202659293450756749550856213846554850328505266133889977714760373135180839517937588820536474540962978270383504820430415181001435151494209726341478909299232047329164925091831856832807639072149024351320027210201734215251601613458342129886606577774277502434274780263110365208370834027419293333522726644147454006076837505210068791643987062960452403852016743555763395022899859318670956798570726489713779592996615268292750909713197060372818426388404984852520224379381394696140941890612177724246639715778674432244613202247155183519350334954991132629454250372446263636342940052495704912708768411483308840481472748555033208004816867053365074715030199446457212530548856926479119225748495104754184065920476448873626166850073989928546226443968096943182515539985807108877023785021594306477276759791860427123993154772648922391717966317036324357866554011268300510223150103652913265817105061183656829256958724816426017470677355643513605294489991139106446023014676342083869327807840647408587490722339299108591705131549533593586766984777316757479776909691580389851601076535611970693870709997966051570066749871639791904235448557061197693409976356686868031017357251990820921473355099210361887714026541051157766654452871337128806384645878258183874169183882848344292813877374204852814133245209444842911905865012808373801344059690317607881212672256084619422322335979986847936910935390530267965270457596606321326234482236905067413155048912906522564912912316704842850481212674576590537324664424499370524084949439068435434804645202205973725322185356720503418888000137438377568678597458593695551457675428806594161470960788812501079448627330049682598687880404774908006254262462277740732717455048356370082108098696685561538202282769577808240053200716011153397273525328085003546044026609891717401237055862623639171399850313755206674923571636126074004920064098066878388510753064975874217282106041016610957684009705103820086468655014592377553988607847697327387673343083318764221606287351722731729877687336049053823830855924602594804163567755948509572027676076563436850374413830526146764059605150292591035570441183074129843207650817796871262406627091308006233242373675333025213539176040696762063070535756388280979581950968217326725381111685244492433346414501144485394992125182170111490490734858695957541612149508161015643198564682126060058586289126943453838487995447999856720096343264490868195196388459118498038293009195750213227242949785315682319794041423076562464949608202901137054911781755662791148067017520026341885760851531395750802614025597513122550132232464093980432832571919644797969955796504989898163760818288130169828847049748992984334147506486503985779076358604338165821834137777908203127667066281143402272985478478958936284899390524127730851811099796703150450071551621843300083275636828739710095743258298919463637900510062777158496611008492772447819670647560375431897525572932488871592036427098233182802361184667085679151393149262297123255305766212350510157443561476684027738674228830504467356908184906167753342378424843247307315580933065973350998832437816240543124469691318539932538042190637789276645926990851064817263906293967544884564121935408248029765067802193691152688979464384318527894736809515962797455630290456558685065511943139485560032363915724532512765738664922726961587364537911716955372380226739806884780488085335681267807253049212149340703329150902490978655469711339510160288042402336337010598497271919542452264247113570894535146910816198259932968596058177633047533786043016563894863598932899536590822042577643584403205167510987012722341197753791773113047717926181046310834313505585979143293341943202532644924585997703455435576741905396960797401982409768211851600608907265144235952490702064883392071605843527581188108722940232337065628991675640644805646305264528918319757986674161465195754840997750578854581666802033192128810096773096820143353057353710484734523288359530323672590598484256059434417226068478803455643387563586697291803497561155020144468951476595334624397717179872288709752846682233216696659458940344216309402323126743033347387485397600883937716213451500588063686592581695285721868182075372659451603910297105149102863631486543283911152153705891793994542735692790434934853884403153254026127540574939950276441806727841563325604309358468519604364465535941516143168519938653116284618556947177221099221113514077361782713245973663172388153541345248180826978959463379816822763126679767404813727344903096133972723787772447261208056646721938598820926614421128923297007281393742114876361344163662584246231642653344556967519768988320791431592128955881118658120162825978636845222594571634284785592459382368423887813450153799038687858161210083198324588613241580497250806938268536484598790680168393529849926265954263832883793485941253191342235586681982442335524655401880335500701523615310690909649703953139413623101374947500969998469291272198729191564351193601542449461835557522572198845361879243530433873754407429443419742984815187330005008127893098834440114352387915502021376595177737280651121676437880967201979422123995774325960561251276706046044750936133125658333047212817217011358656312576021006596937158272554745475317778411747260887999976291036663145731368209093775755916928216397400262226500837190117670527129182351891232600186120229609836102403832044397540957687216809176993422371873054078621885208458998005165728362483084897472160345403437202974642769997058098306361906905111584795999128728395563048581166950576747774096920106613027154382138060496332077433797863195860133027005236203812595696831375938674038136211742214941497333157568105603936211258757073785490550329765345549186468496911809895575018072755044670452495475072054993242715150796303136493880920055798192883739520118599904815690155543439656453304976736353907955497809559617156080646475248034802235910534332181125136189721639588195155062135496000154687132537777370355110387809249420514180955348866031716197446179753243254700817793589926381552413338451706188108918680817069604406493764908497753460660733605691582530854844962804386741395127674131097472430695721821491674236541239339009964530601662967222697119664455466464726895603021656095067309917007764545534325109279075160451101341790409869621168159649126815314107815708808247461412937638994992368025235353623274784699979298789597616996999336647490359983970034204628064608408735436381822516405242757610552285949192271171617650590987006845935014496970382072857291752297114001889643090102714335546750121359056917139919121668211442920048145624030657657210068393456807717352268363571493336659944046776117181933795413042127975896940367914535725505446826985549237385077630123558262527472334949933512764919217187580264998793884888654960736702675985652964513337507262106001507679703087572255154704940930257429645546370119371393527787019356229169134624996334054412335035555905776470255261688173702685519418505943157533540178674538426829265387579492920179637414310672950773660592182614668684119105718363501785884568566158729221151684997057631874991751714809906946239803107273578237914146854209844735892453646259411098719142566150077790153501948286414909138033925789251135001498080337231714593041693053119815293730017832376568353411129936584905937050240641004498970088397249628916246303901633933823875960615396399671907276173013107064297985832232715455037178464402682392154216243157609579572169950307100514781616546808259697545454887623212837037703253973533807643363939950321938608681550402746746178117526790218030331508534874389812812760265234990650289696898735913744688810333865661191887520196147864956533026898420948411134009590956081244085392559309279506079984496054769925881111279924652338587463002642917145339388755598384167750626348996505096331695279241892294025571482923179028097474014369665724662101541919296167178145604067661871204034426832797123435283039224489850371597541944097208225580539618861688297525731859675438446983430298891096225487153962906724855911805642503106565780351195850501843524162536304068822144710079428887235725063780640584219675349529730500790963268778118008340657021432223159513268432147797856405497062868542624465983766926247478610652456014145230901688953322210842431422499684573606560929981424784525817383379412626437901781770980856483773514429663394513908584263121935174125023837764242215185289704984762328728559523369736902287792531328603464647983912012121399892023805722141748858400762459907071892655315762436095260261354220892462548601340090420962150676026892926483513276358932181850353377901166897526740368633475953653474798464529092194390433650141303439324246114131770936301445197390647965510286025486154064070797181384495035783834500774180350836607284676619337010435531435129088574169797050970898525399543201509082411156256629849921741733283152738579535852730330259439174470223203988295719657500171844374469740028486961805606669126739015354904029919447460731351304368794132425066992196307259123530491329970714591919436280065643473432634137060697057390298698418561862165952002705734372284956293319193661543929076030627140937478974673927954089135368876523357715375277484293116135818614999346619199696768084519911263760072145979020454031538511607234336338804229099606258835362007072232265446373885128760126217471479100630178975463311991368657419252948052798460366879764496978150388549749834541279006742059604755187064190123950566842765679274621267613617733370093141907505841103111949920574349583943141555194823618370665924065701369237123601600946144594976420568515739722142789709605033148601842657269992744794225721195748660570254795733088025911611179122363702633244204634622353725262689284974478620512770987312821811390286042240140558254133924270212648653758236537667386313457331526902053067302463643479520700915188078102039757727239784452343169171300090329522642087781936670650965308127107516196980835309440354778573483184326879220590597767744669841529504742556416896148440904627274420268817868233346220170211145442476671440659083412938940008937052223500537689988769496190123431072669247350246612781239949243131204291871515091519326117437095896573344211768995278336456722356639524865273410484615222909942119607703749272773960000089835214498811166165791110941176557456892424238834399204285894182822346104941086505511645002232214295758627750463891626513233243728636957616935702858833019735858155059287707845485427475045263069074861086275975158425587579373557085571066251592673332568684000791925090005922008018037666751725141537383948132062168167043455794843583798029327658186168111459673657005535261662849405030491278050564745782184475361913578114968735674748502799082719977132294790077299232939938485933978972076052835169549691368919837209653839421194386308893543207416864405005318589863427753812978055375036420024638095946406317288224736640826601276470829142620495008817374338780963729517198384002103841395266300303261812641561539633977651581616048835429820602963606290765362931509363402819591466458099603875499040615201316038466354912184185724945713466227201347169336747904954539234882148618563787374276628786849791751119857179754728594817165647097749385066481956209649182769653238918850623979983733259663149108161036076225328179249331762134790292549882220696562681690544524108597879509561190085422992987450037650679448948629655403143999168192374128370127280877743474325488812387201648370747821487481520332569055188899097884832312620980537303291658464037400830355454115374817724577604576602140379851006427128724756387448610581898138307421307266329680394293806989424689248965268761053359025219498599048414658519670780451114423506277966857907061276821368753673811012040531922527533986622041761460550451687406373692496011581964376719222471768499514637872331974025134520394647422584586117978107970702004374580108909837441178861720883734342735222718857073875727262764570047914457452736133388653301546841294631876002636923509239951525085417078738019583816654093768052515812578483338163395584464508773544322065316655346465505076288101746912049801338645493587890336551907572277143327947191806115758282629951008392228615718136209137389948573246770398933279100011908489350189466498228982218182989076310664851192406638097688008157190316509608425568240404463206442863483255014633037615610070090875849066404617874316789940404843992909234397324152687317038137731992666191985591834817985803848119243754733592171888536348395024038522465712649208709835290162179574523465838099866390835664984872951086788941634853093187051699756701495712066940584597263658334202144556352893104319492418405756225130071026174537545213076306010499760875565067211253228597385197608111920415322968316389485951607316044358740496485055596474966749632285418371025491850866524794821159663642211244228503977452420454521542762932913139565156224596565017060194777463027330774406590044716072089729274845800144725206179793061882510462813149841358659843607864124969828411719766353783733760048278284834571016055802616718196914878723472770612785259618043043577102216020938027726954554503825357407044696015023257906070428762638432051496389987551310614216874801153362068320718652977440577918027707867760924038826770949869892492977599884129525041623490145974316445309507585349000015822046569319861780455964738260881767068802271702847491889642369810222505034327393626289168555209298514110558171904469935243001099468263180252990653241686288741178764790111104342222878777214577676504899342079127310135515893722567534629946586512215879399525715376460085718442741898645232610833189276873789217113008988961083510339703744421317200130984220680326263013613157876681796746856939832427053878143743258215988554336231000415268467568344728551112450578661524417678356581536865118054191308948710143658335646657391045838958562983201482571824793884933651038982192140994367874256766598979582759717649601353980066818493258869173275867622005105117559648044978033205670378649843183440881562504081666848846428854610300553446370479811530844213737212871679508797293932361537328669631987201423378280182259780310948900232423357255119128410236886740054970996302000396058242299436049177752395988424381782974268321027221065841547496505479269419626673030753946967333858973305386720743746959950904030994742563011542510498153004468445122373710595454260956966643742022240944639359466802414212910050681455993555406866442823600947458249465436992788898106147068745405665072411614620587564162306953318109127774648000168374193856954842947240201389374670851217002666937193851184773777267055379063480201535264184540199841897948309308645006034384682091790616335246632374522203046517207299492128969371265846857791844911503479423539969590858771899231084714132100421767077958117378275020682266936224729732093427046736447529303692049313467372823439611438089398185403512349202935830708587609342318576302896538257541550857909942456424797045434641294239630959429686296810874005806617785874139780790119375720117781228325330493441537889512548060498301806929249283119167245167233923459738580476933432073759712013101078852833142132392969594899897314447911962315813902762653568095809282347267985622296084754320176159561336991555397686410338461648397731334390207249362410329081358212834307744957894556058916812080670084610306886323987994884952991244810626843690758730019919211597495933585799636171563635007485558217095707085232599596814407181888445415100737534403713065672740597492762408004558454776075266138503384878188231536315033475387655555457709925464378247972776834303841570667012879544828262101440685864422476273957171228186757572702800717824612114821600185476744933861035997501295492692001032168396020654915828447817144709410529443553164713465779906512115472599493357061889782569827702226362463518784368769971235048644829029352532229153357515546425251719487615941156383053689322011877767609187463590513113290225926401293872516127983665666003985788207781971888793623257743590742985282014915450481476022085769310142565442178784027761167482378813812713815646988142026959710527500544284017972730578323242817894502839011238513859026516685547331972715109600874581825993633477255198827089636928992680468465034777235809825229467155082845384342426974018042086487960636882416866821531259553901923397044123065804406027646128850785371693914295033847489306960821507824883190717645570952414441071138826815451812906283116005526514732629553231423022748396138513886335046058598641329154725684459825031328897731053076954891912977832561230644940808143196333794023878650710218672797920120702187508104431039906312367122154415755074032875144119216355256446406590722604755330341842571730101267029599380451443822174028007348023224486852050561010498149973192841194283641574889300216375937754551811819733457544843284689384187284078069972399276797513288454909087694674030004269770650733977576879186586201677584504225543041542100698971302900566140994376621500738519653797749035732108901822209790366072889186215837664034030530400223905099416014442135567764531695833294170479849811285436379464211013834876520970476144415317484578058404891267865639257943222086580742841400049958589933551380960607852078118431641483722602917956194691508723801878204867986186372224146674500398141858225012318056927066427507097374308928987821911505140404589168412459455717019295778032779412731757310194325455745978717114186951073216872222541111418496895827436331416880386234191158017984260622472952196785399073986495175060215914402799869641648755264109299486152643212868142450205402796767058141097464713351346846053787270031065574598836331407391811660306949041542063815669990453499597770083714348215803330115604635554013121694840079295746231873216731702695104391603704623184699976921073072615661786788520337363628128669716184855256885307465117237336828140551228343507626833386282085882436355281356607462450205980149000405519971624003850314110042828155172943647200219095256483485821458264660719236442584338758295831415329386873274467276003400779718246492032553992974335918541636358468860381111826078821959411046978567066798426552075820191993885205564799486837418305442700046179672766364465853798576716819070810632989026041144601167918412384527410135333498588273000288130809092235461729106008338949402455919638760119363127802935072062555756049266234648894041875870239933937102426397761984108301727445897399944558883380674716380543293147631875886960172882926687042764507469275105086700960286511335841777534976276743928785632288865062196853231481314130885027622879279090853639700199045090132798319524512581977370958071194117960047900717319290731941956404948941187137612748987895973464915222056247931071941322899498792503151411977880645399944169466460827970243156540246407274006087756162021346184212577237643611943496023682291356934710099291913283971273416942306450183704010315258221846320679684115572977094511839609786274606867079092078682138230251124830314558718464551007985496465931637452556752581864108885878264003183417805922757801834687639187048495686119091698498528099002375700116117889953790889337751467530180524237333535653400814223769313184189421976268301612875599182705665214742595449244017632752332009085073196327880287959139659447568945902692825300415914860475730213465310811846806845981842492643335944346341074527553014317109882684800772751955010976408150225615413613805914383983024541613417037517577739866327307684896168287908466299218345215926951793520188022625938645146846843613968221003063910616343338401099740191650154329263879841427267920146745186585805940449436648693795141599469411292156571871242382015311344048494485717527631976993676295459726204824685309081642573524349384880211401613640519526001506836660577650769713479788395832254757387858730614571441863399192945751154542450995518276399623909676234380747061552313761690262552015173573245810124664841253569064796563396600223542959153894003953965994105482293101972534990254133544006897134461266554473914521316144036950894933459918381097946160879618323106185485685459591376567899119939791938127491546486384284144348519180114059490036640871116078547836038559772017546616703393023771077437278208672698607639156114122003244868504123005599940066179697138662482846630597046967056123021725036051025472857251242586728214640971535231943593846380137166442037666795779287682868674413957587676322670712062854704401915795895599090389294408560885282822389642156229648332330690940413958553760579293561839833250202670639818699051190010292716675766172849760696265815017884880973817917640702476219575786450664033639681101797722759847693056050286516331416066762516096101088099073059356752383500894027008540087548640609630507621326910685095846676949806436056051273107697671821782916844600465759968910191478292703140523180051556240889933093793215933171351069929290899865318815961401099933776198874025680321781493827037704596420845292440639165040065261291767693594303743997546382186479931503867980185164201593822413744351780848943235808446680294944520795818066550631416036504572586059015484925483022642965238810475891944064097147413003504208259934016889510119891275173018705887182760611364107145276829150501992770707574424429424720771134783558565268193392795247102525648095311812794400056916649073756191023745617215356434749288372839665195135979975719598781811211440578746451500852793820744230405842268860227645787187168717618627475911225286128509550967990043081057606916639807537647118603977884359284847941161184647790199652409580022596581285956722616476289337317194650507316441002284739350063335763690403004303704752937320481125419264809930840575193697013357242616199173986654631859184252958532209468868151054311365738185689842051741033395885468822406047811531243224306219236747422228045379722704180998066288338736330528008432098143807002232574297162432621200678169340997277016996146068339756079309606226549603963819857708765991862813913388549185314908231449650630471863578428700145535129467492846035430046695177870226335795969020436225563051715017982262774643501220177798504850266868524683782354316037550880327521863292304047286046171522753890665212531086935788623583836262407376090817934769983590207346359774183362447108778424684164590339920436545045936987270097158801801757513931561555056023836445873610449317608514505815401527517479099176614092655856841513816855304465232866735522524606765002305936461495256404540836636520256835185651288172503804710712201956672833484843821859486263368718440517771079357676208936474113570006196235050972238129073380264377668093199293774698584368189982614556931088473429147292647517033029483941001513577849527740377519361985652927489692004110566612292229416383068574920838074561571896691032564592931421639042886764076998090414974743685091641274722960242312883084995514003533163119348069618464250264585092878783792828964645146563884210032476644742017229903342897519617547720052557896926126471725962908697261908144077355074637438977393476590738209520599476489662945466826572206350105582382515229231133699771280398058034130066088765649699727073336478147705892126540926243718713084886359671394883462188127601179117023794917228232655430419605200945427384667247384031604615548036069010564227194224487925793418987830848854041489123695878390674920949166448360814084385134943488740832469311829902592493314991031453850308161823333116359192041805306612635492378712589973518096609863345285842811676999740946354900874066254380511875011539983179282514237578998468127395339682998379912260601689516444826713018146729772302063136817938613965874945064232233230849282113323395230109546874192928397709132893759920488284747104094125662614991095708998102458896579430590507629212204044340155949934060544910626946105063694079428648616021817546623388642706051410081289364218684362226105019622173275604713012300280662993621399969777937838166875094676143606125543385029833173142940999426559772149645492715711271211517174706428849501435562600942241033818259869137975931995424857379156328911160943316185072059003473650484425427387735923708177583290621448943469757906963640646500892465836645345454469827721281025179567940043669157306767506842932716797418915854327138969144557985324986642760020229173288199464173315481248325282736692576552344716099759907654499023815181471059698951790350633014652878595293624163964512656010006569158779705907755721302093714078118849610537543345581700428834238933247018521770996019797691363177523218770745920543378348124337407933297810411140324568824599127657427706376624091376107053485250160245651616348390567968053275566618730097250129399560113891852809744388085386437357969737225954770919453840447871620728757187205269884717413529640053377423808617730790541583153323262803251195410798015158020653816105102656677154757651491439948035596021541474354931268437835334980726791973479770324162041430278633016085757837196470316392072775028106195820196819935383106807107708161666510691733362921366424636412491347620449380347158789697298332778413424646039227395402693576381220195313841973071705920918921754574832051938805499626759931656513429047454722077851541445062041186413919063064144192120964635812311131715564577939275929095838631075428311076576600982426793058779069897280126722720134254160379333615727008583097865397799026518477707147949556230552491890660677531600456395005484655974110050764236292765406805006461424220073033002960178475877251092393457880989517648155422226277309744496021518872269193164172142147567229596042850738359435694524197641958923319041200797713335089134795299293375340089120821639988201558277055155396682587407396086236711077831760874533222933512639822524958338812342930711938259516691785262188996333022340599629785380739436791944013380013360675043457569526578934210812013864940394854903216388765493867820643245434447527869537110664522748728475551728901374069385137146777940246928781475659938679628342191614045141964047454589233769709875606356635129967040652623198071873894185577763514008363167799166686331459442911442951508250752669850073761098426049807340396645971831295045603639066856446134131353517444126423801566254471587221934279010596580687936192748827390573731816057479113699594909555758073689604434953790460753648719169362153102038180444978470397471657011758664143199303285086326467518386962243794799932494077432075797947110385847609260399178328215689536000407004436493050739667577435509701403366912412444023195657958473149520913588315049651557222526606606832897884122126509913036631791462717412666910062248238594909612746319510075114054506085078884367874417001771423099574642966567679618927488786512084233538266375821425714924475317169267460851257243171949634339286667979228042180883688770354861648620950324185343438691428610440096553282881972975302230312760621278627654358085012888516434849337014095387556549366744863334452470629783495467097079686890722830097176511461390043859572307205213240897487878189802275886249575260226310214737607456278306589368554066032904620818742685304608925632478918213992385300772306660517801678730229529643532291211701017441200216898836613866230064175233524209673635578617128592013701337529391645473781069887061477384987674870634434229084068830662355849217112883170482755138131729752997808267792958318784723803574750957874217795985741408783601112310623806413923894449439815343935517745638780756608865471595953316658362777971241224410673558648708827297980398589440549352948007247836005245680575167786712796963822334277882029057734035645152123656021758324065983104682802294282299309408788356681065152032935955106849838951500918270425691441985229748943451084337283730731154038435184951414383829913339354448204695711793379603452873561440932861453628202911213721183157043513983455273412672571257539828240644925812636567252999705227810076180021489290463904634974532226446258255070301087276024094388571331258168972085187861239638022930627939965135934270810902292628209672113200415268159519965985852803097557359174677895462482549487026971074967164208761399510226581129636900293647892970299911931649638826034490602970716194788629147096696219551115430669094276182047294335425889958469742829103526352860828863436785467487301372423050824754084831276914117021640544885818621771134615841745283049007714804769096213355218743691690720756413618109346960977250094758730470509857961709469318451515505530680046406499399878589792805986614419572583342136356907195441784609971011834358681606339757601447747147577696977988457315356628033298901426773228807035587953121453297417575915275007327249662551466831779700823353268155024990456677508253420738821624601075675296075373238355556783922905838709750286569182351647834193634204819867101560495428160887106194590630076362731648539797314806238762481838794594441013169677037512536919974043399535109540969259351346130669587415552067191693968094522727901819374974358568321014914622314916723379676501164634535443509511089064322835494992594651775851209499802919600856950906569008103760247301701959991054067140371056909943590371660493098855296849259994184610281007394794109707556125194744966321707136913583569602051550756249782005716708078486939938395808403740173369501046362732608055981235960953059583324110477120596692317944681886799865982614369044302021444142243061370052447395942936124244093259696328187062039085727732717107563460163689495022267935670848857340313965924933333525783516708258119165280756298789487352851780528786385466722209233079427954369584983433121602469495997167411769137465528313769388169894145030398823006529001186351168270136330642117488461937461298285738374267852860861431467735420248359854339622810042277122372187015606208519288605989108558814199164788183502227758844486469734173943451567559344595197316902369293079808451271669105104357410675264314274134149342570176017419891007570565965884174715691212675906400124362569534895725839147804156777101283782156540315933651042750316422080771365455923227099705671466036242994321969857202571091323686577785176178793495555969430896761937384326319342534787846355984402841099809567072696908825381580663909080591638430415542261219833852448816066253330879601352522677204744772056598929352293592041229591899539875851548150911551612547918193664841915875044490717152562511688993940784698066826134739847069465960275699155254960269071060402080300992527875460292209594162699756570784093961490799536363612482584950350760932984965150539906859490356421199628125468528478308188106261965946564903691540387429006854974400099796026055279865939591472187104629739740624361518689857309025736642320943648023125894424746492196479006766757353433488749314344701779543946311019611090712088887960894428500853858024882220705847255491920316736059103808849288076062188545824403045854150706521505057861453143099679545656275511625010366727481784421971417639239737055222439011736597257114329179209260239855085303177084430748679555851719666207739022137319893419373233790278497924740352673482518308076928632050784740771524241452758811561062776937866926033998887398681130353382421296177235106603250033874641583197401829394143774562990574337780858142501096139818618333374985322925562943464802785075842664453056954291887199904809881816181910854349822067122363799288388405603728105961976883841430395994189143528913283817187608278970434657384431705117519776063862943599653022118907535270877791716285904362376334731776659842614086676186410505823492294775913759922100621136277953048019983365873327540242202168839921342531948015910220555370773213013868243416322179327997628357679146288763302395531901633491200621068560484268890534788870416206659198244874655097992749100349275096995588849036149488403147782155982302251618645429356944216532062070771343644927499026414870396346459935729755013301480822989052546142839444267744277896791726381977370710623680982106290645322113057524631797302151169746581547879971463920836388213734202962107930072748357178957258244416787328611776819302065524245946287839026275603819419392750251482426440209242873112681413070727531549390273474892920241754226962694097412727604057432722447228390897527957442902857961543386690434949183162348817632730248663440167483575040329077573700596009154334594215451788562795789931021589016929976895132355128430503012167918077455742106372592182615730716571342894411919392979988474489282721561890777005641423744339297987283362530359569654232199696274361620117168803650223501651706154714972749101276798690107685612424536655709126723147114641866711673214427582041222710418301448632449636426037761210128709168461379693989015051891010214478460664443938930321215440772137915962582812757629313436909601199406699935946636317320789311041705936661200635246353970175408556074625089540938808709655285217788591807913939172285360087401276303752138873478972585831465375449921706289479011924626028562483841977174540688889958660482064693698435386074632729424782003146678050506999349859954115777268142619980827462546384886595203130157239806841758636964887765726568069862183298130414017095326292409183208988842963659960121222592094556738413518722275591968159157139419858976374316881007175459438129988308489981808968421262988680538745412069076191468625666252440884420848522424156279028049968677367050578054834007881965078844744691384119614691607173648869517591488443620922281199761362353475139346209888390508140711335872557987550680303271633591982203333297182280124772849055499164086845265797764910016278992211166211252717939236662580691180223819039133937900818486326545959650878962885081564741657868966654850839480886969229569854592684339575196887927385783998620843902685985278178061909806601670839265361021356825612026166324510315966517101748009352459887558251558457772789429925871842707577739725626779690742271235401459831865161208008745101507198670508494708872353145311913885348543890181023343156601447599965302808510487422844966970182057253412872291549520853251424648925882275132037583519817961859555328867495961074696518487212352941873088194133092502200789417776528946217596407204139751014028339735029417439569495525889850880710584674885259406632561410156291457413669872480919686610333546044138767294114465772824990665773432518254919899544804673942163261266351040480465261702873817752302218149387412519092390020969880936965529368735306887384179000011902053444671116272492871959104471452843942335489316546616779240956737875787255807806229717663735747373813395335479195385309026746217055838229320481308295412593725639511080877609655065594347608914505930305315957852736121328750018921043071443639971030749887859553532529636510816740641416620472653995560764898985852061082167645807577758293951310641813380629100693214737315681385139971274922904491783865346675427594936831353391421780361720444129659276923850700321078033227374791765996251970150026795390056378272069157410224781465779844536274603257606843138666242505282816057448765127230914169086374515532131185330397202575074361283173347328896959435421297910487168042133830960468423338238455998174733325684065350260185175103979134039838771156624664159439887259097542782907320121077138243015188236834354845605825303854536988762886781433088538757399731924715328789825493343172061474220084938997954763864847107804434989287436141355132753169042684239385726292749140616680664718341621151182162124999944423028503203217461061948774507206310507912175031559238227222903323694613969741687887673982333761146358061610746687336712115805577402776470319932293241578544450790853061304751751186521659210630046039480104503808774512260188981853251154898699659908881175018674003220333582918534636895321340208639917923612405180573210990782035213265250990865514057052341997294403105622938845360153633969487402084661771042845632365178175615285639025924048430529017688051538212639132489384085583403674128398758696410232775407620782014977753288285913112186990741759141337691604044842570698092020266594304664128476886612394322383355057261934309792113993174928732137606004725310017490383457732701627568346667487462077902970225025662638408246655818823156487625102164712650508308734765367750153250733873981811881216245358941126919740374566738786641440526634148609209391501935470729240792950806687168730544452639539313809880691016370953335425751108966763709915519002122462085245183714113167532620856030936567588325523861004370040760558699936682663440423665446544362408650263572364405841751897205243720596533535033584992825847760635665432012680566263444686318962434670118200564238728166760741250243996549476067568815972566556660069592022481001266196668755083103848870890239534861005186699768503248075478937173415931371107279987881099392011259030284579058528590899213060811533315604333051855961783920609602443666762779561542135200175116241501914619982787641452530805230819076526258772956224085459374859582838382204731793469173393160609730620455624846250395014145340415957639798533005254066144612060660741693671884905001173147457167965978942488878283932879043104396280647110957569510371973248434435422705577120230382347371878232213336665816682379406255569049529329431303767224090815391181356022726313272557159901112086729204836339528167721407851455423211576286265748699561126516439705967899895097212273078168277344142529234470236407544207229488562537303966651445925560172393171915064230821744637066975773342299126638698727719817115288437073924748140666662102200335039141887322543601749201645796289035303661331096709813093319089523355248886488743587110906694409805962154602525790282086283459921848613368871909114445776777149253034214592949902044300116462887065847046592460345813810046667228156164269234377844583979403886607299699072418302248716492410459345332039061099821840684856548032440627039215375876224672083392588196445114115796187797994853321319620677995690650500017355233070830208814715614780061566503215087889538336906430961489262732708020386488396931890127897221528331464929690748439048337726888627789891532384304104495956668737052764910830332989445838711820738544299157616405410694477559106181446395327492550209437850358218470815557021895614526780732078233907976764064773685053953488787445524218052737867003842106216251447517223183066175648361509300349381168980644483399404077830695611510032787154604642321199560842755787031108702944254524889510472736597029259962077691893906016100209540178090412775464583996797945003615926446658674550118148395232387453589979824984735911999276087046727570617877831372040170091935623861528939817772866043889497855112025786081819967420362598736529707404516383003179948632914067414310783329449047845506158472350152510570769738034232982389552088624425152992382361139612081013247530090049220981628496032385343649010459698645864308655250304002409762287669478594333515368764743852622511047240073611759512109742011124925469125642476511071187598053633512514512557048576924267320564780277833536408191370137681270772149387144295116407258983398164391053829374798710806816827305112772419079683970174039727160226962690431228572413555628080175986698474085592718049091773375280710092924807424709778742553513747072112064965045190302842301432375892939741786191708872217780614204055808862476449026032727989144091927378523584426558526295845829350535646946354371288993568861785595360102079128362130837762532818936500164182629847451835756395594938491894819365109053192589293846479168124817171530278327051799496423491393383494094353966563255566169637167497021481953928951083799512611360616464447711511817501483001995480169052564420076623439247236539084869440712183053503295456720433249779134330872420943699664494967714783322152409343537313171904253166980879999884852823649703691813631162457593115038143410249701182942606119526071940498885770578212555471107722088691383451298801506632991036354946969877176651552899136345701980199052271128466767683056264862606723573052990273045990616879312283263757146648297883355172859942403153636942789049727920876198333478288903625314950140377850684483018099553471502232628523304716254161241703665916007713951813579188750259424839362224094051801041937520844988010610736482410742700456371050139855416344355699280268246346855763798917637828426450624217664225028203021443835021023641234225112863639430547852220243267189948646770435587867462639702965107302665225924780040078005630850465636821458112513246700535835888750089328286496258924421330177846823813266184880840980739182057164818351164127882246123571466899875807264717425578263570796123350203731682058539576883466562867512497930872427391042951608042572760308983318612728047979394746845231986055100268051853984433348454526998729387099389255161125177743126128216933577982157894423696296528730247974161005377687733754709577830978370877962033704705337807762572963912270307969440672244431937100378837816988146475712163138092684246944420975497168549595925237442920828354396144301428133183494313349120218794513972771848459148628197600761695251673733011239175310262750119518516286915756013490921648044098873502180088881222427335962070651807294222054347392167152657181449370374178421496509126913586270163244901996772506057387700951442164314289621311305740587071851802336518432004905293512706606828063954558073297079132008084556379781793359227870180348284489120993447201137238456447749472453154509818003031947750547575684585299578147892267509439362407565100211573633634382976696733071405984788976874453571777534984695045859974706736649356228368639202803108927795712439144297685866153324916011172525227291929292110561182643174339771789665180079671396422525065609701585376777678313502426818071228781542239756764543188610529994144581443760164682364581637124145565811699111511844559528429500686845190046384020880056488516454773299433408422204383956075278777638584352678724068799856782415518041446936800715592440008696419824420750176251705876398300331229937211600808339972562504689176271146566999113053934467968618343706585578673647058510180687381996644968091432748213414692975090631160364834352307234040026337152404042266875795393542598442847926121134308540158622813131284493293202515772056843517003666122576693340519943235934132106549700149010286433183664691114145031071619822805790195799482406575983761342192424499940036483464762835893940098358192882473206441553852159880163229932853197975480449473333532012943633328839938834690226540826886445594194821704067980266798523913825381491930839333608902644570893923525497607908028850405222893322641079848502820277904332820270811574187628508172836565377459190119655879060955925128990801558081984239862676159482635119049354401606853303732413016915670703115718185043795349234427151012162926316923856694240547268607909371215648583566126096476277685890685772378937058818305884854453995531725859001216497499926890170213965405622619240898417917816873656643997846953168741749536339982376061808744745830414865130114435225583074659272388114085207326136709028420704422411151399321880508355722295243996489434291838202751518792588085764572800236064836482643455175154041622326834666026290021971158264181151441617978808334913341602358978183168585403796997926662271202594828646967009109382465623571114876622249742202351149003565417363502686717634154024081683527725554807025781798936254219288436007848651922189056851568323466749527594873852762710427160052286407682384575511610007681330995645875833932326551510057267333573880135736127364467135796201578509373177355506663622776032915020068519938720480026772430976854359430445236380047700339146786212654518788650250237768667850970907624478175893777520993079410376855140808772533474885461788981192277695420382493174997333261227480745760193400782769233689018067965170180606624591531294187177572828587331427789631895097124909940938900352084934236557080033862455041947672259663410864254338080816904056020223120305575618703580376320725891912963277469871930366713247324804316598207454667770693337355570878547338269927259130440611212730099620417949683012556428984532952995744867575477118491024783706493209967919016897141149396907782579449114021214588234408661973014664484494053023860080035979098581495016189790922034599776989792498128072308852102614136380542548440246488632118178459358342325501150758201612739635894114850640170071517895424436556431480964073427697552194543618839136919456004649819223491680558732889960528831055949817152582836345801446116676724065122391938822678657175601234593604577400975813767257249136911284122734274139221823401177812201843552895639814986202646753825567639143439586352822082932822205848682168397101375897734810164899306381592231596990614841059957997679886450463574789838330342940750645743687919285414301508186452273313873420717058508315290028110780857985482333838006977324479574195026634935556004313666737122132159357376797398379167229414000421405685318586254557646781798783832074071936746279417730325442197616563434577594240516698959573501484589498312580876225112261138537463736088127282870849151685115135400171367410661975238260277327391462464712273709384863806251349914681399355961203841878590460333933518787774581744542932466865899205719311380216719427711852995606611915095510170529185566171010976212586515061944758120266988063604983849280207800224288237614057670247651442603091204328177929344601146973864065074849625063481343868176648517355500039056738330060809483838658572507917925534807477117402663520003987505592161542818130366432946878620950423433962182342225279399195594471732958207998035115028253958384589297078318767900228918417732735475846934926180116621775208521108340517041275043744621091023432429289823106851939364600672134491060344217830573409978216739305545095424574022586294460004153337180527157188971396133810966642264990966779046858078794451123044678865267655373297959394497017100016269161461236113939796677696069541476394901727891330311106442480792323135198158510778078469465781262658977092808952877856943661908754829055532647193650704955935570317286367481097943948756733442495234420834310535597186912579023632822175265003574158989558625403191371313393642087716633079516861750332746995905389873504287570409344204723295543304177107336976625998798702617867646802686345632648266314226071420925972990310333683202596302592858223486601201161467055798507445864662433380921694226284539049948405743229346722152375694046663170716086667699145468563892619834149830323310588674727645442022070748832791521195283828164735316410282268409741181783940293007692731997735987531356663383637608086073281577356661386305607289022127045823860526373924627145630137099568416379870730378867389279407413991374956082854004430573909399755726270326291803019687406571455852467988125986124231027142674393474461625045182312797123219924496754614511919332418663587383960965801472215482545663486233689835325735613701709492383816347276992968805160013651009625827024330598096809324675117626029193635579960576946556936716844464038038529376612641545480096319989296070689082582615196566781127994864526739964683531063183174478055262155857287909337261645241501325646326682121607633187456470268937110597056498184619059435156428796664373445405952727407337471735752102230730604666794561458781084496569888929729368259665954901990162956315054570144031390651979447543964483836581831478256385370678990310628949574191832548726600921386849705763194756750957161550901609371937064247025805330030684026275260281683058386137030492784607533023969283683967211282441187814105207854035500524016824574957549970359270139762720650849076828302647744939661840272726017493376505679202223377979799306532746551835530330796686194079359170814886129932372311820795374575112453786089397101718283033386037937825941637762484426807237541045966039261668515557042518480935252336206484379311264505005254129822997554095347329381922034753075044289680871232904730865109569493881972182338368169402206519697054534902745474993067183980237855468386242427582156268887120547374654079430600658924569492561218858912915530570183367288588148513260583535195101920584389082022331429348999169500280283200126810151170202172701158997627322995164419186108859499630568168364769496834293247055893295308329952021669455311128929749643075596729260503220224300934532703697169557687191834650261519343317600879052752576237679586559292370538142279949286602398585498789295259205802776086346986917869758639549232198657573025493462537224468697179399003357056891974522807890645243631120878926152925297988726601990777550410962458882642039116277370275175507369332332059678833922564136363929378499552439770559787287901998457568152269647491612238528271307438492159187538221362038193929242047310548549984891835707935746129119715117431773970647597398473528631513334368378956515606354715241067972590525970758101000009368486548999326235809502063089651698006161772433053722023792174770040251288335837107531424098135496973807874149546467246082766003401093336719935605356645235413784336695123012868195511407646863441096255035972387002252356800396089630918220840781809870655804859173987560154249678988643398205373474950793784510069132726650990675787660774181888212335884806582885760878219690632328387233356957035167254581252724612471799896996729656971700415896796998843206834513503946725517425518188248994083155162284964172462848171083426793198191786973095047947645006079298323727028117472768082782427411500104761937704720893645829571711336937359612118816246449026593759773416674924251239844222912951897790172079641050204254736147163565752787368697216927605078969000856608954430398398471923448443391343763277128108276595866386797812554439428882987358043855548899938645867170519929810235776140568071999774255972986915732767944544803025517761452772494301154663510049029304481674463565736179091186907736870554033943564049330087585730009440604920690845065600386081531109092147420336139683811986669991482035296556938337507703644327500389876318118258892901780927177189551936794747223527877380443340393766940354104496743814107909748512022812160021070558598072722565821336367083173106068671603483117647815530256969305663668501847417313399785126107854484082134266460545686831651307755605428276911899381262587394414314001713082866167513858886690234443390858524695596022075738441386959095019791480358866761357234185922042344726926464949893148509396104371552002684940180110069620745924275139009425881721602886826063100411512111411590659268315894435306253162499397490958200317117235533729830760060459557184843829453188217910183665644799610098549523067210306484484889855924383669268518269252679250723588460720840968324908901702294579697520064784387427522218979502109885966909885180682329092964605002331510248058654407478579240657958933477307139410387407659158999731613201833212227531316228118864141867390028208480307207526793903774633392528320581820611938079934828945289176128086198233200811863917954488860120174067996237700732074316511165715501998828793475289443386112958316718269456792810043591646220473848503701526414964830265577849142042143402533687461358368602243487522327342808327300506892471884753311497173697069273292578675757634833019075585030185410103822295687602898808311030462704215968057440356514303759313700120442006405755181798750940982123166284479712445760321756584161511199200817167232752132707864542907768509603177209379849686378003025912209263124352582919278741855282826401540514722089852622478401006664328832367719269119744200680385628728145157361619319456622063937340339485523652016558625430088850469225702439013662152013556883803717332232479235775935868855999750844791245240847753339140921858997642835508209070714982319388905054588953260067853757307101536335857183490623369743629928381133651068203293291188963532547352071084196737880065333048806575371272505952573613989777081240590234280748193105526198636671024465823675561075074557803170838428952767532857210819373412444160525146329404265303075994947246294222023777494155195005980567391777164031541955796105450868922843979154593813465080322319579337018265766123618167280613443683142410962571985240948424834419623584663220256106049231037478251256545428723996181863041351953309480997933132406444002646884299313269409968898420955869634060254288386780550831915787657515533955524767127518876412602257946370400625868769010476859020282929522270530550845280183249476548974401278478400707501303245869401487653162094657338363630417276994806776653967442443047353348564155107583718699849241694848945581286269321042977350308608887525714688538155528637902108587984304586454973658665014449157414055010579790099701046472192174836911385386769888562383101709336079291941135946834653586213954348409406433035437517759325885453631522225682865578180732973256206969584602865785224851056635885146442018422931576714929328893588888988001668722129597353270012713230074474515522692340827138161470845949656724307926373315419447952868872795976021047038630298329521613195049409532537734983479499015406919000990254419046546766307206348575077951541523764398696715992035955445744801166105662900972357194336620135620105409062150887043277423676500502709405013703573011983087233946801189008398736921623686481559020152644610905511814240435870751319165587625248185903371462257292246378660727693022772888720364074493255637394725333437468111421886221258403247334066347246604647908944422040689072048671123977102428235181905437776876356848149629350856193278494484249518967441700594733657336067455016842477472180306337615782800445317715624231112557301054275278149605573625205586454886814387650049866338024700472250644172666036290487743438409044754662384017367255445358749177042166359125329888664488523887808989635123485057779945947386755707291115215445820494956812269128054891353633945758517982837881994125119059005821172328577081650821118746637769955707480214410577703137323562219559628085440066189494780969719279926236387729650957332842336467362647224528179105945778568806981947204456687283042408662695757474909254379086080982845986497070948149638012829673955350227680248165923090820600116588789897947850254349620565484822783011887856168744534441878514850076814515781911480188747411277907817554173394929718080971426083074372265430534513774409628631005026941308315085705855015749362086599021344026035957275598228251595391868580292167324376494251858932139814169612766538744970183415989940232719035263234497383614857158962093601906586259443751713347479590197224013638365883642152434787302344982014649993998606357483673910860127053741018802142691071073355193961307491812262537499324349087105642086567326290681871994773480301541203997375755360817806223134628312289591431396253842521145154598270401816899917756060760957454879631933314697390395873058707864265236931772007251784238245286849505931360343670397740958109185250650005722732388870834390974813229042968125651370566888280761519816526310583668486616114235631962766581228668497168421278685328574883045426279570031108836939341431123208064471869187046955966664790450646189834218913786702782448483146566277528757638915043340259856446955886208697469307481705575617832548330407899646029113393551070849889359229419346813248730996390759917091855604533885060053766538460268705798305992328530469013977402394505388125143741582750750189004003656603709820953839429957916410881293828430302012084222150426120512659712596550878403129427067565489381922343565397165151485099297838382562821856906428313154227344593883190151271516863589672258255729564872254734048492219407930497859878583521385717029077629672937952690767915603119249583026629456756214913503870161419481212924978376994859881152087110539587324754070785128018686455167186237602820868612487034100085681810405711965122742428308917430630078597637803163007712396590654858273405930639640780739331681241566510108838866768867875169862237962267557827216234735301107490099913819955582824771205508895741680807661967727300725833258159092665211042503434721755915491346615258987946547678055273525872285173246044130006871844564776979050735014816536157462606089516369064238184138402938865516998516886898250771663446526314546800247615991999706980512587792505392253590543670531835206413893882950752315119002339885731687155425470485649412211552736790838562134292705311272644780716342954105058292192638664133699376027545530075597743590943832037064854563524496456080242750940968245059829647669258404909406847466775294334540040674057166820311665005068241159788426277626603098208811011377002995105575979722775805222454155253231360057572061293556389721878676739712558871709666287469120279392045849592675115938911322808127845298223555019654600732631359376824692215382843114103337616262508203980418629516502406972507106799845102160210186869236220672515667365856105673609898676842312138436470238445105694091823019015363176325403051878094123813128052943695831852633203868875875112613451705620268324340861395286890809712746787548229655104037149188723049999948330440125974549225283398205783946245983505084888696171599175430018527370688809147817202926996370875061173131948354682816950943116170684823426820586188407750800312874534245248558511588622852470549358113604360345897224611189957098560601043875351390820547889630350094885023915526398748143723200988599694627491273295488230768951650198490320664794114786353332779249689017845649061522156870315901848741670354483177480964915373210669969045505355470871907007682615066665899714083855501989427852965937720409660232338382483304059437122482273499337276627857943033818449975692264151839869925347928195664080359247018617078725556818483237243406018191777921965018297126770973691549948924518041572712703167188947957458301477306155951788101072721694237380029859873373758209233553679299810622757970935755434857021554413834271224816894791053382691091655894293525523547063739627895846261199006361538927257445974107050715854172327128831064726073215942536621534930878664787610976771404762002489776383947918684370780225277637128024853041153616258377331185209275731943171625138910128160231651978907567052492875498728250180251839879688851984625442561272543150767516849682888657537537194200076893497613302067164110430566815783338806276422523544123034382407949827905927121404709154453371552645812473931080307232864565892790931387811315664505118524699846710397412381116816318335020874335470735789032310609529878333783675892835236440604212166248639531819722102223713613243235652736374304959674490821519884059998206227442912141559306571056143336778146045140508172544003408620923111822099343896368607513002306783699845067902958363681742628122513013122852853793141082716805299238565674829939993087179550531509143617233033939023802863060805081653638574599481173497724183982666018454184997090690592669146193575028806260204787559579107516927878064726702737747962308643945353317166463462623313849123133166323180440482217311853688365523870773922975619536465855677470963196367567324710145063441049997954151429372440842349154841029830384472596931919622845262302809672988153168053600940303766593816328474265500085468807550104434875338027019866372504484478194676125203099375667026657812540378884706643079945890057862053440914268119009459520793942171078710208495252485835141674426050629143169821553332703644084444076259110800298992150101439774387800515778878923937091782586041809219693660789944887897454732795975042339957400597755275875951646469728740350488241533875950640251160885364352137687712051763945392872631761138315520715724066539938017823682053037320583349173476735951677852016865170116597098332408628380449374896984784203578441138199164049032810682011753086721811140901497894813256299661422120661007186954660271963398535439955380242835445122049736875206572549269589242779439505015616305710439932933986597034828666302445466468765453869007708732683256145008216387695510869721291647100633407100406012031875044901955992508527683253760209323122985910181260910663440284800203680328464948066011623662239790772097741478491374138057946079709590087994039284749697606357808842475248556145454061885026128201502021156676968828194990430594632566308460394978133278917635087234816979812667814531369998324878389712145275832314055882315368657962027354889164885027542079469090108301075024957374990445433762287173630077810853685932827384626850923901208205056585517937412574716312710575824265014135837040284595247203520107647279321175163096365935347087305206438372053328975513351574219677209028255812974581046276076175796670071626771163125888335536838104892663296922079734427105325576256182630065367644168065166248216907375879738714046982853190735698890630853195299356225432389661456659997208126595999374262879581530503306774416794303122147345798497237277923862176642939730519530410518422918335646451709901681041967792989832287389448601819308710252769548691219885519471066958474935552947416699955911809514775666843369799856783089660353509267482928225666158598591873960051271039994388485223131872588056074757773843427253546849403808842713975352856942503726978215930423151012892146293747263845022911715447747964703864267348710855478176235382771377468568459783265167222579268394668774574435875982654089018398938734487772180855376839007839304740210953638381096193630872477050091309822350495169941688501952307655907543198496088991808887065389689755526665771109867268780015753274081226938486829934704101182687472469130727018358434631231838662800413692693007671168824560161848237590696753304694946412975628010159988848978390643759220499788083429303842556950528443098555801494531144151624556573790804715412379729018794065468408578997163488100457522441269097090404529782073687439275569194933159834894023986324404575108899074910812398430982699622239034288609675942098373089350332525823184577478104300005492325819261031721806054419870876938475017394912664951148969296574990307291554904492946633395105549750056423957421466161595821402668604642497343331397587247289781239064484478432593642866434503544131757822557794337947656021864514473527153370670949492306734108155509271180346825849295728342353452471688049787706554541494903355882559486646584976621466840615323786033582832920784876669581476769705647102814815398497023207421700802860437740585573480974384414754104758019105753035448934823037025697902550609267749706718952374199290645659871645181310590542819278070094180442433042287272124899669091256117795293492836995140206146383331015214570277388572249839265540255192512043872566929214746314713331150282658792326181287427543773197736930543562058510545730245777563900288240610745210660023890445460660363465539416286547150033577708379641994356062598933862824574968976294486599077356582874756922016121008413000304316162340030758113234226201225124887161859037674451563922220668688407716397172967504383947001795698015169546391272456123945357896500921369779857250382716776195386814464561266034621456941605857014187243619256637075605414421414802858220531162053315341593817704592428202536941537404301176225838839222948951088860181857086270646211498659842593020658173297475960665604590847977727509628825776719993634967707460505958176275970352541729857809938610003826830052989023216101511184997029659004699469836417248715943416271743210881168749791684308639466920840191564919664889271835630673668846910068849171716270364313696253064322157318710962197553192967251633419311857127183991187093133529680478851723220129576929005708970868537405695384623759574580397898646508811346233389937428299520404025974754733827033937610641916366584716341437830805446170649197483068463413745376348334758058225904217889060691522551004164822038643610425758137073984018050785779268436716732310233845488784840066976513878909302585638888491201229196115396086213923609487345282816260359901409872694243603225939254052488586936881717248420256249161162107909069203438232135098985544359938721872527829424583069615261596475650083588706254964850721955517417096022400615489059815401730387189617620345255615393334215296894321767348541541106414404901550438031158918843041550829512555631633183205467963442986882345035302271377529654264329825433151021847213138676958999725206865542159048754054611696282808537052657860835575004035225517219060317905482809956286775556975150181846493454798531195260412220081270622574640735478811322552867909600641931589353120991766989542796787395890109241394213487389248642820207709392798968917173186933587769547643580798906407817232747615564140907274292496883881882118463658704618097915390706526246245316865341534252630394300561296588407609647027536907375431986396456518810578107695490880582345504492061119669891937177059763125329456251008335272396777611777155178793172843282744847565421044821818839357385056437169343328707280883927431905079709210923013561801066979987019689892801571978790454699820633532193525505127791497894694129562485782577831028857645602293479580102329359281633174330842568930706303625905952496220431047683283993584488172984191309504238437543257846014602989455000705556926193816035280755446522621898013387094563636937311239578440242673405368019110054189711807481946698558625222749296611575649884558044714289082472049935410901016293708228422578632603081212504075157130388875062999097167612699924767556362693739602034845023788221839979043375226107102175972311907799532648877790126867619555638801549608352476293176826339976629997970673553803003710886963149041328952535126339466562455931748508946303132176049986209358754829048555018325910069470396155464572817386268366502603635432749538288602298525037559033369954191666315468256049100365105650617659002141624615693983120875741960028744823285824253658763641082727570756646777820168113254287684058812500740707825609090753461035857142225664461307069984084708804244502402231705440790442403197196276445974793889480379844434576200873436131809947876460552331357501494603921981855305770900314531201842738416428119201261673197737525611256569086509173560669900052862686806409036326567536868514674709017157365764618230454590580548277291613672035235654460125420928972919702097387348437258282732667280190673591670836382427516608504071177635916328784564147282093261918917484308593932717765688652770536199425421950411455030914530997119694336223449910420801751280648918088582447188864193544059242196342990664222795212508875545635413781458479511223461169250358909397348066325611892422710631222363569819354386579031137718619491956576821774894795906034446502873271642406376091518107925023816546807371959872247466549273047764714057745998368631362012154255909166556906222207201058406204123324888967106592754499182424694161700361132067567958770658962766746065285653188527134347347571075682174030232045438351436002181948941920185851580609601585898334258297102429118494559894192509504424799475804183513829431491574793553199422186524243276306929945475129490110531862928292567998476528849369465737632898643471670588350659282643829477292519949671693804723587044550711702464209127435903293496611812500429343937630576938535934038086514275483579832285419496648822476761959149194169193428595738202766748253181569133106841830950878921262638661751057028095382166311409004989083203187442537951686772027238066551956230757264383466507131870605478466724891494078787397706292286806790249806155847268512338869307580533922862418984063641293571247668695880342478157385016975631679447724712577263622302622406385115181991216688879034895152431497189464176511616607077578098677140587618760354425693888804041935058830545432030676166353607729463372458306866422521766259222515575035379847161840403862312994747546780290712815409860570693295563879786285482786598756831894917353476565269968653363371856841977926894279189435653654719013744302870128753297362694421786008240884118088363308146178550584731386984736349641758511426688942881963397816485147489245640279680604501375529809722402936044854743290408607529387625521659945377440102924012493040943106315937023613477797471610421204307210425858567399608300306984620589879647360359202006858430207905355372487744243694297002240078499198259739331746722897387334824327138650505858042265482424525425478839085144529521807381861790697638124230912023215962075124013961381532432684008984923558242827575960186593105502338556420547061851653976520771661832864728134773618055512666092949389207530187774677396577529775391971777244870340411716297337352589877099935550920647745136446637591685481909379626382415869840011080884175248998506328514429970626568159386633636001003140122576881017978613910075260960832915448960992637237448702284967407824150503455581919284211245140109990861230311620169926361836587476336999338183228278465481892087580930568065257099315257706670342925275836148589154789074723279712541509195300471687037596017420696174041126683460723467797487416821144311082127030119993164514858319681199446083883261515537926371251683514898207057126911501463277195042814627815307032224879058201125822507989251691202087021340922709957400048641508381963859097700801958077736528137330599341856793935627317827188947928681207371339512009490639861154680078493652707531747819011145078984065249377262907956291622162389984838106578207700710368331230359496017595370533830371955557667513228022409833096675589924558578569228196524129391797174722315377152016614901161744171673212738019643482887079617177562487572590281183071952685510741903927339724852640607436997745519966880541187920753731469590566565901541601174967865669990719848839104891309777816738425167917938757554984593309813976746865134470738441063078614724147996093034360289308746181486807061943755420783129568701426970439758156525743357138625570371096747692959031215489099196384110664203157306688429350726862103295396772428701209200307605024677404713445350828905079894972783081894142077528022278082588020900927763466999697209309158486475306779600890462489008600697204381549470586382229424125537277966859504631410477300395723042452591488928672768575801320529107125894101219353781966267164173765311368817175640029176525839576751858241415010289737638549701083854797168765924761223325429358745890739234712186120000365051449225702392359597897391825033071349948431380448899433795914696276415199461732206229326334600058551087780017952890617524025350985356347525819399822126276639181806211582735176260039303448659241280966467131814665307794642769408513202339417612910784725348553773862942745846639337454668075712801722336113367558301792336602565405337552274945705889648545605509526081973018497255390559164805852277309955999344170601785886532437329258953170440274851831938605229307211465181814506686027778701097426377586815941538926198880451292223435640968415952014005896989762506600207825078691856779427397817693664154198189081827582050731894880318883050834293846676989277777600779123600908123974478222953579211553539379020801418953714169770057704062525114690386171054740922264260577683252538667520341203605213733564121007922990205879988208207307900349205079895374619456307144175719848377637222331830557365322151350458392869875386252375367329980886725545167476520022101777012881407725262234682037665822766081072252705418604435919863837887283352997729059220046797742522458384407689514384991819884943306726060923244052786877120894891797119529885867920134115612674837871529792844480942003401047472890500646422117036132252318312726448767903355293196124462574453559946780052775343301933375033479485357179999097027676723016531924667051362997944184756441555845640282093478154350780202519812524546929362927988030308003361329816637418495329229065865053307173409571292956495823685315111649271209032925502738288418005355773946621986612757366980817004161264385092652339567375672823427228582114796437257524073925300699581010063041550856608347873673617802988424839350583785645434326560901824601096669309706328754371725133114869589938459530979131107945468242259682874104916379667539061681837664995867030602113227493605592518245795145411727403965496795867026840380758937424177702806366216373914750110041252209510815034794723487620254571270862402724809232560816712031457164286726323733387096991629948749253388669907341764425268686637757586127747876462261952712722861565439716433464818170956646104479085574203179633262726579099963842994662445649341815082231301533232458977276372532824915954998970336478767381454946656637183964674860782147390014960592713128418134830877119633873910805243966022530874633383784288673463625940694979503133130633577699941730111793793353060706512712773077294916958947344929194793444600607647682397025633754699688992752633679020109635755830730518996538510995426887898650995770023554660908716990105262710963960386622003356873211473539286923578970595870734540533299106078836563533265922085944687279853264145171753637642294050741929576812929553746401027003103687365193756267369644937180564268780460033863926610341241818316406533713686565094392342261791046836399487711386755440889572427894341429109851564774290735180070385774129810011071002474107803431268053546452910728049597222847181493698156096879382644051026889223439528626729442787809345999107334498723251981050202858900968809157244627743721859122651447337841495235849768523136999761266769856667780264339336039316456111995971126312567257579845296801235407091275374377689034545567381796091103012456598925006081373410056793473288586257950458497832382636468722002057946313624965875422065637490810395624752518334221739241893677823755448861445183768729555565733691077920723634977285826595253954641438827546013795862204324173971911722492709474976421646679162984548341880739610791697514059750145168310501915890281839576025093584173417460636210765267263401641448503332268207008432696832011759509031387689071515847943191125802669607905831340371556585075363812024302715023508718418131047946218335926031452189560392862461246360113398838808918020299816392507464804166298141065037480179563698920647715275756154927960293506885521116795533367312915050935236068850433137803509626096343969913582914967434632319069285159687909930085493954388266098959670586802949690548905171958896991021149501154670054174370811767129362104144126466919676433362245269463003049855367123320335587303573244757421375653673606387579019211953115551385678148796357636675940654372752396262763168615598318540584328057734792634328467756846657709298756521669391937092369424933338025724621715945788969293071200762942097270612244830279218042675828157850203725504915509415404880275103238094591833103835189928388342410302789835001196618415395745232896937926454838690265096592940462634961553746406647344404713268267591229570978430327637512811153479816333504860866143811980073473739737723038237040792759455251162660691789838743824582720931455032481545160374142669869820103168398479343441585895288899283855726950293947545509699204102434316136646079633626668865888027784234486580059064279855985449688375063319448288920928782897252676958134055036963596205697037087748252991187413720710380327237701692061574403331452076966348638568779156741351948584713170905661354670452949714081854491418332714598690486626028319054987853709266403041211205568077905965193749617090783000434500606233563128632280511377492291311702345076394075253481340281517882771254343176115169466229167726593201383096811252758395788137530797102007195356791235584633025033453679820496626570220763762514314721526317930430020746883023618710353459858306787721175264587527329242623857672676963692616936506253627444026220099976552755412926838571146366264232655277096900007398892245083121601366849526158956894242394120660932273871540105989586243671115203825530280615623553293372247625827505239341675037099267137727137522624821285153174184122331040641497760472857515552025135030583871387656209346832616100234988274197062448598983984550194195610851609141122959361494024986278412657169866726426033945102921783456498704182287009273560352350934838324425888317309255818225983235672002071227168816451045374338895178252766836404330118724976659427287610156659752041409970593999099392250703621582932034941734293517165049722227161849035517493660403367946139486448779228403352223820818241400132907040281423043642891330789914197468483777175494969626459581281205347310168488611770516666439294694814688620050301664922018014963553943260673721639721592430053971819758798118825362258749212781970590273298485310938640040083538797249282616489744517386868089165763146606058770156570204919348667068016968956877712495261090050784704630325705923563838164025913208867535336994797652760193389392920342889795838750298293513124136298477094538296256935674744298861958902722899900668211909636025320341488661205456263079308940022015777013253599971620074183915776898992512570261277287896753359676801098251834942041331502689891830409473745373617902561284178208359966392655383521558251921466267614677992672398046636889442342145145916642747125124455663976254038282542080570455148447562437347663075716755652583406668871831907913576305186710236097147564784488928399756863490043472234688682509637596904383667475124217481850722941547474078294154046636877660087832111769289149533298288983500360638229065951121450869458339595650266997743301538824631681588226701748469257756823048095053543428249606573659335837340062687991288317128057136383825769259960761818683312389126266684820055671980957051867173728656348298713419800434467155667873314850751619272081404047355029775198166854788225212360213221401396099957825553317565909871278333803966986174844927418233628734443182456910083963035983515778307697117313195964035506714918479080148230802813454099476938662856681169845644065411440749715492121395284144655928800863466230208165136459740557944022553024749720147259311607195119692259609040324702902127772577383614562710400332251629460683139508703671532059917674249684981170332692406843585283722547743322862798075179005735585448026861243256923358947126825766645743619070342816507901997044284177495735466689734977719227955132366576365317004629100499535999759341932856384929218518503213119707244700893142605162778069873200794911686685875330401166292767119631246512304150544970668113508950501490152842790616332169502117783358858256305815485725853764996389230685170606841050258749825817742863660588641498794189678239248461996446062962485287745683813013881283808692154361198292408819524784836974936330669180455635456838505374860332711290588524012720918880689977583175448617947869216153301933080431528268472550074020383576795195853482317004655473115372433667600696148369370138869190069720665365164465735475076748118370572553501136317563393473707539399174034754837129013595757261201183394215788337291251961186185981119456865549562148620057364903465018868365311826839021271392652869499960943676391369033913870573767285424240007578533651618345570158024957680320499784052078723872366491912259745258699450149653475128857796312073049559779192741552654452750819455782066232551789621176239271005915824751452847545624480790907538018009613394955993041754452922308002710490489136031576664183228016724225653238076369368426328912275330953429619624547756533880391678821371498453363983615339786939375181537303430981969803811357047923255405080776434358091845209436438368725169941454623987655556309662027175713874674585533682135758600037973570491786665303591300537494352964243329690519238308009838284224491329220890740996371866785670299316868323911198987698253212857278246762111441314288226176679216244482104928856715823604227077185344453135090231616887760149901528100772912709437155133799816417476429854396636546702834555691592486911843293914072119703673521508172159924824241976774453378209367826826296349896495440032391437851324742647930752260977559465401331866703622156411161005814107934588983907077309273378572965809217382363194750605369103707697020517907982974715260284574066424399311883773092851180406287947172217402988890563456412802413289232234233842917405601167267275506462108335177344052078476114031729592645966830440442082310608711510076274565248223172514167908854679919199756206117265251335266902812307141571852610985747165988473134182296071974153373329312950459699844822967820783584425199607253107835490783586941547376017592039092979323703398015288763544619522593463367386567446614348717720166315312457460491428668000961850519410114165729454737455010566825149082208390289614639735402786438018110746114533147232841342233230283556986369431993276104068339947817949645125490420337172143433412506065318650032355649958328493517011469774253191046104792063326916020984890777155153774709115730801143795078045547827140929668245550800648084988975248005609996466086970614752927935918740826482283652108539948499023145886169834460925283914058433882479810770743986736699252438343611247932481460888114234850827360443382346625139042458755653429125221412720409248477931048802738766102560943801882703238188269879002583437009864326574795544936523710705452167889146373266305047424030218884110221737651188913390101864120509618540326933575298610635377844122607989052904178879173352312132209545047223168029543198329853722602886001115563379477206653857759987144653082461295157609258601843342010842138018560529002452901739250296348018365955501550190248629375587199093457664633020132686113426989819151016142800407093562200955553813881117127940017909659486991713009209664644920230791266348190921384750364119115871787080326150201545630072487695363151763834976895719961583528022984729366771857631083860454205840287644471797358792410695483554345532982964037641989371880467776529650460452281875392128339451389379592974598587432445203201347269127666392897559653811557252379808269180001894684893955681075217012020543260052434955359467316729790487912685003384245609559803976711292924948385052403666493775868813270567899674464784042303789469762115629000389130898274816600398097532695869091534114762587329701037846501770614710558129933557279107776380973038861443343347473569303538077281463797731936933451161068734952305675053064201624716886133120209696865113439858339847330753061168024027431363199001993235145894553891679101153456488067758677729054851412727305035283535961784824771583938095056432123665400103245119927031457409522875951423955985907136717930019978142876831432426763228626999893061717916482196698483682969549577139406314374027625098227522819919503426302644224511673309995367467646312523324564341290158867595011295926732108818863238129518540412042642416432660043179263315099802486344712806708439393719055313878720797591063612635918341646371531820864526464783308518482964115233386497837825825692284115257612402937525093015539900229369953372568626667479174605607110016800734885320548955047372425958891853104481498103336912218107235872213667786018863381192607909639568654677339283845541075198215463065384653124955185033058260762799480922400392009792317082409689033695279495642790912609716864964018689682982056784197453507622941266396009505572126555143613051084780262547251198521909808827333822974451148881361345184756290544420012803593887093614149502570837586770494887335686373333693033229141946578768561964428820405193956846283077016143025222810679578358430646750803617135446296332147173765387805384431920591074232488073332576473111738583470508666926277315726001730432271454087991260279724366126472767861020506296570131007605668882713676887567385005871981913520163330991902829206857164329830579954363042604931953994279361376912017219257237636802030945975820282640454040531042718321552808716579938413502899624891883729571531816152515365915608568008070576331521185641068431544365899652072459258168392373948153003354684388758659792674028509351552363267609039282784148782165852974414371085485989914509510369106553394026653586101281399803752497521258559271854295692195993190786314190749696283402861555983741874135320975573837294863624879895932189081800239163422570426746202093934675588883480043047728727769736688431382016905151506339901310922807715090025307159629106449587168847800714040625165176750831088671653535191382406882187001114066282988172386313733601854756733090126540073417207286483441816649134164309019869320037890948957855850049796616880302338903673030857732221268651649251328981480057060329406070258812918253406757374773570149450971536093447101459974770428346874156266579523768001988130217284060266155002856845931085513351595867072449434011200978416498159841737484752709007130853998575652642209012344145884101710306219662470715400730705805377967791202429365013366273186469712131209002156572051570835132714724993778137907510158397721381160249364916510584252628392695268645485555661511947675583348552663741752733911814475609638930063536455467052689057335547995649483726274693104957453150049480542165389958227363028238805747276736259520750887543420067573550049008666726077103054510051005265793618080803826063503746440621590678813034780033718346632434990761093741903763380304248385483052407082612163441117952442940841485074289106723083252491318649610943728264197306611311952122870594138232323180563612855603118321408123081321213164866841574554345815799048242187981829401962706774628302724202912238680949538959333403305645979078912829885846548875745965752314726169187681346408554721301112121252539041263620697216221071213140817458028319570551634781726796758619708662805927718088540184994001398841490131649932043913443848448181319802693703033482089761597016405190835114894135016316270837615311903245582324921102744251447709733836251598753321028501119636764958003105073233959326231385877327080064341884371261137159156624869425082828492523399839297334215593293177491792847690563024069808329914042490502932775514573792200798322554611961730014654426052635827582270437535397458964629207101009113451020580617283277425906101254958203647483626717047884700938244000982025863696720510912490880097218398516745429410203703051956545362697307053624329235027032803938473219073774406618734442651857666761281364992422162896462659444212312468952967963029519233547431284677834233249680527409003630671747534022392777912410243052131964493301467529061961292088686322916837510103996440494004784986487697074886158033580094584157533554569294442706469862296607217087293133852062058764446714352824947329121519104186717578038848750329338405365227793022452085205898024372715197716163044513744022566551846394475053175490996337722895700895314451441564642881193362321088263627916034637052670328347049313151110216573386956702133841208303466594814768281319198747660426825675740083300100431433909064554923626167684893095386419057720521905494615930600023339862216651540417521859627148992903294869415728465725053081290596535799550856285982385914643320780174758852586492240924820516799638036747384714729031384373638611795968880893241194605212797034151450683089380177760737663883296125758032017369276740881397321707844918794213449321391306943199770380784840128433953267401139895081764511752715113924725452444083470611063259946707160466772383442869435271683555886773100943365376412632690859360122577531343572359355727058809280113756873044133089049883890694858672351460270608552452718246731038005270566430957341939258126016821632206840928654064580906113128857624096769403884293938742814738849969147935987060410705643263557916864163156971436928389926771857163405049622451483884491779441818705172283955775385983047656979257296166938442157746370070183656021752282308120170260033226050019909208460884761181909896608128162775037157422911470793990591918103728272553015143789164155534481414923367498340093805999763709639080270447463638984303501936426602675919175477915099708160883205524747817416123313837804361913153908934085859402653154042891245357949334304680340768090800764476505290271100399288629429293046258211609657885601276406476642811978130537041442659002890299919857506173930955308493359214424607681735544912353795550458088273808258320787933620524861138822188158584676905138729197503787414200379522193295391974133994089414344875836799051918687843798331350923959717222148138334375754220956797976953601437342395884050773126857015835382501279831008961026648773736737936177224874604190820497959541430591524175135502059001005782081997180026992298413573551190103057557695085190330305653601214041115057620883427516745719011489948380110485913272527819583860321419103631807294345667153260913471867300769683313835402484913694933556915146149977517527144259336698024656427017665265494200642953431982546792872332882173695634507973210374888064667011927144814714732746200790706936297048027087343770602526448168491821941629250013973068232158609799903695702546799235842324066704199243961521442833369704227364323028170432245978746711329861471749368156479775828302615382923129011005046652348337481223783013116153193276474108094068005237856387543251048346841209658236813906715756306877492131101097320171083212382618170317147751060359776885288797087055138925935664390664918697713536030511410024381801722137385324973771252058529685633515668484239399453214444988489476488761279720936951191154542518107328171719160149771342601880177452559369051156228469742297495988273879346844825049762189384757790199660456679160849521872009454560317515590933618646344007770183352443343397198255786524136491235800667934414079045738805496514738127949096047007106169391845339568211819016928051896303419987584426669064233034150216549855395331362573415264372880763042260374905044784216005371816917285637227912339458044978970983575630842356809811678520227185437950840910372909762093769011638348004612000172316328579264513167075004356799154243235418268983108356000679478075893764158954773377369256406083589312496670562485653792222460233247155538547852968829460491732915147896063762218531421323661381116034020755020164984473203761937439094076701006276783867376328856709294337047782039138642142882524544499832582338803161867992068697905298515738032854737710086625515830331741784712169115268659788270350258499424201891958089620229467745758618213382560083665331887301056513361754308356627617644026593981047937346217420883324996073603838570180624144967078502123082577924459607647235761598830203914828791159286810519363386222052865447595671481925990474112863769687724439356736026465756001336596282280047983949155615240219038468390583906739692280349896890161509829797236350137634834349136792699991236460826343106565925602570080591661926785007735963059086770034188588120839097203429812365055443801597266755327741346371249221090859234887890858994654344603149750961834056430107522251651430600036299479438522811729215589148595225683709746584785998026258583990418982481772657862757213078025850018579483873411384353874491444747308799129414506630243324534783529309761410172521616078910055623265317470817191485992224489106866105423878283901444095024374868485267712778055622854994534922190702867590280471893439019114599657360377363755407690736998226395012929260190064033769120647042382165554832998656281028753288765571288859750478386903550982947269453692125241719191291811054653152649770566260774422284818114334713876370879008169644468793942114675390484915912359841920995311006158775185541989766233296530493224850904905598032990871230967679412909613360421468982218600342173135191871203188481288464729577854171871025329384172809698665918914627797108635648831565907997566217617662658737195972140427499417083996766187052098312057161008486432267422465734280409721750952012693595466770264735770096157499386933484290189751085600749460713306084737500733767229752918440013748605350029934941471602830010505063566711304360502765600502200477855902568460670866170616538644564565452854879382084364649501165809281460146589247448991581131917182025327872835828858860691737718416442940913090178056624186594707358292171682834822582488202882080585260867991302326793740865213361718955366042890398626884561682396428576325951030213283516506640195917391252256280966803527811281637043087056085777747018655244846231548526083146817743230517395914884172031289615764926636348488451232782365448541964995060606106664339239314854542211937899454746057576710072036301457787277637227250244187949612347150876871996601545362080887929173051512929047311571557553658359218439324437060455721158710779083688277799108801652908398469596307387371349709687590379228937279575185197925370087894952257339171205499350791486428739458294892185028743298358764889540731032662699072510347148628215204628081036597442320865567154465410089496800411445872061002091182200951676187477794205701071073818793362847132607322804102599978578192447342890553608752354359540359458851174658748413924005449577765255512365868148738445150521845073310011644204070390555275195698533513613740983896806135439255467666723224980477916423347772531486500384806678068608370815642482864984980541844125286694307205701841716259619873644058480640997577741714803503093818127654350500234036427052644240849988800991273177929303960116679206287727694816240948122350420185259921728038708788143059278252248851484397917181703581132588369856333586874453280203567727904140734841150549574687801632827053751244088846526153925056472901974724847714713350432299833513261741789517742486855940893250669391251771261927865058066470652659344393901548404014086940791366720270579548842509180373680981987890474500159705554998582510484823334861895708901657866072434868392790731653268741924532456992951693876336725283470152925754187956890286318341742472775867614775717220029398160992714982743055086163069786392862356146416935479863035416431130453829285592342544414155281266449983111651735257789603155262713932769741146119314153545505832509099589309482948197096320087143520801356003805666468509478382362686724821918261563035455946583411723366247955014169743458215890361290127062283083939734136971026944017622355885299038615842748931651821839952828021466585397180519268066387861144652324485279834108510942452621744963407576837002412507116733700880246133672549058573530524576932125267364629212946307025100427734415917969375952294217447671594548379918281031568352183242047000029252641116006015083027595935985847930126939719991057415638865790612492055248214924076682287969116204700229919850899582823893016087319789694305020970640061265005890118474710864110570904098620177594483623602191557580630680278868411766827260537757715828330974299738904530643892609526009617359717346616248593504255489159189455431160292179305027803136435627355221802025055193593609282299524501721709462987478598996634948389902336014404702190174936398814824272946935628361834613038033767903761145727437066970827127440858261109261803181051934976204767155320772181715621896002706028878962739391375305565139731541144926647493950782286776312771210690682459475599944702713646369849113970760342487356179272039052799246738713962164286077791355225790580562884509238220788941322158145926655547027736843036842804401868718741987255629201014919134219563924569403674577120729232126539432229683301384151853603199227037448727392092725354329928623513379167841125761355464081657938552660938016244837892536209383466304940616532101967234536954943965552811279382467919494326217917933266078903069521167121304287284941936305706940571237569950714315628239207164641329337090619057698276642480596810199897816707780698799221181232982924419600003912974020223222545088709869205460773236297813802218599494828466525397158871640894394092287280173330406319020615082379728146348957578680103530279896597766087609940826212169482278653519461388104141104457184248369131306169758451717779100733767532886954122698646685952958058156656634294269128104080374122719943311798930449570082779842928627650167402130838725744125992789168884508467464992069025975942026251318451884988107143180056205310920973914981783489737039593377410339623778209509898774492963385649140105068361206099124579295602055157711063365875763763615615348967310018918995286133513004680903343402178266384421530542537968487512874386649358748361062064897660915789740271013489487909914828712937355070179306827587069021116334493042036375920607842564370380056435670982058613924473701411839694824050928623996959339803399918767927325003367031282535549558442060308363919125755564481852569235313611924828477238840855848713729223871251246146924179749313823468835624348217954430781794077363657995156539264383921411441749153358667619508107040502865729584490458151737092071347361837134471782294956891670967889314084375514080922801149947962702414299216736939675469491224619589474535502740753764154331901672744427188757959672154900027688468722399120672542109297147380544562691368390687083013512313984432090744304766924936043058194609816707460420069426381197308383254147831012351052079443295366265237583075385957958926812083983113732861212253706740682063954348203829930924062469231084732025351666583502470450967628013260743039302046900898739954004408710855753267586050291124166462768043062481306696122523188644758160446688237202451176966547910541655770607510363572260075194177739776161134816425249680830140751393705346919901512131953198335660553333267796327946448729524395865691117819180661140496829524651686128139064727567691366282024522293122945742465122922345626790101457457681042005565071756835842844546470048632518976182919777623068609230344724353192768586342096417092156934703459666551081790842411351430542684442282248352412230117956033196299744815475540679210971976803967528740572623033265137757330480481791264350863964409435765198173435205389826506178299836121875136951037054498085998760801532012641345207215381203289292619614122009954089042242171809438539510099476915137260493396672938227269974129910565319735162422726415718696609530208749368902708695073961996687537485734104754326245704487060131612671278624343675276860772405146300672111765671445348577581048214528469457641284373790700691096936828557403664943780596348697028553422371800934520695316384512571320727152586175117321921217230739379562310439363856575225233106080461614399930690245028910085200219586226171122393481793937223044724049362869898052965179701815717562780492540401634289377070321045115685008615557436035275984503554888034410086560338238111913397287391466137733283698296565666210847577487516811646564042996870096305046446116033586581295682577806844085476177514194626126601616228074815743773471241841054466530153736839474992045400869054705890750182479848743521946510130315724713230491363640225859428621983240601626474188766652649535361430281805920456619981244677774070681655373208526163810902090842289035900292583653484655516987670694300212840263272133195173473051436626545811602622634443881409261267311702987873691740420355023748353225291821548284768860676824605828027892598647012053837299435376062579441424537290072057014436008234828675731086410182499805171065528625414610807184958168943778474457095822641530826563090323530854911792855004727995467657739556944136131307748042091799683809317304359622981062788365980999280507216459407159292026134972900681813517834252867856290235459972981680317795419806181627988539459926397047053584267160478524417881171112374066650531647405941921627880291019374387697750834608898653656228827373605380610412645219592136808980417405439292932963565902304003135979706416786404385695984316555122808509660240932180828433805042957990364215052483473533977820321329206426314508327195942442186861200130551937672223542313252614157372309064736381125899614257061904238645732966338779415670710289383751918435732013214719099496784644526823724833738256575199272238881810196959673085031779001398306917112227764297668708722600823900699704609861247809712504472277154717330579301367538241554445487608009295514143141720759524473337844711658963605250879109418369464911847705877487770697094662005105471905482361219218428447548009463604117976038180743284934204180568271372505002849984644992798746465383800281483150017048704093702952340161370530022784890087502641055480180878900011871754829005832981997256669420655855532316558325775759288427128787315340660508262645060268880595306625296927575794142905893612552878544237507308951126795624083364976923237694494934174898532554748031311273669772070760393724336779004398892363923280256102334617273034351455043638718717697598456639828109784145901978452267113241189649756750317253043789449071920629916746614637115965751561716896686658588497190575531378542332905629535673402830612809575480973601666247042958975276949543105738153187633699161775838827566269243416948969728626959046736301838976759445272931146739613616564107452898818245866437188910581578010854769456673616446213462800226877728206197443118409152464614755028051047550413265071816613715071375387711018045323746382513766698438400099042377491026678225383748946571464261532857792618376215241609884908318621645915356867113931210064546478360992849379799326539201152525239988027507907432268138024069315450769804838083121654956368964294694161315669318386365995120564181516765138184721411999498076279821402123725667307420282049402107221422582136740923340167419671378013711944973749675131705221808107683069892535097073361389019277786780236708008695245339710737108444256878577382575220696313291814247797155274912397924008333314105880226095862886970019941447172304733703018803537144023015985224386266992738308749348499129688532219696730665556848679090901429364151887468629587163831951433641424537155883100057597486417065317113924720165104355430908811672959158518567572206920411913741021898737474148772772204925694350829373647614620951583984937261549424894818926685674514745599497757841155463371116207379848427329605436568058196883902161618107012512461986046041128901168048138034999068647804147721444005068686424252856042920331074948094470581725423160795538550415129974097934254570635003145973730715110407013208033103396819781765964265618254671941115107981366063667979162014482385586706992979837400136947125611066888329504778767752964922369956837625024350267805540701997527051801634826229184958868730972140105296431748673041920931228451413728569367855460249299944644659778055430057298374631714148754766865551769106936430143470604741718936077021500920199965725492075206426678399359731962058203538029736950997829335115858406065611009900083915351817844374469514414162548584010242556574319966691758199367824929670865646430828950322162086586637172495890411249865472605646056802736963812650326200210050024071739258260945846985815402969649488276216990336865706109947328881781245146998849146446661270710029715290521312887208163718923770016265412008501856850900674580076490264735739592295820961259705246933426329990391474232886767923751773146837676090463134055354435393428942247425954331917088692466703862237826312235458767046088058321994353903910041090508464222235282852201332049173769393936832602058277609909757315014901131836714638853051723658742152718967953298936815553728616814492921976967156841617518753856334229729850390099515483368065924404609985414061925277254318762110861258592560652241321539167526311058204535272190209812325232047816340582441317639272778660990515197562709953783740102795692545117455576808476757010052077805765807292806623815797040905712273964182021680549496507356584830222330557087926434903315334453623143417813510105198663298928792110540978328892547941621669574788460110938344170625663763333067573785998776042292037288231818135601744557363147627507143598399714330321402589663506949648978376495283608428663703202478258370751814333447364921851838870332987186756376331766959084740254968394815759601497955843355374572900034095709391264298873168922083183860340176976142565920609624456703777866350914983668908040847899736672907982706124375588881745702561666359990982743324064501416545429549233783239322593449723645166535620932925822130506543470581754510515308655602102028011488421564449015215557241956568245833913935132961790708692237566320508993966477619657992323873174482258865270106639259810114229573921003086621417664292788613015423932061513285148679677540665739013248885710735235624540712836019906851513624109191274421401406291169564809377683248269014524246840962467265758615127516027538069904716638293245256995502444410609607841879644294934545118973548177509850028781833109124415713110908339841153196814871029716824122335335579698282579602915403857733158225544475805016479918160176582852822229271823134570433850182214596360846015270553700817327416376392576344068449449853478413170985543495516710991277361160337077878133260545866243544114092597826187541160955638166701623665670671408936714545568429145166530787830715966900674519248382820980116268701300915580269553397022104622487336156359842249859493646518390612375468774286913135430766100165893812149468825178169708869609616660284358516295770436661985509254098023072276455375915261179282292349827301271384375409877471948977806875505396766379506883187085456037798680811599787505220383276215827764196625698296061895216784855334774235929514314583118639286917222677466907508080993783677993417011875798302538109116963020064930046190494376675346344292183099865466454050069825585814903225732502191973047819214316502832529745602454685307030706767901246869480288622675210798238503390172420785372898553835452911110789718980505290898126470785689003556268173983365403049047479957800555557217901035213552599103586703092621623020630867873254140643437235992646178102861987407784814567324023522046125816890834182248296034736560020661058102745611727584663075645539627101950636550686385226952778994799964347030140354006495335618603415242035462864291450875928504197509546444099048859084531739375727146018582577380316837323775357832776589694467701154039436943258034144541792129520840736684875403515299439146537232604754672304685115387599323244892765488993240770160460121888942687245334946204622049483895866786645438782909267066308104960308922191226534174312943896074975519425248730606179694731236129122096624276633316645396040111313827927806429555737304387488698295058160326117161669782433156380259170525993671181173816773832697524744168625550554199450791248415405261975051253487961582866673636400191141716539512577806989476583322394534937878381818179276252921655448171551938162592323150977920930284812604818079018248259168648118116805808307426287689544434158152740714390985881301765275194573202192579384036549574015420237866056008867016496525589778602432189207954163823875369160487885605434021512709409838239855533842871539677519620971591767814523758559092104656742582695210508185245717861365176604072673517159918620027665217075439499763923834966454845297680849567241411297135827193982665927740373054564050127577760554432316364919464276963621457954320843654843962237789375207385647260078964571666079329726644741940099824422434402873254348685095572330042474215275148288211060439629760639715380538174698021447976865518873208819609932570134621397153649551773908359693666433719516479744398668739404118467747700502183296793304268840097301438997539596321064310471947952389529583381460621957908472171982246182351208438561058213929462123573896527776381965946736824127135311271204039502461368157127799321142316202524606702957546163459573806176678112175019930688201214389011370273843321267613801333030821618405974402514232144621514059358394933427236645637373978181714304168788989804051494881877597328834224707655212562901832957319846448095953493926665547679508635955773685214539533552350245223602679104475885640742629599053384306059927276456849161868182819954502206007699714813222115672944503430355766456000433526318824061283414428811720957322421457289626806188374268418690057899339683983254445216306606892857621823736353142097538352938255111233428247378422484573811530847073575227839160499125787381914323314160204483287387946005319863594426396004514816047592699301074415239772981757544589441389798070353598639348590529389165177498433431700960067201010231129342212689407796071872603244888155717677939808288350161704624079237092291850200711901166534511379004325161242604791750076055860111889728393885758255811063489203016315826990026626898811105797678931707675878520229123958163569053269934580484332797072230106088575137029732469417159828209175210307416911026325750356648776552668756915322145398410425538234493769523406832094518737279037023896664998798956417523836744116460355933619372477943327105979367661668296742759074842523426398556072588154856961308534685086987634605625755324983615275627054564453195295872256682506484534764014106448119731179772080369139508978339744347702937075821395103010232318354143964665474187736823874829137713553012951748538118519257586909673549561341869241260394423028935783219305790486715976817789417779942091433721773233004281721943420588009279110907297809700947141273457532719670141040934561185436075912367512661278149558082471374612437594066178867921571959505165137517506219014352898654435117941399179025415654987277479306513232578979681513229782482522743874017299403912190709004067962188090119224521100204199473505919792163300067043479210427753102166135953130478097446528442451448502350241542616642603856496497420116374362850858178697500186545492592270838663154074223697248652734219182087863869089345646115660421097726633262821318914500372935594744027224487254564348088397406158280016672848616044049005399853821677127379159502313542506077615240030275454449863540957119378072104613527661703934250752963509591985054338626629717795574262435510807600670957647342321756358135979558000952803664555531540381604278304674354995164020078299974282858263024711588515741967123295934649538223043414945724789409811785492965942841375563132890746827793399327941690810378945903471793351939238102606527740467401230099432254159060557035628256440621545124035891249664008344005503737846232023262341098665286104957295415237188386286093897842724535195076384184478091205677481983472547416886500583996574314476718380805787627469315852573912068505921790667410083580369691557197790422597495680037631875499482589140882297987508754993351897189347671868917589003180653912401531403172145404564600839475582370443634112211993482121979526982704177240405035581648567092234166365829923297647751177151951933023868919875099473001592355207729370569782536520135454543292739088701277081245137210289571292177336548135383241783387353280439438922820549550476934593371318740811838051706975664122787503554306603104365253257860818413812253183156284512990804175846461786441355633870259465988836582364624744795907610385586749208522526786052899965789859702540106116997993770404060695462747015774408483422642323779347535686166400693268780052698247194926245710238762386696607917015480301814320296113287018776685994311213202841056845428355813507613824878742637247585222211707041269243977392819605974942596612820133886361518127203590596128631238704286406978018211445829126057319389771388365566608212496621408143011001830517528401217268211740133028869450411971213589424071355845892617237243941895514025615367021530963570189169941654207266176039053433969008156803077690869848308028588124800473835804567901556390368101014243441697881945984835722413969672225366792212609555786628390315317203361064104810719351177723339148984661559184181510891139229039176732217692762499327356304836364655592764499649079215360193351563143310066516676654279621288416246401422479731252181052575022130025757404129538419766092527842670268058788210242661185751477747666157276238203443286413482714509132062501619213353755161729782787401893293337355370735740947460711618692471013905476180076840987652025636612139673436545992340843314273851379942228417529086912686374232528712356980602612715601278533218792782505952061478563576749432480298112478442333154554135748687394669344884283432765010239077552351431120763309697953027533510064875405815355245997279406450196257432099180647246516362406356345047724182196704382042534759179684010556076047762850282102230601699454403317963305312400846278723554398224497143536553379779918258358793496645844052470077649953098118292676781167394838338726253189516823944471668217229490849660962415542924803029916722638311988241758417151176455103735160385915561844118495785475617349350343194669217402080328460211499469604992305332113158599983644213030412562696822451023507986105409507629705455680306016694260258345061478426346000452862940045628784024336944160944116546030858516691682780012253545303493115212355332317572110258599178949873946626200201157951432566291529960858188848081807969963474267786598818193802904438396637431813945430845286688677517870869282601263364133633430776802884546273769499845176064500287055677500407856704408798818729109400383092482995288821481196594510018367561377572415801144658331348466598103637856149463968913170500620436917767332102434563654024651517110976667790155099003514068951974143891176468209821938232688703784996393738284746920388250010476307096575919798251601552906904022384680755965289676166734760092838746334791003620826402464434187609950883675790270770929492896520243763874908856966501171647892384628137985707163505499974692820894330062767939224892814679059641499994877002098231783479155897646150106603231017583260269277297229338185530125644337784305511264985607732849944524446888337704458549189066801873052587859123381870043700792400959352897914799028006446916053705539318502255436982523303081411058299489931669859661532478236337754745761192532296823347931198401994806053189030958139593129006091641111635038380454009810112686988552814877026678094949608058487934000469240956429295487150121080163871301547076319504199405298111885168578598560453617837352193207439832880546781268335899876227798235828532538271368924732662882194729124040907107517277520891074384755759034553165634690322429671010493718186160318162480869617494086614840857314489553878721153876638663228223883406954408662264497145117874966885502645799642947818663823990730379302805003052061127904364357641529207649570565227048098046674514026880806971360863758432746061687563627133389200866989463017157185018486984409427149848114449289921940718233678191656570292696094251326585850836538909108600230882485137283649063843843673951062971954476093297870862401494680378040594049390889980262196482294827698881988261642723269448000363786257789513844274924231747567774415443357082708368278437287635141284641099444030022854904455922141951630135217045831562344537106552592366070405260314948092393648118125950770877886316938027967797211683568448445244984998136073388986052033562854841710273361042820974686258526721226113535578331654294169366258748028491661418940861825172679749197717429169730354511860811517395933545235870746870621258356296603154354047786687352743222391444197990651616240457608424950854648691524905613940414524475907168576384589273368785838445100752736565333109207945370797736087810999945183425948152484633547806053742965056577831646909664631808647966153067878184776266878395287078560163749437072751563912779293344667279246588857999483212596186209297809492040574697725913308850133653476537266661506516208318487336314090773371714582430503570344330392134353230982948418110595717412973944456547774228747325620943319915429573001355846465400879333097658915356379571833230829196028010710957715048027228103841468727899013297522121160153349591807141304915612999253460419030554466431311858148658837022635424410095427262864309706861542441527814364350264285916717695602444080426902948703876318006860274867454182688616114789614302966361916444798845024817739093747553918958435838993264748357623156271368945201489553862881536685764010833377462318087026347600516588957831023075879278889600151483792507735060761886264801774565344605605962199159014627591860709064690925037049517590136082390195526932964842101497957485091721104778224348102224849845688066859845334100798786209578902007740366312779831744363595891854691400985253407107717524261521163411075900357091879648088185868184509530059581819948876145788465094409141616383741371290675408353600784615697214647432581062362591712909226974183277754227499268836027383197269240842469639304931025716634367217010690998962965172181307345155678680583309397102399155365926318260723851785702836232660470627297449750181403683711442604217015376400817713905035887040290557026422611578152924113501175300927899110814121765475078778592823217418776762401184819042899260551268438590370222347781404898216895066594312041594051867169821940350439006258678448692744746712851146930736602961303264057385413363733497057509233740960167623824336476693702243958929867726166100120352295798837391357481702708757559098169816502851510790946848471143047459046657786382423752444232519754336797062185845208643992576190099980260459253136495869114280603825587258179316800452623276477791329568847876140311414352263049215760753069578069904696793774265717202828134577747035188754936310186540550431280518747985942252795035783410821609454945214135778078560730714142734949212043608435477161871556900501584216803156049244789806910571886934881816930404361570268553220914692569784437401436549343152015161201908348344195009035916286301453476344841288721383975536795758382960521623367685402463924218750151358761564082690679733895974871665938894447017910363632978395626786155102362740144258384765126892075269414664027918838228057152112995877308245948741295145817939611514959518370319063051979645018965939482815575563609434100357367032369808083460570523007763123522494106368532567798335731498753788211029463215400038040684361509936404230119390231907086785610950666009874688876827782725110457622078034226138047989933429219267778693015263819394777994743720478607224648893089153975707629007550625728939771949641096625615336428035212725468745949488048404559129618755168953724095172463304558989476880025262398692912416559767088599697818071608270800556696085628170273129489629874786427380510345689429844099950503920380650722703912417796977229200173780301799119909090938004443699623225404757327491424573965088485972292677363332245395030067058755708129507916752476506670754908424790880954641149810605898835060864102637848371823733263946776217282927314770524622429624665577251097250828415176084401950805514682768543086165516000215489697485736846883616469686615242161610848906931459275601674778208264856339335096268177543811704300715858898282556345034067893456183372662581686765943306379844817208438606485103348309538701974754748088865086221471369962542419915533374108561057531145678827574320292343238898242917800785229849255748436598977357715280491305218999300071202234924320080887608972359483525185521821555568573174788082685041811829203708802312961032998124020153605401591410958505946713575753992819170586834673089753189195573316891024096254282010329811672457144117537168563514808988528060983723792025049105182137670877018538969416209331719713825196984769993742949847801281094135859640336256698050687276575940028928334516833107464134966749232789348601121839857455453049546991069264489509784021782276180248870638424835029138366327424516942085650209020891495036886953837663776942643780574796413284939317762324439068012920265790860778587684017540211533485323477217731089624961201116253089561666158202725444766331573204519446102330039258912872120336550067190496665331192243532716936803739768497516748352169626732425735069188857790759259384592320507764477864252893159618368357664210858410486877095715219097198444260070578039312822319976413416639972237881891343549078155353312416107206467385264916043942487354203363847674778149894468242827817966804279561365368060868733548360026701432799575132728833661947923411305340621870218588258079341522341622230312552392099095248546227206420232747880846298270192832437970974137437209173694705565802644698395927197924768309788238315949688335727341078548778277239411104545671692585055786482193484929987476219049311215888347170628927444933702827933241183383969058736326291769171923915683940410113437826677013967642247391301231056691079247338012174252185270989842679112712895648960614894905094601324262958386491286936384447681325282112516480442776866898613297925048494171230546474179124469574863690536644347367019572007686969294911797813613125673369553239499495022779745538410060531224088297755093036374341016475406325212736761901082657018846549118888017866651261726770255014697999624589190485080108646531273223179482850152968423988644878392320667317445106384516984230646561432924644250460534841028421076298539795475245538663306487873314597019570084307152589021612873034855851516279024277616517379692451545014747664805715381880034807928651563415260090391317556651625745003714582401108566308363697038278675068435903811566782304374838525373048836357556339969941924531747127142863288854332968713228446485836655249979015623360528692105515390006427445473571964701968676585911105861129514004307691069343036557858379533559528176098706775022064068277106701144455559928530459571461630782098208946209299450730170987651107752351606627638990193637450997641753119878243222232534629159863687922971929534179334443302123519421950208663371800950757968157273620904807163372867774069344614971325134663736505731038249361560843205145681646109630760218504707727085134510295817190406718278673668293313294284317527225121134081331094134987171888817625677249171936198630097159557935258882729383760401691696832416110843229182444946521308992333345265641878149294139325308190798499925156418261895205965028042637891876924806072503396925155597763026221654329615823025792413269054806591679951742938812027794513804210425821670105298617038678205787203754978297845417463371661116357024260409803843729836828691324089594583236597556384216613157050223831419412813922486348322863435103696835300878452498921585684166256797382373325271764191498962491988356601788092940057210763640186912608517389162889401631800842135973275645304935135331236535976465544258623212416483643280687170458361445591949459722525114567834493034650638580740272658479915046927469303643605370664221388121156048630459834321806619761909860535162818678763407160520478712496635928925846159147224290625252202590889589266520103292841597970221199732328148904168163236477560476219433762740358229750155756753136285489107685759322633614269014899669229388915462013258629696297753337714915332818991821684891688567009679427292881947157826081016900081450929386975861156509458430626177912666119765551607271204011165327407458546042262467067824046527541061225626948361745967477556954290425764702709672854600468475279723939850912222151639159957051057746714528951159477001623711948620885532706896056764346923557769124314878476971574636157937186511600410610586024087728465735852049722065563057154000288857172988801959800414467703680370252206717564335726826112735752135167848633584009321486408969395008139720805600908394897360417715099638058366382499027957600508534257891433384675177332962903492955592395691182862620805817369042965904346326454649618215729731873712455662578152171388385947529358160458074829048381193260173096706141897070004627105170383782017153993369801530541741092807907833164823346531786069366683307808190701350502242848313488985155227032519716060278326406828469482124638464996773705785320298077286531584147359752437958260989362402996618228792948384834586084896235014317774800792793288892174379197029449060168120738449812308826973542118639940720759300213724950656336297485381368971111137477873752322942359662987307773667879362102716356888730092689706117155048497450765343784894104435045141858743907080334451587546440824663863713501580843763983990374373531476583803049271175574164317023208190347598946423171823332137523583642255542279206261657644156025407518535067258307436206172922863691243455771166772779044966185927362185839651285469809182500965285510821034045120390816475292644915453253285461931363375362544585117657597377573000640532800443560103041822639651456480367476056182535663508735863697371617464397023008907690282639511272610607181203415501085631068125634851883729751077794302352888439021617038906266970551758629833753561027857422485629818884959067640052954671905109705954619969526834782190701183047082537682137607645184133654818683412515721067853206457216681214862004483900636166591030858696515365885105185459404024157577216225032198386619786785093563226303490493237388445905125753725903649927717122055766555852420160087361574294160763313166155516639939568478561536451596983459779245470960855153805177969530750639601299133821521425988893585202427440790597706099557930297257088765368462483600874775828696267876524062484615547062984415844163575965597128357744623185129245672133223597338727251970357285578545677168440224615369873616185032465414083397377487477100715642378157908220079457735417273987368608246388742266909110026158623237030064673402429099322366910843495124599205466953603177155393189643496494777008414605688903374712381561613236792803389396397623111438523250612959149401435915081106340715751900877335849636229849721414544138138696160872486113138677915801102468810929729138401332188076154873127774231482220086714497279735995159276903358872770252446765946436251620165965243546905626136487400849322264377755725621120637731072536221843274145187724690666443539869283326311576974496295575645771917169494991032326213624712451814186792760241790362024957262723138532904105174713435219634931565052829964174360362858256708897351097437296169998609747834269050386236897928754121357856460104812661483425192135687981158216881865467541602635201758891999008769249653396205026455942229826763053983918619776912744720484601024320537019467738660820025314611393380341294642858885837724475733814602201722925616550821558490865586321871935983312888361002684075687065672553822520438353805473049981374798175502276938845484455371096508889480721316946979033120937421484457947065546268643143168608980529253381083440876885698272809537429389485460665305769763013548988836058289520719621319606511479971568256887843305722708650772277411976496238968008222090003667533642868619910970261329401305636008453367581239061675259554855045803587292924677600259307412903406428717528755498793731086698608289588495486889426224153768072021660977138139363444726444273586207360684272671769231211330794438880917579112347069917907517255305450856984629044042905590606589739413147885192214765929760831300998779935885563931832794893605190900882126826927122392119012117178895410656633500526250280719677017661031664524354467326825235086422849146977374483266830691209518666485522802525262303944089031595082576826690105139711564756663036186791895871720037380978774783229125832176233324219240513203512807049974286864407416320576655217828201631391587532916201370084731245260116602234607131842521728612910192315876261751482170425035295576836741111759090470087439225498840904976602218147563958340304262639411936900147070860970735496529718198799435531426444650702044101901718380796675625575299689626135253026454014279672396001621848060994553014341523751592743204938814401891501687510905310812783428835044834475365041417102156590779977906454646310777205501141228086792621415722324896434542879071901808973368159471953137594638014862645850132990699437567197356652440248017067421553293519920332552030829405027888590260488455308178679091950986939277899698431261378418327117741702433124299204107593279009167925819935236973951858423309768611152202361184483414488132377879476760746002904232243737513583848882980195633973273193665799834060289694107017913415352805761039580473781071261975397783647660446653897318412221278729358653710488225446750061608135161557400898611660882524941902361548884400445740439484436319704653998371355715308898169712775183485537375386272274305789674864980060601117335814008517676662310786077308656457720501829596766030486450064972046960876208640564645827305928645823128579566877413893866027544755785971215319200673002224672973647924270124334944773179185242348703102507797928893481757604175328141008572806884019898875038989318782731898130501865503226061177590405721887064027967512493629399838337829033306899662569370894942808394000954411486016872050438021097736983052498178214391334789228576104120603086322753727646253122722805089017342996533707034169059953619564761893366449685813552246176433936358587658970270189880147298973781456593341047386564024734723899803763441770360595266896969953686000295164653915549060990000326157423685571922208822741309144716662203060597542197744380120221476280823492567325900466818095813750776593347310734874232047700086807514016008891774967386605838423276357462023189614684599580651988542615065551125803418387633885200383896537474446590951368697316505662087808831397983479864312203681463821461925645500398949671092756712834847070002740132161423491735949699474794649709718745342978576976762010920484437520806825468983892085123210201562756344857477289172064091021265853398649945663709978373626910376676261274751881038988401028124458148738925661320797862439812279604109337077177134394855912912717690247906293301328484496794703837182979425362966248415451848040516206809348624102714111442625644979747502976372144036591682594636900772524034602275486669853595152150660918197998526475581828281786038636118309960667463748887740033928589025275229554202467436783313511119756267908611105653451498937821758423054543074161976544700895607850897814301443115628555202891697717481126400815718298537973746943751008564422948862598417905101646688883818613259315863039941312001752542976066202250640816871095651605113935514927927377069083477093102668085065034873849760834992476944654602923333502057033957115031277660062856047791976743553006885350747577438643854122063820388351338885669298882622300144789163073430530869749928966779306929057053749713480696725171469054778050580502126972107220821791207294188756661319456925458779343913847558208199094695101080224394796529912698310240239142142505120117357646789759418268524923324686770641273202129034209691568581060918990989605227005761738902896796934468755596044197514159564531498575294381461826723076970009877006310704171015047327988133945772525347958217928316378106933880963794183993674148246177251679102756437999009168442281259980283045954858324814597052597974379807551360042220696295466100374429420184502195799727601286639631188719784911421171287501413140067817822957404927323024917884695084992172663022300869125031728903471560781444995214570730002135434340526434841029358937374283147907657014749685126797581931385876756225049433159492754138519278638817686031015428903729742476776316491207469179467766703748602195279535944254058351691806861107227760977022706988582057377392747561990433427287753748809574254288969730303438073105882271382422014141131839592118362434605562390118018984677471639794070562927477730039686540327438519217313047624503658792724800756677484184928473069610648010375955810225576083465849194490262141580876045528459795549691393595220528636351205260568781817684696131840845913836865237597125196914948122989623865015553907855167939019476569983181555396172503490352494958534277917017424559312997696250393146092267910066958419939509045185706535030195900360229603532098637677330425227797273275742723339627439211549847799885257118146092928348840665637306918258653513491020044528989136048129778865361490086452386821658222055148152950474423258200221705219469275364772614380809715404288680532702495937954796981317665850074190264924138479991902123342442231074166358317540613747062732530662820641000715386978090980223938160843385534423018120042452782689978866438051428388835468717702458047365612972075424532875460648217790884782817312848640220386942976424031096101097022539959954972955060358504992205562570461393873163768778591894095553977637331153794309790476632584175096962308303854108023155503062552808450307042650990943836299864932827494023502076218859989479247247419285859554764097909506008236314788298163766970473133544145590491033840940491328676248519872038941931610518278757219888924753711210321747232202333278241516752886055725101142670225673466402256853635627172073473240975601768332130875434857954489539661369704859331101528260036651927846934141382465870840981129460429392201773694977284458292779491303429941769359100748645982938600033767395292024125149076942890531666483612174138517373745103586711602806359567198815272226164745323444052666616322921591045014536966391535749342957140839454351533000322814907191355392231083079219233096796250611632861028301740395468763473983267821091166072823800010337680551299908896776937265980929892403642003937327069024560631883967427324889073905859644168270997441168557025605617676163410050313720571049890540332256697703164715568698633107093620208116216203787132455350410547178872769770573351121279301012002127173128436292956993411698496605822442352238932254430503312713161890031830576758340982537156689879417659428820004452802341108931048236408668250130578897235170419556835021764099087360547390984503303333415407526769284298735648160388680901303187279268000033343236555255886681378268217521353802796432601886516089627741645642899740907491418306441073839247686819336114525397169784264368609346442248115504701503107796930540375652375689845145838878136247658831093217543500087271349624811699755673323385789499069557877078080681698424253587063415662991859601832352026419088738475490573916310995266069569832100169024426535261306221813918358261130588548358368060109744284668293610077560950273133020926452172467877213751404477883001306986884043423700604464531787233115905657848363574848141227552893193561618220437712222105885504121370876425519286656265549685017709035963157074258518417855935626632033947549225337170204275461481375718361024376627503990702397995259431230641601622667567445627134880653232218540260644449608996547323743283777035816470126430030569268346662846536142072542050212813916083998578100500200771280447280513833257654929542757376723701790035596267767793086621115570610277857228498697919394625352854794658232816491062319915123942986837439250479099221990173779739274868517880621239153937754923813975112432865566886274996722116794652735801757700594763943425019098480086687017449454964697598926258322643446947632238029810270373281822117277718892258264800845556512401954228864451502179840414358812468927030564902949593352437615744064234103939066174596156746600099744831582208719085783217920891615921265651485619338337387847658852022912387535710039455720232615894451623245019350240024323740322389867298972219502262000500367130328291832015306606880607100239064878022916123723076978685350294707809916189562428581246587015617851232635910133193956554038554628286085198487156933462459992351885846942033201487317598347545795648777253243052768072962442588316668366917873613641138533383573640843812933099835630650029281684274405227921742122886071939898073855974530682551843075422753348299545615959750024461067969807741583457867923366336794153142223715110298933403804144590741401457951395345461681760565433529911307367128562948905327094840532169731813546279063202226589805147654927955764341696749301608756865148921211823874682924479629539560706869204634548363400998147432092151331484566678508027276028083032537808451907653164466374664992522692275455348131738791606905848447559891727679549738488842800754693769618730622402685859811124729287055218095629677328528193833244474539079354686143573918643726797216630182705297321408341569636521942305809640787616211565326133869583062184526966912958951030332599041358518170995973217882852544673046933530794590341741030666782983391902087936210349510289337387092437779984227827289132082521754037028211057301145950616598688994669919778147186929705115274175596295600208281960807209473531845975321675796983587667525668775533169143658848952251750426813359624752690755792285893188097570983442359848323698799592697605988257265584952206273101922741686784235229267497072140329710155588019198546912057189758213670777868166598868478904905675254754088854522812313835421999744051107307863570391052323356705514709828568187813965271053649167944875810891841573817041576225993657796348538530492346474346236153283884265993303987451810986090947767856501954450213697345756940961373397585688163414563948532138603239642135636230214604422339175651524603420597731504278297492685058376493184338499060559540207249619231465430157699553505039811678159999576139788931366353441673910245162912665338145789072508386828300350876694366422085139695504770424948100682782162220590513906199978005219629690365326937329131065600028909502464388748995519072353033228656359390142500634012643702672982644388384819104982860819399196253868255378202257987746341937688912891252306916897788547619472008893507398647762921898392763808511337962386273616175027264601333249198368536785949632314775192808903863269391702254223532925409100855830078578267506133368896211053031115578454067900110050882739273403524107066347381683775611279874937640407667714086817533569827449304029608388559615351062806486469810502867130943030288836193654794323091800590514026887048295794522442176447714564511388256800606944146732388298401134899675311537482046121116761163216649037206900387268528848817958851112247288822147858336194463778962894736905624941815865202602943854231024696834007259132793606943494546499600029871605813852053085975865290024073057239686331665566136608094179849734466730617394574107055505832270216991731361198247289463001981326353704712814123287392754288436986353511630066219346658142236836668994676967467987684505183281600784882334938631876046246988926719057151990749373911423192422381809770109314468838914806137128302401907210744328778159757320904309273163619984516889350907728871019971415249754808595003400593514037425896719451557203593251208838618452876238966777131405483441502729519690911401585756851238692071938528528926296365608822515535360841251199382807459064187584363831006813361727864677876171976805919611574211517948963150231441294318845740074132543363606541397537505602374702494817731375236431392457073168119641641902107446430377394887895477171775439080984898676834880669105379814742491346187969592995999360311482921566825868245783107917625439648974740806178829643476096451800970813488451751946950429465951136607387520031846433215382058001523074489434259597156658104564611946745369828501615718275551386807293596378052318986542617544204941818891121786937332284258462692155158436953275382169623980878795849227211107430909184058602920716779442014580101347074459621317647115425137627468151567716117502847078863398256772633248628260636091087209274535268481592570524706110300818823440053237063661433604818381079751977263414137977500468867995126302059066186039912513700016120875681519345517660011833159620464715561396331312662547162584877578271829321765565658142143881312361650210181479900182753172158822909267103994917785985702561384766675664036802496701862137944716060106989440427952224710825465662867011808141285418742072211591790132500981450382015267633628865908982578125245823124127208257045469693604250183315464260032853826773196243461323946013909124090373838877721381455880109248926433510246004620458105709588114264000956836766634117549800234907020574188494219514177148020800652980241160731022640497231311036173736567776315693875236961645809201714079310013214765211463279021393796376068427420285591338004618312096406859397728169690585726805926090927239230329761984961634503593269213857517795743909785535063751247173674946280321668977558940013658628983799953750723254997620335707212426245547128892543017443097621431418618284301359428086509702488423634348017555623267960349320715631430416536541906621527251971551865908739020482550908391808305764736104428739440372789694194178504255656431219312986328408542830034013515948428379354210586757219907985253454654049140500098465023349208313724609573651301854855011687720080304313448108929959842069556078382928518025529750768905629212728849176078298419702883351276118817343908959689430577834082289901100687137602234523273530641485565237347119865840936130575125974821519625394248975217743968799015956687754243679391702567773428977853664258053599455379348267570852978391038724159910675835949622937485767142644112270693047006529146650120156077977776539615696948112289167994095049147077559398151012423807345075240690685210417060732505897318389065993171151344466870313394589206495123864222738807170524782201871983503125189917893432127652692191333120783367979952235309884820793310241018879545032194518135077979242251090493857017045691272337824596411545158495663456782010841646795548820550940310201886063831936528228770938530375982234259573222229232572773366757706205575078114497086223957183325234877550681029350223081013103858649945838698642457157060399828844193958764866863285379464123630999810836554359053215065354562922586578529212824454123989957248552087426460843862353304419978555924548907305070076120444722882432617423717363689881640430315534827636020509780772330740935056715460793373853634647663822861440689657298043936059251756984918480241472504146892597042824074967701390439327123041741645023830969718693458176894480217973224253746803918870595747112122946525287081586779524376503865477818624602141321155153125874255752246092792748751764999801972118128728680358598951999350949876502413784838476657861541777559355149373704318254537486564750158025789985403166197823183993477275880317417028071004609268138129424469580926079614512880713447925795403637052752518109808114491467438688475510802149863785545752147116934186275761585736875314259216890310963728633711790949573145305894027342192494000265666142416957250480055056456796171404899845809043323793288836899840194160741270949153906650902892926504778858816082792242901562185997361727142702807919907431350410517599584566416295394272684006062937221137649403776640748958916863540824827172978693777854899262817109508050585863508371932433410239273030729351592794781073455431392508251410067423777888610800644025293046537969074791698849434943685429498523268514801321873350046374082523442032378897068539154982999326600849512463924021132982483825471896025479708750478277714777434301873370711399869372265992807855866810061433992106966817932282821777396044433831511422335656881307931631957671648288549349051645428422969476398991758644318520013196548084445206242001775784347946086788372516422251134773596647174139089655070439267945590971162347004642921108966698125417507297502821591521021766760427829022735175993562615211790193258653252659285781256455394588695578280686826281373251481847582135002730008788275443706183585840277789323286555327216516985422295368446619292422685802932951011646916080204722497211577562340495739742653835552997768143130974439374914499458851141353196827033547766753407727311733492797308767141809596007596707109874153933874685969962022219880768721629522017131375997290858891110226872460745928800640249913796106836840923993999611595193921697056195849999440739276696077211629866405557148778002258121243634269435518032373381551318757020380780878683477643488434061575547327707292718127041645042690433700809795439685807754176184537683678556138574798671101583366967651408328893229278533893946646267198940699579795675299039845934717420381521911834957010451217449945847874489851188212858160960084919978916658433797307005721056680616860594733681944336200025327084987602232032472792772633772820418759931583838654341654810242013828493980678639416059894131371871180233782863538755379692729947359084019047645943555656474883507503168501529996821309973864775286295468134932184457586094429249228119083828593521737594728028002790171350077860683504427692099040575822398754169455518827914404519389030995466146851406640471147914813832392804436749533203370461559849117075717123745804177284079328255723059725540074055150210271636091760751993206044552003636140281765786946275171567270043493813754097541845098281219211061612512616046961443653025267737608035233277607377821562040854232186171884636611539309121133584699371610566781983739551003212049192422906448695959026739642618849782264014944900821693362685552225377922132130226623430446302750376197804126723217503473121945964700544289382644698432540312938363004566842054419483843263407318222751365006469969676398380890729116702807582497745397300287463745491805936705779444068160170580462870250545355222180426993547066262215317018445383765251460366749872559861926904321808639643082340895226194902939494231955749974755483603847226006466478914996875369208933260946915619239450036596779823371751091067090976009305642727297587927996333742361103261490225554423650087943923879164592765638904819766182863652636713775726210992892539535746704884606607309863909835488203019692564223193342038556910346467431390116876808015963870988849135197889128052420058347769645723503626249319117696148015779338614037848481794581054811390487015718160348293968635645944575357814571145680601241431415970396749717047238805140273932369045689397979773874963084886901824348364731793712058379027576651898741979061145402916616306328135919174291729849979990436383811817129833185854790603080618275751546267787870169155091056766012239998517993342239148520828021082947970009443814760753939996154978722507602457053563206630704315138531029117588744527134308166939861535156134374258605175204412869570904158674157268588018420977290056208576379443845300437288227620083255407941648789313769329567305149368376620474202098797511742420836993796618728803584574656744431647789143951744428769401287697679959497909420100513618011109307697187076177125193034184238615740228267894967340465837642896425788952704663803204862172398516887909367901143580823875286884987711944903608746768044523110897480936470834482457334873049457302281934893793104178975801560732853716781061891509922845429762542680207908227741512459208832342577850925118611635015713473198673867792160491403475245381827039009790322078897973675220453151916648894415306692239285793659889110499776309764861393704008159310513677242051206953006035243238406409548068576600423528915277220484075623422570295697378951983845070582983535570195777749760531701380182493162019175087221484662027842869805913789595397260864161500898008436732009480385152400722567600275926587574755178401919800519296631382053798569338743949223892714655089812547265462175175771252377594372087994332061664243997253472099396386853402928160806428870908725761381417642078929395300706866904061138898703912407936315325526985754726726218979278065738487392503077796376849325273700517221848024408284242068246382391700805904420890526681146222403489287302843519141606764061019733237352247826675692443959172354357744378050281784042342772890310413779454360816682541103383957519384417034056689044912824643062654926957027780774135024877038538260591057800253393666001991207654364144369191535349829617326980450107257808477132020625946533953572900023705968053219408686369298108144275079215014789592802306416278802500923044870470247154759378986908518898112841536900311697643838906696546728128799072178229150320302180230965529465238070221735689641784441150789765255792729551967262940380179039329074216974564796279666018606619430675529278279103771029006575676940996481748443694319217936419092216833356764785703480904762495675789600633674305388076858109754649206061393636100469156475324989839267018092873406021692923049423840734588766147517385611664503583152221039783889715111850922135638003109302735343956688473580472548027919007553598688190510734968665677711778588021983694892150066957159052056708351257726480949016740806276199450113188377067090333176648968887356622317217187571843606720697093322770473842277590656735768306687096238386366592650470253519016532471135874009675782226242540290408152072398609367099588723538459952349626933838069990079157032854380066882046389083799142835363683816500690943208259758716705652814606646041644661774430400294248867073534845402210490890361643869947560740546666189767867097814035983201749521824371839446224976516742555986723131590761782639654509852160293491120266797698269331512172326054229741994826205063089658871776493958391678466532694830131017354724794068717815810505806089109597444380936461220687938170750811217875022371077569064082256523217608332920541984633084375202983693786229754140730708925594533882744851004175589500132889072129668731617636431338025720467650275108831389770540052448620826777346175390440777419187976157640802608208627053546990976901914139380135513986921409061975726189255933792615876764442875716236780854097367299567193101052430543327267232112547663208633856436399983826985494823696732222039475489484283788429767631686357798294322388236374981993175327726071357118565369403779305636195515581103505084669551334660908957612474439096109616922486869213536143942894974438890996619148588001108460276537498283026531823658536602169800106256417558746865563918382963562520627759653746864771067729315713136671119108220982515122947383178685801790509241304666048503992866273428303956471019951486443330059360583291509239630783518003790082124910418277044620554238029697653547647929251358686615602682013197819756701960931871562803690847427418565059576837600734051444892295193537045824457396035531909691777335941538555750313174323962779688650247145269342401903538118581533458441780518031491632739162518039901586235618385958099438683550256343939049818223195599179963623365823184919501769349014635810841251299028719639020417514296801355844448737724671677817561833085767942789220495675790766689661556286466712091214349247626584274752082910857843865758829481966918591989094474794144632999907350765532378571765163892700578794732568891321523208963629321472500742480912265571363234606133702199434344237852361092389502583833124400393807317374896742359571239409117811028256517852525146781241903844345547984245251257958415585340142788125994536220629048991721515652210137901104255971749426843204035484841523966083858478809752600077135163236213239348487222657993808296957068461427300166826165475064289577847003730050194302163512872058899411479904011530865276343070789272668445707338020179843225683471331260892450940980364070158685537428588372001048611028613699297067283251238175602588699967990383116733945516958171031943360834354342382528680736416581408404555011274614674346029872333400339733447872660170492213578950648828014329015900395727126019001309319615708418791026321197084981039177151747748658136939864922755246930021350193472632637189016362933649427769361096917592536576609445595679694175870875902583457022197582455543278397021920577223764564448998893424684116927492225424004840283696371286802332609867599616817503432325896067248853168095770975135072940099172814473569347854804289804674717834883596170505744127573252402345149326249346621865881845537184217168991093980352560243856302520624311983821816259619830849165769733815022803430688769573027622065897381074309584032532642940147647386383845720841913547119862895110410964963087054599632479219832368485219961385037378441911975401194462369433568558361124506213569901590485778974444570280541187194744929840275069866736212785553967236190271414198956099784800225474303874252873545850534364757097129063867775578737466962991993000572907649245636190173759171030607366003542841907460608409584269297861100734305816013688855182332606533006345496754128791998300906614592203555161764426337712264807434262058514189447139165703685040711491705096422663602933401204707563272130177347842966625934057570912830217682105710816338145261574214005419921299895682379640722670445383599148336653976206252194658362987902892825011012010522544991951764729657614107545048635367190951272395352591352737588043993277213631243089830235429160304279736070841032695617786507609517026710781832501047892284834353816699040207944213830370952932822950421625639971392016383461447344959688502512859200362985299170008182808630199741140996084402437272879994666438620714592854996513401300082690221048485593202990630769185293082696472900990331474425521889245848663811050861091170467814276722476944573987706380493560625763883965489524830316241333351976644121333345531907372157970657004208643256220680946227829981784580661461924500721364463863628334940224759156062344315500680228757973169727743228595696663583003887062968610646743842693135891130744334199690401827242216670312273531927640338778682700207210344475524267437577239477335880424507734975873004947880628835442064931235181845251482143388928062109919243250516509275410238966782758043336524071116220828786694125985831757507047554696217622818236703833742960083579904361624014569402534715729208570111959253815605429986682545756498374908526203301221118358342408253337057435373417373159245863580125694432075953580007862275056187076862235865110949475603136813973001873749640583682983380352974783378779958125485682531960884416704926339191974542797089143556820418657587223980121415423374086178689855421519512036398888460869503847633368309465873348657210992718613757381859592382217068055234304641088516254595431991007831487278294474888637964968687588382474792176505269176364006408703820278697277622176877197006310906073230825395524696273918893581917113526621005103310921470818785127774914478222767129047684743301354587238422683618058420578062064450964335974565135146676402454654713103938285892830393949181845090481085917499991838501183652728464107219429159224887380320736158310317438178818707275416269248989605359363888720735551712252368619098067122229439038018828687213929172509048676460697547895742901458230793755722600893899929887483825021478781997286405931617457671164770968607524465372192596848242011479123678054427882133613691435206059257297224989677231425594236480187802321266319103732815203508257739752574073691352188381376446356660758289845908321819307109728564505692249083612550922895853335111916260348232597032266435005930892878951450677128490082504634829782229569370790113826938670693335096590401564880876144578494212484158983952145078064779778294855387143644274516570185108412476976474557948147861777408813120578468392882860608852157674157509280445679826865687692583384715322896315286570289859564016739162685697645346196080405285129320576027764199727031401650078411834688718593863336943933460054054069123442468171691697731671888283044901852069284976998300211398878234822080487723106285673802025080914329734798339354514469684572550495913306701871454910233989626385537758372982817695815634013530820103195022043924176872766552560637849995417731025993564979172384313991954173653461362254961630854500238449579199820783474816574798111505125228859645274457183389332305218251847639391009907038341085257325704046593544380613047112425506890942150092897487917694420334683245510128417757367687129319937316037234705918177382494832060565581122868934501172623433020227727563137882916173432518484985990481501017527039589173359239597776746744400544613150083128393698778324284749307023757393081106115030534561847526184216936082333340698952280405786287846282857352141861030227669269864802504702700755203283147343632165859272322479728798375864652695119654761706350696486821490530511914559959651619885087635515575499476100921381117872205061586493417541824608556375991187545028020966088944428033118451190814388218123369140103096637192039119158755794906298183271044264984309492895648598383686715997872638196465766066315432097702219017710610714061079313169132863924301780137653247644748190313090186390805484674632410480713957879045253234100065480247607605725405772694504465209120713298328506171742075927659080924116433395249946398611502671879845088616070864523166964831487443347837839056919812383377224856650767653343433853493979915193897575502830571447847069815103850449104907194359267642406113342453206743584041897098629363533367058651346558064355943582305690854693492502420518699792416922565962270209558583720442709348132306431648123483888091793397972039191346041504865989621832871838854814354217431393415892468562280893718349847606492125989707128562953389979446950774907059489334635720401908173016726087506884553461040317963355848313532531016914536111194581019129031867313728041078924282413640004260737011917937303474900663356160435126101627591122748069675833643443189708667787744213619132762961492702162938183569860646074134435159663400657726845825567186953443992320993588630428047773051930863973225825756944702416540270257757608502433042618303943188114963755864247648622013409785112834209619357135885227609420753649928191006117829825587982304678257916828539948581215214306388541608510381191340013296520279884345341946811734757295259702877770733379733488468323592241846945074399047104386252925137801958780071992380613442235650573379445190045077541154718255662024381069669028848853883274021309736148082647790422619941784504581243009877468242352602698498185656347512812605399365025126864413876179466353928450744547013313666137071858820263809858589748284342537658420569883035641676575847420427190261766394267698398041708439668200030256824533846442402305726785379845401706344341749436300554733404556757615217874979663862368095754475015715589620679635092006311776532184634434060071838535100453239279363025196975497140637115156204576026259852980642626721342535804419832140358185952519416291020029004042029303926605494114915228194518650313814610403849934789974505310319042482554788552935394010369076321461386484104135876957660100041912513731436361044416362181623327968289189755919150290591083550743025067382137950518524700405680322814838570750518580725226649421479028231634544123239334383790872188300083209064716879679243350663588280000156318267185932612067767127743455093782775840418762702175904723330799386144495983455744139089224515816762298671695983873385335354815593902494795877106843159745039663512863415555172453360805132449328758351368374845643815607420688437303101429935620053218007322577241248482111604723651066500937479893695181819304805335629770432093136290154749578200606521797124858512793694120174031802093555192986064965667100630555568160424805232185602550256542986518545141346500165015924997901139688813109772434921465967376909007886433729989930681426023005696284877208345482692541774937885149129140082641890610242074595267855440164736207582373320739690676888197721901145792221061275936738405376556417597907752142201814252452743090518907889039115051473611707996689817764503944420721968498850576204417203059163785904188844306254677397849086422064799316703108190417690194134833285382925553957960778734368154463767573311041444431321066171140358402523811330630906678498364784573457776496235681363423222364710503243569960200468190339918574145505318351636330311958031662988027178434727200099126480302587866266053406067385528226409625958831476201473541719549996440657150756745035175993008244903238406429846041683827955110757818547243259419618119411793704726852082499357328588409619796017053759641326995216123552208024000918166204693455269603343511350396674415461827399526670184949510272720703650804326826484143647020088570646397183994401642543879124647936106367168788494454345154237893447782798454019175031067599385462566454426987533711238048783783166443880243706974401692483315481401873430504008719172176586470569987767824361389298568563564719062156557094160426810787288585393149941285166223764634338863166321393942170089538639422363487607978912858112834824048975664313510793427982806463714394556996096403925915336566461128554792682390274411611416028193012798560695640634867150520902987260979491139160934602656462897854724478839007094131193311544699218008484304433615637713662316582399856825360717997920948758094532994056812719800188242737546745987069895282083068817309362984901971993213777830073295697156704344757497039371700535871330879080307035813760405189018975003554896210102613426034791842866650761959561660583239092552299682606084414348333798826369912770187154263507175123733281275848671098532777003054408931931958818134129009306711285763746058354585993611250912017619019446332203409396575068423377051562829892862573907677586536973548671914846668218645700704962297936381887863093372200692804179151294136827347439117108277892661678029722516659126803767288975940025556229745612142652149644535872777627519039970726290014731515270298119731067116605430723119873469049213472479625720393715244830632912787272479143636403084693708730590738222524578622579236861880339945513390164291076024619578686526838723046593802153405415095943667936227786735244760546434722039457785137143170096737907276118867296409687001041950595239369262372842879164738880190008954345819557734236721915026831137477823878817667806371875156015318828773014098501199947987748692871414282370224574953603816934086107876163821358043160553936754645037915097346884092127210222272916648833387450535514963781919392856256727373872017469671451873548011835592378492872223681746810507208454950178633846321198135849223060005068265802760775688528357332848449305912829027491577773075586838951980533653207625506904795130894391980429445975828351405136820703716950157418352905680761859436014242016113744605386646793528335448453022482044260674055037134279297176443888928974483694421475295711370153970983221455819981967515155009872731767418997099818006159669033458497752240247555259957183044002788029088929501355204130875515801929154188276279438277573021095680808553986838710385460886442892308924034206841328096789256056367810523122773644779426427799515863847299712619609745295382429636540959653887782681661615741113120976850846765137542807002142136781126917099864831542160948245840729860005219762084554628744865438166427156295338488257473532777524296894538921911554736671717109435624567829203911002181783001405823450479683452373985020944195886368243846359569320462140741684589443351501892289091093826786966719425644949403949611690802223409845003158932217316947635174801994006861036769178636723998963131425515149300175470422645191560331774667702896389832297371655434078019156235204314695443438877693998329154938065811309515224819401697438584945502032523380398134242713952107032967546162395585338161113169350116242419237683283363657453468895231153905824426686332124069338404107714340384046963598701516859598792310604142817187221369940543324448617535633901083911626254288082668682279090365332821725759851034409119727549899661498994861714590391394488319532236484435303629287167541764768018105497226022545550163283424825482105171142256133185649054681597244045045340611556917179678713355269545945497942418437812222325927213573066875628323352194458465145885118590386027370721564520034658118930430098396903257644912442282993467431612625710135648899440406717108374088839536480415673130413603979873742361309120178290392778782636945240728538981283838022163635741793101373584840724707273581921662619782422805897638918382604127220691092220644074511868739888869048783952853100388714189234859678476655026850474532083573682641662997629954850216219564890757715298678272902883042878725474947939977883669190580829328745193742883474225191229526972602071442401066631580211851916580726452998025982323996489559785946867945245425965844117765334900877609315469863295875922964823570052256053152925192800470966532135069103562788481631081622101334384172368393561835505793860892589338826945857963803192767042286058633943165467713158496147319740445500630600943139118443667149209029059944676199022019184707143915941316151128511784655875182988252331944564189322459399699131337429393645742050594029941845264239468797501811031131856668404322053126024891735635566250069031713642413835711479836817048619387001502463511835852268956615399952939855367089270352014077969786466007156992727272344695156928306615650452528115177145113244807397609362381704888516169142715128505987731905172788202282935939815941009017205554482210867921077460689042442741621711449746651643940069412538168946123579968845561971318849682021429573461844461089277866426463083434042520860721850056905284507829607223349021647748516121689929361203787546889326700816424479705654449368268088600996366734154287218408086554722619930430162363846698777097502400765021647821839153052310965291961564607397854746991955776677583035606842457512262506947357361896891376506536165760391170161474497951452998556514900565466425121442473610087856597826431317690302977553293702426792649868682432202552480331695661244447368227440783286921753017840871267677008030373580194346932204607628783378895314297754744415638603519614779008134676426335599022654888897692548696921751949572392452603302524042802364758834960246136464513564529899655538277029172643526984954727575631744978311491617924129442304363999139388520789085370880906797716863354653279630458975346295354499495727779383493319031910514279296537977434893776681221790380312054573118109272890088590377158932709013245748455438795400906313472605160618061296974884455637179060116397507315905971233033278470189792283256426227708707333370499456045038421791287131266727334121142783071726650510044496251579129999900655847758060566715671654468010943292263535860138108982505753500904590698754061792562857085138594031444733378031779742606468058870161989516664137609760779216262684783459258108136287174769697804490123769947105039229222273854319031378128645524870200290247810092372907041185372472152613931505616897813085434348874521402121149930886067035595358231531307781623202008082987012549222601894036368261